[ragel-users] Re: Feature Request: Inline Scanner

Adrian Thurston thurs... at cs.queensu.ca
Mon Nov 6 06:41:26 UTC 2006

Carlos Antunes wrote:
> concatenation is a pretty simple thing to do. Personally, I don't feel
> the need for capture within capture although it could prove useful in
> certain contexts.

I see, I'll consider that.

> Hmm,  'alltokstarts' could be updated at the beginning of each capture
> with something like min(alltokstarts, ts(n)), no? This would scale
> well.

That works. Another question which I just thought of is how does the 
system know when a user is done with a marker and should update 
alltokstarts? I know you didn't advocate this particular solution in the 
first place, I just thought I'd pose the question. I helps me to figure 
these things out :)

> pattern = (
>     start: ( patA -> matched_patA ),
>     matched_patA: ( |> patB1 => actionB1; patB2 => actionB2; <| ->
> matched_patB ),
>     matched_patB: ( patC -> final )
> );

Ah, okay I get it now. I had thought you were suggesting something more 
complex. This could work fairly well. I have to think about it some 
more. When adding things to the language I like to make things as 
general as possible and that usually takes some time to sort out. But 
ya, I could see it being useful and simple enough to understand and 
implement properly.

> Another thing to consider is whether my initially proposal of strictly
> relying on longest-match for capture makes sense. Maybe the programmer
> should have a choice?
My sudden feeling of enlightenment has not lasted from one paragraph to 
the next ... maybe it's the hour. Do you mean it would be cool to have 
the option to drop a scanner in there?


More information about the ragel-users mailing list