diff options
Diffstat (limited to 'test/rlhc.d/case/scan2_c.c-C-G0--goto-backend.in')
-rw-r--r-- | test/rlhc.d/case/scan2_c.c-C-G0--goto-backend.in | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/test/rlhc.d/case/scan2_c.c-C-G0--goto-backend.in b/test/rlhc.d/case/scan2_c.c-C-G0--goto-backend.in new file mode 100644 index 00000000..7615d0b7 --- /dev/null +++ b/test/rlhc.d/case/scan2_c.c-C-G0--goto-backend.in @@ -0,0 +1,225 @@ +host( "working/scan2_c.rl", 1 ) @{/* + * @@LANG: c + * @@GENERATED: true + */ + + #include <string.h> + #include <stdio.h> + + char * ts ; + char * te ; + int act ; + int token ; + + + + + +}@ +array s8 _scanner_actions( 0, 7 ) = { 0, 1, 0, 1, 1, 1, 5, 1, 6, 1, 7, 2, 2, 3, 2, 2, 4, 0 }; + +array s8 _scanner_to_state_actions( 0, 1 ) = { 0, 1, 0, 0 }; + +array s8 _scanner_from_state_actions( 0, 3 ) = { 0, 3, 0, 0 }; + +array s8 _scanner_nfa_targs( 0, 0 ) = { 0, 0 }; + +array s8 _scanner_nfa_offsets( 0, 0 ) = { 0, 0, 0, 0 }; + +array s8 _scanner_nfa_push_actions( 0, 0 ) = { 0, 0 }; + +array s8 _scanner_nfa_pop_trans( 0, 0 ) = { 0, 0 }; + +value int scanner_start = 1; +value int scanner_first_final = 1; +value int scanner_error = -1; + +value int scanner_en_main = 1; + +host( "working/scan2_c.rl", 34 ) @{ + int cs; + int blen; + char buffer[1024]; + + void init() + { + }@ + { + cs = cast(int)scanner_start; + ts = nil; + te = nil; + act = 0; + } + host( "working/scan2_c.rl", 41 ) @{ + } + + void exec( char *data, int len ) + { + char *p = data; + char *pe = data + len; + char *eof = pe; + }@ + { + index s8 _acts; + uint _nacts; + + if ( p == pe ) + goto _test_eof; + _resume: + _acts = offset( _scanner_actions, _scanner_from_state_actions[cs] ); + _nacts = cast(uint)deref( _scanner_actions, _acts ); _acts += 1; + while ( _nacts > 0 ) { + switch ( deref( _scanner_actions, _acts ) ) { + case 1{ + host( "NONE", 1 ) ${${ts = p;}$}$ + } + } + _acts += 1; + _nacts -= 1; + } + + switch ( cs ) { + case 1: + switch( ( deref( data, p )) ) { + case 97: { + goto ctr5; + } + case 98: { + goto ctr6; + } + } + { + goto ctr4; + } + case 2: + if ( ( deref( data, p )) == 99 ) { + goto ctr3; + } + if ( 97 <= ( deref( data, p )) && ( deref( data, p )) <= 98 ) { + goto ctr2; + } + { + goto ctr7; + } + case 0: + if ( ( deref( data, p )) == 99 ) { + goto ctr3; + } + if ( 97 <= ( deref( data, p )) && ( deref( data, p )) <= 98 ) { + goto ctr2; + } + { + goto ctr7; + } + } + + ctr2: cs = 0; goto _again; + ctr7: cs = 1; goto f0; + ctr3: cs = 1; goto f1; + ctr4: cs = 1; goto f4; + ctr5: cs = 2; goto f5; + ctr6: cs = 2; goto f6; + + f1: _acts = offset( _scanner_actions, 5 ); goto execFuncs; + f4: _acts = offset( _scanner_actions, 7 ); goto execFuncs; + f0: _acts = offset( _scanner_actions, 9 ); goto execFuncs; + f5: _acts = offset( _scanner_actions, 11 ); goto execFuncs; + f6: _acts = offset( _scanner_actions, 14 ); goto execFuncs; + + execFuncs: + _nacts = cast(uint)deref( _scanner_actions, _acts ); + _acts += 1; + while ( _nacts > 0 ) { + switch ( deref( _scanner_actions, _acts ) ) { + case 2{ + host( "NONE", 1 ) ${${te = p+1;}$}$ + } + case 3{ + host( "working/scan2_c.rl", 20 ) ${${act = 1;}$}$ + } + case 4{ + host( "working/scan2_c.rl", 26 ) ${${act = 3;}$}$ + } + case 5{ + host( "working/scan2_c.rl", 23 ) ${${te = p+1;host( "working/scan2_c.rl", 23 ) ${printf( "%s", "pat2\n" ); + }$}$}$ + } + case 6{ + host( "working/scan2_c.rl", 26 ) ${${te = p+1;host( "working/scan2_c.rl", 26 ) ${printf( "%s", "any\n" ); + }$}$}$ + } + case 7{ + host( "NONE", 1 ) ${${switch( act ) { + case 1 { + p = ((te))-1; + host( "working/scan2_c.rl", 20 ) ${printf( "%s", "pat1\n" ); + }$ } + case 3 { + p = ((te))-1; + host( "working/scan2_c.rl", 26 ) ${printf( "%s", "any\n" ); + }$ } + }}$ + }$ + } + } + _acts += 1; + _nacts -= 1; + } + + goto _again; + + _again: + _acts = offset( _scanner_actions, _scanner_to_state_actions[cs] ); + _nacts = cast(uint)deref( _scanner_actions, _acts ); _acts += 1; + while ( _nacts > 0 ) { + switch ( deref( _scanner_actions, _acts ) ) { + case 0{ + host( "NONE", 1 ) ${${ts = nil;}$}$ + } + } + _acts += 1; + _nacts -= 1; + } + + p += 1; + if ( p != pe ) + goto _resume; + _test_eof: {} + if ( p == eof ) + { + switch ( cs ) { + case 2: goto ctr7; + case 0: goto ctr7; + } + } + + } + host( "working/scan2_c.rl", 49 ) @{ + } + + void finish( ) + { + if ( cs >= scanner_first_final ) + printf( "ACCEPT\n" ); + else + printf( "FAIL\n" ); + } + + char *inp[] = { + "a", + }; + + int inplen = 1; + + int main( ) + { + int i; + for ( i = 0; i < inplen; i++ ) { + init(); + exec( inp[i], strlen(inp[i]) ); + finish(); + } + return 0; + } + +}@
\ No newline at end of file |