Thanks for the thoughtful consideration.  Austin's given some high-
level examples of the kind I was hoping for,

"AH>" = Austin Hastings

AH> grammar Rainbow;
AH> use Colorific;  # Import C<rule color;> and C<new>, among others.
AH> 
AH> What I don't know is how to recognize a color, which is to say I don't
AH> know how to write the <color> rule -- because I don't know what this is
AH> being applied to. Is this reading pixels, interpreting the results of
AH> radio telescopy, or consuming Lucky Charms breakfast cereal bits? I
AH> don't know, so I'm just going to assume that Yary can write that for me
AH> -- it's his class, after all.

Right, "encapsulation" & "public interface" are the keys- rexen don't need
to know what makes Colorific. (And yes, I am a he, unlike Yari from Tron.)
I am curious about

AH> rule color {...};  # this one's on you.

if Colorific doesn't have stringification- that's the crux: passing
non-letter atoms to the regex engine.  The way it's presented and
used, it's a rule that matches a color object, and seeing it in the
same_color rule is terrific- but (via RFC93?) I want to write it thus:

 rule color { (.) <( $1.isa(Colorific) )> }
 $daylight = &peek_at_sky =~ /<color>/; # is something in sky Colorific?

This example could be written with grep- but then, T(always)MTOWTDI.

Bonus points for the implementation of grammar Rainbow, very cute!
Lucky strike is also clearly written, though, I was hoping to do away
with any mention of \d.  I want to grab numbers as atoms and never
enter the character realm.


AH>What I think you're looking for is the fact that they're not regexes
AH>any more. They are "rexen", but in horrifying-secret-reality, what has
AH>happened is that Larry's decided to move Fortran out of core, and
AH>replace it with yacc.

Cool, I did quite like yacc when I needed it- and it does look like we
have that expressive power now!  Never used Fortran but I did spend a
couple summers in RPG-2, good riddence to big iron...

-y

~~~~~

The Moon is Waxing Crescent (1% of Full)

Reply via email to