It must mean that you're using a scanner and that your patterns accept
the inputs that your testing. The scanner resets the state to the start
state every time a pattern is matched.
-Adrian
On 10-07-20 08:53 AM, Pete Gervais wrote:
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: [email protected]
_______________________________________________
ragel-users mailing list
[email protected]
http://www.complang.org/mailman/listinfo/ragel-users
_______________________________________________
ragel-users mailing list
[email protected]
http://www.complang.org/mailman/listinfo/ragel-users