/* Generated by re2c */ #line 1 "scanner.s.re" /* Id: scanner.re,v 1.37 2006/02/25 12:41:41 helly Exp */ #include #include #include #include #include "scanner.h" #include "parser.h" #include "y.tab.h" #include "globals.h" #include "dfa.h" extern YYSTYPE yylval; #ifndef MAX #define MAX(a,b) (((a)>(b))?(a):(b)) #endif #define BSIZE 8192 #define YYCTYPE char #define YYCURSOR cursor #define YYLIMIT lim #define YYMARKER ptr #define YYFILL(n) {cursor = fill(cursor);} #define RETURN(i) {cur = cursor; return i;} namespace re2c { Scanner::Scanner(std::istream& i, std::ostream& o) : in(i) , out(o) , bot(NULL), tok(NULL), ptr(NULL), cur(NULL), pos(NULL), lim(NULL) , top(NULL), eof(NULL), tchar(0), tline(0), cline(1), iscfg(0) { ; } char *Scanner::fill(char *cursor) { if(!eof) { uint cnt = tok - bot; if(cnt) { memcpy(bot, tok, lim - tok); tok = bot; ptr -= cnt; cursor -= cnt; pos -= cnt; lim -= cnt; } if((top - lim) < BSIZE) { char *buf = new char[(lim - bot) + BSIZE]; memcpy(buf, tok, lim - tok); tok = buf; ptr = &buf[ptr - bot]; cursor = &buf[cursor - bot]; pos = &buf[pos - bot]; lim = &buf[lim - bot]; top = &lim[BSIZE]; delete [] bot; bot = buf; } in.read(lim, BSIZE); if ((cnt = in.gcount()) != BSIZE ) { eof = &lim[cnt]; *eof++ = '\0'; } lim += cnt; } return cursor; } #line 95 "scanner.s.re" int Scanner::echo() { char *cursor = cur; bool ignore_eoc = false; if (eof && cursor == eof) // Catch EOF { return 0; } tok = cursor; echo: #line 96 "" { YYCTYPE yych; if((YYLIMIT - YYCURSOR) < 11) YYFILL(11); yych = *YYCURSOR; if(yych <= ')') { if(yych <= 0x00) goto yy7; if(yych == 0x0A) goto yy5; goto yy9; } else { if(yych <= '*') goto yy4; if(yych != '/') goto yy9; } yych = *(YYMARKER = ++YYCURSOR); if(yych == '*') goto yy12; yy3: #line 141 "scanner.s.re" { goto echo; } #line 117 "" yy4: yych = *++YYCURSOR; if(yych == '/') goto yy10; goto yy3; yy5: ++YYCURSOR; #line 130 "scanner.s.re" { out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok)); tok = pos = cursor; cline++; goto echo; } #line 130 "" yy7: ++YYCURSOR; #line 135 "scanner.s.re" { out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok) - 1); // -1 so we don't write out the \0 if(cursor == eof) { RETURN(0); } } #line 140 "" yy9: yych = *++YYCURSOR; goto yy3; yy10: ++YYCURSOR; #line 121 "scanner.s.re" { if (ignore_eoc) { ignore_eoc = false; } else { out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok)); } tok = pos = cursor; goto echo; } #line 156 "" yy12: yych = *++YYCURSOR; if(yych == '!') goto yy14; yy13: YYCURSOR = YYMARKER; goto yy3; yy14: yych = *++YYCURSOR; if(yych == 'm') goto yy15; if(yych == 'r') goto yy16; goto yy13; yy15: yych = *++YYCURSOR; if(yych == 'a') goto yy21; goto yy13; yy16: yych = *++YYCURSOR; if(yych != 'e') goto yy13; yych = *++YYCURSOR; if(yych != '2') goto yy13; yych = *++YYCURSOR; if(yych != 'c') goto yy13; ++YYCURSOR; #line 110 "scanner.s.re" { out.write((const char*)(tok), (const char*)(&cursor[-7]) - (const char*)(tok)); tok = cursor; RETURN(1); } #line 186 "" yy21: yych = *++YYCURSOR; if(yych != 'x') goto yy13; yych = *++YYCURSOR; if(yych != ':') goto yy13; yych = *++YYCURSOR; if(yych != 'r') goto yy13; yych = *++YYCURSOR; if(yych != 'e') goto yy13; yych = *++YYCURSOR; if(yych != '2') goto yy13; yych = *++YYCURSOR; if(yych != 'c') goto yy13; ++YYCURSOR; #line 115 "scanner.s.re" { out << "#define YYMAXFILL " << maxFill << std::endl; tok = pos = cursor; ignore_eoc = true; goto echo; } #line 208 "" } #line 144 "scanner.s.re" } int Scanner::scan() { char *cursor = cur; uint depth; scan: tchar = cursor - pos; tline = cline; tok = cursor; if (iscfg == 1) { goto config; } else if (iscfg == 2) { goto value; } #line 233 "" { YYCTYPE yych; unsigned int yyaccept = 0; if((YYLIMIT - YYCURSOR) < 5) YYFILL(5); yych = *YYCURSOR; if(yych <= '/') { if(yych <= '!') { if(yych <= 0x0C) { if(yych <= 0x08) goto yy56; if(yych <= 0x09) goto yy50; if(yych <= 0x0A) goto yy52; goto yy56; } else { if(yych <= 0x0D) goto yy54; if(yych == ' ') goto yy50; goto yy56; } } else { if(yych <= ')') { if(yych <= '"') goto yy37; if(yych <= '&') goto yy56; if(yych <= '\'') goto yy39; goto yy43; } else { if(yych <= '+') { if(yych <= '*') goto yy35; goto yy44; } else { if(yych <= '-') goto yy56; if(yych <= '.') goto yy48; goto yy33; } } } } else { if(yych <= 'Z') { if(yych <= '=') { if(yych == ';') goto yy43; if(yych <= '<') goto yy56; goto yy43; } else { if(yych == '?') goto yy44; if(yych <= '@') goto yy56; goto yy47; } } else { if(yych <= 'q') { if(yych <= '[') goto yy41; if(yych <= '\\') goto yy43; if(yych <= '`') goto yy56; goto yy47; } else { if(yych <= 'z') { if(yych <= 'r') goto yy45; goto yy47; } else { if(yych <= '{') goto yy31; if(yych <= '|') goto yy43; goto yy56; } } } } yy31: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= '/') { if(yych == ',') goto yy97; } else { if(yych <= '0') goto yy94; if(yych <= '9') goto yy95; } yy32: #line 166 "scanner.s.re" { depth = 1; goto code; } #line 311 "" yy33: ++YYCURSOR; if((yych = *YYCURSOR) == '*') goto yy92; yy34: #line 196 "scanner.s.re" { RETURN(*tok); } #line 318 "" yy35: ++YYCURSOR; if((yych = *YYCURSOR) == '/') goto yy90; yy36: #line 198 "scanner.s.re" { yylval.op = *tok; RETURN(CLOSE); } #line 326 "" yy37: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych != 0x0A) goto yy86; yy38: #line 183 "scanner.s.re" { fatal("unterminated string constant (missing \")"); } #line 334 "" yy39: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if(yych != 0x0A) goto yy81; yy40: #line 184 "scanner.s.re" { fatal("unterminated string constant (missing ')"); } #line 342 "" yy41: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if(yych == 0x0A) goto yy42; if(yych == '^') goto yy72; goto yy71; yy42: #line 194 "scanner.s.re" { fatal("unterminated range (missing ])"); } #line 352 "" yy43: yych = *++YYCURSOR; goto yy34; yy44: yych = *++YYCURSOR; goto yy36; yy45: ++YYCURSOR; if((yych = *YYCURSOR) == 'e') goto yy62; goto yy61; yy46: #line 225 "scanner.s.re" { cur = cursor; yylval.symbol = Symbol::find(token()); return ID; } #line 368 "" yy47: yych = *++YYCURSOR; goto yy61; yy48: ++YYCURSOR; #line 229 "scanner.s.re" { cur = cursor; yylval.regexp = mkDot(); return RANGE; } #line 379 "" yy50: ++YYCURSOR; yych = *YYCURSOR; goto yy59; yy51: #line 234 "scanner.s.re" { goto scan; } #line 387 "" yy52: ++YYCURSOR; yy53: #line 236 "scanner.s.re" { if(cursor == eof) RETURN(0); pos = cursor; cline++; goto scan; } #line 396 "" yy54: ++YYCURSOR; if((yych = *YYCURSOR) == 0x0A) goto yy57; yy55: #line 241 "scanner.s.re" { std::ostringstream msg; msg << "unexpected character: "; prtChOrHex(msg, *tok); fatal(msg.str().c_str()); goto scan; } #line 408 "" yy56: yych = *++YYCURSOR; goto yy55; yy57: yych = *++YYCURSOR; goto yy53; yy58: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy59: if(yych == 0x09) goto yy58; if(yych == ' ') goto yy58; goto yy51; yy60: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy61: if(yych <= '@') { if(yych <= '/') goto yy46; if(yych <= '9') goto yy60; goto yy46; } else { if(yych <= 'Z') goto yy60; if(yych <= '`') goto yy46; if(yych <= 'z') goto yy60; goto yy46; } yy62: yych = *++YYCURSOR; if(yych != '2') goto yy61; yych = *++YYCURSOR; if(yych != 'c') goto yy61; yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if(yych != ':') goto yy61; yy65: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '@') goto yy66; if(yych <= 'Z') goto yy67; if(yych <= '`') goto yy66; if(yych <= 'z') goto yy67; yy66: YYCURSOR = YYMARKER; if(yyaccept <= 3) { if(yyaccept <= 1) { if(yyaccept <= 0) { goto yy32; } else { goto yy38; } } else { if(yyaccept <= 2) { goto yy40; } else { goto yy42; } } } else { if(yyaccept <= 5) { if(yyaccept <= 4) { goto yy46; } else { goto yy69; } } else { goto yy98; } } yy67: yyaccept = 5; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= 'Z') { if(yych <= '9') { if(yych >= '0') goto yy67; } else { if(yych <= ':') goto yy65; if(yych >= 'A') goto yy67; } } else { if(yych <= '_') { if(yych >= '_') goto yy67; } else { if(yych <= '`') goto yy69; if(yych <= 'z') goto yy67; } } yy69: #line 218 "scanner.s.re" { cur = cursor; tok+= 5; /* skip "re2c:" */ iscfg = 1; yylval.str = new Str(token()); return CONFIG; } #line 509 "" yy70: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy71: if(yych <= '[') { if(yych == 0x0A) goto yy66; goto yy70; } else { if(yych <= '\\') goto yy74; if(yych <= ']') goto yy75; goto yy70; } yy72: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych <= '[') { if(yych == 0x0A) goto yy66; goto yy72; } else { if(yych <= '\\') goto yy77; if(yych <= ']') goto yy78; goto yy72; } yy74: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy66; goto yy70; yy75: ++YYCURSOR; #line 190 "scanner.s.re" { cur = cursor; yylval.regexp = ranToRE(token()); return RANGE; } #line 547 "" yy77: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy66; goto yy72; yy78: ++YYCURSOR; #line 186 "scanner.s.re" { cur = cursor; yylval.regexp = invToRE(token()); return RANGE; } #line 560 "" yy80: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; yy81: if(yych <= '&') { if(yych == 0x0A) goto yy66; goto yy80; } else { if(yych <= '\'') goto yy83; if(yych != '\\') goto yy80; } ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; if(yych == 0x0A) goto yy66; goto yy80; yy83: ++YYCURSOR; #line 179 "scanner.s.re" { cur = cursor; yylval.regexp = strToCaseInsensitiveRE(token()); return STRING; } #line 584 "" 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 "" yy90: ++YYCURSOR; #line 172 "scanner.s.re" { tok = cursor; RETURN(0); } #line 614 "" yy92: ++YYCURSOR; #line 169 "scanner.s.re" { depth = 1; goto comment; } #line 620 "" 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 "" 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 "" 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 "" 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 "" 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 "" } #line 247 "scanner.s.re" code: #line 693 "" { 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 "" yy115: ++YYCURSOR; #line 257 "scanner.s.re" { ++depth; goto code; } #line 729 "" yy117: ++YYCURSOR; #line 259 "scanner.s.re" { if(cursor == eof) fatal("missing '}'"); pos = cursor; cline++; goto code; } #line 737 "" yy119: ++YYCURSOR; yy120: #line 263 "scanner.s.re" { goto code; } #line 743 "" 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 "" { 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 "" 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 "" yy137: yych = *++YYCURSOR; goto yy133; yy138: ++YYCURSOR; #line 272 "scanner.s.re" { ++depth; fatal("ambiguous /* found"); goto comment; } #line 838 "" yy140: ++YYCURSOR; #line 268 "scanner.s.re" { if(--depth == 0) goto scan; else goto comment; } #line 846 "" } #line 281 "scanner.s.re" config: #line 853 "" { 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 "" yy146: ++YYCURSOR; yych = *YYCURSOR; goto yy151; yy147: #line 286 "scanner.s.re" { iscfg = 2; cur = cursor; RETURN('='); } #line 883 "" yy148: ++YYCURSOR; #line 290 "scanner.s.re" { fatal("missing '='"); } #line 888 "" 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 "" { 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 "" 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 "" 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