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 Oga 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 Williams and Florian Gross made several excellent suggestions, some of which have made their way into this release. Others are still being worked on. ;) Changelog: * Parsers are generated much faster. * LexerSpecification#for_symbol method handles escaping automatically on metacharacters (thanks to Florian Gross for suggesting this). * LexerSpecification#for_pattern accepts Ruby regular expression literals in addition to strings (thanks to Bruce Williams and Florian Gross 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.
on 2007-05-30 04:11