Arpeggio

 

http://igordejanovic.net/Arpeggio/

Arpeggio is recursive descent parser with backtracking and memoization (a.k.a. pacrat parser). Arpeggio grammars are based on PEG formalism.

Arpeggio’s main use is a foundation for a tool-chain for DSL development but it can be used for all sort of general purpose parsing.