From 60762c678c83e370609001addc8f52efcd657139 Mon Sep 17 00:00:00 2001 From: Ian Lynagh Date: Sat, 5 Dec 2009 15:20:39 +0000 Subject: [PATCH 1/1] Add some comments on the alternative layout rule state --- compiler/parser/Lexer.x | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/compiler/parser/Lexer.x b/compiler/parser/Lexer.x index c78f3b9..cae5349 100644 --- a/compiler/parser/Lexer.x +++ b/compiler/parser/Lexer.x @@ -1499,10 +1499,19 @@ data PState = PState { context :: [LayoutContext], lex_state :: [Int], -- Used in the alternative layout rule: + -- These tokens are the next ones to be sent out. They are + -- just blindly emitted, without the rule looking at them again: alr_pending_implicit_tokens :: [Located Token], + -- This is the next token to be considered or, if it is Nothing, + -- we need to get the next token from the input stream: alr_next_token :: Maybe (Located Token), + -- This is what we consider to be the locatino of the last token + -- emitted: alr_last_loc :: SrcSpan, + -- The stack of layout contexts: alr_context :: [ALRContext], + -- Are we expecting a '{'? If it's Just, then the ALRLayout tells + -- us what sort of layout the '{' will open: alr_expecting_ocurly :: Maybe ALRLayout } -- last_loc and last_len are used when generating error messages, -- 1.7.10.4