-/* Generated by re2c 0.9.9.dev on Sat Jul 9 12:50:01 2005 */
+/* Generated by re2c 0.9.9.dev on Sat Jul 9 20:41:37 2005 */
#line 1 "scanner.re"
/* $Id$ */
#include <stdlib.h>
if(yych <= '/'){
if(yych <= '"'){
if(yych <= 0x0A){
- if(yych <= 0x08) goto yy51;
+ if(yych <= 0x08) goto yy53;
if(yych <= 0x09) goto yy47;
goto yy49;
} else {
if(yych == ' ') goto yy47;
- if(yych <= '!') goto yy51;
+ if(yych <= '!') goto yy53;
goto yy37;
}
} else {
- if(yych <= ')'){
- if(yych <= '&') goto yy51;
+ if(yych <= '*'){
+ if(yych <= '&') goto yy53;
if(yych <= '\'') goto yy39;
- goto yy43;
+ if(yych <= ')') goto yy43;
+ goto yy35;
} else {
- if(yych <= '*') goto yy35;
if(yych <= '+') goto yy44;
+ if(yych <= '-') goto yy53;
if(yych <= '.') goto yy51;
goto yy33;
}
if(yych <= '@'){
if(yych <= '<'){
if(yych == ';') goto yy43;
- goto yy51;
+ goto yy53;
} else {
if(yych <= '=') goto yy43;
if(yych == '?') goto yy44;
- goto yy51;
+ goto yy53;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy45;
if(yych <= '[') goto yy41;
if(yych <= '\\') goto yy43;
- goto yy51;
+ goto yy53;
} else {
if(yych <= 'z') goto yy45;
if(yych <= '{') goto yy31;
if(yych <= '|') goto yy43;
- goto yy51;
+ goto yy53;
}
}
}
yy31: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/') goto yy32;
- if(yych <= '9') goto yy82;
+ if(yych <= '9') goto yy84;
goto yy32;
yy32:
#line 139 "scanner.re"
{ depth = 1;
goto code;
}
-#line 296 "scanner.cc"
+#line 297 "scanner.cc"
yy33: ++YYCURSOR;
- if((yych = *YYCURSOR) == '*') goto yy80;
+ if((yych = *YYCURSOR) == '*') goto yy82;
goto yy34;
yy34:
#line 169 "scanner.re"
{ RETURN(*tok); }
-#line 303 "scanner.cc"
+#line 304 "scanner.cc"
yy35: ++YYCURSOR;
- if((yych = *YYCURSOR) == '/') goto yy78;
+ if((yych = *YYCURSOR) == '/') goto yy80;
goto yy36;
yy36:
#line 171 "scanner.re"
{ yylval.op = *tok;
RETURN(CLOSE); }
-#line 311 "scanner.cc"
+#line 312 "scanner.cc"
yy37: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 0x0A) goto yy74;
+ if(yych != 0x0A) goto yy76;
goto yy38;
yy38:
#line 156 "scanner.re"
{ fatal("unterminated string constant (missing \")"); }
-#line 319 "scanner.cc"
+#line 320 "scanner.cc"
yy39: yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != 0x0A) goto yy69;
+ if(yych != 0x0A) goto yy71;
goto yy40;
yy40:
#line 157 "scanner.re"
{ fatal("unterminated string constant (missing ')"); }
-#line 327 "scanner.cc"
+#line 328 "scanner.cc"
yy41: yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
if(yych == 0x0A) goto yy42;
- if(yych == '^') goto yy60;
- goto yy58;
+ if(yych == '^') goto yy62;
+ goto yy60;
yy42:
#line 167 "scanner.re"
{ fatal("unterminated range (missing ])"); }
-#line 336 "scanner.cc"
+#line 337 "scanner.cc"
yy43: yych = *++YYCURSOR;
goto yy34;
yy44: yych = *++YYCURSOR;
goto yy36;
yy45: ++YYCURSOR;
yych = *YYCURSOR;
- goto yy56;
+ goto yy58;
yy46:
#line 186 "scanner.re"
{ cur = cursor;
yylval.symbol = Symbol::find(token());
return ID; }
-#line 349 "scanner.cc"
+#line 350 "scanner.cc"
yy47: ++YYCURSOR;
yych = *YYCURSOR;
- goto yy54;
+ goto yy56;
yy48:
#line 190 "scanner.re"
{ goto scan; }
-#line 356 "scanner.cc"
+#line 357 "scanner.cc"
yy49: ++YYCURSOR;
goto yy50;
yy50:
pos = cursor; cline++;
goto scan;
}
-#line 365 "scanner.cc"
+#line 366 "scanner.cc"
yy51: ++YYCURSOR;
goto yy52;
yy52:
#line 197 "scanner.re"
+{ cur = cursor;
+ yylval.regexp = ranToRE("[\\000-\\377]");
+ return RANGE;
+ }
+#line 375 "scanner.cc"
+yy53: ++YYCURSOR;
+ goto yy54;
+yy54:
+#line 202 "scanner.re"
{ std::cerr << "unexpected character: " << *tok << std::endl;
goto scan;
}
-#line 373 "scanner.cc"
-yy53: ++YYCURSOR;
+#line 383 "scanner.cc"
+yy55: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy54;
-yy54: if(yych == 0x09) goto yy53;
- if(yych == ' ') goto yy53;
+ goto yy56;
+yy56: if(yych == 0x09) goto yy55;
+ if(yych == ' ') goto yy55;
goto yy48;
-yy55: ++YYCURSOR;
+yy57: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy56;
-yy56: if(yych <= '@'){
+ goto yy58;
+yy58: if(yych <= '@'){
if(yych <= '/') goto yy46;
- if(yych <= '9') goto yy55;
+ if(yych <= '9') goto yy57;
goto yy46;
} else {
- if(yych <= 'Z') goto yy55;
+ if(yych <= 'Z') goto yy57;
if(yych <= '`') goto yy46;
- if(yych <= 'z') goto yy55;
+ if(yych <= 'z') goto yy57;
goto yy46;
}
-yy57: ++YYCURSOR;
+yy59: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy58;
-yy58: if(yych <= '['){
- if(yych != 0x0A) goto yy57;
- goto yy59;
+ goto yy60;
+yy60: if(yych <= '['){
+ if(yych != 0x0A) goto yy59;
+ goto yy61;
} else {
- if(yych <= '\\') goto yy62;
- if(yych <= ']') goto yy63;
- goto yy57;
+ if(yych <= '\\') goto yy64;
+ if(yych <= ']') goto yy65;
+ goto yy59;
}
-yy59: YYCURSOR = YYMARKER;
+yy61: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy32;
case 1: goto yy38;
case 2: goto yy40;
case 3: goto yy42;
}
-yy60: ++YYCURSOR;
+yy62: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy61;
-yy61: if(yych <= '['){
- if(yych == 0x0A) goto yy59;
- goto yy60;
+ goto yy63;
+yy63: if(yych <= '['){
+ if(yych == 0x0A) goto yy61;
+ goto yy62;
} else {
- if(yych <= '\\') goto yy65;
- if(yych <= ']') goto yy66;
- goto yy60;
+ if(yych <= '\\') goto yy67;
+ if(yych <= ']') goto yy68;
+ goto yy62;
}
-yy62: ++YYCURSOR;
+yy64: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy59;
- goto yy57;
-yy63: ++YYCURSOR;
- goto yy64;
-yy64:
+ if(yych == 0x0A) goto yy61;
+ goto yy59;
+yy65: ++YYCURSOR;
+ goto yy66;
+yy66:
#line 163 "scanner.re"
{ cur = cursor;
yylval.regexp = ranToRE(token());
return RANGE; }
-#line 438 "scanner.cc"
-yy65: ++YYCURSOR;
+#line 448 "scanner.cc"
+yy67: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy59;
- goto yy60;
-yy66: ++YYCURSOR;
- goto yy67;
-yy67:
+ if(yych == 0x0A) goto yy61;
+ goto yy62;
+yy68: ++YYCURSOR;
+ goto yy69;
+yy69:
#line 159 "scanner.re"
{ cur = cursor;
yylval.regexp = invToRE(token());
return RANGE; }
-#line 451 "scanner.cc"
-yy68: ++YYCURSOR;
+#line 461 "scanner.cc"
+yy70: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy69;
-yy69: if(yych <= '&'){
- if(yych == 0x0A) goto yy59;
- goto yy68;
- } else {
- if(yych <= '\'') goto yy71;
- if(yych != '\\') goto yy68;
+ goto yy71;
+yy71: if(yych <= '&'){
+ if(yych == 0x0A) goto yy61;
goto yy70;
+ } else {
+ if(yych <= '\'') goto yy73;
+ if(yych != '\\') goto yy70;
+ goto yy72;
}
-yy70: ++YYCURSOR;
+yy72: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy59;
- goto yy68;
-yy71: ++YYCURSOR;
- goto yy72;
-yy72:
+ if(yych == 0x0A) goto yy61;
+ goto yy70;
+yy73: ++YYCURSOR;
+ goto yy74;
+yy74:
#line 152 "scanner.re"
{ cur = cursor;
yylval.regexp = strToCaseInsensitiveRE(token());
return STRING; }
-#line 476 "scanner.cc"
-yy73: ++YYCURSOR;
+#line 486 "scanner.cc"
+yy75: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy74;
-yy74: if(yych <= '!'){
- if(yych == 0x0A) goto yy59;
- goto yy73;
- } else {
- if(yych <= '"') goto yy76;
- if(yych != '\\') goto yy73;
+ goto yy76;
+yy76: if(yych <= '!'){
+ if(yych == 0x0A) goto yy61;
goto yy75;
+ } else {
+ if(yych <= '"') goto yy78;
+ if(yych != '\\') goto yy75;
+ goto yy77;
}
-yy75: ++YYCURSOR;
+yy77: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy59;
- goto yy73;
-yy76: ++YYCURSOR;
- goto yy77;
-yy77:
+ if(yych == 0x0A) goto yy61;
+ goto yy75;
+yy78: ++YYCURSOR;
+ goto yy79;
+yy79:
#line 148 "scanner.re"
{ cur = cursor;
yylval.regexp = strToRE(token());
return STRING; }
-#line 501 "scanner.cc"
-yy78: ++YYCURSOR;
- goto yy79;
-yy79:
-#line 145 "scanner.re"
-{ tok = cursor;
- RETURN(0); }
-#line 508 "scanner.cc"
+#line 511 "scanner.cc"
yy80: ++YYCURSOR;
goto yy81;
yy81:
+#line 145 "scanner.re"
+{ tok = cursor;
+ RETURN(0); }
+#line 518 "scanner.cc"
+yy82: ++YYCURSOR;
+ goto yy83;
+yy83:
#line 142 "scanner.re"
{ depth = 1;
goto comment; }
-#line 515 "scanner.cc"
-yy82: ++YYCURSOR;
+#line 525 "scanner.cc"
+yy84: ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- goto yy83;
-yy83: if(yych <= '/'){
- if(yych == ',') goto yy86;
- goto yy59;
+ goto yy85;
+yy85: if(yych <= '/'){
+ if(yych == ',') goto yy88;
+ goto yy61;
} else {
- if(yych <= '9') goto yy82;
- if(yych != '}') goto yy59;
- goto yy84;
+ if(yych <= '9') goto yy84;
+ if(yych != '}') goto yy61;
+ goto yy86;
}
-yy84: ++YYCURSOR;
- goto yy85;
-yy85:
+yy86: ++YYCURSOR;
+ goto yy87;
+yy87:
#line 174 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = atoi((char *)tok+1);
RETURN(CLOSESIZE); }
-#line 535 "scanner.cc"
-yy86: yych = *++YYCURSOR;
- if(yych != '}') goto yy90;
- goto yy87;
-yy87: ++YYCURSOR;
- goto yy88;
-yy88:
+#line 545 "scanner.cc"
+yy88: yych = *++YYCURSOR;
+ if(yych != '}') goto yy92;
+ goto yy89;
+yy89: ++YYCURSOR;
+ goto yy90;
+yy90:
#line 182 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = -1;
RETURN(CLOSESIZE); }
-#line 546 "scanner.cc"
-yy89: ++YYCURSOR;
+#line 556 "scanner.cc"
+yy91: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy90;
-yy90: if(yych <= '/') goto yy59;
- if(yych <= '9') goto yy89;
- if(yych != '}') goto yy59;
- goto yy91;
-yy91: ++YYCURSOR;
goto yy92;
-yy92:
+yy92: if(yych <= '/') goto yy61;
+ if(yych <= '9') goto yy91;
+ if(yych != '}') goto yy61;
+ goto yy93;
+yy93: ++YYCURSOR;
+ goto yy94;
+yy94:
#line 178 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1));
RETURN(CLOSESIZE); }
-#line 562 "scanner.cc"
+#line 572 "scanner.cc"
}
-#line 200 "scanner.re"
+#line 205 "scanner.re"
code:
-#line 569 "scanner.cc"
+#line 579 "scanner.cc"
{
YYCTYPE yych;
unsigned int yyaccept;
- goto yy93;
+ goto yy95;
++YYCURSOR;
-yy93:
+yy95:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= '&'){
if(yych <= 0x0A){
- if(yych <= 0x09) goto yy101;
- goto yy99;
- } else {
- if(yych == '"') goto yy103;
+ if(yych <= 0x09) goto yy103;
goto yy101;
+ } else {
+ if(yych == '"') goto yy105;
+ goto yy103;
}
} else {
if(yych <= '{'){
- if(yych <= '\'') goto yy104;
- if(yych <= 'z') goto yy101;
- goto yy97;
+ if(yych <= '\'') goto yy106;
+ if(yych <= 'z') goto yy103;
+ goto yy99;
} else {
- if(yych != '}') goto yy101;
- goto yy95;
+ if(yych != '}') goto yy103;
+ goto yy97;
}
}
-yy95: ++YYCURSOR;
- goto yy96;
-yy96:
-#line 204 "scanner.re"
+yy97: ++YYCURSOR;
+ goto yy98;
+yy98:
+#line 209 "scanner.re"
{ if(--depth == 0){
cur = cursor;
yylval.token = new Token(token(), tline);
return CODE;
}
goto code; }
-#line 606 "scanner.cc"
-yy97: ++YYCURSOR;
- goto yy98;
-yy98:
-#line 210 "scanner.re"
-{ ++depth;
- goto code; }
-#line 613 "scanner.cc"
+#line 616 "scanner.cc"
yy99: ++YYCURSOR;
goto yy100;
yy100:
-#line 212 "scanner.re"
+#line 215 "scanner.re"
+{ ++depth;
+ goto code; }
+#line 623 "scanner.cc"
+yy101: ++YYCURSOR;
+ goto yy102;
+yy102:
+#line 217 "scanner.re"
{ if(cursor == eof) fatal("missing '}'");
pos = cursor; cline++;
goto code;
}
-#line 622 "scanner.cc"
-yy101: ++YYCURSOR;
- goto yy102;
-yy102:
-#line 216 "scanner.re"
+#line 632 "scanner.cc"
+yy103: ++YYCURSOR;
+ goto yy104;
+yy104:
+#line 221 "scanner.re"
{ goto code; }
-#line 628 "scanner.cc"
-yy103: yyaccept = 0;
+#line 638 "scanner.cc"
+yy105: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 0x0A) goto yy102;
- goto yy110;
-yy104: yyaccept = 0;
+ if(yych == 0x0A) goto yy104;
+ goto yy112;
+yy106: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 0x0A) goto yy102;
- goto yy106;
-yy105: ++YYCURSOR;
+ if(yych == 0x0A) goto yy104;
+ goto yy108;
+yy107: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy106;
-yy106: if(yych <= '&'){
- if(yych != 0x0A) goto yy105;
- goto yy107;
+ goto yy108;
+yy108: if(yych <= '&'){
+ if(yych != 0x0A) goto yy107;
+ goto yy109;
} else {
- if(yych <= '\'') goto yy101;
- if(yych == '\\') goto yy108;
- goto yy105;
+ if(yych <= '\'') goto yy103;
+ if(yych == '\\') goto yy110;
+ goto yy107;
}
-yy107: YYCURSOR = YYMARKER;
+yy109: YYCURSOR = YYMARKER;
switch(yyaccept){
- case 0: goto yy102;
+ case 0: goto yy104;
}
-yy108: ++YYCURSOR;
+yy110: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy107;
- goto yy105;
-yy109: ++YYCURSOR;
+ if(yych == 0x0A) goto yy109;
+ goto yy107;
+yy111: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy110;
-yy110: if(yych <= '!'){
- if(yych == 0x0A) goto yy107;
- goto yy109;
- } else {
- if(yych <= '"') goto yy101;
- if(yych != '\\') goto yy109;
+ goto yy112;
+yy112: if(yych <= '!'){
+ if(yych == 0x0A) goto yy109;
goto yy111;
+ } else {
+ if(yych <= '"') goto yy103;
+ if(yych != '\\') goto yy111;
+ goto yy113;
}
-yy111: ++YYCURSOR;
+yy113: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy107;
- goto yy109;
+ if(yych == 0x0A) goto yy109;
+ goto yy111;
}
-#line 217 "scanner.re"
+#line 222 "scanner.re"
comment:
-#line 681 "scanner.cc"
+#line 691 "scanner.cc"
{
YYCTYPE yych;
- goto yy112;
+ goto yy114;
++YYCURSOR;
-yy112:
+yy114:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= ')'){
- if(yych == 0x0A) goto yy117;
- goto yy119;
+ if(yych == 0x0A) goto yy119;
+ goto yy121;
} else {
- if(yych <= '*') goto yy114;
- if(yych == '/') goto yy116;
- goto yy119;
+ if(yych <= '*') goto yy116;
+ if(yych == '/') goto yy118;
+ goto yy121;
}
-yy114: ++YYCURSOR;
- if((yych = *YYCURSOR) == '/') goto yy122;
- goto yy115;
-yy115:
-#line 231 "scanner.re"
+yy116: ++YYCURSOR;
+ if((yych = *YYCURSOR) == '/') goto yy124;
+ goto yy117;
+yy117:
+#line 236 "scanner.re"
{ goto comment; }
-#line 703 "scanner.cc"
-yy116: yych = *++YYCURSOR;
- if(yych == '*') goto yy120;
- goto yy115;
-yy117: ++YYCURSOR;
- goto yy118;
-yy118:
-#line 227 "scanner.re"
+#line 713 "scanner.cc"
+yy118: yych = *++YYCURSOR;
+ if(yych == '*') goto yy122;
+ goto yy117;
+yy119: ++YYCURSOR;
+ goto yy120;
+yy120:
+#line 232 "scanner.re"
{ if(cursor == eof) RETURN(0);
tok = pos = cursor; cline++;
goto comment;
}
-#line 715 "scanner.cc"
-yy119: yych = *++YYCURSOR;
- goto yy115;
-yy120: ++YYCURSOR;
- goto yy121;
-yy121:
-#line 225 "scanner.re"
-{ ++depth;
- goto comment; }
-#line 724 "scanner.cc"
+#line 725 "scanner.cc"
+yy121: yych = *++YYCURSOR;
+ goto yy117;
yy122: ++YYCURSOR;
goto yy123;
yy123:
-#line 221 "scanner.re"
+#line 230 "scanner.re"
+{ ++depth;
+ goto comment; }
+#line 734 "scanner.cc"
+yy124: ++YYCURSOR;
+ goto yy125;
+yy125:
+#line 226 "scanner.re"
{ if(--depth == 0)
goto scan;
else
goto comment; }
-#line 733 "scanner.cc"
+#line 743 "scanner.cc"
}
-#line 232 "scanner.re"
+#line 237 "scanner.re"
}