diff options
Diffstat (limited to 'frontend')
-rw-r--r-- | frontend/parse.icl | 9 | ||||
-rw-r--r-- | frontend/scanner.icl | 5 |
2 files changed, 9 insertions, 5 deletions
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) "<expression>" pState) + = (PE_Empty, parseError "RHS expression" (Yes token) "<expression> **" 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 = "<<error>>", 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} |