This release features a significant speed optimization in the parser
generation algorithm. Very roughly speaking, it should now be at least
as fast. My thanks to Emmanuel O. for pressing me to look at that
of the code again. Incidentally, Emmanuel reported a 7X speed-up in the
required to generate his parser.
The regular expression library now supports the lookahead ("/") operator
(and it’s still a DFA!). This turned out to be much more work than I had
anticipated, but you can do very cool things with it.
Bruce W. and Florian G. made several excellent suggestions,
which have made their way into this release. Others are still being
- Parsers are generated much faster.
- LexerSpecification#for_symbol method handles escaping automatically on
metacharacters (thanks to Florian G. for suggesting this).
- LexerSpecification#for_pattern accepts Ruby regular expression
addition to strings (thanks to Bruce W. and Florian G. for
- Lookahead operator supported in the regular expression grammar.
- Carriage returns supported in the regular expression grammar.
- Evaluator no longer throws exceptions for undefined rules unless the
:raise_error option is set to true.