15 variable curstate fsm->cs;
17 main := ( 'a' .. 'c' | 'c' .. 'e' | 'm' .. 'n' | 'a' .. 'z' ) '\n';
22 void range_init( struct range *fsm )
27 void range_execute( struct range *fsm, const char *_data, int _len )
29 const char *p = _data;
30 const char *pe = _data+_len;
35 int range_finish( struct range *fsm )
39 if ( fsm->cs == range_fsm_error )
41 if ( fsm->cs >= range_fsm_first_final )
48 void test( char *buf )
50 int len = strlen( buf );
52 range_execute( &fsm, buf, len );
53 if ( range_finish( &fsm ) > 0 )
70 #ifdef _____OUTPUT_____