Pugs::Compiler::Rule refactoring

fglock on 2006-07-19T05:17:05

Pugs::Compiler::Rule has been branched in the svn repository in order to fix some architecture problems:

- the bootstrapped compiler and the user-side runtime will no longer be shared. This will make it easier to make changes in the user-side, without needing to redo the bootstrap.

- there will be a single Match class - currently :ratchet and non-ratchet rules create different match objects. The unification will fix the long due TODO of allowing calls between ratchet and non-ratchet rules.

Today Audrey also contributed a change in the Match class, allowing '$($/)' to return the result object - this syntax is the long form of '$/()'.


Tiny correction...

audreyt on 2006-07-19T05:45:20

In Perl 6, the equivalent form for $$/ is $(), not $/() -- there's currently no defined semantics for using $/ as a Code; $() works because it's defaulted to mean $($/), just like @() means @($/), and %() means %().

I'm really excited about the Match unification. Once that happens and ratchet matching becomes stable, there's a lot of production uses I can think of for it... :)