Austin Hastings writes:
>
> On the other hand, let's suppose that you've got a vast array of
> floating point data:
>
> my float @seti = {...evidence of intelligence, somewhere...};
>
> It's a fair question to ask how to retarget the rexengine to use @seti
> as the input stream. (I hereby declare that if anyone ever writes a
> grammar to do stock-picking, I thunk it first! :-)
>
> I'm guessing that the right way is to replace the low-level operators,
> but what are they?
>
> > rule color { (.) <( $1.isa(Colorific) )> }
> > $daylight = &peek_at_sky =~ /<color>/; # is something in sky
> > Colorific?
>
> Alternatively, there may be a lower-level "stream" object that could be
> replaced:
>
> grammar Rainbow
> {
> let &Rex::get_one := &read_float_from_array;
>
> # ...
> }
>
I think this was already discussed once and then it was proposed to
attach a property to characters of the string
sub peek_at_sky {
my Color @numbers = peek_with_some_hardware;
my $say_it = join map { "1" but color($_) } @numbers ;
return $say_it ;
}
rule color { (.) { let $0 := $1.color } }
$daylight = &peek_at_sky =~ /<color>+/; # is something in sky
arcadi