-/* Generated by re2c 0.9.11.dev on Thu Oct 27 20:29:19 2005 */
+/* Generated by re2c 0.9.12.dev on Tue Dec 27 23:51:46 2005 */
#line 1 "scanner.re"
/* $Id$ */
#include <stdlib.h>
goto yy29;
++YYCURSOR;
yy29:
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
yych = *YYCURSOR;
if(yych <= '/'){
if(yych <= '"'){
yy31: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/') goto yy32;
- if(yych <= '9') goto yy84;
+ if(yych <= '0') goto yy84;
+ if(yych <= '9') goto yy85;
goto yy32;
yy32:
#line 139 "scanner.re"
{ depth = 1;
goto code;
}
-#line 297 "scanner.cc"
+#line 298 "scanner.cc"
yy33: ++YYCURSOR;
if((yych = *YYCURSOR) == '*') goto yy82;
goto yy34;
yy34:
#line 169 "scanner.re"
{ RETURN(*tok); }
-#line 304 "scanner.cc"
+#line 305 "scanner.cc"
yy35: ++YYCURSOR;
if((yych = *YYCURSOR) == '/') goto yy80;
goto yy36;
#line 171 "scanner.re"
{ yylval.op = *tok;
RETURN(CLOSE); }
-#line 312 "scanner.cc"
+#line 313 "scanner.cc"
yy37: yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if(yych != 0x0A) goto yy76;
yy38:
#line 156 "scanner.re"
{ fatal("unterminated string constant (missing \")"); }
-#line 320 "scanner.cc"
+#line 321 "scanner.cc"
yy39: yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
if(yych != 0x0A) goto yy71;
yy40:
#line 157 "scanner.re"
{ fatal("unterminated string constant (missing ')"); }
-#line 328 "scanner.cc"
+#line 329 "scanner.cc"
yy41: yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
if(yych == 0x0A) goto yy42;
yy42:
#line 167 "scanner.re"
{ fatal("unterminated range (missing ])"); }
-#line 337 "scanner.cc"
+#line 338 "scanner.cc"
yy43: yych = *++YYCURSOR;
goto yy34;
yy44: yych = *++YYCURSOR;
yych = *YYCURSOR;
goto yy58;
yy46:
-#line 186 "scanner.re"
+#line 189 "scanner.re"
{ cur = cursor;
yylval.symbol = Symbol::find(token());
return ID; }
-#line 350 "scanner.cc"
+#line 351 "scanner.cc"
yy47: ++YYCURSOR;
goto yy48;
yy48:
-#line 190 "scanner.re"
+#line 193 "scanner.re"
{ cur = cursor;
yylval.regexp = mkDot();
return RANGE;
}
-#line 359 "scanner.cc"
+#line 360 "scanner.cc"
yy49: ++YYCURSOR;
yych = *YYCURSOR;
goto yy56;
yy50:
-#line 195 "scanner.re"
+#line 198 "scanner.re"
{ goto scan; }
-#line 366 "scanner.cc"
+#line 367 "scanner.cc"
yy51: ++YYCURSOR;
goto yy52;
yy52:
-#line 197 "scanner.re"
+#line 200 "scanner.re"
{ if(cursor == eof) RETURN(0);
pos = cursor; cline++;
goto scan;
}
-#line 375 "scanner.cc"
+#line 376 "scanner.cc"
yy53: ++YYCURSOR;
goto yy54;
yy54:
-#line 202 "scanner.re"
+#line 205 "scanner.re"
{ std::cerr << "unexpected character: " << *tok << std::endl;
goto scan;
}
-#line 383 "scanner.cc"
+#line 384 "scanner.cc"
yy55: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
{ cur = cursor;
yylval.regexp = ranToRE(token());
return RANGE; }
-#line 448 "scanner.cc"
+#line 449 "scanner.cc"
yy67: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
{ cur = cursor;
yylval.regexp = invToRE(token());
return RANGE; }
-#line 461 "scanner.cc"
+#line 462 "scanner.cc"
yy70: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
{ cur = cursor;
yylval.regexp = strToCaseInsensitiveRE(token());
return STRING; }
-#line 486 "scanner.cc"
+#line 487 "scanner.cc"
yy75: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
{ cur = cursor;
yylval.regexp = strToRE(token());
return STRING; }
-#line 511 "scanner.cc"
+#line 512 "scanner.cc"
yy80: ++YYCURSOR;
goto yy81;
yy81:
#line 145 "scanner.re"
{ tok = cursor;
RETURN(0); }
-#line 518 "scanner.cc"
+#line 519 "scanner.cc"
yy82: ++YYCURSOR;
goto yy83;
yy83:
#line 142 "scanner.re"
{ depth = 1;
goto comment; }
-#line 525 "scanner.cc"
-yy84: ++YYCURSOR;
+#line 526 "scanner.cc"
+yy84: yych = *++YYCURSOR;
+ if(yych == ',') goto yy96;
+ goto yy86;
+yy85: ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- goto yy85;
-yy85: if(yych <= '/'){
- if(yych == ',') goto yy88;
+ goto yy86;
+yy86: if(yych <= '/'){
+ if(yych == ',') goto yy89;
goto yy61;
} else {
- if(yych <= '9') goto yy84;
+ if(yych <= '9') goto yy85;
if(yych != '}') goto yy61;
- goto yy86;
+ goto yy87;
}
-yy86: ++YYCURSOR;
- goto yy87;
-yy87:
-#line 174 "scanner.re"
+yy87: ++YYCURSOR;
+ goto yy88;
+yy88:
+#line 177 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = atoi((char *)tok+1);
RETURN(CLOSESIZE); }
-#line 545 "scanner.cc"
-yy88: yych = *++YYCURSOR;
- if(yych != '}') goto yy92;
- goto yy89;
-yy89: ++YYCURSOR;
+#line 549 "scanner.cc"
+yy89: yych = *++YYCURSOR;
+ if(yych != '}') goto yy93;
goto yy90;
-yy90:
-#line 182 "scanner.re"
+yy90: ++YYCURSOR;
+ goto yy91;
+yy91:
+#line 185 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = -1;
RETURN(CLOSESIZE); }
-#line 556 "scanner.cc"
-yy91: ++YYCURSOR;
+#line 560 "scanner.cc"
+yy92: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy92;
-yy92: if(yych <= '/') goto yy61;
- if(yych <= '9') goto yy91;
- if(yych != '}') goto yy61;
goto yy93;
-yy93: ++YYCURSOR;
+yy93: if(yych <= '/') goto yy61;
+ if(yych <= '9') goto yy92;
+ if(yych != '}') goto yy61;
goto yy94;
-yy94:
-#line 178 "scanner.re"
+yy94: ++YYCURSOR;
+ goto yy95;
+yy95:
+#line 181 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1));
RETURN(CLOSESIZE); }
-#line 572 "scanner.cc"
+#line 576 "scanner.cc"
+yy96: yych = *++YYCURSOR;
+ if(yych != '}') goto yy93;
+ goto yy97;
+yy97: ++YYCURSOR;
+ goto yy98;
+yy98:
+#line 174 "scanner.re"
+{ yylval.op = '*';
+ RETURN(CLOSE); }
+#line 586 "scanner.cc"
}
-#line 205 "scanner.re"
+#line 208 "scanner.re"
code:
-#line 579 "scanner.cc"
+#line 593 "scanner.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
- goto yy95;
+ goto yy99;
++YYCURSOR;
-yy95:
+yy99:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= '&'){
if(yych <= 0x0A){
- if(yych <= 0x09) goto yy103;
- goto yy101;
+ if(yych <= 0x09) goto yy107;
+ goto yy105;
} else {
- if(yych == '"') goto yy105;
- goto yy103;
+ if(yych == '"') goto yy109;
+ goto yy107;
}
} else {
if(yych <= '{'){
- if(yych <= '\'') goto yy106;
- if(yych <= 'z') goto yy103;
- goto yy99;
+ if(yych <= '\'') goto yy110;
+ if(yych <= 'z') goto yy107;
+ goto yy103;
} else {
- if(yych != '}') goto yy103;
- goto yy97;
+ if(yych != '}') goto yy107;
+ goto yy101;
}
}
-yy97: ++YYCURSOR;
- goto yy98;
-yy98:
-#line 209 "scanner.re"
+yy101: ++YYCURSOR;
+ goto yy102;
+yy102:
+#line 212 "scanner.re"
{ if(--depth == 0){
cur = cursor;
yylval.token = new Token(token(), tline);
return CODE;
}
goto code; }
-#line 616 "scanner.cc"
-yy99: ++YYCURSOR;
- goto yy100;
-yy100:
-#line 215 "scanner.re"
+#line 630 "scanner.cc"
+yy103: ++YYCURSOR;
+ goto yy104;
+yy104:
+#line 218 "scanner.re"
{ ++depth;
goto code; }
-#line 623 "scanner.cc"
-yy101: ++YYCURSOR;
- goto yy102;
-yy102:
-#line 217 "scanner.re"
+#line 637 "scanner.cc"
+yy105: ++YYCURSOR;
+ goto yy106;
+yy106:
+#line 220 "scanner.re"
{ if(cursor == eof) fatal("missing '}'");
pos = cursor; cline++;
goto code;
}
-#line 632 "scanner.cc"
-yy103: ++YYCURSOR;
- goto yy104;
-yy104:
-#line 221 "scanner.re"
+#line 646 "scanner.cc"
+yy107: ++YYCURSOR;
+ goto yy108;
+yy108:
+#line 224 "scanner.re"
{ goto code; }
-#line 638 "scanner.cc"
-yy105: yyaccept = 0;
+#line 652 "scanner.cc"
+yy109: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 0x0A) goto yy104;
- goto yy112;
-yy106: yyaccept = 0;
+ if(yych == 0x0A) goto yy108;
+ goto yy116;
+yy110: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 0x0A) goto yy104;
- goto yy108;
-yy107: ++YYCURSOR;
+ if(yych == 0x0A) goto yy108;
+ goto yy112;
+yy111: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy108;
-yy108: if(yych <= '&'){
- if(yych != 0x0A) goto yy107;
- goto yy109;
+ goto yy112;
+yy112: if(yych <= '&'){
+ if(yych != 0x0A) goto yy111;
+ goto yy113;
} else {
- if(yych <= '\'') goto yy103;
- if(yych == '\\') goto yy110;
- goto yy107;
+ if(yych <= '\'') goto yy107;
+ if(yych == '\\') goto yy114;
+ goto yy111;
}
-yy109: YYCURSOR = YYMARKER;
+yy113: YYCURSOR = YYMARKER;
switch(yyaccept){
- case 0: goto yy104;
+ case 0: goto yy108;
}
-yy110: ++YYCURSOR;
+yy114: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy109;
- goto yy107;
-yy111: ++YYCURSOR;
+ if(yych == 0x0A) goto yy113;
+ goto yy111;
+yy115: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy112;
-yy112: if(yych <= '!'){
- if(yych == 0x0A) goto yy109;
- goto yy111;
+ goto yy116;
+yy116: if(yych <= '!'){
+ if(yych == 0x0A) goto yy113;
+ goto yy115;
} else {
- if(yych <= '"') goto yy103;
- if(yych != '\\') goto yy111;
- goto yy113;
+ if(yych <= '"') goto yy107;
+ if(yych != '\\') goto yy115;
+ goto yy117;
}
-yy113: ++YYCURSOR;
+yy117: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yych == 0x0A) goto yy109;
- goto yy111;
+ if(yych == 0x0A) goto yy113;
+ goto yy115;
}
-#line 222 "scanner.re"
+#line 225 "scanner.re"
comment:
-#line 691 "scanner.cc"
+#line 705 "scanner.cc"
{
YYCTYPE yych;
- goto yy114;
+ goto yy118;
++YYCURSOR;
-yy114:
+yy118:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yych <= ')'){
- if(yych == 0x0A) goto yy119;
- goto yy121;
+ if(yych == 0x0A) goto yy123;
+ goto yy125;
} else {
- if(yych <= '*') goto yy116;
- if(yych == '/') goto yy118;
- goto yy121;
+ if(yych <= '*') goto yy120;
+ if(yych == '/') goto yy122;
+ goto yy125;
}
-yy116: ++YYCURSOR;
- if((yych = *YYCURSOR) == '/') goto yy124;
- goto yy117;
-yy117:
-#line 236 "scanner.re"
+yy120: ++YYCURSOR;
+ if((yych = *YYCURSOR) == '/') goto yy128;
+ goto yy121;
+yy121:
+#line 239 "scanner.re"
{ goto comment; }
-#line 713 "scanner.cc"
-yy118: yych = *++YYCURSOR;
- if(yych == '*') goto yy122;
- goto yy117;
-yy119: ++YYCURSOR;
- goto yy120;
-yy120:
-#line 232 "scanner.re"
+#line 727 "scanner.cc"
+yy122: yych = *++YYCURSOR;
+ if(yych == '*') goto yy126;
+ goto yy121;
+yy123: ++YYCURSOR;
+ goto yy124;
+yy124:
+#line 235 "scanner.re"
{ if(cursor == eof) RETURN(0);
tok = pos = cursor; cline++;
goto comment;
}
-#line 725 "scanner.cc"
-yy121: yych = *++YYCURSOR;
- goto yy117;
-yy122: ++YYCURSOR;
- goto yy123;
-yy123:
-#line 230 "scanner.re"
+#line 739 "scanner.cc"
+yy125: yych = *++YYCURSOR;
+ goto yy121;
+yy126: ++YYCURSOR;
+ goto yy127;
+yy127:
+#line 233 "scanner.re"
{ ++depth;
goto comment; }
-#line 734 "scanner.cc"
-yy124: ++YYCURSOR;
- goto yy125;
-yy125:
-#line 226 "scanner.re"
+#line 748 "scanner.cc"
+yy128: ++YYCURSOR;
+ goto yy129;
+yy129:
+#line 229 "scanner.re"
{ if(--depth == 0)
goto scan;
else
goto comment; }
-#line 743 "scanner.cc"
+#line 757 "scanner.cc"
}
-#line 237 "scanner.re"
+#line 240 "scanner.re"
}