5 /* Test repeptition operators. */
18 int execute( const char *data, int len );
25 action begin { cout << "begin" << endl; }
26 action in { cout << "in" << endl; }
27 action end { cout << "end" << endl; }
29 a = 'a' >begin @in %end;
30 b = 'b' >begin @in %end;
31 c = 'c' >begin @in %end;
32 d = 'd' >begin @in %end;
36 ( b {,5} '\n' )* '-\n'
37 ( c {5,} '\n' )* '-\n'
49 int Rep::execute( const char *_data, int _len )
51 const char *p = _data;
52 const char *pe = _data+_len;
56 if ( cs == Rep_error )
58 if ( cs >= Rep_first_final )
65 if ( cs == Rep_error )
67 if ( cs >= Rep_first_final )
72 void test( char *buf )
75 int len = strlen( buf );
77 rep.execute( buf, len );
78 if ( rep.finish() > 0 )
119 #ifdef _____OUTPUT_____