https://www.haskell.org/happy/doc/html/sec-monads.html#sec-lexers states that
is the name of the lexical analyser function, and is a token that is to be treated as the end of file.
I had created a token named 'eof' under %token and set to eof. This seemed to work, but when I finished the rest of the grammar to a compiling state, it would immediately fail at the first token. This is because eof was taken as a variable pattern that matched everything, so everything was considered an end of file. The documentation could stand to be louder that this is a Haskell pattern matching the token type, and not the name of a token.
Cc: @cartazio
https://www.haskell.org/happy/doc/html/sec-monads.html#sec-lexers states that
I had created a token named 'eof' under %token and set to
eof. This seemed to work, but when I finished the rest of the grammar to a compiling state, it would immediately fail at the first token. This is becauseeofwas taken as a variable pattern that matched everything, so everything was considered an end of file. The documentation could stand to be louder that this is a Haskell pattern matching the token type, and not the name of a token.Cc: @cartazio