A simple ruby implementation of lex and yacc, based on Python's ply