# Dhaka 2.2.0

**URL:** <https://www.ruby-forum.com/t/dhaka-2-2-0/105452>\
**Category:** Ruby\
**Created:** [May 30, 2007, 4:11am UTC](https://www.ruby-forum.com/t/dhaka-2-2-0/105452 "2007-05-30T04:11:11Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mushfeq\_K](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/e95f7d/32.png) [@Mushfeq\_K](https://www.ruby-forum.com/u/Mushfeq_K)\
**Post date:** [May 30, 2007, 4:11am UTC](https://www.ruby-forum.com/t/dhaka-2-2-0/105452/1 "2007-05-30T04:11:11Z")

</div>

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. 😉

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](http://dhaka.rubyforge.org)

Mushfeq.
