From 6cbdfbf333927bc661c8d9ec616d93742bc6807d Mon Sep 17 00:00:00 2001 From: pieter Date: Wed, 13 Oct 1999 12:57:20 +0000 Subject: cases in lets fixed git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@15 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d --- frontend/parse.icl | 9 ++++++--- frontend/scanner.icl | 5 +++-- 2 files changed, 9 insertions(+), 5 deletions(-) (limited to 'frontend') diff --git a/frontend/parse.icl b/frontend/parse.icl index 3f0458e..9cc7731 100644 --- a/frontend/parse.icl +++ b/frontend/parse.icl @@ -31,7 +31,6 @@ is_record_update updates // ... RWS -// Sjaak /* Parser for Clean 2.0 @@ -1697,7 +1696,7 @@ wantRhsExpressionT token pState | succ # (exprs, pState) = parseList trySimpleRhsExpression pState = (combineExpressions expr exprs, pState) - = (PE_Empty, parseError "RHS expression" (Yes token) "" pState) + = (PE_Empty, parseError "RHS expression" (Yes token) " **" pState) wantLhsExpressionT :: !Token !ParseState -> (!ParsedExpr, !ParseState) wantLhsExpressionT token pState @@ -1765,7 +1764,7 @@ where wantSelectors :: Token *ParseState -> *(![ParsedSelection], !*ParseState) wantSelectors token pState # (selector, pState) = want_selector token pState - (token, pState) = nextToken FunctionContext pState + (token, pState) = nextToken FunctionContext pState | token == DotToken # (token, pState) = nextToken FunctionContext pState (selectors, pState) = wantSelectors token pState @@ -2085,6 +2084,7 @@ where { nu_selectors :: ![ParsedSelection] , nu_update_expr :: !ParsedExpr } + errorIdent :: Ident errorIdent = {id_name = "<>", id_info = nilPtr} @@ -2515,6 +2515,7 @@ wantEndGroup msg pState | ss_useLayout = case token of EndGroupToken -> pState + InToken -> tokenBack pState _ -> parseError msg (Yes token) "end of group with layout" pState // ~ ss_useLayout | token == CurlyCloseToken @@ -2569,6 +2570,7 @@ wantEndLocals pState | ss_useLayout = case token of EndGroupToken -> pState + InToken -> tokenBack pState // For let expressions with cases _ -> parseError "local definitions" (Yes token) "end of locals with layout" pState // ~ ss_useLayout | token == CurlyCloseToken @@ -2593,6 +2595,7 @@ wantEndCase pState SemicolonToken -> tokenBack (appScanState dropOffsidePosition pState) CommaToken -> tokenBack (appScanState dropOffsidePosition pState) ColonToken -> tokenBack (appScanState dropOffsidePosition pState) + InToken -> tokenBack (appScanState dropOffsidePosition pState) _ -> parseError "case expression" (Yes token) "end of case with layout" pState // ~ ss_useLayout | token == CurlyCloseToken diff --git a/frontend/scanner.icl b/frontend/scanner.icl index 384df33..4191c03 100644 --- a/frontend/scanner.icl +++ b/frontend/scanner.icl @@ -1375,7 +1375,8 @@ checkOffside pos token scanState=:{ss_offsides,ss_useLayout,ss_input} = (newToken, scanState) // -->> ("new offsides",new_offsides) = gen_end_groups (dec n) scanState | token == InToken - # scanState = tokenBack { scanState & ss_offsides = tl ss_offsides } + = (token, { scanState & ss_offsides = tl ss_offsides }) +/* # scanState = tokenBack { scanState & ss_offsides = tl ss_offsides } newToken = EndGroupToken = ( newToken , { scanState @@ -1389,7 +1390,7 @@ checkOffside pos token scanState=:{ss_offsides,ss_useLayout,ss_input} scanState.ss_tokenBuffer } ) -->> (token,"EndGroupToken generated: in",pos,ss_offsides) - // otherwise +*/ // otherwise = newOffside token scanState where newOffside token scanState=:{ss_offsides} -- cgit v1.2.3