-/* Generated by re2c 0.11.0.dev on Sat Jul 29 22:25:10 2006 */
+/* Generated by re2c 0.11.3.dev on Wed Mar 28 16:04:07 2007 */
#line 1 "scanner.re"
/* $Id$ */
#include <stdlib.h>
goto value;
}
{
- static unsigned char yybm[] = {
+ static const unsigned char yybm[] = {
112, 112, 112, 112, 112, 112, 112, 112,
- 112, 114, 0, 112, 112, 112, 112, 112,
+ 112, 116, 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,
+ 116, 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,
+ 248, 248, 248, 248, 248, 248, 248, 248,
+ 248, 248, 112, 112, 112, 112, 112, 112,
+ 112, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 112, 0, 96, 112, 120,
+ 112, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 120, 120, 120, 120, 120,
+ 120, 120, 120, 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,
unsigned int yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
yych = *YYCURSOR;
- if(yych <= '/') {
- if(yych <= '!') {
+ 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;
+ if(yych <= 0x1F) {
+ if(yych <= 0x0D) goto yy83;
+ goto yy85;
+ } else {
+ if(yych <= ' ') goto yy79;
+ if(yych <= '!') goto yy85;
+ goto yy66;
+ }
}
} else {
- if(yych <= ')') {
- if(yych <= '"') goto yy66;
+ if(yych <= '*') {
if(yych <= '&') goto yy85;
if(yych <= '\'') goto yy68;
- goto yy72;
+ if(yych <= ')') goto yy72;
+ goto yy64;
} else {
- if(yych <= '+') {
- if(yych <= '*') goto yy64;
- goto yy73;
+ if(yych <= '-') {
+ if(yych <= '+') goto yy73;
+ goto yy85;
} else {
- if(yych <= '-') goto yy85;
if(yych <= '.') goto yy77;
- goto yy62;
+ if(yych <= '/') goto yy62;
+ goto yy85;
}
}
}
} else {
- if(yych <= 'Z') {
- if(yych <= '=') {
- if(yych == ';') goto yy72;
- if(yych <= '<') goto yy85;
- goto yy72;
+ if(yych <= '\\') {
+ if(yych <= '>') {
+ if(yych == '<') goto yy85;
+ if(yych <= '=') goto yy72;
+ goto yy85;
} else {
- if(yych == '?') goto yy73;
- if(yych <= '@') goto yy85;
- goto yy76;
+ if(yych <= '@') {
+ if(yych <= '?') goto yy73;
+ goto yy85;
+ } else {
+ if(yych <= 'Z') goto yy76;
+ if(yych <= '[') goto yy70;
+ goto yy72;
+ }
}
} else {
if(yych <= 'q') {
- if(yych <= '[') goto yy70;
- if(yych <= '\\') goto yy72;
+ if(yych == '_') goto yy76;
if(yych <= '`') goto yy85;
goto yy76;
} else {
{ depth = 1;
goto code;
}
-#line 467 "scanner.cc"
+#line 476 "scanner.cc"
yy62:
++YYCURSOR;
if((yych = *YYCURSOR) == '*') goto yy121;
yy63:
#line 239 "scanner.re"
{ RETURN(*tok); }
-#line 474 "scanner.cc"
+#line 483 "scanner.cc"
yy64:
++YYCURSOR;
if((yych = *YYCURSOR) == '/') goto yy119;
#line 241 "scanner.re"
{ yylval.op = *tok;
RETURN(CLOSE); }
-#line 482 "scanner.cc"
+#line 491 "scanner.cc"
yy66:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
yy67:
#line 226 "scanner.re"
{ fatal("unterminated string constant (missing \")"); }
-#line 490 "scanner.cc"
+#line 499 "scanner.cc"
yy68:
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
yy69:
#line 227 "scanner.re"
{ fatal("unterminated string constant (missing ')"); }
-#line 498 "scanner.cc"
+#line 507 "scanner.cc"
yy70:
yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
yy71:
#line 237 "scanner.re"
{ fatal("unterminated range (missing ])"); }
-#line 508 "scanner.cc"
+#line 517 "scanner.cc"
yy72:
yych = *++YYCURSOR;
goto yy63;
{ cur = cursor;
yylval.symbol = Symbol::find(token());
return ID; }
-#line 524 "scanner.cc"
+#line 533 "scanner.cc"
yy76:
yych = *++YYCURSOR;
goto yy90;
yylval.regexp = mkDot();
return RANGE;
}
-#line 535 "scanner.cc"
+#line 544 "scanner.cc"
yy79:
++YYCURSOR;
yych = *YYCURSOR;
yy80:
#line 277 "scanner.re"
{ goto scan; }
-#line 543 "scanner.cc"
+#line 552 "scanner.cc"
yy81:
++YYCURSOR;
yy82:
pos = cursor; cline++;
goto scan;
}
-#line 552 "scanner.cc"
+#line 561 "scanner.cc"
yy83:
++YYCURSOR;
if((yych = *YYCURSOR) == 0x0A) goto yy86;
fatal(msg.str().c_str());
goto scan;
}
-#line 564 "scanner.cc"
+#line 573 "scanner.cc"
yy85:
yych = *++YYCURSOR;
goto yy84;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy88:
- if(yybm[0+yych] & 2) {
+ if(yybm[0+yych] & 4) {
goto yy87;
}
goto yy80;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy90:
- if(yybm[0+yych] & 4) {
+ if(yybm[0+yych] & 8) {
goto yy89;
}
goto yy75;
++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;
+ if(yych <= '^') {
+ if(yych <= '@') goto yy95;
+ if(yych <= 'Z') goto yy96;
+ } else {
+ if(yych == '`') goto yy95;
+ if(yych <= 'z') goto yy96;
+ }
yy95:
YYCURSOR = YYMARKER;
if(yyaccept <= 3) {
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yybm[0+yych] & 8) {
- goto yy96;
+ if(yych <= 'Z') {
+ if(yych <= '9') {
+ if(yych >= '0') goto yy96;
+ } else {
+ if(yych <= ':') goto yy94;
+ if(yych >= 'A') 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;
yylval.str = new Str(token());
return CONFIG;
}
-#line 649 "scanner.cc"
+#line 672 "scanner.cc"
yy99:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = ranToRE(token());
return RANGE; }
-#line 685 "scanner.cc"
+#line 708 "scanner.cc"
yy106:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = invToRE(token());
return RANGE; }
-#line 698 "scanner.cc"
+#line 721 "scanner.cc"
yy109:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = strToCaseInsensitiveRE(token());
return STRING; }
-#line 720 "scanner.cc"
+#line 743 "scanner.cc"
yy114:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = strToRE(token());
return STRING; }
-#line 742 "scanner.cc"
+#line 765 "scanner.cc"
yy119:
++YYCURSOR;
#line 215 "scanner.re"
{ tok = cursor;
RETURN(0); }
-#line 748 "scanner.cc"
+#line 771 "scanner.cc"
yy121:
++YYCURSOR;
#line 212 "scanner.re"
{ depth = 1;
goto comment; }
-#line 754 "scanner.cc"
+#line 777 "scanner.cc"
yy123:
yych = *++YYCURSOR;
if(yych == ',') goto yy137;
yy127:
#line 259 "scanner.re"
{ fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); }
-#line 775 "scanner.cc"
+#line 798 "scanner.cc"
yy128:
++YYCURSOR;
#line 247 "scanner.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = atoi((char *)tok+1);
RETURN(CLOSESIZE); }
-#line 782 "scanner.cc"
+#line 805 "scanner.cc"
yy130:
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = -1;
RETURN(CLOSESIZE); }
-#line 794 "scanner.cc"
+#line 817 "scanner.cc"
yy133:
++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 807 "scanner.cc"
+#line 830 "scanner.cc"
yy137:
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
#line 244 "scanner.re"
{ yylval.op = '*';
RETURN(CLOSE); }
-#line 818 "scanner.cc"
+#line 841 "scanner.cc"
}
}
#line 290 "scanner.re"
code:
{
- static unsigned char yybm[] = {
+ static const 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,
};
-#line 861 "scanner.cc"
+#line 884 "scanner.cc"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
return CODE;
}
goto code; }
-#line 892 "scanner.cc"
+#line 915 "scanner.cc"
yy144:
++YYCURSOR;
#line 300 "scanner.re"
{ ++depth;
goto code; }
-#line 898 "scanner.cc"
+#line 921 "scanner.cc"
yy146:
++YYCURSOR;
#line 302 "scanner.re"
pos = cursor; cline++;
goto code;
}
-#line 906 "scanner.cc"
+#line 929 "scanner.cc"
yy148:
++YYCURSOR;
#line 306 "scanner.re"
}
goto code;
}
-#line 916 "scanner.cc"
+#line 939 "scanner.cc"
yy150:
++YYCURSOR;
yy151:
#line 312 "scanner.re"
{ goto code; }
-#line 922 "scanner.cc"
+#line 945 "scanner.cc"
yy152:
yych = *(YYMARKER = ++YYCURSOR);
if(yych == 0x0A) goto yy151;
comment:
{
-#line 974 "scanner.cc"
+#line 997 "scanner.cc"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
#line 328 "scanner.re"
{ if(cursor == eof) RETURN(0);
goto comment; }
-#line 994 "scanner.cc"
+#line 1017 "scanner.cc"
yy165:
yych = *++YYCURSOR;
if(yych == '*') goto yy169;
tok = pos = cursor; cline++;
goto comment;
}
-#line 1006 "scanner.cc"
+#line 1029 "scanner.cc"
yy168:
yych = *++YYCURSOR;
goto yy164;
{ ++depth;
fatal("ambiguous /* found");
goto comment; }
-#line 1016 "scanner.cc"
+#line 1039 "scanner.cc"
yy171:
++YYCURSOR;
#line 317 "scanner.re"
goto scan;
else
goto comment; }
-#line 1024 "scanner.cc"
+#line 1047 "scanner.cc"
}
}
#line 330 "scanner.re"
config:
{
- static unsigned char yybm[] = {
+ static const 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,
};
-#line 1067 "scanner.cc"
+#line 1090 "scanner.cc"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yy176:
#line 334 "scanner.re"
{ goto config; }
-#line 1086 "scanner.cc"
+#line 1109 "scanner.cc"
yy177:
++YYCURSOR;
yych = *YYCURSOR;
cur = cursor;
RETURN('=');
}
-#line 1097 "scanner.cc"
+#line 1120 "scanner.cc"
yy179:
++YYCURSOR;
#line 339 "scanner.re"
{ fatal("missing '='"); }
-#line 1102 "scanner.cc"
+#line 1125 "scanner.cc"
yy181:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
value:
{
- static unsigned char yybm[] = {
+ static const 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,
};
-#line 1162 "scanner.cc"
+#line 1185 "scanner.cc"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
iscfg = 0;
return VALUE;
}
-#line 1201 "scanner.cc"
+#line 1224 "scanner.cc"
yy188:
++YYCURSOR;
if(yybm[0+(yych = *YYCURSOR)] & 8) {
iscfg = 0;
return NUMBER;
}
-#line 1214 "scanner.cc"
+#line 1237 "scanner.cc"
yy190:
yych = *++YYCURSOR;
if(yych <= '0') goto yy194;