/* Generated by re2c */ #line 1 "push.fs.re" uint32_t push() { // The scanner starts here #define YYLIMIT limit #define YYCURSOR cursor #define YYMARKER marker #define YYCTYPE uint8_t #define SKIP(x) { start = cursor; goto yy0; } #define SEND(x) { send(x); SKIP(); } #define YYFILL(n) { goto fill; } #define YYGETSTATE() state #define YYSETSTATE(x) { state = (x); } start: #line 22 "" { switch(YYGETSTATE()) { default: goto yy0; case 0: goto yyFillLabel0; case 1: goto yyFillLabel1; case 2: goto yyFillLabel2; } yy0: YYSETSTATE(0); if((YYLIMIT - YYCURSOR) < 7) YYFILL(7); yyFillLabel0: yych = *YYCURSOR; if(yych <= '=') { if(yych <= '(') { if(yych <= 0x0A) { if(yych <= 0x00) goto yy32; if(yych <= 0x08) goto yy34; if(yych <= 0x09) goto yy30; goto yy28; } else { if(yych <= 0x1F) { if(yych <= 0x0D) goto yy30; goto yy34; } else { if(yych <= ' ') goto yy30; if(yych <= '\'') goto yy34; goto yy16; } } } else { if(yych <= '-') { if(yych <= '*') { if(yych <= ')') goto yy18; goto yy24; } else { if(yych <= '+') goto yy22; if(yych <= ',') goto yy34; goto yy20; } } else { if(yych <= '/') { if(yych <= '.') goto yy34; goto yy26; } else { if(yych <= '9') goto yy12; if(yych <= '<') goto yy34; goto yy14; } } } } else { if(yych <= 'e') { if(yych <= '_') { if(yych <= '@') goto yy34; if(yych <= 'Z') goto yy10; if(yych <= '^') goto yy34; goto yy10; } else { if(yych <= 'a') { if(yych <= '`') goto yy34; goto yy10; } else { if(yych <= 'b') goto yy7; if(yych <= 'd') goto yy10; goto yy5; } } } else { if(yych <= 'q') { if(yych <= 'g') { if(yych <= 'f') goto yy4; goto yy6; } else { if(yych <= 'h') goto yy11; if(yych >= 'j') goto yy10; } } else { if(yych <= 'v') { if(yych <= 'r') goto yy9; goto yy10; } else { if(yych <= 'w') goto yy8; if(yych <= 'z') goto yy10; goto yy34; } } } } ++YYCURSOR; if((yych = *YYCURSOR) == 'f') goto yy67; goto yy39; yy3: #line 35 "push.fs.re" { SEND(kIdentifier); } #line 118 "" yy4: yych = *++YYCURSOR; if(yych == 'o') goto yy64; goto yy39; yy5: yych = *++YYCURSOR; if(yych == 'l') goto yy60; goto yy39; yy6: yych = *++YYCURSOR; if(yych == 'o') goto yy56; goto yy39; yy7: yych = *++YYCURSOR; if(yych == 'r') goto yy51; goto yy39; yy8: yych = *++YYCURSOR; if(yych == 'h') goto yy46; goto yy39; yy9: yych = *++YYCURSOR; if(yych == 'e') goto yy40; goto yy39; yy10: yych = *++YYCURSOR; goto yy39; yy11: yych = *++YYCURSOR; goto yy39; yy12: ++YYCURSOR; yych = *YYCURSOR; goto yy37; yy13: #line 36 "push.fs.re" { SEND(kDecimalConstant);} #line 156 "" yy14: ++YYCURSOR; #line 38 "push.fs.re" { SEND(kEqual); } #line 161 "" yy16: ++YYCURSOR; #line 39 "push.fs.re" { SEND(kLeftParen); } #line 166 "" yy18: ++YYCURSOR; #line 40 "push.fs.re" { SEND(kRightParen); } #line 171 "" yy20: ++YYCURSOR; #line 41 "push.fs.re" { SEND(kMinus); } #line 176 "" yy22: ++YYCURSOR; #line 42 "push.fs.re" { SEND(kPlus); } #line 181 "" yy24: ++YYCURSOR; #line 43 "push.fs.re" { SEND(kStar); } #line 186 "" yy26: ++YYCURSOR; #line 44 "push.fs.re" { SEND(kSlash); } #line 191 "" yy28: ++YYCURSOR; #line 46 "push.fs.re" { SKIP(); } #line 196 "" yy30: ++YYCURSOR; #line 47 "push.fs.re" { SKIP(); } #line 201 "" yy32: ++YYCURSOR; #line 48 "push.fs.re" { send(kEOF); return 1; } #line 206 "" yy34: ++YYCURSOR; #line 49 "push.fs.re" { SEND(kUnknown); } #line 211 "" yy36: ++YYCURSOR; YYSETSTATE(1); if(YYLIMIT == YYCURSOR) YYFILL(1); yyFillLabel1: yych = *YYCURSOR; yy37: if(yych <= '/') goto yy13; if(yych <= '9') goto yy36; goto yy13; yy38: ++YYCURSOR; YYSETSTATE(2); if(YYLIMIT == YYCURSOR) YYFILL(1); yyFillLabel2: yych = *YYCURSOR; yy39: if(yych <= 'Z') { if(yych <= '/') goto yy3; if(yych <= '9') goto yy38; if(yych <= '@') goto yy3; goto yy38; } else { if(yych <= '_') { if(yych <= '^') goto yy3; goto yy38; } else { if(yych <= '`') goto yy3; if(yych <= 'z') goto yy38; goto yy3; } } yy40: yych = *++YYCURSOR; if(yych != 't') goto yy39; yych = *++YYCURSOR; if(yych != 'u') goto yy39; yych = *++YYCURSOR; if(yych != 'r') goto yy39; yych = *++YYCURSOR; if(yych != 'n') goto yy39; ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '/') goto yy45; if(yych <= '9') goto yy38; if(yych >= 'A') goto yy38; } else { if(yych <= '_') { if(yych >= '_') goto yy38; } else { if(yych <= '`') goto yy45; if(yych <= 'z') goto yy38; } } yy45: #line 34 "push.fs.re" { SEND(kReturn); } #line 269 "" yy46: yych = *++YYCURSOR; if(yych != 'i') goto yy39; yych = *++YYCURSOR; if(yych != 'l') goto yy39; yych = *++YYCURSOR; if(yych != 'e') goto yy39; ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '/') goto yy50; if(yych <= '9') goto yy38; if(yych >= 'A') goto yy38; } else { if(yych <= '_') { if(yych >= '_') goto yy38; } else { if(yych <= '`') goto yy50; if(yych <= 'z') goto yy38; } } yy50: #line 33 "push.fs.re" { SEND(kWhile); } #line 293 "" yy51: yych = *++YYCURSOR; if(yych != 'e') goto yy39; yych = *++YYCURSOR; if(yych != 'a') goto yy39; yych = *++YYCURSOR; if(yych != 'k') goto yy39; ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '/') goto yy55; if(yych <= '9') goto yy38; if(yych >= 'A') goto yy38; } else { if(yych <= '_') { if(yych >= '_') goto yy38; } else { if(yych <= '`') goto yy55; if(yych <= 'z') goto yy38; } } yy55: #line 32 "push.fs.re" { SEND(kBreak); } #line 317 "" yy56: yych = *++YYCURSOR; if(yych != 't') goto yy39; yych = *++YYCURSOR; if(yych != 'o') goto yy39; ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '/') goto yy59; if(yych <= '9') goto yy38; if(yych >= 'A') goto yy38; } else { if(yych <= '_') { if(yych >= '_') goto yy38; } else { if(yych <= '`') goto yy59; if(yych <= 'z') goto yy38; } } yy59: #line 31 "push.fs.re" { SEND(kGoto); } #line 339 "" yy60: yych = *++YYCURSOR; if(yych != 's') goto yy39; yych = *++YYCURSOR; if(yych != 'e') goto yy39; ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '/') goto yy63; if(yych <= '9') goto yy38; if(yych >= 'A') goto yy38; } else { if(yych <= '_') { if(yych >= '_') goto yy38; } else { if(yych <= '`') goto yy63; if(yych <= 'z') goto yy38; } } yy63: #line 30 "push.fs.re" { SEND(kElse); } #line 361 "" yy64: yych = *++YYCURSOR; if(yych != 'r') goto yy39; ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '/') goto yy66; if(yych <= '9') goto yy38; if(yych >= 'A') goto yy38; } else { if(yych <= '_') { if(yych >= '_') goto yy38; } else { if(yych <= '`') goto yy66; if(yych <= 'z') goto yy38; } } yy66: #line 29 "push.fs.re" { SEND(kFor); } #line 381 "" yy67: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { if(yych <= '/') goto yy68; if(yych <= '9') goto yy38; if(yych >= 'A') goto yy38; } else { if(yych <= '_') { if(yych >= '_') goto yy38; } else { if(yych <= '`') goto yy68; if(yych <= 'z') goto yy38; } } yy68: #line 28 "push.fs.re" { SEND(kIf); } #line 399 "" } #line 50 "push.fs.re" fill: return 0; }