-/* Generated by re2c 0.10.2.dev on Sun Apr 16 20:12:14 2006 */
+/* Generated by re2c 0.11.0.dev on Mon Jun 5 18:17:13 2006 */
#line 1 "scanner.re"
/* $Id$ */
#include <stdlib.h>
if(yych == 0x0A) goto yy14;
yy13:
YYCURSOR = YYMARKER;
- switch(yyaccept) {
- case 1: goto yy11;
- case 0: goto yy3;
+ if(yyaccept <= 0) {
+ goto yy3;
+ } else {
+ goto yy11;
}
yy14:
++YYCURSOR;
tok = pos = cursor;
goto echo;
}
-#line 200 "scanner.cc"
+#line 201 "scanner.cc"
yy16:
yych = *++YYCURSOR;
if(yych != '!') goto yy13;
yych = *++YYCURSOR;
- switch(yych){
+ switch(yych) {
case 'g': goto yy19;
case 'i': goto yy18;
case 'm': goto yy20;
tok = cursor;
RETURN(1);
}
-#line 241 "scanner.cc"
+#line 242 "scanner.cc"
yy26:
yych = *++YYCURSOR;
if(yych != 'x') goto yy13;
bUsedYYMaxFill = true;
goto echo;
}
-#line 267 "scanner.cc"
+#line 268 "scanner.cc"
yy34:
yych = *++YYCURSOR;
if(yych != 't') goto yy13;
ignore_eoc = true;
goto echo;
}
-#line 299 "scanner.cc"
+#line 300 "scanner.cc"
yy47:
yych = *++YYCURSOR;
if(yych != 'n') goto yy13;
ignore_eoc = true;
goto echo;
}
-#line 326 "scanner.cc"
+#line 327 "scanner.cc"
}
#line 187 "scanner.re"
goto value;
}
-#line 351 "scanner.cc"
+#line 352 "scanner.cc"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
{ depth = 1;
goto code;
}
-#line 429 "scanner.cc"
+#line 430 "scanner.cc"
yy62:
++YYCURSOR;
if((yych = *YYCURSOR) == '*') goto yy121;
yy63:
#line 239 "scanner.re"
{ RETURN(*tok); }
-#line 436 "scanner.cc"
+#line 437 "scanner.cc"
yy64:
++YYCURSOR;
if((yych = *YYCURSOR) == '/') goto yy119;
#line 241 "scanner.re"
{ yylval.op = *tok;
RETURN(CLOSE); }
-#line 444 "scanner.cc"
+#line 445 "scanner.cc"
yy66:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
yy67:
#line 226 "scanner.re"
{ fatal("unterminated string constant (missing \")"); }
-#line 452 "scanner.cc"
+#line 453 "scanner.cc"
yy68:
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
yy69:
#line 227 "scanner.re"
{ fatal("unterminated string constant (missing ')"); }
-#line 460 "scanner.cc"
+#line 461 "scanner.cc"
yy70:
yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
yy71:
#line 237 "scanner.re"
{ fatal("unterminated range (missing ])"); }
-#line 470 "scanner.cc"
+#line 471 "scanner.cc"
yy72:
yych = *++YYCURSOR;
goto yy63;
{ cur = cursor;
yylval.symbol = Symbol::find(token());
return ID; }
-#line 486 "scanner.cc"
+#line 487 "scanner.cc"
yy76:
yych = *++YYCURSOR;
goto yy90;
yylval.regexp = mkDot();
return RANGE;
}
-#line 497 "scanner.cc"
+#line 498 "scanner.cc"
yy79:
++YYCURSOR;
yych = *YYCURSOR;
yy80:
#line 277 "scanner.re"
{ goto scan; }
-#line 505 "scanner.cc"
+#line 506 "scanner.cc"
yy81:
++YYCURSOR;
yy82:
pos = cursor; cline++;
goto scan;
}
-#line 514 "scanner.cc"
+#line 515 "scanner.cc"
yy83:
++YYCURSOR;
if((yych = *YYCURSOR) == 0x0A) goto yy86;
fatal(msg.str().c_str());
goto scan;
}
-#line 526 "scanner.cc"
+#line 527 "scanner.cc"
yy85:
yych = *++YYCURSOR;
goto yy84;
if(yych <= 'z') goto yy96;
yy95:
YYCURSOR = YYMARKER;
- switch(yyaccept) {
- case 0: goto yy61;
- case 1: goto yy67;
- case 2: goto yy69;
- case 3: goto yy71;
- case 6: goto yy127;
- case 5: goto yy98;
- case 4: goto yy75;
+ if(yyaccept <= 3) {
+ if(yyaccept <= 1) {
+ if(yyaccept <= 0) {
+ goto yy61;
+ } else {
+ goto yy67;
+ }
+ } else {
+ if(yyaccept <= 2) {
+ goto yy69;
+ } else {
+ goto yy71;
+ }
+ }
+ } else {
+ if(yyaccept <= 5) {
+ if(yyaccept <= 4) {
+ goto yy75;
+ } else {
+ goto yy98;
+ }
+ } else {
+ goto yy127;
+ }
}
yy96:
yyaccept = 5;
yylval.str = new Str(token());
return CONFIG;
}
-#line 611 "scanner.cc"
+#line 628 "scanner.cc"
yy99:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = ranToRE(token());
return RANGE; }
-#line 649 "scanner.cc"
+#line 666 "scanner.cc"
yy106:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = invToRE(token());
return RANGE; }
-#line 662 "scanner.cc"
+#line 679 "scanner.cc"
yy109:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = strToCaseInsensitiveRE(token());
return STRING; }
-#line 686 "scanner.cc"
+#line 703 "scanner.cc"
yy114:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
{ cur = cursor;
yylval.regexp = strToRE(token());
return STRING; }
-#line 710 "scanner.cc"
+#line 727 "scanner.cc"
yy119:
++YYCURSOR;
#line 215 "scanner.re"
{ tok = cursor;
RETURN(0); }
-#line 716 "scanner.cc"
+#line 733 "scanner.cc"
yy121:
++YYCURSOR;
#line 212 "scanner.re"
{ depth = 1;
goto comment; }
-#line 722 "scanner.cc"
+#line 739 "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 745 "scanner.cc"
+#line 762 "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 752 "scanner.cc"
+#line 769 "scanner.cc"
yy130:
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = -1;
RETURN(CLOSESIZE); }
-#line 764 "scanner.cc"
+#line 781 "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 777 "scanner.cc"
+#line 794 "scanner.cc"
yy137:
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
#line 244 "scanner.re"
{ yylval.op = '*';
RETURN(CLOSE); }
-#line 788 "scanner.cc"
+#line 805 "scanner.cc"
}
#line 290 "scanner.re"
code:
-#line 795 "scanner.cc"
+#line 812 "scanner.cc"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
return CODE;
}
goto code; }
-#line 825 "scanner.cc"
+#line 842 "scanner.cc"
yy144:
++YYCURSOR;
#line 300 "scanner.re"
{ ++depth;
goto code; }
-#line 831 "scanner.cc"
+#line 848 "scanner.cc"
yy146:
++YYCURSOR;
#line 302 "scanner.re"
pos = cursor; cline++;
goto code;
}
-#line 839 "scanner.cc"
+#line 856 "scanner.cc"
yy148:
++YYCURSOR;
yy149:
#line 306 "scanner.re"
{ goto code; }
-#line 845 "scanner.cc"
+#line 862 "scanner.cc"
yy150:
yych = *(YYMARKER = ++YYCURSOR);
if(yych == 0x0A) goto yy149;
comment:
-#line 898 "scanner.cc"
+#line 915 "scanner.cc"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
#line 322 "scanner.re"
{ if(cursor == eof) RETURN(0);
goto comment; }
-#line 918 "scanner.cc"
+#line 935 "scanner.cc"
yy163:
yych = *++YYCURSOR;
if(yych == '*') goto yy167;
tok = pos = cursor; cline++;
goto comment;
}
-#line 930 "scanner.cc"
+#line 947 "scanner.cc"
yy166:
yych = *++YYCURSOR;
goto yy162;
{ ++depth;
fatal("ambiguous /* found");
goto comment; }
-#line 940 "scanner.cc"
+#line 957 "scanner.cc"
yy169:
++YYCURSOR;
#line 311 "scanner.re"
goto scan;
else
goto comment; }
-#line 948 "scanner.cc"
+#line 965 "scanner.cc"
}
#line 324 "scanner.re"
config:
-#line 955 "scanner.cc"
+#line 972 "scanner.cc"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yy174:
#line 328 "scanner.re"
{ goto config; }
-#line 974 "scanner.cc"
+#line 991 "scanner.cc"
yy175:
++YYCURSOR;
yych = *YYCURSOR;
cur = cursor;
RETURN('=');
}
-#line 985 "scanner.cc"
+#line 1002 "scanner.cc"
yy177:
++YYCURSOR;
#line 333 "scanner.re"
{ fatal("missing '='"); }
-#line 990 "scanner.cc"
+#line 1007 "scanner.cc"
yy179:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
value:
-#line 1013 "scanner.cc"
+#line 1030 "scanner.cc"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
iscfg = 0;
return VALUE;
}
-#line 1052 "scanner.cc"
+#line 1069 "scanner.cc"
yy186:
++YYCURSOR;
if((yych = *YYCURSOR) <= 0x0D) {
iscfg = 0;
return NUMBER;
}
-#line 1073 "scanner.cc"
+#line 1090 "scanner.cc"
yy188:
yych = *++YYCURSOR;
if(yych <= '0') goto yy192;
exit(1);
}
-} // end namespace re2c
+Scanner::~Scanner()
+{
+ if (bot)
+ {
+ delete [] bot;
+ }
+}
+} // end namespace re2c