[ragel-users] Error State
Pete Gervais
pgervais at xplornet.com
Tue Jul 20 15:53:21 UTC 2010
Gents,
According to the ragel user guide:
"Two variables are written that may be used to test the state of the machine
after a buffer block
has been processed. The name_error variable gives the id of the state that
the machine moves
into when it cannot find a valid transition to take. The machine immediately
breaks out of the
processing loop when It finds itself in the error state. The error variable
can be compared to the
current state to determine if the machine has failed to parse the input. If
the machine is complete,
that is from every state there is a transition to a proper state on every
possible character of the
alphabet, then no error state is required and this variable will be set to
-1.
The name_first_final variable stores the id of the first final state. All of
the machine's states
are sorted by their final state status before having their ids assigned.
Checking if the machine has
accepted its input can then be done by checking if the current state is
greater-than or equal to the
first final state."
There are many examples shown that check to see if the machine has parsed
the input correctly or something similar.
/* Did parsing succeed? */
if ( cs < name_first_final ) {
result = ERR_PARSE_ERROR;
goto fail;
}
The problem I have is no matter the final result, ( proper parse or not) ,
the cs variable is always reset to 0 which ensures the test above always
fails. .
If you look at the C code generated , its look like:
st0:
fsm->cs = 0;
goto _out;
This code gets called on valid exit or error .
Is there something that needs to done in order to get actual state where the
error occurred?
Regards,
Peter J. Gervais
President, Simtree Information Systems
17621 Island Rd,
RR#2 , Martintown,
Martintown,Ont
K0C 1S0
Business: 613-938-6549
Cell: 613-864-7370
E-mail: pgervais at xplornet.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.colm.net/pipermail/ragel-users/attachments/20100720/86e49511/attachment-0001.html>
-------------- next part --------------
_______________________________________________
ragel-users mailing list
ragel-users at complang.org
http://www.complang.org/mailman/listinfo/ragel-users
More information about the ragel-users
mailing list