> HsParser fails on any of these 6 examples: > [...] > > The problem seems to be the production (copied from HsParser.ly) > > > layout_off :: { () } : {% pushContext NoLayout } > > This production is supposed to make the parser enter a NoLayout > context every time the lexer reaches an open brace '{'. It is used in > other productions such as > > > decllist :: { [HsDecl] } > > : '{' layout_off decls '}' { $3 } > > | layout_on decls close { $2 } > > For some reason the use of layout_off only takes effect _after_ the > lexer has produced the next token.
Yes, Happy seems to be grabbing a lookahead token, even though it doesn't need to. Anyway, your fix is the right one because it avoids this non-deterministic behaviour in Happy, and it brings HsParser into line with the way that GHC's parser works. I've committed your patches, thanks! Cheers, Simon _______________________________________________ Glasgow-haskell-bugs mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs