This example uses Treetop. The same variety of parser, PEG (parsing expression grammar), but not code-generating, but dynamically defining ruby code is Citrus. It was really a pleasure to work with. The difference is that you don't need a preliminary compile step in a rake file e.g., which I like better for a language as dynamic as ruby.<p><a href="http://github.com/mjijackson/citrus" rel="nofollow">http://github.com/mjijackson/citrus</a>