host( "working/java1.rl", 1 ) @{/* * @@LANG: java */ class java1 { }@ array char _java1_trans_keys( 0, 13 ) = { u(1), u(0), u(4), u(11), u(10), u(10), u(6), u(6), u(3), u(3), u(8), u(8), u(2), u(2), u(0), u(0), u(4), u(11), u(9), u(9), u(12), u(12), u(10), u(10), u(0), u(0), u(8), u(8), u(3), u(3), u(13), u(13), u(9), u(9), u(3), u(3), u(7), u(7), u(7), u(7), u(9), u(9), u(5), u(5), u(3), u(3), u(10), u(10), u(3), u(3), u(9), u(9), u(8), u(8), u(3), u(3), u(0), u(0), u(11), u(11), u(13), u(13), u(9), u(9), u(0), u(0), u(4), u(4), u(9), u(9), u(12), u(12), u(10), u(10), u(0), u(0), u(1), u(0), u(1), u(0), u(1), u(0), u(1), u(0), u(0) }; array s8 _java1_char_class( 0, 13 ) = { 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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 1, 5, 6, 1, 1, 7, 1, 8, 9, 1, 1, 10, 1, 11, 12, 1, 13, 0 }; array s8 _java1_index_offsets( 0, 51 ) = { 0, 0, 8, 9, 10, 11, 12, 13, 14, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 51, 51, 51, 0 }; array s8 _java1_indices( 0, 37 ) = { 0, 2, 1, 1, 1, 1, 1, 3, 4, 5, 6, 7, 8, 9, 10, 1, 1, 1, 1, 11, 1, 12, 13, 14, 15, 16, 17, 15, 18, 15, 19, 20, 21, 8, 22, 23, 24, 8, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 0 }; array s8 _java1_index_defaults( 0, 1 ) = { 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, 1, 1, 1, 1, 0 }; array s8 _java1_trans_cond_spaces( -1, 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, -1, 0 }; array s8 _java1_cond_targs( 0, 41 ) = { 2, 0, 17, 21, 3, 4, 5, 6, 7, 8, 9, 13, 15, 10, 11, 12, 38, 14, 16, 18, 19, 20, 22, 23, 24, 26, 27, 28, 39, 30, 31, 32, 40, 34, 35, 36, 37, 41, 0 }; array s8 _java1_cond_actions( 0, 1 ) = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; array s8 _java1_nfa_targs( 0, 0 ) = { 0, 0 }; array s8 _java1_nfa_offsets( 0, 0 ) = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; array s8 _java1_nfa_push_actions( 0, 0 ) = { 0, 0 }; array s8 _java1_nfa_pop_trans( 0, 0 ) = { 0, 0 }; value int java1_start = 1; value int java1_first_final = 38; value int java1_error = 0; value int java1_en_one = 25; value int java1_en_two = 29; value int java1_en_four = 33; value int java1_en_main = 1; host( "working/java1.rl", 21 ) @{ static void test( char data[] ) { int cs, p = 0, pe = data.length; int top; }@ { cs = cast(int)java1_start; } host( "working/java1.rl", 28 ) @{ }@ { int _trans = 0; index char _keys; index s8 _inds; entry { if ( p == pe ) goto _test_eof; if ( cs == 0 ) goto _out; label _resume { _keys = offset( _java1_trans_keys, (cs<<1) ); _inds = offset( _java1_indices, _java1_index_offsets[cs] ); if ( ( deref( data, p )) <= 119 && ( deref( data, p )) >= 10 ) { int _ic = cast(int)_java1_char_class[cast(int)( deref( data, p )) - 10]; if ( _ic <= cast(int)deref( _java1_trans_keys, _keys+1 ) && _ic >= cast(int)deref( _java1_trans_keys, _keys ) ) _trans = cast(int)deref( _java1_indices, _inds + cast(int)( _ic - cast(int)deref( _java1_trans_keys, _keys ) ) ); else _trans = cast(int)_java1_index_defaults[cs]; } else { _trans = cast(int)_java1_index_defaults[cs]; } goto _match_cond; } label _match_cond { cs = cast(int)_java1_cond_targs[_trans]; if ( _java1_cond_actions[_trans] == 0 ) goto _again; switch ( _java1_cond_actions[_trans] ) { case 1 { host( "working/java1.rl", 16 ) ${int s = 25; ${cs = host( "-", 1 ) ={s}=; goto _again;}$ char c = ={( deref( data, p ))}=;}$ } } } label _again { if ( cs == 0 ) goto _out; p+= 1; if ( p != pe ) goto _resume; } label _test_eof { {} } label _out { {} } } } host( "working/java1.rl", 29 ) @{ if ( cs >= java1_first_final ) System.out.println( "ACCEPT" ); else System.out.println( "FAIL" ); } public static void main( String args[] ) { test( "hello\none\n".toCharArray() ); test( "there\ntwo\n".toCharArray() ); test( "friend\nfour\n".toCharArray() ); } } }@