[ragel-users] Error State

Pete Gervais pgervais at xplornet.com
Tue Jul 20 15:53:21 UTC 2010


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


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  ) {


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: 


                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?






Peter J. Gervais 

President, Simtree Information Systems 

17621 Island Rd, 

RR#2 , Martintown, 


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

More information about the ragel-users mailing list