/* Generated by re2c */
#line 1 "push_fs.re"
// re2c $INPUT -o $OUTPUT -fs
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 23 "push_fs.c"
	switch (YYGETSTATE()) {
		case 0: goto yyFillLabel0;
		case 1: goto yyFillLabel1;
		case 2: goto yyFillLabel2;
		default: goto yy0;
	}
yy0:
	if ((YYLIMIT - YYCURSOR) < 7) {
		YYSETSTATE(0);
		YYFILL(7);
	}
yyFillLabel0:
	yych = *YYCURSOR;
	if (yych <= '=') {
		if (yych <= '(') {
			if (yych <= '\n') {
				if (yych <= 0x00) goto yy2;
				if (yych <= 0x08) goto yy3;
				if (yych <= '\t') goto yy4;
				goto yy5;
			} else {
				if (yych <= 0x1F) {
					if (yych <= '\r') goto yy4;
					goto yy3;
				} else {
					if (yych <= ' ') goto yy4;
					if (yych <= '\'') goto yy3;
					goto yy6;
				}
			}
		} else {
			if (yych <= '-') {
				if (yych <= '*') {
					if (yych <= ')') goto yy7;
					goto yy8;
				} else {
					if (yych <= '+') goto yy9;
					if (yych <= ',') goto yy3;
					goto yy10;
				}
			} else {
				if (yych <= '/') {
					if (yych <= '.') goto yy3;
					goto yy11;
				} else {
					if (yych <= '9') goto yy12;
					if (yych <= '<') goto yy3;
					goto yy14;
				}
			}
		}
	} else {
		if (yych <= 'e') {
			if (yych <= '_') {
				if (yych <= '@') goto yy3;
				if (yych <= 'Z') goto yy15;
				if (yych <= '^') goto yy3;
				goto yy15;
			} else {
				if (yych <= 'a') {
					if (yych <= '`') goto yy3;
					goto yy15;
				} else {
					if (yych <= 'b') goto yy18;
					if (yych <= 'd') goto yy15;
					goto yy19;
				}
			}
		} else {
			if (yych <= 'q') {
				if (yych <= 'g') {
					if (yych <= 'f') goto yy20;
					goto yy21;
				} else {
					if (yych == 'i') goto yy22;
					goto yy15;
				}
			} else {
				if (yych <= 'v') {
					if (yych <= 'r') goto yy23;
					goto yy15;
				} else {
					if (yych <= 'w') goto yy24;
					if (yych <= 'z') goto yy15;
					goto yy3;
				}
			}
		}
	}
yy2:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 49 "push_fs.re"
	{ send(kEOF); return 1;  }
#line 118 "push_fs.c"
yy3:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 50 "push_fs.re"
	{ SEND(kUnknown);        }
#line 124 "push_fs.c"
yy4:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 48 "push_fs.re"
	{ SKIP();                }
#line 130 "push_fs.c"
yy5:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 47 "push_fs.re"
	{ SKIP();                }
#line 136 "push_fs.c"
yy6:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 40 "push_fs.re"
	{ SEND(kLeftParen);      }
#line 142 "push_fs.c"
yy7:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 41 "push_fs.re"
	{ SEND(kRightParen);     }
#line 148 "push_fs.c"
yy8:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 44 "push_fs.re"
	{ SEND(kStar);           }
#line 154 "push_fs.c"
yy9:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 43 "push_fs.re"
	{ SEND(kPlus);           }
#line 160 "push_fs.c"
yy10:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 42 "push_fs.re"
	{ SEND(kMinus);          }
#line 166 "push_fs.c"
yy11:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 45 "push_fs.re"
	{ SEND(kSlash);          }
#line 172 "push_fs.c"
yy12:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) {
		YYSETSTATE(1);
		YYFILL(1);
	}
yyFillLabel1:
	yych = *YYCURSOR;
	if (yych <= '/') goto yy13;
	if (yych <= '9') goto yy12;
