Arpeggio is a recursive descent parser with memoization based on PEG grammars (aka Packrat parser). WWW: https://github.com/textX/Arpeggio