]> granicus.if.org Git - re2c/commitdiff
- Regenerate bootstrap files
authorhelly <helly@642ea486-5414-0410-9d7f-a0204ed87703>
Mon, 5 Jun 2006 22:35:23 +0000 (22:35 +0000)
committerhelly <helly@642ea486-5414-0410-9d7f-a0204ed87703>
Mon, 5 Jun 2006 22:35:23 +0000 (22:35 +0000)
re2c/bootstrap/parser.cc
re2c/bootstrap/scanner.cc

index 3dab7451dcf0a1a305bd3c70b05bf1ec51afd223..2617f37a88a7ead0268f73d7a2ec87040d05a668 100644 (file)
@@ -1204,12 +1204,12 @@ yyreduce:
 
   case 6:
 #line 96 "parser.y"
-    { in->config(*(yyvsp[-3].str), *(yyvsp[-1].str)); }
+    { in->config(*(yyvsp[-3].str), *(yyvsp[-1].str)); delete (yyvsp[-3].str); delete (yyvsp[-1].str); }
     break;
 
   case 7:
 #line 98 "parser.y"
-    { in->config(*(yyvsp[-3].str), (yyvsp[-1].number)); }
+    { in->config(*(yyvsp[-3].str), (yyvsp[-1].number)); delete (yyvsp[-3].str); }
     break;
 
   case 8:
@@ -1635,6 +1635,10 @@ void parse(Scanner& i, std::ostream& o)
                }
                o << sourceFileInfo;
        }
+
+       RegExp::vFreeList.clear();
+       Range::vFreeList.clear();
+       Symbol::ClearTable();
 }
 
 } // end namespace re2c