yy13:
	YYSETSTATE(-1);
#line 37 "push_fs.re"
	{ SEND(kDecimalConstant);}
#line 187 "push_fs.c"
yy14:
	++YYCURSOR;
	YYSETSTATE(-1);
#line 39 "push_fs.re"
	{ SEND(kEqual);          }
#line 193 "push_fs.c"
yy15:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) {
		YYSETSTATE(2);
		YYFILL(1);
	}
yyFillLabel2:
	yych = *YYCURSOR;
yy16:
	if (yych <= 'Z') {
		if (yych <= '/') goto yy17;
		if (yych <= '9') goto yy15;
		if (yych >= 'A') goto yy15;
	} else {
		if (yych <= '_') {
			if (yych >= '_') goto yy15;
		} else {
			if (yych <= '`') goto yy17;
			if (yych <= 'z') goto yy15;
		}
	}
yy17:
	YYSETSTATE(-1);
#line 36 "push_fs.re"
	{ SEND(kIdentifier);     }
#line 219 "push_fs.c"
yy18:
	yych = *++YYCURSOR;
	if (yych == 'r') goto yy25;
	goto yy16;
yy19:
	yych = *++YYCURSOR;
	if (yych == 'l') goto yy26;
	goto yy16;
yy20:
	yych = *++YYCURSOR;
	if (yych == 'o') goto yy27;
	goto yy16;
yy21:
	yych = *++YYCURSOR;
	if (yych == 'o') goto yy28;
	goto yy16;
yy22:
	yych = *++YYCURSOR;
	if (yych == 'f') goto yy29;
	goto yy16;
yy23:
	yych = *++YYCURSOR;
	if (yych == 'e') goto yy31;
	goto yy16;
yy24:
	yych = *++YYCURSOR;
	if (yych == 'h') goto yy32;
	goto yy16;
yy25:
	yych = *++YYCURSOR;
	if (yych == 'e') goto yy33;
	goto yy16;
yy26:
	yych = *++YYCURSOR;
	if (yych == 's') goto yy34;
	goto yy16;
yy27:
	yych = *++YYCURSOR;
	if (yych == 'r') goto yy35;
	goto yy16;
yy28:
	yych = *++YYCURSOR;
	if (yych == 't') goto yy37;
	goto yy16;
yy29:
	yych = *++YYCURSOR;
	if (yych <= 'Z') {
		if (yych <= '/') goto yy30;
		if (yych <= '9') goto yy15;
		if (yych >= 'A') goto yy15;
	} else {
		if (yych <= '_') {
			if (yych >= '_') goto yy15;
		} else {
			if (yych <= '`') goto yy30;
			if (yych <= 'z') goto yy15;
		}
	}
yy30:
	YYSETSTATE(-1);
#line 29 "push_fs.re"
	{ SEND(kIf);             }
#line 282 "push_fs.c"
yy31:
	yych = *++YYCURSOR;
	if (yych == 't') goto yy38;
	goto yy16;
yy32:
	yych = *++YYCURSOR;
	if (yych == 'i') goto yy39;
	goto yy16;
yy33:
	yych = *++YYCURSOR;
	if (yych == 'a') goto yy40;
	goto yy16;
yy34:
	yych = *++YYCURSOR;
	if (yych == 'e') goto yy41;
	goto yy16;
yy35:
	yych = *++YYCURSOR;
	if (yych <= 'Z') {
		if (yych <= '/') goto yy36;
		if (yych <= '9') goto yy15;
		if (yych >= 'A') goto yy15;
	} else {
		if (yych <= '_') {
			if (yych >= '_') goto yy15;
		} else {
			if (yych <= '`') goto yy36;
			if (yych <= 'z') goto yy15;
		}
	}
yy36:
	YYSETSTATE(-1);
#line 30 "push_fs.re"
	{ SEND(kFor);            }
