You can clone with
Cannot retrieve contributors at this time
== Glacial Grammar Engine -- like PGE, but slowerOk, so there was some guy called Patrick who implemented a thing calledPGE, right? It was a grammar engine written in PIR, the assembly language ofParrot. PGE was the first thing in the known universe that could parse Perl 6regexes. It was then plugged into PCT, a toolkit for building HLL (Higher-LevelLanguage) compilers for Parrot. Rakudo, a Perl 6 compiler, was built ontop of PCT.In short, a whole lot of abstractions, and in the bottom of it all, drivingthe parser, sat PGE. Humming along, it did all the daily parsing we nowtake, more or less, for granted.Patrick was once caught saying that given the little time he had spentoptimizing PGE, he was surprised it wasn't actually much slower. What hemight not have guessed was that this off-hand statement could be read as achallenge: PGE surprisingly not slow enough? We know a number of ways tofix that...GGE, the Glacial Grammar Engine, is a faithful port of PGE from PIR to Perl6. It tries to be implementation-independent, and it also attempts (thoughperhaps not too convincingly) to be a drop-in replacement for PGE. Mostimportantly, besides being written in Perl 6 rather than PIR, it brings one newessential feature to the table: it's slower. Much slower... but still quitecool. Hence the name.The "though perhaps not too convincingly" reservation to GGE attempting tobe a drop-in replacement for PGE stems from the fact that now that regularexpressions _are_ in fact available in the Perl 6 language (through PGEin the case of the old-generation Rakudo, or nqp-rx in the case of thenew-generation Rakudo), it's sometimes too tempting not to use them. Ofcourse, it would be a fun challenge in itself to restrict the writing ofGGE to a strict subset of Perl 6 -- one not using any regexes at all,directly or indirectly -- but that is not the kind of fun optimized for inthis case. Future teams of developers are welcome to optimize for that kindof fun, should they wish. The instances of conscious transgressions in GGE arelisted in docs/REGEXES_IN_GGE.For an overview of the status of the project, see STATUS. For an overviewof the cool things that could be built with the project as a dependency,see docs/COOLTHINGS.== LicenseCode coming from the Parrot repository is Artistic License 2.0. SeeLICENSE.