== Pegex To Do - ~ instead of /~/ - warn or error on duplicat rule names - report accurate position of failure (deepest) - Bind a b | c => a [ b | c ] - Make all regexes ignore whitespace (x) - ~ not expanded in subrule inclusion - Fix github issues and pul req - Detect endless looping grammars - Error on // when x is not a regex rule ---- == lib/Pegex.pm Sugar wrapper for Pegex tools. == lib/Pegex/Receiver.pm Receiver base class. Not really needed. == lib/Pegex/Grammar.pm This is the Pegex Runtime. It should probably be split into Pegex::Parser. It has a parse method. It has grammar, grammar_text and grammar_tree. It has a receiver. It has input, position and match_groups. == lib/Pegex/Pegex/AST.pm This is the default receiver. It can create a meaningful data structure from any parse. == lib/Pegex/Pegex/Grammar.pm The Pegex::Grammar subclass representing Pegex itself. It has a precompiled grammar_tree in it. == lib/Pegex/Compiler.pm Takes the Pegex grammar and uses it to parse and optimize a foobar grammar_text into a grammar_tree. == lib/Pegex/Pegex/AST.pm The receiver class for Pegex::Compiler. Produces a grammar AST. == lib/Pegex/Bootstrap.pm The bootstrapping hack compiler for compiling the Pegex grammar itself. == lib/Pegex/Mo.pm OO base class.