-/* Generated by re2c 0.10.0.dev on Sun Jan 1 19:19:49 2006 */
+/* Generated by re2c 0.10.0.dev on Sun Jan 1 19:37:31 2006 */
#line 1 "scanner.re"
/* $Id$ */
#include <stdlib.h>
} else {
if(yych == '?') goto yy44;
if(yych <= '@') goto yy56;
- goto yy45;
+ goto yy47;
}
} else {
if(yych <= 'q') {
if(yych <= '[') goto yy41;
if(yych <= '\\') goto yy43;
if(yych <= '`') goto yy56;
- goto yy45;
+ goto yy47;
} else {
if(yych <= 'z') {
- if(yych <= 'r') goto yy47;
- goto yy45;
+ if(yych <= 'r') goto yy45;
+ goto yy47;
} else {
if(yych <= '{') goto yy31;
if(yych <= '|') goto yy43;
goto yy36;
yy45:
++YYCURSOR;
- yych = *YYCURSOR;
- goto yy62;
+ if((yych = *YYCURSOR) == 'e') goto yy62;
+ goto yy61;
yy46:
-#line 213 "scanner.re"
+#line 220 "scanner.re"
{ cur = cursor;
yylval.symbol = Symbol::find(token());
return ID; }
#line 410 "scanner.cc"
yy47:
yych = *++YYCURSOR;
- if(yych == 'e') goto yy60;
- goto yy62;
+ goto yy61;
yy48:
++YYCURSOR;
goto yy49;
yylval.regexp = mkDot();
return RANGE;
}
-#line 424 "scanner.cc"
+#line 423 "scanner.cc"
yy50:
++YYCURSOR;
yych = *YYCURSOR;
yy51:
#line 229 "scanner.re"
{ goto scan; }
-#line 432 "scanner.cc"
+#line 431 "scanner.cc"
yy52:
++YYCURSOR;
goto yy53;
pos = cursor; cline++;
goto scan;
}
-#line 442 "scanner.cc"
+#line 441 "scanner.cc"
yy54:
++YYCURSOR;
if((yych = *YYCURSOR) == 0x0A) goto yy57;
}
goto scan;
}
-#line 461 "scanner.cc"
+#line 460 "scanner.cc"
yy56:
yych = *++YYCURSOR;
goto yy55;
if(yych == ' ') goto yy58;
goto yy51;
yy60:
- yych = *++YYCURSOR;
- if(yych == '2') goto yy63;
- goto yy62;
-yy61:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy62;
-yy62:
+ goto yy61;
+yy61:
if(yych <= '@') {
if(yych <= '/') goto yy46;
- if(yych <= '9') goto yy61;
+ if(yych <= '9') goto yy60;
goto yy46;
} else {
- if(yych <= 'Z') goto yy61;
+ if(yych <= 'Z') goto yy60;
if(yych <= '`') goto yy46;
- if(yych <= 'z') goto yy61;
+ if(yych <= 'z') goto yy60;
goto yy46;
}
+yy62:
+ yych = *++YYCURSOR;
+ if(yych != '2') goto yy61;
+ goto yy63;
yy63:
yych = *++YYCURSOR;
- if(yych != 'c') goto yy62;
+ if(yych != 'c') goto yy61;
goto yy64;
yy64:
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != ':') goto yy62;
+ if(yych != ':') goto yy61;
goto yy65;
yy65:
yych = *++YYCURSOR;
}
}
yy69:
-#line 217 "scanner.re"
+#line 213 "scanner.re"
{ cur = cursor;
tok+= 5; /* skip "re2c:" */
iscfg = 1;
yylval.str = new Str(token());
return CONFIG;
}
-#line 552 "scanner.cc"
+#line 551 "scanner.cc"
yy70:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = ranToRE(token());
return RANGE; }
-#line 595 "scanner.cc"
+#line 594 "scanner.cc"
yy77:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = invToRE(token());
return RANGE; }
-#line 610 "scanner.cc"
+#line 609 "scanner.cc"
yy80:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = strToCaseInsensitiveRE(token());
return STRING; }
-#line 639 "scanner.cc"
+#line 638 "scanner.cc"
yy85:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = strToRE(token());
return STRING; }
-#line 668 "scanner.cc"
+#line 667 "scanner.cc"
yy90:
++YYCURSOR;
goto yy91;
#line 167 "scanner.re"
{ tok = cursor;
RETURN(0); }
-#line 676 "scanner.cc"
+#line 675 "scanner.cc"
yy92:
++YYCURSOR;
goto yy93;
#line 164 "scanner.re"
{ depth = 1;
goto comment; }
-#line 684 "scanner.cc"
+#line 683 "scanner.cc"
yy94:
yych = *++YYCURSOR;
if(yych == ',') goto yy108;
yy98:
#line 211 "scanner.re"
{ fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); }
-#line 709 "scanner.cc"
+#line 708 "scanner.cc"
yy99:
++YYCURSOR;
goto yy100;
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = atoi((char *)tok+1);
RETURN(CLOSESIZE); }
-#line 718 "scanner.cc"
+#line 717 "scanner.cc"
yy101:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = -1;
RETURN(CLOSESIZE); }
-#line 734 "scanner.cc"
+#line 733 "scanner.cc"
yy104:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1));
RETURN(CLOSESIZE); }
-#line 753 "scanner.cc"
+#line 752 "scanner.cc"
yy108:
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
#line 196 "scanner.re"
{ yylval.op = '*';
RETURN(CLOSE); }
-#line 768 "scanner.cc"
+#line 767 "scanner.cc"
}
#line 248 "scanner.re"
code:
-#line 775 "scanner.cc"
+#line 774 "scanner.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
return CODE;
}
goto code; }
-#line 813 "scanner.cc"
+#line 812 "scanner.cc"
yy115:
++YYCURSOR;
goto yy116;
#line 258 "scanner.re"
{ ++depth;
goto code; }
-#line 821 "scanner.cc"
+#line 820 "scanner.cc"
yy117:
++YYCURSOR;
goto yy118;
pos = cursor; cline++;
goto code;
}
-#line 831 "scanner.cc"
+#line 830 "scanner.cc"
yy119:
++YYCURSOR;
goto yy120;
yy120:
#line 264 "scanner.re"
{ goto code; }
-#line 838 "scanner.cc"
+#line 837 "scanner.cc"
yy121:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
comment:
-#line 900 "scanner.cc"
+#line 899 "scanner.cc"
{
YYCTYPE yych;
goto yy130;
yy133:
#line 280 "scanner.re"
{ goto comment; }
-#line 923 "scanner.cc"
+#line 922 "scanner.cc"
yy134:
yych = *++YYCURSOR;
if(yych == '*') goto yy138;
tok = pos = cursor; cline++;
goto comment;
}
-#line 937 "scanner.cc"
+#line 936 "scanner.cc"
yy137:
yych = *++YYCURSOR;
goto yy133;
{ ++depth;
fatal("ambiguous /* found");
goto comment; }
-#line 949 "scanner.cc"
+#line 948 "scanner.cc"
yy140:
++YYCURSOR;
goto yy141;
goto scan;
else
goto comment; }
-#line 959 "scanner.cc"
+#line 958 "scanner.cc"
}
#line 281 "scanner.re"
config:
-#line 966 "scanner.cc"
+#line 965 "scanner.cc"
{
YYCTYPE yych;
goto yy142;
yy145:
#line 285 "scanner.re"
{ goto config; }
-#line 989 "scanner.cc"
+#line 988 "scanner.cc"
yy146:
++YYCURSOR;
yych = *YYCURSOR;
cur = cursor;
RETURN('=');
}
-#line 1000 "scanner.cc"
+#line 999 "scanner.cc"
yy148:
++YYCURSOR;
goto yy149;
yy149:
#line 290 "scanner.re"
{ fatal("missing '='"); }
-#line 1007 "scanner.cc"
+#line 1006 "scanner.cc"
yy150:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
value:
-#line 1032 "scanner.cc"
+#line 1031 "scanner.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
iscfg = 0;
return VALUE;
}
-#line 1078 "scanner.cc"
+#line 1077 "scanner.cc"
yy157:
++YYCURSOR;
if((yych = *YYCURSOR) <= 0x0D) {
iscfg = 0;
return NUMBER;
}
-#line 1102 "scanner.cc"
+#line 1101 "scanner.cc"
yy159:
yych = *++YYCURSOR;
if(yych <= '0') goto yy163;