in ragel/src/ragel/rlscan.cpp [74:255]
void Scanner::flushImport()
{
int *p = token_data;
int *pe = token_data + cur_token;
int *eof = 0;
#line 82 "rlscan.cpp"
{
tok_cs = inline_token_scan_start;
tok_ts = 0;
tok_te = 0;
tok_act = 0;
}
#line 90 "rlscan.cpp"
{
if ( p == pe )
goto _test_eof;
switch ( tok_cs )
{
tr0:
#line 123 "rlscan.rl"
{{p = (( tok_te))-1;}}
goto st2;
tr1:
#line 109 "rlscan.rl"
{ tok_te = p+1;{
int base = tok_ts - token_data;
int nameOff = 0;
int litOff = 2;
directToParser( inclToParser, fileName, line, column, TK_Word,
token_strings[base+nameOff], token_lens[base+nameOff] );
directToParser( inclToParser, fileName, line, column, '=', 0, 0 );
directToParser( inclToParser, fileName, line, column, TK_Literal,
token_strings[base+litOff], token_lens[base+litOff] );
directToParser( inclToParser, fileName, line, column, ';', 0, 0 );
}}
goto st2;
tr2:
#line 81 "rlscan.rl"
{ tok_te = p+1;{
int base = tok_ts - token_data;
int nameOff = 0;
int numOff = 2;
directToParser( inclToParser, fileName, line, column, TK_Word,
token_strings[base+nameOff], token_lens[base+nameOff] );
directToParser( inclToParser, fileName, line, column, '=', 0, 0 );
directToParser( inclToParser, fileName, line, column, TK_UInt,
token_strings[base+numOff], token_lens[base+numOff] );
directToParser( inclToParser, fileName, line, column, ';', 0, 0 );
}}
goto st2;
tr3:
#line 95 "rlscan.rl"
{ tok_te = p+1;{
int base = tok_ts - token_data;
int nameOff = 1;
int litOff = 2;
directToParser( inclToParser, fileName, line, column, TK_Word,
token_strings[base+nameOff], token_lens[base+nameOff] );
directToParser( inclToParser, fileName, line, column, '=', 0, 0 );
directToParser( inclToParser, fileName, line, column, TK_Literal,
token_strings[base+litOff], token_lens[base+litOff] );
directToParser( inclToParser, fileName, line, column, ';', 0, 0 );
}}
goto st2;
tr4:
#line 67 "rlscan.rl"
{ tok_te = p+1;{
int base = tok_ts - token_data;
int nameOff = 1;
int numOff = 2;
directToParser( inclToParser, fileName, line, column, TK_Word,
token_strings[base+nameOff], token_lens[base+nameOff] );
directToParser( inclToParser, fileName, line, column, '=', 0, 0 );
directToParser( inclToParser, fileName, line, column, TK_UInt,
token_strings[base+numOff], token_lens[base+numOff] );
directToParser( inclToParser, fileName, line, column, ';', 0, 0 );
}}
goto st2;
tr5:
#line 123 "rlscan.rl"
{ tok_te = p+1;}
goto st2;
tr8:
#line 123 "rlscan.rl"
{ tok_te = p;p--;}
goto st2;
st2:
#line 1 "NONE"
{ tok_ts = 0;}
if ( ++p == pe )
goto _test_eof2;
case 2:
#line 1 "NONE"
{ tok_ts = p;}
#line 176 "rlscan.cpp"
switch( (*p) ) {
case 128: goto tr6;
case 131: goto tr7;
}
goto tr5;
tr6:
#line 1 "NONE"
{ tok_te = p+1;}
goto st3;
st3:
if ( ++p == pe )
goto _test_eof3;
case 3:
#line 190 "rlscan.cpp"
if ( (*p) == 61 )
goto st0;
goto tr8;
st0:
if ( ++p == pe )
goto _test_eof0;
case 0:
switch( (*p) ) {
case 129: goto tr1;
case 130: goto tr2;
}
goto tr0;
tr7:
#line 1 "NONE"
{ tok_te = p+1;}
goto st4;
st4:
if ( ++p == pe )
goto _test_eof4;
case 4:
#line 211 "rlscan.cpp"
if ( (*p) == 128 )
goto st1;
goto tr8;
st1:
if ( ++p == pe )
goto _test_eof1;
case 1:
switch( (*p) ) {
case 129: goto tr3;
case 130: goto tr4;
}
goto tr0;
}
_test_eof2: tok_cs = 2; goto _test_eof;
_test_eof3: tok_cs = 3; goto _test_eof;
_test_eof0: tok_cs = 0; goto _test_eof;
_test_eof4: tok_cs = 4; goto _test_eof;
_test_eof1: tok_cs = 1; goto _test_eof;
_test_eof: {}
if ( p == eof )
{
switch ( tok_cs ) {
case 3: goto tr8;
case 0: goto tr0;
case 4: goto tr8;
case 1: goto tr0;
}
}
}
#line 139 "rlscan.rl"
if ( tok_ts == 0 )
cur_token = 0;
else {
cur_token = pe - tok_ts;
int ts_offset = tok_ts - token_data;
memmove( token_data, token_data+ts_offset, cur_token*sizeof(token_data[0]) );
memmove( token_strings, token_strings+ts_offset, cur_token*sizeof(token_strings[0]) );
memmove( token_lens, token_lens+ts_offset, cur_token*sizeof(token_lens[0]) );
}
}