#include #include using std::cout; using std::endl; static const char _foo_trans_keys [] = { 1, 0, 4, 4, 2, 2, 8, 8, 9, 9, 10, 10, 7, 7, 6, 6, 5, 5, 4, 4, 0, 10, 0, 10, 0, 10, 1, 0, 0 , }; static const char _foo_char_class [] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 4, 1, 5, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 3, 1, 3, 3, 3, 3, 6, 3, 3, 3, 3, 3, 3, 7, 3, 3, 3, 3, 3, 3, 8, 9, 3, 3, 3, 3, 10, 3, 0 , }; static const char _foo_index_offsets [] = { 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 20, 31, 42, 0 , }; static const char _foo_indicies [] = { 0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 10, 10, 12, 10, 10, 12, 12, 12, 12, 12, 13, 10, 10, 14, 10, 10, 14, 14, 14, 14, 14, 15, 10, 10, 16, 10, 10, 16, 16, 16, 16, 16, 0 , }; static const char _foo_index_defaults [] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 10, 1, 0 , }; static const char _foo_trans_cond_spaces [] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, 14, 13, 14, 13, 14, 13, 0 , }; static const short _foo_trans_offsets [] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 18, 50, 82, 114, 146, 178, 0 , }; static const char _foo_cond_targs [] = { 2, 0, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 0, 0, 11, 0, 11, 0, 0, 0, 13, 0, 11, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 13, 0, 0, 12, 12, 0, 0, 12, 12, 0, 0, 12, 12, 0, 13, 12, 12, 0, 0, 0, 0, 11, 11, 11, 11, 0, 0, 0, 13, 11, 11, 11, 11, 0, 0, 0, 0, 11, 11, 11, 11, 0, 0, 0, 13, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 13, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, 0, 0, 13, 12, 13, 0, 0, 0, 0, 0, 11, 0, 11, 0, 0, 0, 13, 0, 11, 0, 11, 0, 0, 0, 0, 0, 11, 0, 11, 0, 0, 0, 13, 0, 11, 0, 11, 0, 0, 12, 12, 0, 0, 12, 12, 0, 0, 12, 12, 0, 13, 12, 12, 0, 0, 12, 12, 0, 0, 12, 12, 0, 0, 12, 12, 0, 13, 12, 12, 0 , }; static const char _foo_cond_actions [] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 3, 0, 3, 0, 0, 0, 2, 0, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 4, 4, 0, 0, 4, 4, 0, 0, 4, 4, 0, 2, 4, 4, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, 2, 6, 6, 6, 6, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, 2, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 2, 4, 2, 0, 0, 0, 0, 0, 6, 0, 6, 0, 0, 0, 2, 0, 6, 0, 6, 0, 0, 0, 0, 0, 6, 0, 6, 0, 0, 0, 2, 0, 6, 0, 6, 0, 0, 7, 7, 0, 0, 7, 7, 0, 0, 7, 7, 0, 2, 7, 7, 0, 0, 7, 7, 0, 0, 7, 7, 0, 0, 7, 7, 0, 2, 7, 7, 0 , }; static const char _foo_from_state_actions [] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 5, 0, 0 , }; static const char _foo_nfa_targs [] = { 0, 0 , }; static const char _foo_nfa_offsets [] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , }; static const char _foo_nfa_push_actions [] = { 0, 0 , }; static const char _foo_nfa_pop_trans [] = { 0, 0 , }; static const int foo_start = 1; static const int foo_first_final = 13; static const int foo_error = 0; static const int foo_en_main = 1; void test( const char *str ) { int cs = foo_start; const char *p = str; const char *pe = str + strlen( str ); int match = 0; long q_4 = 0, q_5 = 0, q_6 = 0; cout << "run:" << endl; { int _cpc; unsigned int _trans = 0; unsigned int _have = 0; unsigned int _cont = 1; unsigned int _cond = 0; const char *_keys; const char *_inds; while ( _cont == 1 ) { if ( cs == 0 ) _cont = 0; _have = 0; if ( p == pe ) { if ( _have == 0 ) _cont = 0; } if ( _cont == 1 ) { if ( _have == 0 ) { switch ( _foo_from_state_actions[cs] ) { case 5 : { q_4 = 0; } { q_5 = 0; } break; case 1 : { q_4 = 0; } { q_5 = 0; } { q_6 = 0; } break; } _keys = _foo_trans_keys + (cs<<1); _inds = _foo_indicies + _foo_index_offsets[cs]; if ( ((*( p )) )<= 122 && ((*( p )) )>= 32 ) { int _ic = ( int ) _foo_char_class[( int ) ((*( p )) )- 32]; if ( _ic <= ( int ) (*( _keys+1 )) && _ic >= ( int ) (*( _keys )) ) _trans = ( unsigned int ) (*( _inds + ( int ) (_ic - ( int ) (*( _keys )) ) )) ; else _trans = ( unsigned int ) _foo_index_defaults[cs]; } else { _trans = ( unsigned int ) _foo_index_defaults[cs]; } _cond = ( unsigned int ) _foo_trans_offsets[_trans]; _cpc = 0; switch ( _foo_trans_cond_spaces[_trans] ) { case 0 : if ( (q_4 >= 1 ) ) _cpc += 1; break; case 1 : if ( (q_4 < 25 ) ) _cpc += 1; break; case 2 : if ( (q_5 >= 1 ) ) _cpc += 1; break; case 3 : if ( (q_5 < 5 ) ) _cpc += 1; break; case 4 : if ( (q_6 < 100 ) ) _cpc += 1; break; case 5 : if ( (q_4 >= 1 ) ) _cpc += 1; if ( (q_5 >= 1 ) ) _cpc += 2; break; case 6 : if ( (q_4 >= 1 ) ) _cpc += 1; if ( (q_5 < 5 ) ) _cpc += 2; break; case 7 : if ( (q_4 < 25 ) ) _cpc += 1; if ( (q_6 < 100 ) ) _cpc += 2; break; case 8 : if ( (q_4 >= 1 ) ) _cpc += 1; if ( (q_5 >= 1 ) ) _cpc += 2; if ( (q_6 >= 100 ) ) _cpc += 4; break; case 9 : if ( (q_4 >= 1 ) ) _cpc += 1; if ( (q_5 < 5 ) ) _cpc += 2; if ( (q_6 < 100 ) ) _cpc += 4; break; case 10 : if ( (q_4 < 25 ) ) _cpc += 1; if ( (q_5 >= 1 ) ) _cpc += 2; if ( (q_6 < 100 ) ) _cpc += 4; break; case 11 : if ( (q_4 >= 1 ) ) _cpc += 1; if ( (q_4 < 25 ) ) _cpc += 2; if ( (q_5 >= 1 ) ) _cpc += 4; if ( (q_6 < 100 ) ) _cpc += 8; break; case 12 : if ( (q_4 >= 1 ) ) _cpc += 1; if ( (q_5 >= 1 ) ) _cpc += 2; if ( (q_5 < 5 ) ) _cpc += 4; if ( (q_6 < 100 ) ) _cpc += 8; break; case 13 : if ( (q_4 >= 1 ) ) _cpc += 1; if ( (q_4 < 25 ) ) _cpc += 2; if ( (q_5 >= 1 ) ) _cpc += 4; if ( (q_6 >= 100 ) ) _cpc += 8; if ( (q_6 < 100 ) ) _cpc += 16; break; case 14 : if ( (q_4 >= 1 ) ) _cpc += 1; if ( (q_5 >= 1 ) ) _cpc += 2; if ( (q_5 < 5 ) ) _cpc += 4; if ( (q_6 >= 100 ) ) _cpc += 8; if ( (q_6 < 100 ) ) _cpc += 16; break; } _cond += ( unsigned int ) _cpc; } if ( _cont == 1 ) { cs = ( int ) _foo_cond_targs[_cond]; switch ( _foo_cond_actions[_cond] ) { case 7 : { q_4++; } break; case 6 : { q_5++; } break; case 4 : { q_4++; } { q_6++; } break; case 3 : { q_6++; } { q_5++; } break; case 2 : { q_6++; } { match = 1; } break; } if ( cs == 0 ) _cont = 0; if ( _cont == 1 ) p += 1; } } } } if ( match ) cout << " success" << endl; else cout << " failure" << endl; cout << endl; } int main() { return 0; }