As an aside, pyparsing is based strongly on the excellent "Parsec" library for Haskell.  A number of other languages have similar parser combinator libraries.<p>If you're looking for Ruby libraries specifically, check out: <a href="http://treetop.rubyforge.org/" rel="nofollow">http://treetop.rubyforge.org/</a> (Treetop uses PEGs rather than parser combinators, but like pyparsing it integrates very well with its host language.)