> 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

Reply via email to