--------------------------
- Applied #1181535 storable state patch.
- Fixed bug #1187785 Re2c fails to generate valid code.
+- Fixed bug #1187452 unused variable `yyaccept'.
Version 0.9.6 (2005-04-14)
--------------------------
void Save::emit(std::ostream &o, bool &readCh)
{
- o << "\tyyaccept = " << selector << ";\n";
- ++oline;
+ if (bUsedYYAccept)
+ {
+ o << "\tyyaccept = " << selector << ";\n";
+ ++oline;
+ }
if (state->link)
{
if (first)
{
first = false;
+ bUsedYYAccept = true;
o << "\tYYCURSOR = YYMARKER;\n";
o << "\tswitch(yyaccept){\n";
oline += 2;
delete head->action;
- bool hasFillLabels = (0<=vFillIndexes);
-
- oline++;
- o << "\n#line " << ++oline << " \"" << outputFileName << "\"\n";
-
- if ( hasFillLabels == false )
- {
- o << "{\n\tYYCTYPE yych;\n\tunsigned int yyaccept;\n";
- oline += 3;
- }
- else
- {
- o << "{\n\n";
- oline += 2;
- }
-
if (bFlag)
{
BitMap::gen(o, lbChar, ubChar);
}
- if ( hasFillLabels == false )
- {
- o << "\tgoto yy" << label << ";\n";
- ++oline;
- }
+ bUsedYYAccept = false;
+
+ uint start_label = label;
vUsedLabels.append(label);
(void) new Enter(head, label++);
unsigned int nOrgOline = oline;
int maxFillIndexes = vFillIndexes;
int orgVFillIndexes = vFillIndexes;
+
for (s = head; s; s = s->next)
{
bool readCh = false;
vFillIndexes = orgVFillIndexes;
oline = nOrgOline;
+ bool hasFillLabels = (0<=vFillIndexes);
+
+ oline++;
+ o << "\n#line " << ++oline << " \"" << outputFileName << "\"\n";
+
+ if ( hasFillLabels == false )
+ {
+ o << "{\n\tYYCTYPE yych;\n";
+ oline += 2;
+ if (bUsedYYAccept) {
+ o << "\tunsigned int yyaccept;\n";
+ oline++;
+ }
+ }
+ else
+ {
+ o << "{\n\n";
+ oline += 2;
+ }
+
+ if ( hasFillLabels == false )
+ {
+ o << "\tgoto yy" << start_label << ";\n";
+ ++oline;
+ }
+
if (hasFillLabels == true )
{
o << " switch(YYGETSTATE())\n";
extern char *outputFileName;
extern bool sFlag;
extern bool bFlag;
+extern bool bUsedYYAccept;
extern unsigned int oline;
extern uint maxFill;
char *outputFileName = 0;
bool sFlag = false;
bool bFlag = false;
+bool bUsedYYAccept = false;
unsigned int oline = 1;
uint maxFill = 1;
#line 6 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy0;
++YYCURSOR;
yy0:
yy3:
#line 25 "bug1054496.re"
{ goto cont; }
-#line 77 "<stdout>"
+#line 76 "<stdout>"
yy4: ++YYCURSOR;
goto yy5;
yy5:
#line 24 "bug1054496.re"
{ RET(TAG_EOI); }
-#line 83 "<stdout>"
+#line 82 "<stdout>"
yy6: yych = *++YYCURSOR;
goto yy3;
yy7: ++YYCURSOR;
yy8:
#line 22 "bug1054496.re"
{ RET(TAG_A); }
-#line 144 "<stdout>"
+#line 143 "<stdout>"
yy9: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy11:
#line 23 "bug1054496.re"
{ RET(TAG_TAG); }
-#line 207 "<stdout>"
+#line 206 "<stdout>"
}
#line 26 "bug1054496.re"
#line 3924 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy343;
++YYCURSOR;
yy343:
yy346:
#line 256 "c.re"
{ goto comment; }
-#line 3946 "<stdout>"
+#line 3945 "<stdout>"
yy347: ++YYCURSOR;
goto yy348;
yy348:
s->tok = s->pos = cursor; s->line++;
goto comment;
}
-#line 3956 "<stdout>"
+#line 3955 "<stdout>"
yy349: yych = *++YYCURSOR;
goto yy346;
yy350: ++YYCURSOR;
yy351:
#line 249 "c.re"
{ goto std; }
-#line 3964 "<stdout>"
+#line 3963 "<stdout>"
}
#line 257 "c.re"
#line 3924 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy343;
++YYCURSOR;
yy343:
yy346:
#line 239 "cmmap.re"
{ goto comment; }
-#line 3946 "<stdout>"
+#line 3945 "<stdout>"
yy347: ++YYCURSOR;
goto yy348;
yy348:
s->tok = s->pos = cursor; s->line++;
goto comment;
}
-#line 3956 "<stdout>"
+#line 3955 "<stdout>"
yy349: yych = *++YYCURSOR;
goto yy346;
yy350: ++YYCURSOR;
yy351:
#line 232 "cmmap.re"
{ goto std; }
-#line 3964 "<stdout>"
+#line 3963 "<stdout>"
}
#line 240 "cmmap.re"
#line 1191 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy170;
++YYCURSOR;
yy170:
yy173:
#line 223 "cnokw.re"
{ goto comment; }
-#line 1213 "<stdout>"
+#line 1212 "<stdout>"
yy174: ++YYCURSOR;
goto yy175;
yy175:
s->tok = s->pos = cursor; s->line++;
goto comment;
}
-#line 1223 "<stdout>"
+#line 1222 "<stdout>"
yy176: yych = *++YYCURSOR;
goto yy173;
yy177: ++YYCURSOR;
yy178:
#line 216 "cnokw.re"
{ goto std; }
-#line 1231 "<stdout>"
+#line 1230 "<stdout>"
}
#line 224 "cnokw.re"
#line 1733 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy185;
++YYCURSOR;
yy185:
yy188:
#line 242 "cunroll.re"
{ goto comment; }
-#line 1756 "<stdout>"
+#line 1755 "<stdout>"
yy189: ++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '*': case '/': goto yy190;
s->tok = s->pos = cursor; s->line++;
goto comment;
}
-#line 1769 "<stdout>"
+#line 1768 "<stdout>"
yy191: ++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '*': case '/': goto yy192;
yy192:
#line 234 "cunroll.re"
{ goto comment; }
-#line 1778 "<stdout>"
+#line 1777 "<stdout>"
yy193: yych = *++YYCURSOR;
goto yy188;
yy194: ++YYCURSOR;
yy195:
#line 235 "cunroll.re"
{ goto comment; }
-#line 1789 "<stdout>"
+#line 1788 "<stdout>"
yy196: ++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '*': case '/': goto yy197;
yy197:
#line 236 "cunroll.re"
{ goto comment; }
-#line 1798 "<stdout>"
+#line 1797 "<stdout>"
yy198: ++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '*': case '/': goto yy199;
yy199:
#line 237 "cunroll.re"
{ goto comment; }
-#line 1807 "<stdout>"
+#line 1806 "<stdout>"
yy200: ++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '*': case '/': goto yy201;
yy201:
#line 238 "cunroll.re"
{ goto comment; }
-#line 1816 "<stdout>"
+#line 1815 "<stdout>"
yy202: ++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '*': case '/': goto yy203;
yy203:
#line 239 "cunroll.re"
{ goto comment; }
-#line 1825 "<stdout>"
+#line 1824 "<stdout>"
yy204: ++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '*': case '/': goto yy205;
yy205:
#line 240 "cunroll.re"
{ goto comment; }
-#line 1834 "<stdout>"
+#line 1833 "<stdout>"
yy206: ++YYCURSOR;
goto yy207;
yy207:
#line 241 "cunroll.re"
{ goto comment; }
-#line 1840 "<stdout>"
+#line 1839 "<stdout>"
yy208: ++YYCURSOR;
goto yy209;
yy209:
#line 227 "cunroll.re"
{ goto std; }
-#line 1846 "<stdout>"
+#line 1845 "<stdout>"
}
#line 243 "cunroll.re"
#line 6 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy0;
++YYCURSOR;
yy0:
yy7:
#line 3 "input2.re"
{ return 1; }
-#line 39 "<stdout>"
+#line 38 "<stdout>"
}
#line 5 "input2.re"
#line 6 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy0;
++YYCURSOR;
yy0:
yy7:
#line 3 "input3.re"
{ return 1; }
-#line 39 "<stdout>"
+#line 38 "<stdout>"
}
#line 5 "input3.re"
#line 3982 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy299;
++YYCURSOR;
yy299:
yy302:
#line 179 "modula.re"
{ goto comment; }
-#line 4005 "<stdout>"
+#line 4004 "<stdout>"
yy303: yych = *++YYCURSOR;
switch(yych){
case '*': goto yy307;
s->tok = s->pos = cursor; s->line++;
goto comment;
}
-#line 4020 "<stdout>"
+#line 4019 "<stdout>"
yy306: yych = *++YYCURSOR;
goto yy302;
yy307: ++YYCURSOR;
yy308:
#line 172 "modula.re"
{ ++depth; goto comment; }
-#line 4028 "<stdout>"
+#line 4027 "<stdout>"
yy309: ++YYCURSOR;
goto yy310;
yy310:
else
goto comment;
}
-#line 4039 "<stdout>"
+#line 4038 "<stdout>"
}
#line 180 "modula.re"
#line 6 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy0;
++YYCURSOR;
yy0:
yy3:
#line 246 "push.re"
{ SEND(kIdentifier); }
-#line 95 "<stdout>"
+#line 94 "<stdout>"
yy4: yych = *++YYCURSOR;
switch(yych){
case 'o': goto yy64;
yy13:
#line 247 "push.re"
{ SEND(kDecimalConstant);}
-#line 135 "<stdout>"
+#line 134 "<stdout>"
yy14: ++YYCURSOR;
goto yy15;
yy15:
#line 249 "push.re"
{ SEND(kEqual); }
-#line 141 "<stdout>"
+#line 140 "<stdout>"
yy16: ++YYCURSOR;
goto yy17;
yy17:
#line 250 "push.re"
{ SEND(kLeftParen); }
-#line 147 "<stdout>"
+#line 146 "<stdout>"
yy18: ++YYCURSOR;
goto yy19;
yy19:
#line 251 "push.re"
{ SEND(kRightParen); }
-#line 153 "<stdout>"
+#line 152 "<stdout>"
yy20: ++YYCURSOR;
goto yy21;
yy21:
#line 252 "push.re"
{ SEND(kMinus); }
-#line 159 "<stdout>"
+#line 158 "<stdout>"
yy22: ++YYCURSOR;
goto yy23;
yy23:
#line 253 "push.re"
{ SEND(kPlus); }
-#line 165 "<stdout>"
+#line 164 "<stdout>"
yy24: ++YYCURSOR;
goto yy25;
yy25:
#line 254 "push.re"
{ SEND(kStar); }
-#line 171 "<stdout>"
+#line 170 "<stdout>"
yy26: ++YYCURSOR;
goto yy27;
yy27:
#line 255 "push.re"
{ SEND(kSlash); }
-#line 177 "<stdout>"
+#line 176 "<stdout>"
yy28: ++YYCURSOR;
goto yy29;
yy29:
#line 257 "push.re"
{ SKIP(); }
-#line 183 "<stdout>"
+#line 182 "<stdout>"
yy30: ++YYCURSOR;
goto yy31;
yy31:
#line 258 "push.re"
{ SKIP(); }
-#line 189 "<stdout>"
+#line 188 "<stdout>"
yy32: ++YYCURSOR;
goto yy33;
yy33:
#line 259 "push.re"
{ send(kEOF); return 1; }
-#line 195 "<stdout>"
+#line 194 "<stdout>"
yy34: ++YYCURSOR;
goto yy35;
yy35:
#line 260 "push.re"
{ SEND(kUnknown); }
-#line 201 "<stdout>"
+#line 200 "<stdout>"
yy36: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy45:
#line 245 "push.re"
{ SEND(kReturn); }
-#line 375 "<stdout>"
+#line 374 "<stdout>"
yy46: yych = *++YYCURSOR;
switch(yych){
case 'i': goto yy47;
yy50:
#line 244 "push.re"
{ SEND(kWhile); }
-#line 458 "<stdout>"
+#line 457 "<stdout>"
yy51: yych = *++YYCURSOR;
switch(yych){
case 'e': goto yy52;
yy55:
#line 243 "push.re"
{ SEND(kBreak); }
-#line 541 "<stdout>"
+#line 540 "<stdout>"
yy56: yych = *++YYCURSOR;
switch(yych){
case 't': goto yy57;
yy59:
#line 242 "push.re"
{ SEND(kGoto); }
-#line 619 "<stdout>"
+#line 618 "<stdout>"
yy60: yych = *++YYCURSOR;
switch(yych){
case 's': goto yy61;
yy63:
#line 241 "push.re"
{ SEND(kElse); }
-#line 697 "<stdout>"
+#line 696 "<stdout>"
yy64: yych = *++YYCURSOR;
switch(yych){
case 'r': goto yy65;
yy66:
#line 240 "push.re"
{ SEND(kFor); }
-#line 770 "<stdout>"
+#line 769 "<stdout>"
yy67: ++YYCURSOR;
switch((yych = *YYCURSOR)) {
case '0':
yy68:
#line 239 "push.re"
{ SEND(kIf); }
-#line 838 "<stdout>"
+#line 837 "<stdout>"
}
#line 261 "push.re"
#line 618 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy93;
++YYCURSOR;
yy93:
yy96:
#line 193 "scanner.re"
{ goto comment; }
-#line 641 "<stdout>"
+#line 640 "<stdout>"
yy97: yych = *++YYCURSOR;
switch(yych){
case '*': goto yy101;
tok = pos = cursor; cline++;
goto comment;
}
-#line 655 "<stdout>"
+#line 654 "<stdout>"
yy100: yych = *++YYCURSOR;
goto yy96;
yy101: ++YYCURSOR;
#line 187 "scanner.re"
{ ++depth;
goto comment; }
-#line 664 "<stdout>"
+#line 663 "<stdout>"
yy103: ++YYCURSOR;
goto yy104;
yy104:
goto scan;
else
goto comment; }
-#line 673 "<stdout>"
+#line 672 "<stdout>"
}
#line 194 "scanner.re"
#line 6 "<stdout>"
{
YYCTYPE yych;
- unsigned int yyaccept;
goto yy0;
++YYCURSOR;
yy0:
yy3:
#line 10 "simple.re"
{return YYCURSOR;}
-#line 33 "<stdout>"
+#line 32 "<stdout>"
yy4: ++YYCURSOR;
goto yy5;
yy5:
#line 11 "simple.re"
{return NULL;}
-#line 39 "<stdout>"
+#line 38 "<stdout>"
yy6: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;