#line 317 "push_fs.c"
yy37:
	yych = *++YYCURSOR;
	if (yych == 'o') goto yy43;
	goto yy16;
yy38:
	yych = *++YYCURSOR;
	if (yych == 'u') goto yy45;
	goto yy16;
yy39:
	yych = *++YYCURSOR;
	if (yych == 'l') goto yy46;
	goto yy16;
yy40:
	yych = *++YYCURSOR;
	if (yych == 'k') goto yy47;
	goto yy16;
yy41:
	yych = *++YYCURSOR;
	if (yych <= 'Z') {
		if (yych <= '/') goto yy42;
		if (yych <= '9') goto yy15;
		if (yych >= 'A') goto yy15;
	} else {
		if (yych <= '_') {
			if (yych >= '_') goto yy15;
		} else {
			if (yych <= '`') goto yy42;
			if (yych <= 'z') goto yy15;
		}
	}
yy42:
	YYSETSTATE(-1);
#line 31 "push_fs.re"
	{ SEND(kElse);           }
#line 352 "push_fs.c"
yy43:
	yych = *++YYCURSOR;
	if (yych <= 'Z') {
		if (yych <= '/') goto yy44;
		if (yych <= '9') goto yy15;
		if (yych >= 'A') goto yy15;
	} else {
		if (yych <= '_') {
			if (yych >= '_') goto yy15;
		} else {
			if (yych <= '`') goto yy44;
			if (yych <= 'z') goto yy15;
		}
	}
yy44:
	YYSETSTATE(-1);
#line 32 "push_fs.re"
	{ SEND(kGoto);           }
#line 371 "push_fs.c"
yy45:
	yych = *++YYCURSOR;
	if (yych == 'r') goto yy49;
	goto yy16;
yy46:
	yych = *++YYCURSOR;
	if (yych == 'e') goto yy50;
	goto yy16;
yy47:
	yych = *++YYCURSOR;
	if (yych <= 'Z') {
		if (yych <= '/') goto yy48;
		if (yych <= '9') goto yy15;
		if (yych >= 'A') goto yy15;
	} else {
		if (yych <= '_') {
			if (yych >= '_') goto yy15;
		} else {
			if (yych <= '`') goto yy48;
			if (yych <= 'z') goto yy15;
		}
	}
yy48:
	YYSETSTATE(-1);
#line 33 "push_fs.re"
	{ SEND(kBreak);          }
#line 398 "push_fs.c"
yy49:
	yych = *++YYCURSOR;
	if (yych == 'n') goto yy52;
	goto yy16;
yy50:
	yych = *++YYCURSOR;
	if (yych <= 'Z') {
		if (yych <= '/') goto yy51;
		if (yych <= '9') goto yy15;
		if (yych >= 'A') goto yy15;
	} else {
		if (yych <= '_') {
			if (yych >= '_') goto yy15;
		} else {
			if (yych <= '`') goto yy51;
			if (yych <= 'z') goto yy15;
		}
	}
yy51:
	YYSETSTATE(-1);
#line 34 "push_fs.re"
	{ SEND(kWhile);          }
#line 421 "push_fs.c"
yy52:
	yych = *++YYCURSOR;
	if (yych <= 'Z') {
		if (yych <= '/') goto yy53;
		if (yych <= '9') goto yy15;
		if (yych >= 'A') goto yy15;
	} else {
		if (yych <= '_') {
			if (yych >= '_') goto yy15;
		} else {
			if (yych <= '`') goto yy53;
			if (yych <= 'z') goto yy15;
		}
	}
yy53:
	YYSETSTATE(-1);
#line 35 "push_fs.re"
	{ SEND(kReturn);         }
#line 440 "push_fs.c"
#line 51 "push_fs.re"


fill:
    return 0;
}
push_fs.re:27:18: warning: escape has no effect: '\h' [-Wuseless-escape]
