scanner.s.c
来自「a little DFA compiler.」· C语言 代码 · 共 1,159 行 · 第 1/2 页
C
1,159 行
yylval.regexp = strToCaseInsensitiveRE(token()); return STRING; }#line 584 "<stdout>"yy85: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR;yy86: if(yych <= '!') { if(yych == 0x0A) goto yy66; goto yy85; } else { if(yych <= '"') goto yy88; if(yych != '\\') goto yy85; } ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy66; goto yy85;yy88: ++YYCURSOR;#line 175 "scanner.s.re" { cur = cursor; yylval.regexp = strToRE(token()); return STRING; }#line 608 "<stdout>"yy90: ++YYCURSOR;#line 172 "scanner.s.re" { tok = cursor; RETURN(0); }#line 614 "<stdout>"yy92: ++YYCURSOR;#line 169 "scanner.s.re" { depth = 1; goto comment; }#line 620 "<stdout>"yy94: yych = *++YYCURSOR; if(yych == ',') goto yy108; goto yy96;yy95: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR;yy96: if(yych <= '/') { if(yych == ',') goto yy101; goto yy66; } else { if(yych <= '9') goto yy95; if(yych == '}') goto yy99; goto yy66; }yy97: ++YYCURSOR;yy98:#line 216 "scanner.s.re" { fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); }#line 643 "<stdout>"yy99: ++YYCURSOR;#line 204 "scanner.s.re" { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = atoi((char *)tok+1); RETURN(CLOSESIZE); }#line 650 "<stdout>"yy101: yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '/') goto yy98; if(yych <= '9') goto yy104; if(yych != '}') goto yy98; ++YYCURSOR;#line 212 "scanner.s.re" { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = -1; RETURN(CLOSESIZE); }#line 662 "<stdout>"yy104: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '/') goto yy66; if(yych <= '9') goto yy104; if(yych != '}') goto yy66; ++YYCURSOR;#line 208 "scanner.s.re" { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1)); RETURN(CLOSESIZE); }#line 675 "<stdout>"yy108: yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '/') goto yy98; if(yych <= '9') goto yy104; if(yych != '}') goto yy98; ++YYCURSOR;#line 201 "scanner.s.re" { yylval.op = '*'; RETURN(CLOSE); }#line 686 "<stdout>"}#line 247 "scanner.s.re"code:#line 693 "<stdout>"{ YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '&') { if(yych <= 0x0A) { if(yych <= 0x09) goto yy119; goto yy117; } else { if(yych == '"') goto yy121; goto yy119; } } else { if(yych <= '{') { if(yych <= '\'') goto yy122; if(yych <= 'z') goto yy119; goto yy115; } else { if(yych != '}') goto yy119; } } ++YYCURSOR;#line 251 "scanner.s.re" { if(--depth == 0){ cur = cursor; yylval.token = new Token(token(), tline); return CODE; } goto code; }#line 723 "<stdout>"yy115: ++YYCURSOR;#line 257 "scanner.s.re" { ++depth; goto code; }#line 729 "<stdout>"yy117: ++YYCURSOR;#line 259 "scanner.s.re" { if(cursor == eof) fatal("missing '}'"); pos = cursor; cline++; goto code; }#line 737 "<stdout>"yy119: ++YYCURSOR;yy120:#line 263 "scanner.s.re" { goto code; }#line 743 "<stdout>"yy121: yych = *(YYMARKER = ++YYCURSOR); if(yych == 0x0A) goto yy120; goto yy128;yy122: yych = *(YYMARKER = ++YYCURSOR); if(yych == 0x0A) goto yy120; goto yy124;yy123: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR;yy124: if(yych <= '&') { if(yych != 0x0A) goto yy123; } else { if(yych <= '\'') goto yy119; if(yych == '\\') goto yy126; goto yy123; }yy125: YYCURSOR = YYMARKER; goto yy120;yy126: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy125; goto yy123;yy127: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR;yy128: if(yych <= '!') { if(yych == 0x0A) goto yy125; goto yy127; } else { if(yych <= '"') goto yy119; if(yych != '\\') goto yy127; } ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy125; goto yy127;}#line 264 "scanner.s.re"comment:#line 796 "<stdout>"{ YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= ')') { if(yych == 0x0A) goto yy135; goto yy137; } else { if(yych <= '*') goto yy132; if(yych == '/') goto yy134; goto yy137; }yy132: ++YYCURSOR; if((yych = *YYCURSOR) == '/') goto yy140;yy133:#line 279 "scanner.s.re" { if(cursor == eof) RETURN(0); goto comment; }#line 816 "<stdout>"yy134: yych = *++YYCURSOR; if(yych == '*') goto yy138; goto yy133;yy135: ++YYCURSOR;#line 275 "scanner.s.re" { if(cursor == eof) RETURN(0); tok = pos = cursor; cline++; goto comment; }#line 828 "<stdout>"yy137: yych = *++YYCURSOR; goto yy133;yy138: ++YYCURSOR;#line 272 "scanner.s.re" { ++depth; fatal("ambiguous /* found"); goto comment; }#line 838 "<stdout>"yy140: ++YYCURSOR;#line 268 "scanner.s.re" { if(--depth == 0) goto scan; else goto comment; }#line 846 "<stdout>"}#line 281 "scanner.s.re"config:#line 853 "<stdout>"{ YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= 0x1F) { if(yych != 0x09) goto yy148; } else { if(yych <= ' ') goto yy144; if(yych == '=') goto yy146; goto yy148; }yy144: ++YYCURSOR; yych = *YYCURSOR; goto yy153;yy145:#line 285 "scanner.s.re" { goto config; }#line 872 "<stdout>"yy146: ++YYCURSOR; yych = *YYCURSOR; goto yy151;yy147:#line 286 "scanner.s.re" { iscfg = 2; cur = cursor; RETURN('='); }#line 883 "<stdout>"yy148: ++YYCURSOR;#line 290 "scanner.s.re" { fatal("missing '='"); }#line 888 "<stdout>"yy150: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR;yy151: if(yych == 0x09) goto yy150; if(yych == ' ') goto yy150; goto yy147;yy152: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR;yy153: if(yych == 0x09) goto yy152; if(yych == ' ') goto yy152; goto yy145;}#line 291 "scanner.s.re"value:#line 911 "<stdout>"{ YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '&') { if(yych <= 0x0D) { if(yych <= 0x08) goto yy162; if(yych <= 0x0A) goto yy156; if(yych <= 0x0C) goto yy162; } else { if(yych <= ' ') { if(yych <= 0x1F) goto yy162; } else { if(yych == '"') goto yy164; goto yy162; } } } else { if(yych <= '/') { if(yych <= '\'') goto yy166; if(yych == '-') goto yy159; goto yy162; } else { if(yych <= '9') { if(yych <= '0') goto yy157; goto yy160; } else { if(yych != ';') goto yy162; } } }yy156:#line 300 "scanner.s.re" { cur = cursor; yylval.str = new Str(token()); iscfg = 0; return VALUE; }#line 950 "<stdout>"yy157: ++YYCURSOR; if((yych = *YYCURSOR) <= 0x0D) { if(yych <= 0x08) goto yy162; if(yych <= 0x0A) goto yy158; if(yych <= 0x0C) goto yy162; } else { if(yych <= ' ') { if(yych <= 0x1F) goto yy162; } else { if(yych != ';') goto yy162; } }yy158:#line 295 "scanner.s.re" { cur = cursor; yylval.number = atoi(token().to_string().c_str()); iscfg = 0; return NUMBER; }#line 971 "<stdout>"yy159: yych = *++YYCURSOR; if(yych <= '0') goto yy163; if(yych >= ':') goto yy163;yy160: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= 0x1F) { if(yych <= 0x0A) { if(yych >= 0x09) goto yy158; } else { if(yych == 0x0D) goto yy158; } } else { if(yych <= '9') { if(yych <= ' ') goto yy158; if(yych >= '0') goto yy160; } else { if(yych == ';') goto yy158; } }yy162: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR;yy163: if(yych <= 0x0D) { if(yych <= 0x08) goto yy162; if(yych <= 0x0A) goto yy156; if(yych <= 0x0C) goto yy162; goto yy156; } else { if(yych <= ' ') { if(yych <= 0x1F) goto yy162; goto yy156; } else { if(yych == ';') goto yy156; goto yy162; } }yy164: YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= ' ') { if(yych <= 0x0A) { if(yych <= 0x08) goto yy164; if(yych <= 0x09) goto yy174; goto yy156; } else { if(yych == 0x0D) goto yy174; if(yych <= 0x1F) goto yy164; goto yy174; } } else { if(yych <= ':') { if(yych == '"') goto yy162; goto yy164; } else { if(yych <= ';') goto yy174; if(yych == '\\') goto yy176; goto yy164; } }yy166: YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= ' ') { if(yych <= 0x0A) { if(yych <= 0x08) goto yy166; if(yych >= 0x0A) goto yy156; } else { if(yych == 0x0D) goto yy168; if(yych <= 0x1F) goto yy166; } } else { if(yych <= ':') { if(yych == '\'') goto yy162; goto yy166; } else { if(yych <= ';') goto yy168; if(yych == '\\') goto yy171; goto yy166; } }yy168: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '&') { if(yych != 0x0A) goto yy168; } else { if(yych <= '\'') goto yy172; if(yych == '\\') goto yy173; goto yy168; }yy170: YYCURSOR = YYMARKER; goto yy156;yy171: YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= 0x0D) { if(yych <= 0x09) { if(yych <= 0x08) goto yy166; goto yy168; } else { if(yych <= 0x0A) goto yy156; if(yych <= 0x0C) goto yy166; goto yy168; } } else { if(yych <= ' ') { if(yych <= 0x1F) goto yy166; goto yy168; } else { if(yych == ';') goto yy168; goto yy166; } }yy172: yych = *++YYCURSOR; goto yy156;yy173: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy170; goto yy168;yy174: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '!') { if(yych == 0x0A) goto yy170; goto yy174; } else { if(yych <= '"') goto yy172; if(yych == '\\') goto yy177; goto yy174; }yy176: YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= 0x0D) { if(yych <= 0x09) { if(yych <= 0x08) goto yy164; goto yy174; } else { if(yych <= 0x0A) goto yy156; if(yych <= 0x0C) goto yy164; goto yy174; } } else { if(yych <= ' ') { if(yych <= 0x1F) goto yy164; goto yy174; } else { if(yych == ';') goto yy174; goto yy164; } }yy177: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy170; goto yy174;}#line 305 "scanner.s.re"}void Scanner::fatal(uint ofs, const char *msg) const{ out.flush(); std::cerr << "re2c: error: " << "line " << tline << ", column " << (tchar + ofs + 1) << ": " << msg << std::endl; exit(1);}} // end namespace re2c
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?