host( "working/cond7_java.rl", 1 ) @{/* * @@LANG: java * @@GENERATED: true */ class cond7_java { int i ; int c ; }@ array s8 _foo_actions( 0, 1 ) = { 0, 1, 0, 1, 1, 0 }; array char _foo_trans_keys( 0, 2 ) = { u(1), u(0), u(2), u(2), u(2), u(2), u(0), u(2), u(1), u(0), u(0) }; array s8 _foo_char_class( 0, 2 ) = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0 }; array s8 _foo_index_offsets( 0, 5 ) = { 0, 0, 1, 2, 5, 0 }; array s8 _foo_indicies( 0, 4 ) = { 0, 2, 3, 1, 4, 0 }; array s8 _foo_index_defaults( 0, 1 ) = { 0, 1, 1, 1, 1, 0 }; array s8 _foo_trans_cond_spaces( -1, 0 ) = { -1, -1, 0, 0, 0, 0 }; array s8 _foo_trans_offsets( 0, 6 ) = { 0, 1, 2, 4, 6, 0 }; array s8 _foo_cond_targs( 0, 4 ) = { 2, 0, 3, 2, 4, 0, 0, 3, 0 }; array s8 _foo_cond_actions( 0, 3 ) = { 3, 0, 3, 1, 0, 0, 0, 1, 0 }; array s8 _foo_nfa_targs( 0, 0 ) = { 0, 0 }; array s8 _foo_nfa_offsets( 0, 0 ) = { 0, 0, 0, 0, 0, 0 }; array s8 _foo_nfa_push_actions( 0, 0 ) = { 0, 0 }; array s8 _foo_nfa_pop_trans( 0, 0 ) = { 0, 0 }; value int foo_start = 1; value int foo_first_final = 4; value int foo_error = 0; value int foo_en_main = 1; host( "working/cond7_java.rl", 41 ) @{ int cs; void init() { }@ { cs = cast(int)foo_start; } host( "working/cond7_java.rl", 46 ) @{ } void exec( char data[], int len ) { char buffer [] = new char[1024]; int blen = 0; int p = 0; int pe = len; String _s; }@ { uint _trans = 0; uint _have = 0; uint _cont = 1; uint _cond = 0; index s8 _acts; uint _nacts; index char _keys; index s8 _inds; int _cpc; while ( _cont == 1 ) { if ( cs == 0 ) _cont = 0; _have = 0; if ( p == pe ) { if ( _have == 0 ) _cont = 0; } if ( _cont == 1 ) { if ( _have == 0 ) { _keys = offset( _foo_trans_keys, (cs<<1) ); _inds = offset( _foo_indicies, _foo_index_offsets[cs] ); if ( ( deref( data, p )) <= 57 && ( deref( data, p )) >= 10 ) { int _ic = cast(int)_foo_char_class[cast(int)( deref( data, p )) - 10]; if ( _ic <= cast(int)deref( _foo_trans_keys, _keys+1 ) && _ic >= cast(int)deref( _foo_trans_keys, _keys ) ) _trans = cast(uint)deref( _foo_indicies, _inds + cast(int)( _ic - cast(int)deref( _foo_trans_keys, _keys ) ) ); else _trans = cast(uint)_foo_index_defaults[cs]; } else { _trans = cast(uint)_foo_index_defaults[cs]; } _cond = cast(uint)_foo_trans_offsets[_trans]; _cpc = 0; switch ( _foo_trans_cond_spaces[_trans] ) { case 0 { if ( host( "working/cond7_java.rl", 15 ) ={i > 0}= ) _cpc += 1; } } _cond += cast(uint)_cpc; } if ( _cont == 1 ) { cs = cast(int)_foo_cond_targs[_cond]; if ( _foo_cond_actions[_cond] != 0 ) { _acts = offset( _foo_actions, _foo_cond_actions[_cond] ); _nacts = cast(uint)deref( _foo_actions, _acts ); _acts += 1; while ( _nacts > 0 ) { switch ( deref( _foo_actions, _acts ) ) { case 0 { host( "working/cond7_java.rl", 16 ) ${i = i - 1; c = ( int ) ( ={( deref( data, p ))}= ) ; System.out.print( "item: " ); System.out.print( c ); System.out.print( "\n" ); }$ } case 1 { host( "working/cond7_java.rl", 24 ) ${i = ( int ) ( ={( deref( data, p ))}= - 48 ) ; System.out.print( "count: " ); System.out.print( i ); System.out.print( "\n" ); }$ } } _nacts -= 1; _acts += 1; } } if ( cs == 0 ) _cont = 0; if ( _cont == 1 ) p += 1; }} } } host( "working/cond7_java.rl", 57 ) @{ } void finish( ) { if ( cs >= foo_first_final ) System.out.println( "ACCEPT" ); else System.out.println( "FAIL" ); } static final String inp[] = { "00\n", "019\n", "190\n", "1719\n", "1040000\n", "104000a\n", "104000\n", }; static final int inplen = 7; public static void main (String[] args) { cond7_java machine = new cond7_java(); for ( int i = 0; i < inplen; i++ ) { machine.init(); machine.exec( inp[i].toCharArray(), inp[i].length() ); machine.finish(); } } } }@