I've just checked in (r12442) a large set of updates to PGE; these updates are in response to recent changes in S05, as well as to allow PGE to take advantage of recently-added Parrot features (e.g. named argument passing).
As part of the update I also patched any language and/or other components (e.g., TGE, Punie, TCL, Pheme, etc.) that use PGE so that they'll be more consistent with PGE's new calling interfaces. Hopefully I got it right -- basically, if a test passed in r12441, it should still be passing in r12442. Here are the major changes in PGE from an interface perspective (internally there have been a lot of improvements as well): * The "PGE::Rule" class is now "PGE::Regex". * The "PGE::P6Rule" and "PGE::P5Regexp" compilers have been renamed to "PGE::P6Regex" and "PGE::P5Regex". * The "rulec.pir" compiler and the "library/PGE/P6Grammar.pir" file are now gone -- use the new-and-improved "pgc.pir" compiler instead. * More tests and subsystem tests have been added to t/compilers/pge/ . * The PGE::Glob compiler front-end to the regex system has been redesigned. * PGE's code generation can now generate more efficient PIR output (although there's still a lot of room for optimization). * There is preliminary (untested) support for adverbs, including S05's ":ratchet" adverb. Support for "rule" and "token" statements will soon be added to pgc. * More comments have been added to source files -- still not enough to be reasonable, but that will be corrected soon. Patches and tests welcomed. Pm