<div dir="ltr"><div>Changing it to remove the final ';' gives a last token of ITccurly.</div><div><br></div><div>Changing it to<br></div><div><br></div><div>module Bug where<br>
x = 5<br>
y = 6<br></div><div><br></div><div>Gives a last token of ITsemi.</div><div><br></div><div>Alan<br>
</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 19 Jan 2021 at 21:50, Richard Eisenberg <<a href="mailto:rae@richarde.dev">rae@richarde.dev</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">That's bizarre. Does it still happen with explicit braces?<br>
<br>
Just to test, I tried<br>
<br>
module Bug where {<br>
x = 5;<br>
y = 6;<br>
};<br>
<br>
and GHC rejected because of the trailing ;.<br>
<br>
Richard<br>
<br>
> On Jan 19, 2021, at 4:35 PM, Alan & Kim Zimmerman <<a href="mailto:alan.zimm@gmail.com" target="_blank">alan.zimm@gmail.com</a>> wrote:<br>
> <br>
> I am (still) working on !2418 to bring the API Annotations into the GHC ParsedSource, and making good progress.<br>
> <br>
> I am currently making a rough port of ghc-exactprint, to ensure I can get all the tests around modifying the AST to work.<br>
> <br>
> 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.<br>
> <br>
> 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 '}'.<br>
> <br>
> Can I rely on the token before ITEof always being ITsemi?<br>
> <br>
> Alan<br>
> _______________________________________________<br>
> ghc-devs mailing list<br>
> <a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
<br>
</blockquote></div>