Dhaka 2.2.0

This release features a significant speed optimization in the parser
generation algorithm. Very roughly speaking, it should now be at least
twice
as fast. My thanks to Emmanuel O. for pressing me to look at that
portion
of the code again. Incidentally, Emmanuel reported a 7X speed-up in the
time
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,
some of
which have made their way into this release. Others are still being
worked
on. :wink:

Changelog:

  • 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
    literals in
    addition to strings (thanks to Bruce W. and Florian G. for
    suggesting this).
  • 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.

http://dhaka.rubyforge.org

Mushfeq.