So, I think there's your answer: the last token might be ITccurly, not ITsemi. It seems that the "insert invisible curlies and semis" is taken more literally for semis than for curlies.
Richard > On Jan 19, 2021, at 4:58 PM, Alan & Kim Zimmerman <alan.z...@gmail.com> wrote: > > Changing it to remove the final ';' gives a last token of ITccurly. > > Changing it to > > module Bug where > x = 5 > y = 6 > > Gives a last token of ITsemi. > > Alan > > On Tue, 19 Jan 2021 at 21:50, Richard Eisenberg <r...@richarde.dev > <mailto:r...@richarde.dev>> wrote: > 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.z...@gmail.com > > <mailto:alan.z...@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@haskell.org <mailto:ghc-devs@haskell.org> > > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > > <http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs> >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs