From: <he...@us...> - 2006-07-27 22:36:30
|
Revision: 593 Author: helly Date: 2006-07-26 17:59:39 -0700 (Wed, 26 Jul 2006) ViewCVS: http://svn.sourceforge.net/re2c/?rev=593&view=rev Log Message: ----------- - Fixed #1528269 Invalid code generation. Modified Paths: -------------- trunk/re2c/CHANGELOG trunk/re2c/Makefile.am trunk/re2c/bootstrap/scanner.cc trunk/re2c/re2c.spec.in trunk/re2c/scanner.re Modified: trunk/re2c/CHANGELOG =================================================================== --- trunk/re2c/CHANGELOG 2006-07-27 00:56:38 UTC (rev 592) +++ trunk/re2c/CHANGELOG 2006-07-27 00:59:39 UTC (rev 593) @@ -1,3 +1,7 @@ +Version 0.11.0 (????-??-??) +--------------------------- +- Fixed #1528269 Invalid code generation. + Version 0.10.5 (2006-06-11) --------------------------- - Fixed long form of -1 switch to --single-pass as noted in man page and help. Modified: trunk/re2c/Makefile.am =================================================================== --- trunk/re2c/Makefile.am 2006-07-27 00:56:38 UTC (rev 592) +++ trunk/re2c/Makefile.am 2006-07-27 00:59:39 UTC (rev 593) @@ -15,7 +15,7 @@ YFLAGS = -d RE2C = re2c$(EXEEXT) -RE2CFLAGS = -s +RE2CFLAGS = -b CLEANFILES = parser.cc y.tab.c y.tab.h scanner.cc re2c.1 .version Modified: trunk/re2c/bootstrap/scanner.cc =================================================================== --- trunk/re2c/bootstrap/scanner.cc 2006-07-27 00:56:38 UTC (rev 592) +++ trunk/re2c/bootstrap/scanner.cc 2006-07-27 00:59:39 UTC (rev 593) @@ -1,4 +1,4 @@ -/* Generated by re2c 0.11.0.dev on Mon Jun 5 18:17:13 2006 */ +/* Generated by re2c 0.11.0.dev on Thu Jul 27 03:06:48 2006 */ #line 1 "scanner.re" /* $Id$ */ #include <stdlib.h> @@ -19,7 +19,7 @@ #define BSIZE 8192 -#define YYCTYPE char +#define YYCTYPE unsigned char #define YYCURSOR cursor #define YYLIMIT lim #define YYMARKER ptr @@ -92,39 +92,40 @@ tok = cursor; echo: - -#line 97 "scanner.cc" { - YYCTYPE yych; - unsigned int yyaccept = 0; - if((YYLIMIT - YYCURSOR) < 16) YYFILL(16); - 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; - } - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == '*') goto yy16; +#line 98 "<stdout>" + { + YYCTYPE yych; + unsigned int yyaccept = 0; + + if((YYLIMIT - YYCURSOR) < 16) YYFILL(16); + 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; + } + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == '*') goto yy16; yy3: #line 184 "scanner.re" - { + { goto echo; } -#line 120 "scanner.cc" +#line 121 "<stdout>" yy4: - yych = *++YYCURSOR; - if(yych == '/') goto yy10; - goto yy3; + yych = *++YYCURSOR; + if(yych == '/') goto yy10; + goto yy3; yy5: - ++YYCURSOR; + ++YYCURSOR; #line 167 "scanner.re" - { + { if (ignore_eoc) { ignore_cnt++; } else { @@ -133,11 +134,11 @@ tok = pos = cursor; cline++; goto echo; } -#line 137 "scanner.cc" +#line 138 "<stdout>" yy7: - ++YYCURSOR; + ++YYCURSOR; #line 176 "scanner.re" - { + { if (!ignore_eoc) { out.write((const char*)(tok), (const char*)(cursor) - (const char*)(tok) - 1); // -1 so we don't write out the \0 } @@ -145,18 +146,18 @@ RETURN(0); } } -#line 149 "scanner.cc" +#line 150 "<stdout>" yy9: - yych = *++YYCURSOR; - goto yy3; + yych = *++YYCURSOR; + goto yy3; yy10: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 0x0A) goto yy14; - if(yych == 0x0D) goto yy12; + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 0x0A) goto yy14; + if(yych == 0x0D) goto yy12; yy11: #line 154 "scanner.re" - { + { if (ignore_eoc) { if (ignore_cnt) { out << "\n" << sourceFileInfo; @@ -169,21 +170,21 @@ tok = pos = cursor; goto echo; } -#line 173 "scanner.cc" +#line 174 "<stdout>" yy12: - yych = *++YYCURSOR; - if(yych == 0x0A) goto yy14; + yych = *++YYCURSOR; + if(yych == 0x0A) goto yy14; yy13: - YYCURSOR = YYMARKER; - if(yyaccept <= 0) { - goto yy3; - } else { - goto yy11; - } + YYCURSOR = YYMARKER; + if(yyaccept <= 0) { + goto yy3; + } else { + goto yy11; + } yy14: - ++YYCURSOR; + ++YYCURSOR; #line 140 "scanner.re" - { + { cline++; if (ignore_eoc) { if (ignore_cnt) { @@ -197,40 +198,40 @@ tok = pos = cursor; goto echo; } -#line 201 "scanner.cc" +#line 202 "<stdout>" yy16: - yych = *++YYCURSOR; - if(yych != '!') goto yy13; - yych = *++YYCURSOR; - switch(yych) { - case 'g': goto yy19; - case 'i': goto yy18; - case 'm': goto yy20; - case 'r': goto yy21; - default: goto yy13; - } + yych = *++YYCURSOR; + if(yych != '!') goto yy13; + yych = *++YYCURSOR; + switch(yych) { + case 'g': goto yy19; + case 'i': goto yy18; + case 'm': goto yy20; + case 'r': goto yy21; + default: goto yy13; + } yy18: - yych = *++YYCURSOR; - if(yych == 'g') goto yy47; - goto yy13; + yych = *++YYCURSOR; + if(yych == 'g') goto yy47; + goto yy13; yy19: - yych = *++YYCURSOR; - if(yych == 'e') goto yy34; - goto yy13; + yych = *++YYCURSOR; + if(yych == 'e') goto yy34; + goto yy13; yy20: - yych = *++YYCURSOR; - if(yych == 'a') goto yy26; - goto yy13; + yych = *++YYCURSOR; + if(yych == 'a') goto yy26; + goto yy13; yy21: - yych = *++YYCURSOR; - if(yych != 'e') goto yy13; - yych = *++YYCURSOR; - if(yych != '2') goto yy13; - yych = *++YYCURSOR; - if(yych != 'c') goto yy13; - ++YYCURSOR; + yych = *++YYCURSOR; + if(yych != 'e') goto yy13; + yych = *++YYCURSOR; + if(yych != '2') goto yy13; + yych = *++YYCURSOR; + if(yych != 'c') goto yy13; + ++YYCURSOR; #line 111 "scanner.re" - { + { if (bUsedYYMaxFill && bSinglePass) { fatal("found scanner block after YYMAXFILL declaration"); } @@ -238,23 +239,23 @@ tok = cursor; RETURN(1); } -#line 242 "scanner.cc" +#line 243 "<stdout>" yy26: - 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; + 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 119 "scanner.re" - { + { if (bUsedYYMaxFill) { fatal("cannot generate YYMAXFILL twice"); } @@ -264,66 +265,67 @@ bUsedYYMaxFill = true; goto echo; } -#line 268 "scanner.cc" +#line 269 "<stdout>" yy34: - yych = *++YYCURSOR; - if(yych != 't') goto yy13; - yych = *++YYCURSOR; - if(yych != 's') goto yy13; - yych = *++YYCURSOR; - if(yych != 't') goto yy13; - yych = *++YYCURSOR; - if(yych != 'a') goto yy13; - yych = *++YYCURSOR; - if(yych != 't') goto yy13; - yych = *++YYCURSOR; - if(yych != 'e') 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; + yych = *++YYCURSOR; + if(yych != 't') goto yy13; + yych = *++YYCURSOR; + if(yych != 's') goto yy13; + yych = *++YYCURSOR; + if(yych != 't') goto yy13; + yych = *++YYCURSOR; + if(yych != 'a') goto yy13; + yych = *++YYCURSOR; + if(yych != 't') goto yy13; + yych = *++YYCURSOR; + if(yych != 'e') 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 129 "scanner.re" - { + { tok = pos = cursor; genGetState(out, topIndent, 0); ignore_eoc = true; goto echo; } -#line 300 "scanner.cc" +#line 301 "<stdout>" yy47: - yych = *++YYCURSOR; - if(yych != 'n') goto yy13; - yych = *++YYCURSOR; - if(yych != 'o') goto yy13; - yych = *++YYCURSOR; - if(yych != 'r') goto yy13; - yych = *++YYCURSOR; - if(yych != 'e') 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; + yych = *++YYCURSOR; + if(yych != 'n') goto yy13; + yych = *++YYCURSOR; + if(yych != 'o') goto yy13; + yych = *++YYCURSOR; + if(yych != 'r') goto yy13; + yych = *++YYCURSOR; + if(yych != 'e') 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 135 "scanner.re" - { + { tok = pos = cursor; ignore_eoc = true; goto echo; } -#line 327 "scanner.cc" +#line 328 "<stdout>" + } } #line 187 "scanner.re" @@ -347,918 +349,999 @@ { goto value; } +{ + static unsigned char yybm[] = { + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 114, 0, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 114, 112, 48, 112, 112, 112, 112, 80, + 112, 112, 112, 112, 112, 112, 112, 112, + 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 112, 112, 112, 112, 112, 112, + 112, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 112, 0, 96, 112, 120, + 112, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, + 124, 124, 124, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, + }; -#line 352 "scanner.cc" -{ - 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 yy85; - if(yych <= 0x09) goto yy79; - if(yych <= 0x0A) goto yy81; - goto yy85; +#line 389 "<stdout>" + { + 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 yy85; + if(yych <= 0x09) goto yy79; + if(yych <= 0x0A) goto yy81; + goto yy85; + } else { + if(yych <= 0x0D) goto yy83; + if(yych == ' ') goto yy79; + goto yy85; + } } else { - if(yych <= 0x0D) goto yy83; - if(yych == ' ') goto yy79; - goto yy85; + if(yych <= ')') { + if(yych <= '"') goto yy66; + if(yych <= '&') goto yy85; + if(yych <= '\'') goto yy68; + goto yy72; + } else { + if(yych <= '+') { + if(yych <= '*') goto yy64; + goto yy73; + } else { + if(yych <= '-') goto yy85; + if(yych <= '.') goto yy77; + goto yy62; + } + } } } else { - if(yych <= ')') { - if(yych <= '"') goto yy66; - if(yych <= '&') goto yy85; - if(yych <= '\'') goto yy68; - goto yy72; - } else { - if(yych <= '+') { - if(yych <= '*') goto yy64; - goto yy73; + if(yych <= 'Z') { + if(yych <= '=') { + if(yych == ';') goto yy72; + if(yych <= '<') goto yy85; + goto yy72; } else { - if(yych <= '-') goto yy85; - if(yych <= '.') goto yy77; - goto yy62; + if(yych == '?') goto yy73; + if(yych <= '@') goto yy85; + goto yy76; } - } - } - } else { - if(yych <= 'Z') { - if(yych <= '=') { - if(yych == ';') goto yy72; - if(yych <= '<') goto yy85; - goto yy72; } else { - if(yych == '?') goto yy73; - if(yych <= '@') goto yy85; - goto yy76; - } - } else { - if(yych <= 'q') { - if(yych <= '[') goto yy70; - if(yych <= '\\') goto yy72; - if(yych <= '`') goto yy85; - goto yy76; - } else { - if(yych <= 'z') { - if(yych <= 'r') goto yy74; + if(yych <= 'q') { + if(yych <= '[') goto yy70; + if(yych <= '\\') goto yy72; + if(yych <= '`') goto yy85; goto yy76; } else { - if(yych <= '{') goto yy60; - if(yych <= '|') goto yy72; - goto yy85; + if(yych <= 'z') { + if(yych <= 'r') goto yy74; + goto yy76; + } else { + if(yych <= '{') goto yy60; + if(yych <= '|') goto yy72; + goto yy85; + } } } } - } yy60: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= '/') { - if(yych == ',') goto yy126; - } else { - if(yych <= '0') goto yy123; - if(yych <= '9') goto yy124; - } + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= '/') { + if(yych == ',') goto yy126; + } else { + if(yych <= '0') goto yy123; + if(yych <= '9') goto yy124; + } yy61: #line 209 "scanner.re" - { depth = 1; + { depth = 1; goto code; } -#line 430 "scanner.cc" +#line 467 "<stdout>" yy62: - ++YYCURSOR; - if((yych = *YYCURSOR) == '*') goto yy121; + ++YYCURSOR; + if((yych = *YYCURSOR) == '*') goto yy121; yy63: #line 239 "scanner.re" - { RETURN(*tok); } -#line 437 "scanner.cc" + { RETURN(*tok); } +#line 474 "<stdout>" yy64: - ++YYCURSOR; - if((yych = *YYCURSOR) == '/') goto yy119; + ++YYCURSOR; + if((yych = *YYCURSOR) == '/') goto yy119; yy65: #line 241 "scanner.re" - { yylval.op = *tok; + { yylval.op = *tok; RETURN(CLOSE); } -#line 445 "scanner.cc" +#line 482 "<stdout>" yy66: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 0x0A) goto yy115; + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 0x0A) goto yy115; yy67: #line 226 "scanner.re" - { fatal("unterminated string constant (missing \")"); } -#line 453 "scanner.cc" + { fatal("unterminated string constant (missing \")"); } +#line 490 "<stdout>" yy68: - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != 0x0A) goto yy110; + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != 0x0A) goto yy110; yy69: #line 227 "scanner.re" - { fatal("unterminated string constant (missing ')"); } -#line 461 "scanner.cc" + { fatal("unterminated string constant (missing ')"); } +#line 498 "<stdout>" yy70: - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 0x0A) goto yy71; - if(yych == '^') goto yy101; - goto yy100; + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 0x0A) goto yy71; + if(yych == '^') goto yy101; + goto yy100; yy71: #line 237 "scanner.re" - { fatal("unterminated range (missing ])"); } -#line 471 "scanner.cc" + { fatal("unterminated range (missing ])"); } +#line 508 "<stdout>" yy72: - yych = *++YYCURSOR; - goto yy63; + yych = *++YYCURSOR; + goto yy63; yy73: - yych = *++YYCURSOR; - goto yy65; + yych = *++YYCURSOR; + goto yy65; yy74: - ++YYCURSOR; - if((yych = *YYCURSOR) == 'e') goto yy91; - goto yy90; + ++YYCURSOR; + if((yych = *YYCURSOR) == 'e') goto yy91; + goto yy90; yy75: #line 268 "scanner.re" - { cur = cursor; + { cur = cursor; yylval.symbol = Symbol::find(token()); return ID; } -#line 487 "scanner.cc" +#line 524 "<stdout>" yy76: - yych = *++YYCURSOR; - goto yy90; + yych = *++YYCURSOR; + goto yy90; yy77: - ++YYCURSOR; + ++YYCURSOR; #line 272 "scanner.re" - { cur = cursor; + { cur = cursor; yylval.regexp = mkDot(); return RANGE; } -#line 498 "scanner.cc" +#line 535 "<stdout>" yy79: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy88; + ++YYCURSOR; + yych = *YYCURSOR; + goto yy88; yy80: #line 277 "scanner.re" - { goto scan; } -#line 506 "scanner.cc" + { goto scan; } +#line 543 "<stdout>" yy81: - ++YYCURSOR; + ++YYCURSOR; yy82: #line 279 "scanner.re" - { if(cursor == eof) RETURN(0); + { if(cursor == eof) RETURN(0); pos = cursor; cline++; goto scan; } -#line 515 "scanner.cc" +#line 552 "<stdout>" yy83: - ++YYCURSOR; - if((yych = *YYCURSOR) == 0x0A) goto yy86; + ++YYCURSOR; + if((yych = *YYCURSOR) == 0x0A) goto yy86; yy84: #line 284 "scanner.re" - { std::ostringstream msg; + { std::ostringstream msg; msg << "unexpected character: "; prtChOrHex(msg, *tok); fatal(msg.str().c_str()); goto scan; } -#line 527 "scanner.cc" +#line 564 "<stdout>" yy85: - yych = *++YYCURSOR; - goto yy84; + yych = *++YYCURSOR; + goto yy84; yy86: - yych = *++YYCURSOR; - goto yy82; + yych = *++YYCURSOR; + goto yy82; yy87: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy88: - if(yych == 0x09) goto yy87; - if(yych == ' ') goto yy87; - goto yy80; + if(yybm[0+yych] & 2) { + goto yy87; + } + goto yy80; yy89: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy90: - if(yych <= '@') { - if(yych <= '/') goto yy75; - if(yych <= '9') goto yy89; + if(yybm[0+yych] & 4) { + goto yy89; + } goto yy75; - } else { - if(yych <= 'Z') goto yy89; - if(yych <= '`') goto yy75; - if(yych <= 'z') goto yy89; - goto yy75; - } yy91: - yych = *++YYCURSOR; - if(yych != '2') goto yy90; - yych = *++YYCURSOR; - if(yych != 'c') goto yy90; - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if(yych != ':') goto yy90; + yych = *++YYCURSOR; + if(yych != '2') goto yy90; + yych = *++YYCURSOR; + if(yych != 'c') goto yy90; + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if(yych != ':') goto yy90; yy94: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= '@') goto yy95; - if(yych <= 'Z') goto yy96; - if(yych <= '`') goto yy95; - if(yych <= 'z') goto yy96; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '@') goto yy95; + if(yych <= 'Z') goto yy96; + if(yych <= '`') goto yy95; + if(yych <= 'z') goto yy96; yy95: - YYCURSOR = YYMARKER; - if(yyaccept <= 3) { - if(yyaccept <= 1) { - if(yyaccept <= 0) { - goto yy61; + YYCURSOR = YYMARKER; + if(yyaccept <= 3) { + if(yyaccept <= 1) { + if(yyaccept <= 0) { + goto yy61; + } else { + goto yy67; + } } else { - goto yy67; + if(yyaccept <= 2) { + goto yy69; + } else { + goto yy71; + } } } else { - if(yyaccept <= 2) { - goto yy69; + if(yyaccept <= 5) { + if(yyaccept <= 4) { + goto yy75; + } else { + goto yy98; + } } else { - goto yy71; + goto yy127; } } - } else { - if(yyaccept <= 5) { - if(yyaccept <= 4) { - goto yy75; - } else { - goto yy98; - } - } else { - goto yy127; - } - } yy96: - yyaccept = 5; - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= 'Z') { - if(yych <= '9') { - if(yych >= '0') goto yy96; - } else { - if(yych <= ':') goto yy94; - if(yych >= 'A') goto yy96; + yyaccept = 5; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 8) { + goto yy96; } - } else { - if(yych <= '_') { - if(yych >= '_') goto yy96; - } else { - if(yych <= '`') goto yy98; - if(yych <= 'z') goto yy96; - } - } + if(yych == ':') goto yy94; yy98: #line 261 "scanner.re" - { cur = cursor; + { cur = cursor; tok+= 5; /* skip "re2c:" */ iscfg = 1; yylval.str = new Str(token()); return CONFIG; } -#line 628 "scanner.cc" +#line 649 "<stdout>" yy99: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy100: - if(yych <= '[') { - if(yych == 0x0A) goto yy95; - goto yy99; - } else { + if(yybm[0+yych] & 16) { + goto yy99; + } + if(yych <= '[') goto yy95; if(yych <= '\\') goto yy103; - if(yych <= ']') goto yy104; - goto yy99; - } + goto yy104; yy101: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= '[') { + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '[') { + if(yych == 0x0A) goto yy95; + goto yy101; + } else { + if(yych <= '\\') goto yy106; + if(yych <= ']') goto yy107; + goto yy101; + } +yy103: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; if(yych == 0x0A) goto yy95; - goto yy101; - } else { - if(yych <= '\\') goto yy106; - if(yych <= ']') goto yy107; - goto yy101; - } -yy103: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych == 0x0A) goto yy95; - goto yy99; + goto yy99; yy104: - ++YYCURSOR; + ++YYCURSOR; #line 233 "scanner.re" - { cur = cursor; + { cur = cursor; yylval.regexp = ranToRE(token()); return RANGE; } -#line 666 "scanner.cc" +#line 685 "<stdout>" yy106: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych == 0x0A) goto yy95; - goto yy101; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy95; + goto yy101; yy107: - ++YYCURSOR; + ++YYCURSOR; #line 229 "scanner.re" - { cur = cursor; + { cur = cursor; yylval.regexp = invToRE(token()); return RANGE; } -#line 679 "scanner.cc" +#line 698 "<stdout>" yy109: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy110: - if(yych <= '&') { + if(yybm[0+yych] & 32) { + goto yy109; + } + if(yych <= '&') goto yy95; + if(yych <= '\'') goto yy112; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; if(yych == 0x0A) goto yy95; goto yy109; - } else { - if(yych <= '\'') goto yy112; - if(yych != '\\') goto yy109; - } - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych == 0x0A) goto yy95; - goto yy109; yy112: - ++YYCURSOR; + ++YYCURSOR; #line 222 "scanner.re" - { cur = cursor; + { cur = cursor; yylval.regexp = strToCaseInsensitiveRE(token()); return STRING; } -#line 703 "scanner.cc" +#line 720 "<stdout>" yy114: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy115: - if(yych <= '!') { + if(yybm[0+yych] & 64) { + goto yy114; + } + if(yych <= '!') goto yy95; + if(yych <= '"') goto yy117; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; if(yych == 0x0A) goto yy95; goto yy114; - } else { - if(yych <= '"') goto yy117; - if(yych != '\\') goto yy114; - } - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych == 0x0A) goto yy95; - goto yy114; yy117: - ++YYCURSOR; + ++YYCURSOR; #line 218 "scanner.re" - { cur = cursor; + { cur = cursor; yylval.regexp = strToRE(token()); return STRING; } -#line 727 "scanner.cc" +#line 742 "<stdout>" yy119: - ++YYCURSOR; + ++YYCURSOR; #line 215 "scanner.re" - { tok = cursor; + { tok = cursor; RETURN(0); } -#line 733 "scanner.cc" +#line 748 "<stdout>" yy121: - ++YYCURSOR; + ++YYCURSOR; #line 212 "scanner.re" - { depth = 1; + { depth = 1; goto comment; } -#line 739 "scanner.cc" +#line 754 "<stdout>" yy123: - yych = *++YYCURSOR; - if(yych == ',') goto yy137; - goto yy125; + yych = *++YYCURSOR; + if(yych == ',') goto yy137; + goto yy125; yy124: - ++YYCURSOR; - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; + ++YYCURSOR; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; yy125: - if(yych <= '/') { + if(yybm[0+yych] & 128) { + goto yy124; + } if(yych == ',') goto yy130; - goto yy95; - } else { - if(yych <= '9') goto yy124; if(yych == '}') goto yy128; goto yy95; - } yy126: - ++YYCURSOR; + ++YYCURSOR; yy127: #line 259 "scanner.re" - { fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); } -#line 762 "scanner.cc" + { fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); } +#line 775 "<stdout>" yy128: - ++YYCURSOR; + ++YYCURSOR; #line 247 "scanner.re" - { yylval.extop.minsize = atoi((char *)tok+1); + { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = atoi((char *)tok+1); RETURN(CLOSESIZE); } -#line 769 "scanner.cc" +#line 782 "<stdout>" yy130: - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= '/') goto yy127; - if(yych <= '9') goto yy133; - if(yych != '}') goto yy127; - ++YYCURSOR; + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= '/') goto yy127; + if(yych <= '9') goto yy133; + if(yych != '}') goto yy127; + ++YYCURSOR; #line 255 "scanner.re" - { yylval.extop.minsize = atoi((char *)tok+1); + { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = -1; RETURN(CLOSESIZE); } -#line 781 "scanner.cc" +#line 794 "<stdout>" yy133: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= '/') goto yy95; - if(yych <= '9') goto yy133; - if(yych != '}') goto yy95; - ++YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= '/') goto yy95; + if(yych <= '9') goto yy133; + if(yych != '}') goto yy95; + ++YYCURSOR; #line 251 "scanner.re" - { yylval.extop.minsize = atoi((char *)tok+1); + { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1)); RETURN(CLOSESIZE); } -#line 794 "scanner.cc" +#line 807 "<stdout>" yy137: - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if(yych <= '/') goto yy127; - if(yych <= '9') goto yy133; - if(yych != '}') goto yy127; - ++YYCURSOR; + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if(yych <= '/') goto yy127; + if(yych <= '9') goto yy133; + if(yych != '}') goto yy127; + ++YYCURSOR; #line 244 "scanner.re" - { yylval.op = '*'; + { yylval.op = '*'; RETURN(CLOSE); } -#line 805 "scanner.cc" +#line 818 "<stdout>" + } } #line 290 "scanner.re" code: +{ + static unsigned char yybm[] = { + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 0, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 64, 192, 192, 192, 192, 128, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 0, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, + }; -#line 812 "scanner.cc" -{ - YYCTYPE yych; - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - if(yych <= '&') { - if(yych <= 0x0A) { - if(yych <= 0x09) goto yy148; - goto yy146; +#line 861 "<stdout>" + { + YYCTYPE yych; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= '&') { + if(yych <= 0x0A) { + if(yych <= 0x09) goto yy148; + goto yy146; + } else { + if(yych == '"') goto yy150; + goto yy148; + } } else { - if(yych == '"') goto yy150; - goto yy148; + if(yych <= '{') { + if(yych <= '\'') goto yy151; + if(yych <= 'z') goto yy148; + goto yy144; + } else { + if(yych != '}') goto yy148; + } } - } else { - if(yych <= '{') { - if(yych <= '\'') goto yy151; - if(yych <= 'z') goto yy148; - goto yy144; - } else { - if(yych != '}') goto yy148; - } - } - ++YYCURSOR; + ++YYCURSOR; #line 294 "scanner.re" - { if(--depth == 0){ + { if(--depth == 0){ cur = cursor; yylval.token = new Token(token(), tline); return CODE; } goto code; } -#line 842 "scanner.cc" +#line 891 "<stdout>" yy144: - ++YYCURSOR; + ++YYCURSOR; #line 300 "scanner.re" - { ++depth; + { ++depth; goto code; } -#line 848 "scanner.cc" +#line 897 "<stdout>" yy146: - ++YYCURSOR; + ++YYCURSOR; #line 302 "scanner.re" - { if(cursor == eof) fatal("missing '}'"); + { if(cursor == eof) fatal("missing '}'"); pos = cursor; cline++; goto code; } -#line 856 "scanner.cc" +#line 905 "<stdout>" yy148: - ++YYCURSOR; + ++YYCURSOR; yy149: #line 306 "scanner.re" - { goto code; } -#line 862 "scanner.cc" + { goto code; } +#line 911 "<stdout>" yy150: - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 0x0A) goto yy149; - goto yy157; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 0x0A) goto yy149; + goto yy157; yy151: - yych = *(YYMARKER = ++YYCURSOR); - if(yych == 0x0A) goto yy149; - goto yy153; + yych = *(YYMARKER = ++YYCURSOR); + if(yych == 0x0A) goto yy149; + goto yy153; yy152: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy153: - if(yych <= '&') { - if(yych != 0x0A) goto yy152; - } else { + if(yybm[0+yych] & 64) { + goto yy152; + } + if(yych <= '&') goto yy154; if(yych <= '\'') goto yy148; - if(yych == '\\') goto yy155; - goto yy152; - } + goto yy155; yy154: - YYCURSOR = YYMARKER; - goto yy149; + YYCURSOR = YYMARKER; + goto yy149; yy155: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych == 0x0A) goto yy154; - goto yy152; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy154; + goto yy152; yy156: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy157: - if(yych <= '!') { + if(yybm[0+yych] & 128) { + goto yy156; + } + if(yych <= '!') goto yy154; + if(yych <= '"') goto yy148; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; if(yych == 0x0A) goto yy154; goto yy156; - } else { - if(yych <= '"') goto yy148; - if(yych != '\\') goto yy156; } - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych == 0x0A) goto yy154; - goto yy156; } #line 307 "scanner.re" comment: +{ -#line 915 "scanner.cc" -{ - YYCTYPE yych; - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - if(yych <= ')') { - if(yych == 0x0A) goto yy164; - goto yy166; - } else { - if(yych <= '*') goto yy161; - if(yych == '/') goto yy163; - goto yy166; - } +#line 963 "<stdout>" + { + YYCTYPE yych; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= ')') { + if(yych == 0x0A) goto yy164; + goto yy166; + } else { + if(yych <= '*') goto yy161; + if(yych == '/') goto yy163; + goto yy166; + } yy161: - ++YYCURSOR; - if((yych = *YYCURSOR) == '/') goto yy169; + ++YYCURSOR; + if((yych = *YYCURSOR) == '/') goto yy169; yy162: #line 322 "scanner.re" - { if(cursor == eof) RETURN(0); + { if(cursor == eof) RETURN(0); goto comment; } -#line 935 "scanner.cc" +#line 983 "<stdout>" yy163: - yych = *++YYCURSOR; - if(yych == '*') goto yy167; - goto yy162; + yych = *++YYCURSOR; + if(yych == '*') goto yy167; + goto yy162; yy164: - ++YYCURSOR; + ++YYCURSOR; #line 318 "scanner.re" - { if(cursor == eof) RETURN(0); + { if(cursor == eof) RETURN(0); tok = pos = cursor; cline++; goto comment; } -#line 947 "scanner.cc" +#line 995 "<stdout>" yy166: - yych = *++YYCURSOR; - goto yy162; + yych = *++YYCURSOR; + goto yy162; yy167: - ++YYCURSOR; + ++YYCURSOR; #line 315 "scanner.re" - { ++depth; + { ++depth; fatal("ambiguous /* found"); goto comment; } -#line 957 "scanner.cc" +#line 1005 "<stdout>" yy169: - ++YYCURSOR; + ++YYCURSOR; #line 311 "scanner.re" - { if(--depth == 0) + { if(--depth == 0) goto scan; else goto comment; } -#line 965 "scanner.cc" +#line 1013 "<stdout>" + } } #line 324 "scanner.re" config: +{ + static unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; -#line 972 "scanner.cc" -{ - YYCTYPE yych; - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - if(yych <= 0x1F) { - if(yych != 0x09) goto yy177; - } else { - if(yych <= ' ') goto yy173; - if(yych == '=') goto yy175; - goto yy177; - } +#line 1056 "<stdout>" + { + YYCTYPE yych; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= 0x1F) { + if(yych != 0x09) goto yy177; + } else { + if(yych <= ' ') goto yy173; + if(yych == '=') goto yy175; + goto yy177; + } yy173: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy182; + ++YYCURSOR; + yych = *YYCURSOR; + goto yy182; yy174: #line 328 "scanner.re" - { goto config; } -#line 991 "scanner.cc" + { goto config; } +#line 1075 "<stdout>" yy175: - ++YYCURSOR; - yych = *YYCURSOR; - goto yy180; + ++YYCURSOR; + yych = *YYCURSOR; + goto yy180; yy176: #line 329 "scanner.re" - { iscfg = 2; + { iscfg = 2; cur = cursor; RETURN('='); } -#line 1002 "scanner.cc" +#line 1086 "<stdout>" yy177: - ++YYCURSOR; + ++YYCURSOR; #line 333 "scanner.re" - { fatal("missing '='"); } -#line 1007 "scanner.cc" + { fatal("missing '='"); } +#line 1091 "<stdout>" yy179: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy180: - if(yych == 0x09) goto yy179; - if(yych == ' ') goto yy179; - goto yy176; + if(yybm[0+yych] & 128) { + goto yy179; + } + goto yy176; yy181: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy182: - if(yych == 0x09) goto yy181; - if(yych == ' ') goto yy181; - goto yy174; + if(yych == 0x09) goto yy181; + if(yych == ' ') goto yy181; + goto yy174; + } } #line 334 "scanner.re" value: +{ + static unsigned char yybm[] = { + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 192, 0, 248, 248, 192, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 192, 248, 104, 248, 248, 248, 248, 152, + 248, 248, 248, 248, 248, 248, 248, 248, + 252, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 248, 192, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 8, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 248, 248, 248, 248, 248, 248, + }; -#line 1030 "scanner.cc" -{ - YYCTYPE yych; - if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - if(yych <= '&') { - if(yych <= 0x0D) { - if(yych <= 0x08) goto yy191; - if(yych <= 0x0A) goto yy185; - if(yych <= 0x0C) goto yy191; - } else { - if(yych <= ' ') { - if(yych <= 0x1F) goto yy191; +#line 1151 "<stdout>" + { + YYCTYPE yych; + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= '&') { + if(yych <= 0x0D) { + if(yych <= 0x08) goto yy191; + if(yych <= 0x0A) goto yy185; + if(yych <= 0x0C) goto yy191; } else { - if(yych == '"') goto yy193; - goto yy191; + if(yych <= ' ') { + if(yych <= 0x1F) goto yy191; + } else { + if(yych == '"') goto yy193; + goto yy191; + } } - } - } else { - if(yych <= '/') { - if(yych <= '\'') goto yy195; - if(yych == '-') goto yy188; - goto yy191; } else { - if(yych <= '9') { - if(yych <= '0') goto yy186; - goto yy189; + if(yych <= '/') { + if(yych <= '\'') goto yy195; + if(yych == '-') goto yy188; + goto yy191; } else { - if(yych != ';') goto yy191; + if(yych <= '9') { + if(yych <= '0') goto yy186; + goto yy189; + } else { + if(yych != ';') goto yy191; + } } } - } yy185: #line 343 "scanner.re" - { cur = cursor; + { cur = cursor; yylval.str = new Str(token()); iscfg = 0; return VALUE; } -#line 1069 "scanner.cc" +#line 1190 "<stdout>" yy186: - ++YYCURSOR; - if((yych = *YYCURSOR) <= 0x0D) { - if(yych <= 0x08) goto yy191; - if(yych <= 0x0A) goto yy187; - if(yych <= 0x0C) goto yy191; - } else { - if(yych <= ' ') { - if(yych <= 0x1F) goto yy191; - } else { - if(yych != ';') goto yy191; + ++YYCURSOR; + if(yybm[0+(yych = *YYCURSOR)] & 8) { + goto yy191; } - } yy187: #line 338 "scanner.re" - { cur = cursor; + { cur = cursor; yylval.number = atoi(token().to_string().c_str()); iscfg = 0; return NUMBER; } -#line 1090 "scanner.cc" +#line 1203 "<stdout>" yy188: - yych = *++YYCURSOR; - if(yych <= '0') goto yy192; - if(yych >= ':') goto yy192; + yych = *++YYCURSOR; + if(yych <= '0') goto yy192; + if(yych >= ':') goto yy192; yy189: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= 0x1F) { - if(yych <= 0x0A) { - if(yych >= 0x09) goto yy187; - } else { - if(yych == 0x0D) goto yy187; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 4) { + goto yy189; } - } else { - if(yych <= '9') { - if(yych <= ' ') goto yy187; - if(yych >= '0') goto yy189; + if(yych <= 0x0D) { + if(yych <= 0x08) goto yy191; + if(yych <= 0x0A) goto yy187; + if(yych >= 0x0D) goto yy187; } else { - if(yych == ';') goto yy187; + if(yych <= ' ') { + if(yych >= ' ') goto yy187; + } else { + if(yych == ';') goto yy187; + } } - } yy191: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy192: - if(yych <= 0x0D) { - if(yych <= 0x08) goto yy191; - if(yych <= 0x0A) goto yy185; - if(yych <= 0x0C) goto yy191; - goto yy185; - } else { - if(yych <= ' ') { - if(yych <= 0x1F) goto yy191; - goto yy185; - } else { - if(yych == ';') goto yy185; + if(yybm[0+yych] & 8) { goto yy191; } - } + goto yy185; yy193: - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= ' ') { - if(yych <= 0x0A) { - if(yych <= 0x08) goto yy193; - if(yych <= 0x09) goto yy203; - goto yy185; - } else { - if(yych == 0x0D) goto yy203; - if(yych <= 0x1F) goto yy193; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 16) { + goto yy193; + } + if(yych <= '!') { + if(yych == 0x0A) goto yy185; goto yy203; - } - } else { - if(yych <= ':') { - if(yych == '"') goto yy191; - goto yy193; } else { - if(yych <= ';') goto yy203; - if(yych == '\\') goto yy205; - goto yy193; + if(yych <= '"') goto yy191; + if(yych <= '[') goto yy203; + goto yy205; } - } yy195: - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= ' ') { - if(yych <= 0x0A) { - if(yych <= 0x08) goto yy195; - if(yych >= 0x0A) goto yy185; - } else { - if(yych == 0x0D) goto yy197; - if(yych <= 0x1F) goto yy195; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 32) { + goto yy195; } - } else { - if(yych <= ':') { - if(yych == '\'') goto yy191; - goto yy195; + if(yych <= '&') { + if(yych == 0x0A) goto yy185; } else { - if(yych <= ';') goto yy197; - if(yych == '\\') goto yy200; - goto yy195; + if(yych <= '\'') goto yy191; + if(yych >= '\\') goto yy200; } - } yy197: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= '&') { - if(yych != 0x0A) goto yy197; - } else { + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 64) { + goto yy197; + } + if(yych <= '&') goto yy199; if(yych <= '\'') goto yy201; - if(yych == '\\') goto yy202; - goto yy197; - } + goto yy202; yy199: - YYCURSOR = YYMARKER; - goto yy185; + YYCURSOR = YYMARKER; + goto yy185; yy200: - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= 0x0D) { - if(yych <= 0x09) { - if(yych <= 0x08) goto yy195; - goto yy197; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= 0x0D) { + if(yych <= 0x09) { + if(yych <= 0x08) goto yy195; + goto yy197; + } else { + if(yych <= 0x0A) goto yy185; + if(yych <= 0x0C) goto yy195; + goto yy197; + } } else { - if(yych <= 0x0A) goto yy185; - if(yych <= 0x0C) goto yy195; - goto yy197; + if(yych <= ' ') { + if(yych <= 0x1F) goto yy195; + goto yy197; + } else { + if(yych == ';') goto yy197; + goto yy195; + } } - } else { - if(yych <= ' ') { - if(yych <= 0x1F) goto yy195; - goto yy197; - } else { - if(yych == ';') goto yy197; - goto yy195; - } - } yy201: - yych = *++YYCURSOR; - goto yy185; + yych = *++YYCURSOR; + goto yy185; yy202: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych == 0x0A) goto yy199; - goto yy197; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy199; + goto yy197; yy203: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= '!') { - if(yych == 0x0A) goto yy199; - goto yy203; - } else { + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yybm[0+yych] & 128) { + goto yy203; + } + if(yych <= '!') goto yy199; if(yych <= '"') goto yy201; - if(yych == '\\') goto yy206; - goto yy203; - } + goto yy206; yy205: - YYMARKER = ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych <= 0x0D) { - if(yych <= 0x09) { - if(yych <= 0x08) goto yy193; - goto yy203; + YYMARKER = ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych <= 0x0D) { + if(yych <= 0x09) { + if(yych <= 0x08) goto yy193; + goto yy203; + } else { + if(yych <= 0x0A) goto yy185; + if(yych <= 0x0C) goto yy193; + goto yy203; + } } else { - if(yych <= 0x0A) goto yy185; - if(yych <= 0x0C) goto yy193; - goto yy203; + if(yych <= ' ') { + if(yych <= 0x1F) goto yy193; + goto yy203; + } else { + if(yych == ';') goto yy203; + goto yy193; + } } - } else { - if(yych <= ' ') { - if(yych <= 0x1F) goto yy193; - goto yy203; - } else { - if(yych == ';') goto yy203; - goto yy193; - } +yy206: + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + if(yych == 0x0A) goto yy199; + goto yy203; } -yy206: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yych == 0x0A) goto yy199; - goto yy203; } #line 348 "scanner.re" Modified: trunk/re2c/re2c.spec.in =================================================================== --- trunk/re2c/re2c.spec.in 2006-07-27 00:56:38 UTC (rev 592) +++ trunk/re2c/re2c.spec.in 2006-07-27 00:59:39 UTC (rev 593) @@ -24,7 +24,7 @@ make re2c #regenerate file scanner.cc rm -f scanner.cc -./re2c scanner.re > scanner.cc +./re2c -b scanner.re > scanner.cc rm -f re2c scanner.o make Modified: trunk/re2c/scanner.re =================================================================== --- trunk/re2c/scanner.re 2006-07-27 00:56:38 UTC (rev 592) +++ trunk/re2c/scanner.re 2006-07-27 00:59:39 UTC (rev 593) @@ -17,7 +17,7 @@ #define BSIZE 8192 -#define YYCTYPE char +#define YYCTYPE unsigned char #define YYCURSOR cursor #define YYLIMIT lim #define YYMARKER ptr This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |