TATSU (the successor to Grako) is a tool that takes grammars in a variation
of EBNF as input, and outputs memoizing (Packrat) PEG parsers in Python.
Tatsu can compile a grammar stored in a string into a
tatsu.grammars.Grammar object that can be used to parse any given input,
much like the re module does with regular expressions, or it can generate a
Python module that implements the parser.