diff options
author | simonmar <unknown> | 2003-09-08 13:33:29 +0000 |
---|---|---|
committer | simonmar <unknown> | 2003-09-08 13:33:29 +0000 |
commit | 4fbd195423a6c8e8458bb2a3c4804275afe3c07a (patch) | |
tree | 236577a6d92aba7f7a1fe1cb2878c3e91c86a524 /ghc/compiler | |
parent | 5cbc33c27b1f762f79682117836350f6c2eae23f (diff) | |
download | haskell-4fbd195423a6c8e8458bb2a3c4804275afe3c07a.tar.gz |
[project @ 2003-09-08 13:33:29 by simonmar]
Two more tokens that herald layout contexts: 'rec' and '[d|'.
Diffstat (limited to 'ghc/compiler')
-rw-r--r-- | ghc/compiler/parser/Lexer.x | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ghc/compiler/parser/Lexer.x b/ghc/compiler/parser/Lexer.x index 0f2e23e42f..316cb10e33 100644 --- a/ghc/compiler/parser/Lexer.x +++ b/ghc/compiler/parser/Lexer.x @@ -198,7 +198,7 @@ $white_no_nl+ ; "[|" { token ITopenExpQuote } "[e|" { token ITopenExpQuote } "[p|" { token ITopenPatQuote } - "[d|" { token ITopenDecQuote } + "[d|" { layout_token ITopenDecQuote } "[t|" { token ITopenTypQuote } "|]" { token ITcloseQuote } } @@ -561,8 +561,9 @@ type Action = SrcLoc -> SrcLoc -> StringBuffer -> Int -> P Token special :: Token__ -> Action special tok loc end _buf len = return (T loc end tok) -token :: Token__ -> Action +token, layout_token :: Token__ -> Action token t loc end buf len = return (T loc end t) +layout_token t loc end buf len = pushLexState layout >> return (T loc end t) idtoken :: (StringBuffer -> Int -> Token__) -> Action idtoken f loc end buf len = return (T loc end $! (f buf len)) @@ -770,6 +771,7 @@ maybe_layout ITmdo = pushLexState layout_do maybe_layout ITof = pushLexState layout maybe_layout ITlet = pushLexState layout maybe_layout ITwhere = pushLexState layout +maybe_layout ITrec = pushLexState layout maybe_layout _ = return () -- Pushing a new implicit layout context. If the indentation of the |