-- Andreas, 2021-01-30 -- Nullable tokens should be rejected, since they may lead to looping lexers. Foo. Bar ::= "baz"; token Identifier (letter | '_')? (letter | digit | '_')* ;