(Pardon my slight laziness with the References header &c.)
Quoth Adrian Thurston <[email protected]>:
> The leaving action becomes an EOF action in the final state of foo. The
> goto bar cannot process any data, so simply adding a label and jumping
> there would be incorrect. Either an error should be reported, or the
> machine should have it's cs set to bar. Which is desired?
Well, I seem to recall that I put the %action there to switch to
another machine on a transition from any final state on either EOF or
any error. If what you say is true, it probably means I'm doing it
wrong (probably should use ! and / actions instead?) and should look
at the manual again. I actually can't find the original file in which
I ran into this, though... I assume I wound up doing something more
Ragel-suitable instead, but now I don't remember which machine it was.
Anyway, I would prefer that Ragel signal an error rather than writing
broken code: something along the lines of "impossible fgoto in EOF
action" and/or a warning for "leaving action transformed into EOF
action". I'm not sure the former is actually possible to determine
reliably, since it may be halting problem complete. I note that if I
use %{fexec ...; fgoto bar;} instead, it becomes possible for the
fgoto to have characters since the input pointer has jumped backwards,
but the target label still doesn't appear (in -G2 mode). I'm not sure
what implications that has either.
---> Drake Wilson
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]