Lexing / Parsing and final token

Richard Eisenberg rae at richarde.dev
Tue Jan 19 21:50:17 UTC 2021


That's bizarre. Does it still happen with explicit braces?

Just to test, I tried

module Bug where {
x = 5;
y = 6;
};

and GHC rejected because of the trailing ;.

Richard

> On Jan 19, 2021, at 4:35 PM, Alan & Kim Zimmerman <alan.zimm at gmail.com> wrote:
> 
> I am (still) working on !2418 to bring the API Annotations into the GHC ParsedSource, and making good progress.
> 
> I am currently making a rough port of ghc-exactprint, to ensure I can get all the tests around modifying the AST to work.
> 
> One of the last pieces is being able to capture the spacing from the last token in the file to the EOF.  I guess technically it is the second last token.
> 
> Empirically (calling getTokenStream), it seems this is always ITsemi.  I am not sure how this comes about, as the `module` parsing rule in Parser.y ends with body or body2, and those both finish with an actual or virtual '}'.
> 
> Can I rely on the token before ITEof always being ITsemi?
> 
> Alan
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs



More information about the ghc-devs mailing list