A Perl BNF parser generator by Jeffrey Kegler <firstname.lastname@example.org>. Milarepa takes a source grammar written in a mixture of BNF and Perl and generates Perl source, which, when enclosed in a simple wrapper, parses the language described by the grammar. Milarepa is not restricted to LRn grammars, and the parse logic follows directly from the BNF. It handles ambiguous grammars, ambiguous tokens (tokens which were not positively identified by the lexer) and allows the programmer to change the start symbol. The grammar may not be left recursive. The input must be divided into sentences of a finite maximum length. There is no fixed distinction between terminals and non-terminals, that is, a symbol can both match the input AND be on the left hand side of a production. Multiple Marpa grammars are allowed in a single Perl program.
Posted to comp.lang.perl.