From: Ian Lynagh Date: Thu, 3 Dec 2009 15:57:08 +0000 (+0000) Subject: Add a GHC layout extension to the alternative layout rule X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=d305c6b68e06368c2a8d89900a2123388fc39ae1;ds=sidebyside Add a GHC layout extension to the alternative layout rule --- diff --git a/compiler/parser/Lexer.x b/compiler/parser/Lexer.x index c6457a4..d0ea5ce 100644 --- a/compiler/parser/Lexer.x +++ b/compiler/parser/Lexer.x @@ -1985,6 +1985,14 @@ alternativeLayoutRuleToken t newLine = (lastLoc == noSrcSpan) || (srcSpanStartLine thisLoc > srcSpanEndLine lastLoc) case (unLoc t, context, mExpectingOCurly) of + -- This case handles a GHC extension to the original H98 + -- layout rule... + (ITocurly, _, Just _) -> + do setAlrExpectingOCurly Nothing + setALRContext (ALRNoLayout (containsCommas ITocurly) : context) + return t + -- ...and makes this case unnecessary + {- -- I think our implicit open-curly handling is slightly -- different to John's, in how it interacts with newlines -- and "in" @@ -1992,6 +2000,7 @@ alternativeLayoutRuleToken t do setAlrExpectingOCurly Nothing setNextToken t lexTokenAlr + -} (_, ALRLayout _ col : ls, Just expectingOCurly) | (thisCol > col) || (thisCol == col &&