⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 push.fs.c

📁 a little DFA compiler.
💻 C
字号:
/* 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 "<stdout>"{	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 "<stdout>"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 "<stdout>"yy14:	++YYCURSOR;#line 38 "push.fs.re"	{ SEND(kEqual);          }#line 161 "<stdout>"yy16:	++YYCURSOR;#line 39 "push.fs.re"	{ SEND(kLeftParen);      }#line 166 "<stdout>"yy18:	++YYCURSOR;#line 40 "push.fs.re"	{ SEND(kRightParen);     }#line 171 "<stdout>"yy20:	++YYCURSOR;#line 41 "push.fs.re"	{ SEND(kMinus);          }#line 176 "<stdout>"yy22:	++YYCURSOR;#line 42 "push.fs.re"	{ SEND(kPlus);           }#line 181 "<stdout>"yy24:	++YYCURSOR;#line 43 "push.fs.re"	{ SEND(kStar);           }#line 186 "<stdout>"yy26:	++YYCURSOR;#line 44 "push.fs.re"	{ SEND(kSlash);          }#line 191 "<stdout>"yy28:	++YYCURSOR;#line 46 "push.fs.re"	{ SKIP();                }#line 196 "<stdout>"yy30:	++YYCURSOR;#line 47 "push.fs.re"	{ SKIP();                }#line 201 "<stdout>"yy32:	++YYCURSOR;#line 48 "push.fs.re"	{ send(kEOF); return 1;  }#line 206 "<stdout>"yy34:	++YYCURSOR;#line 49 "push.fs.re"	{ SEND(kUnknown);        }#line 211 "<stdout>"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 "<stdout>"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 "<stdout>"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 "<stdout>"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 "<stdout>"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 "<stdout>"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 "<stdout>"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 "<stdout>"}#line 50 "push.fs.re"fill:    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -