> Is there some way to have the <nl> rule include the EOF?
On receiving the EOF the parser should decide whether to accept the
source as being a word of its target language.
Your option is to rewrite your grammar along this line:
<nl>* <rule> ( <nl>* <nl> <rule> )*
-manfred