index 8b9453502ee90a3456cd0abe6abcad0905c5ac3b..50235cff2e4eb4acf98127e23a785206b6897778 100644 (file)
@@ -1,4 +1,4 @@
-/* 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>
@@ -175,9 +175,10 @@ yy12:
        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;
@@ -196,12 +197,12 @@ yy14:
                                        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;
@@ -237,7 +238,7 @@ yy21:
                                        tok = cursor;
                                        RETURN(1);
                                }
-#line 241 "scanner.cc"
+#line 242 "scanner.cc"
 yy26:
        yych = *++YYCURSOR;
        if(yych != 'x') goto yy13;
@@ -263,7 +264,7 @@ yy26:
                                        bUsedYYMaxFill = true;
                                        goto echo;
                                }
-#line 267 "scanner.cc"
+#line 268 "scanner.cc"
 yy34:
        yych = *++YYCURSOR;
        if(yych != 't') goto yy13;
@@ -295,7 +296,7 @@ yy34:
                                        ignore_eoc = true;
                                        goto echo;
                                }
-#line 299 "scanner.cc"
+#line 300 "scanner.cc"
 yy47:
        yych = *++YYCURSOR;
        if(yych != 'n') goto yy13;
@@ -322,7 +323,7 @@ yy47:
                                        ignore_eoc = true;
                                        goto echo;
                                }
-#line 326 "scanner.cc"
+#line 327 "scanner.cc"
 }
 #line 187 "scanner.re"
 
@@ -347,7 +348,7 @@ scan:
                goto value;
     }
 
-#line 351 "scanner.cc"
+#line 352 "scanner.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -425,14 +426,14 @@ yy61:
        { 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;
@@ -440,7 +441,7 @@ yy65:
 #line 241 "scanner.re"
        { yylval.op = *tok;
                                  RETURN(CLOSE); }
-#line 444 "scanner.cc"
+#line 445 "scanner.cc"
 yy66:
        yyaccept = 1;
        yych = *(YYMARKER = ++YYCURSOR);
@@ -448,7 +449,7 @@ yy66:
 yy67:
 #line 226 "scanner.re"
        { fatal("unterminated string constant (missing \")"); }
-#line 452 "scanner.cc"
+#line 453 "scanner.cc"
 yy68:
        yyaccept = 2;
        yych = *(YYMARKER = ++YYCURSOR);
@@ -456,7 +457,7 @@ yy68:
 yy69:
 #line 227 "scanner.re"
        { fatal("unterminated string constant (missing ')"); }
-#line 460 "scanner.cc"
+#line 461 "scanner.cc"
 yy70:
        yyaccept = 3;
        yych = *(YYMARKER = ++YYCURSOR);
@@ -466,7 +467,7 @@ yy70:
 yy71:
 #line 237 "scanner.re"
        { fatal("unterminated range (missing ])"); }
-#line 470 "scanner.cc"
+#line 471 "scanner.cc"
 yy72:
        yych = *++YYCURSOR;
        goto yy63;
@@ -482,7 +483,7 @@ yy75:
        { cur = cursor;
                                  yylval.symbol = Symbol::find(token());
                                  return ID; }
-#line 486 "scanner.cc"
+#line 487 "scanner.cc"
 yy76:
        yych = *++YYCURSOR;
        goto yy90;
@@ -493,7 +494,7 @@ yy77:
                                  yylval.regexp = mkDot();
                                  return RANGE;
                                }
-#line 497 "scanner.cc"
+#line 498 "scanner.cc"
 yy79:
        ++YYCURSOR;
        yych = *YYCURSOR;
@@ -501,7 +502,7 @@ yy79:
 yy80:
 #line 277 "scanner.re"
        { goto scan; }
-#line 505 "scanner.cc"
+#line 506 "scanner.cc"
 yy81:
        ++YYCURSOR;
 yy82:
@@ -510,7 +511,7 @@ yy82:
                                  pos = cursor; cline++;
                                  goto scan;
                                }
-#line 514 "scanner.cc"
+#line 515 "scanner.cc"
 yy83:
        ++YYCURSOR;
        if((yych = *YYCURSOR) == 0x0A) goto yy86;
@@ -522,7 +523,7 @@ yy84:
                                  fatal(msg.str().c_str());
                                  goto scan;
                                }
-#line 526 "scanner.cc"
+#line 527 "scanner.cc"
 yy85:
        yych = *++YYCURSOR;
        goto yy84;
@@ -570,14 +571,30 @@ yy94:
        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;
@@ -607,7 +624,7 @@ yy98:
                                  yylval.str = new Str(token());
                                  return CONFIG;
                                }
-#line 611 "scanner.cc"
+#line 628 "scanner.cc"
 yy99:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -645,7 +662,7 @@ yy104:
        { cur = cursor;
                                  yylval.regexp = ranToRE(token());
                                  return RANGE; }
-#line 649 "scanner.cc"
+#line 666 "scanner.cc"
 yy106:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -658,7 +675,7 @@ yy107:
        { cur = cursor;
                                  yylval.regexp = invToRE(token());
                                  return RANGE; }
-#line 662 "scanner.cc"
+#line 679 "scanner.cc"
 yy109:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -682,7 +699,7 @@ yy112:
        { cur = cursor;
                                  yylval.regexp = strToCaseInsensitiveRE(token());
                                  return STRING; }
-#line 686 "scanner.cc"
+#line 703 "scanner.cc"
 yy114:
        ++YYCURSOR;
        if(YYLIMIT == YYCURSOR) YYFILL(1);
@@ -706,19 +723,19 @@ yy117:
        { 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;
@@ -741,14 +758,14 @@ yy126:
 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);
@@ -760,7 +777,7 @@ yy130:
        { 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);
@@ -773,7 +790,7 @@ yy133:
        { 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);
@@ -784,14 +801,14 @@ yy137:
 #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);
@@ -821,13 +838,13 @@ code:
                                        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"
@@ -835,13 +852,13 @@ yy146:
                                  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;
@@ -894,7 +911,7 @@ yy157:
 
 comment:
 
-#line 898 "scanner.cc"
+#line 915 "scanner.cc"
 {
        YYCTYPE yych;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
@@ -914,7 +931,7 @@ yy162:
 #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;
@@ -926,7 +943,7 @@ yy164:
                                  tok = pos = cursor; cline++;
                                  goto comment;
                                }
-#line 930 "scanner.cc"
+#line 947 "scanner.cc"
 yy166:
        yych = *++YYCURSOR;
        goto yy162;
@@ -936,7 +953,7 @@ yy167:
        { ++depth;
                                  fatal("ambiguous /* found");
                                  goto comment; }
-#line 940 "scanner.cc"
+#line 957 "scanner.cc"
 yy169:
        ++YYCURSOR;
 #line 311 "scanner.re"
@@ -944,14 +961,14 @@ yy169:
                                        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);
@@ -970,7 +987,7 @@ yy173:
 yy174:
 #line 328 "scanner.re"
        { goto config; }
-#line 974 "scanner.cc"
+#line 991 "scanner.cc"
 yy175:
        ++YYCURSOR;
        yych = *YYCURSOR;
@@ -981,12 +998,12 @@ yy176:
                                  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);
@@ -1009,7 +1026,7 @@ yy182:
 
 value:
 
-#line 1013 "scanner.cc"
+#line 1030 "scanner.cc"
 {
        YYCTYPE yych;
        if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
@@ -1048,7 +1065,7 @@ yy185:
                                  iscfg = 0;
                                  return VALUE;
                                }
-#line 1052 "scanner.cc"
+#line 1069 "scanner.cc"
 yy186:
        ++YYCURSOR;
        if((yych = *YYCURSOR) <= 0x0D) {
@@ -1069,7 +1086,7 @@ yy187:
                                  iscfg = 0;
                                  return NUMBER;
                                }
-#line 1073 "scanner.cc"
+#line 1090 "scanner.cc"
 yy188:
        yych = *++YYCURSOR;
        if(yych <= '0') goto yy192;
@@ -1256,5 +1273,12 @@ void Scanner::fatal(uint ofs, const char *msg) const
        exit(1);
 }
 
-} // end namespace re2c
+Scanner::~Scanner()
+{
+       if (bot)
+       {
+               delete [] bot;
+       }
+}
 
+} // end namespace re2c