PLY is a pure-Python implementation of the popular compiler construction tools lex and yacc.
Additional links: