Some Pegex Trivia... ...before we play with Pegex * Pegex is pretty fast * No optimizations yet * Pegex is self hosting * Pegex parses Pegex * Pegex has no backtracking yet * Not needed yet (<first> <middle>? <last>) * Pegex tests are in TestML * TestML is written in Pegex! * Pegex is full on Perl * Compiler and Runtime * Python has port of the Runtime * Easy to use Perl compiler to bootstrap (YAML, JSON) * Pegex wants to be written in C'Dent * Easier to port and maintain * Pegex Runtime could be in C or C++ or Haskell * libpegex * Pegex Parsers can have multiple Receivers * AST (wrapped and unwrapped) is default Receiver * Receivers can invoke new Parsers * Clean Separation * Compiler = Grammar + Parser + Receiver * All Subclassable or Swap-able * Pegex::Regex * Compare to Regexp::Grammars