delete[] ptn;
}
-void genCode(std::ostream& o, uint& ind, RegExp *re, const RegExpMap* specMap, const std::string& condName, bool isLastCond)
+void genCode(std::ostream& o, uint& ind, RegExp *re, const RegExpMap* specMap, const std::string& condName, bool isLastCond, bool &bPrologBrace)
{
CharSet cs;
uint j;
}
DFA *dfa = new DFA(ins, re->size, 0, nRealChars, rep);
- dfa->emit(o, ind, specMap, condName, isLastCond);
+ dfa->emit(o, ind, specMap, condName, isLastCond, bPrologBrace);
delete dfa;
delete [] ins;
delete [] rep;
delete [] span;
}
-void DFA::emit(std::ostream &o, uint& ind, const RegExpMap* specMap, const std::string& condName, bool isLastCond)
+void DFA::emit(std::ostream &o, uint& ind, const RegExpMap* specMap, const std::string& condName, bool isLastCond, bool& bPrologBrace)
{
State *s;
uint i;
if (bProlog)
{
o << "\n" << outputFileInfo;
- o << indent(ind++) << "{\n";
+ if ((!fFlag && bUsedYYAccept)
+ || (!fFlag && bEmitYYCh)
+ || (bFlag && !cFlag && BitMap::first)
+ || (cFlag && !bWroteCondCheck && gFlag && !specMap->empty())
+ || (fFlag && !bWroteGetState && gFlag)
+ )
+ {
+ bPrologBrace = true;
+ o << indent(ind++) << "{\n";
+ }
+ else if (ind == 0)
+ {
+ ind = 1;
+ }
if (!fFlag)
{
genCondGoto(o, ind, *specMap);
}
- if (cFlag)
+ if (cFlag && !condName.empty())
{
- if (!condName.empty())
- {
- // TODO: Drop marker
- o << "/* *********************************** */\n";
- o << condPrefix << condName << ":\n";
- }
- if (bFlag && BitMap::first)
- {
- o << indent(ind++) << "{\n";
- BitMap::gen(o, ind, lbChar, ubChar <= 256 ? ubChar : 256);
- }
+ // TODO: Drop marker
+ o << "/* *********************************** */\n";
+ o << condPrefix << condName << ":\n";
+ }
+ if (cFlag && bFlag && BitMap::first)
+ {
+ o << indent(ind++) << "{\n";
+ BitMap::gen(o, ind, lbChar, ubChar <= 256 ? ubChar : 256);
}
// TODO: Shouldn't labels 0 and 1 be variable?
o << indent(--ind) << "}\n";
}
// Generate epilog
- if (!cFlag || isLastCond)
+ if ((!cFlag || isLastCond) && bPrologBrace)
{
o << indent(--ind) << "}\n";
}
void findSCCs();
void findBaseState();
- void emit(std::ostream&, uint&, const RegExpMap*, const std::string&, bool);
+ void emit(std::ostream&, uint&, const RegExpMap*, const std::string&, bool, bool&);
friend std::ostream& operator<<(std::ostream&, const DFA&);
friend std::ostream& operator<<(std::ostream&, const DFA*);
while(i.echo())
{
+ bool bPrologBrace = false;
yyparse();
if (cFlag)
{
for(it = specMap.begin(); it != specMap.end(); ++it)
{
assert(it->second.second);
- genCode(o, topIndent, it->second.second, &specMap, it->first, !--nCount);
+ genCode(o, topIndent, it->second.second, &specMap, it->first, !--nCount, bPrologBrace);
}
if (h)
{
}
else if(spec)
{
- genCode(o, topIndent, spec, NULL, "", 0);
+ genCode(o, topIndent, spec, NULL, "", 0, bPrologBrace);
}
o << sourceFileInfo;
}
typedef std::vector<std::string> RegExpIndices;
typedef std::list<RuleOp*> RuleOpList;
-extern void genCode(std::ostream&, uint&, RegExp*, const RegExpMap*, const std::string&, bool);
+extern void genCode(std::ostream&, uint&, RegExp*, const RegExpMap*, const std::string&, bool, bool&);
extern void genGetStateGoto(std::ostream&, uint&, uint);
extern void genCondTable(std::ostream&, uint, const RegExpMap&);
extern void genCondGoto(std::ostream&, uint, const RegExpMap&);
start:
#line 29 "<stdout>"
-{
switch(YYGETSTATE()) {
default: goto yy0;
++n;
goto start;
}
-#line 56 "<stdout>"
+#line 55 "<stdout>"
yy5:
++YYCURSOR;
#line 32 "bug1472770.f.re"
{
return n;
}
-#line 63 "<stdout>"
-}
+#line 62 "<stdout>"
#line 35 "bug1472770.f.re"
}
{
s->tok = s->cur;
- {
- if (s->cond < 2) {
- if (s->cond < 1) {
- goto yyc_Normal;
- } else {
- goto yyc_Comment;
- }
+ if (s->cond < 2) {
+ if (s->cond < 1) {
+ goto yyc_Normal;
+ } else {
+ goto yyc_Comment;
+ }
+ } else {
+ if (s->cond < 3) {
+ goto yyc_Skiptoeol;
} else {
- if (s->cond < 3) {
- goto yyc_Skiptoeol;
- } else {
- goto yyc_String;
- }
+ goto yyc_String;
}
+ }
/* *********************************** */
yyc_Comment:
- if((s->lim - s->cur) < 2) if(fill(s, 2) >= 0) break;
- s->yych = *s->cur;
- if(s->yych != '*') goto yy4;
- ++s->cur;
- if((s->yych = *s->cur) == '/') goto yy5;
+ if((s->lim - s->cur) < 2) if(fill(s, 2) >= 0) break;
+ s->yych = *s->cur;
+ if(s->yych != '*') goto yy4;
+ ++s->cur;
+ if((s->yych = *s->cur) == '/') goto yy5;
yy3:
- {
+ {
goto yyc_Comment;
}
yy4:
- s->yych = *++s->cur;
- goto yy3;
+ s->yych = *++s->cur;
+ goto yy3;
yy5:
- ++s->cur;
- {
+ ++s->cur;
+ {
s->cond = EStateNormal;
continue;
}
/* *********************************** */
yyc_Normal:
- if((s->lim - s->cur) < 4) if(fill(s, 4) >= 0) break;
- s->yych = *s->cur;
- if(s->yych <= '\'') {
- if(s->yych == '"') goto yy13;
- if(s->yych <= '&') goto yy15;
- goto yy12;
+ if((s->lim - s->cur) < 4) if(fill(s, 4) >= 0) break;
+ s->yych = *s->cur;
+ if(s->yych <= '\'') {
+ if(s->yych == '"') goto yy13;
+ if(s->yych <= '&') goto yy15;
+ goto yy12;
+ } else {
+ if(s->yych <= '/') {
+ if(s->yych <= '.') goto yy15;
+ goto yy11;
} else {
- if(s->yych <= '/') {
- if(s->yych <= '.') goto yy15;
- goto yy11;
- } else {
- if(s->yych != '?') goto yy15;
- }
+ if(s->yych != '?') goto yy15;
}
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == '?') goto yy26;
+ }
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == '?') goto yy26;
yy10:
- {
+ {
fputc(*s->tok, stdout);
continue;
}
yy11:
- s->yych = *++s->cur;
- if(s->yych == '*') goto yy24;
- if(s->yych == '/') goto yy22;
- goto yy10;
+ s->yych = *++s->cur;
+ if(s->yych == '*') goto yy24;
+ if(s->yych == '/') goto yy22;
+ goto yy10;
yy12:
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == '"') goto yy16;
- if(s->yych == '\\') goto yy18;
- goto yy10;
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == '"') goto yy16;
+ if(s->yych == '\\') goto yy18;
+ goto yy10;
yy13:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc(*s->tok, stdout);
s->state = EStateString;
continue;
}
yy15:
- s->yych = *++s->cur;
- goto yy10;
+ s->yych = *++s->cur;
+ goto yy10;
yy16:
- s->yych = *++s->cur;
- if(s->yych == '\'') goto yy20;
+ s->yych = *++s->cur;
+ if(s->yych == '\'') goto yy20;
yy17:
- s->cur = s->tok;
- goto yy10;
+ s->cur = s->tok;
+ goto yy10;
yy18:
- s->yych = *++s->cur;
- if(s->yych != '"') goto yy17;
- s->yych = *++s->cur;
- if(s->yych != '\'') goto yy17;
+ s->yych = *++s->cur;
+ if(s->yych != '"') goto yy17;
+ s->yych = *++s->cur;
+ if(s->yych != '\'') goto yy17;
yy20:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputl("'\"'", 3, stdout);
continue;
}
yy22:
- ++s->cur;
- {
+ ++s->cur;
+ {
s->cond = EStateSkiptoeol;
goto yyc_Skiptoeol;
}
yy24:
- ++s->cur;
- {
+ ++s->cur;
+ {
s->cond = EStateComment;
goto yyc_Comment;
}
yy26:
- s->yych = *++s->cur;
- switch(s->yych) {
- case '!': goto yy41;
- case '\'': goto yy39;
- case '(': goto yy27;
- case ')': goto yy29;
- case '-': goto yy43;
- case '/': goto yy37;
- case '<': goto yy31;
- case '=': goto yy35;
- case '>': goto yy33;
- default: goto yy17;
- }
+ s->yych = *++s->cur;
+ switch(s->yych) {
+ case '!': goto yy41;
+ case '\'': goto yy39;
+ case '(': goto yy27;
+ case ')': goto yy29;
+ case '-': goto yy43;
+ case '/': goto yy37;
+ case '<': goto yy31;
+ case '=': goto yy35;
+ case '>': goto yy33;
+ default: goto yy17;
+ }
yy27:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('[', stdout);
continue;
}
yy29:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc(']', stdout);
continue;
}
yy31:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('{', stdout);
continue;
}
yy33:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('}', stdout);
continue;
}
yy35:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('#', stdout);
continue;
}
yy37:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('\\', stdout);
continue;
}
yy39:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('^', stdout);
continue;
}
yy41:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('|', stdout);
continue;
}
yy43:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('~', stdout);
continue;
}
/* *********************************** */
yyc_Skiptoeol:
- if((s->lim - s->cur) < 5) if(fill(s, 5) >= 0) break;
- s->yych = *s->cur;
- if(s->yych <= '>') {
- if(s->yych == 0x0A) goto yy50;
- goto yy52;
- } else {
- if(s->yych <= '?') goto yy47;
- if(s->yych == '\\') goto yy49;
- goto yy52;
- }
+ if((s->lim - s->cur) < 5) if(fill(s, 5) >= 0) break;
+ s->yych = *s->cur;
+ if(s->yych <= '>') {
+ if(s->yych == 0x0A) goto yy50;
+ goto yy52;
+ } else {
+ if(s->yych <= '?') goto yy47;
+ if(s->yych == '\\') goto yy49;
+ goto yy52;
+ }
yy47:
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == '?') goto yy57;
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == '?') goto yy57;
yy48:
- {
+ {
goto yyc_Skiptoeol;
}
yy49:
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == 0x0A) goto yy55;
- if(s->yych == 0x0D) goto yy53;
- goto yy48;
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == 0x0A) goto yy55;
+ if(s->yych == 0x0D) goto yy53;
+ goto yy48;
yy50:
- ++s->cur;
- {
+ ++s->cur;
+ {
s->cond = EStateNormal;
continue;
}
yy52:
- s->yych = *++s->cur;
- goto yy48;
+ s->yych = *++s->cur;
+ goto yy48;
yy53:
- s->yych = *++s->cur;
- if(s->yych == 0x0A) goto yy55;
+ s->yych = *++s->cur;
+ if(s->yych == 0x0A) goto yy55;
yy54:
- s->cur = s->tok;
- goto yy48;
+ s->cur = s->tok;
+ goto yy48;
yy55:
- ++s->cur;
- {
+ ++s->cur;
+ {
goto yyc_Skiptoeol;
}
yy57:
- s->yych = *++s->cur;
- if(s->yych != '/') goto yy54;
- s->yych = *++s->cur;
- if(s->yych == 0x0A) goto yy60;
- if(s->yych != 0x0D) goto yy54;
- s->yych = *++s->cur;
- if(s->yych != 0x0A) goto yy54;
+ s->yych = *++s->cur;
+ if(s->yych != '/') goto yy54;
+ s->yych = *++s->cur;
+ if(s->yych == 0x0A) goto yy60;
+ if(s->yych != 0x0D) goto yy54;
+ s->yych = *++s->cur;
+ if(s->yych != 0x0A) goto yy54;
yy60:
- ++s->cur;
- {
+ ++s->cur;
+ {
goto yyc_Skiptoeol;
}
/* *********************************** */
yyc_String:
- if((s->lim - s->cur) < 2) if(fill(s, 2) >= 0) break;
- s->yych = *s->cur;
- if(s->yych == '"') goto yy66;
- if(s->yych != '\\') goto yy68;
- ++s->cur;
- if((s->yych = *s->cur) != 0x0A) goto yy69;
+ if((s->lim - s->cur) < 2) if(fill(s, 2) >= 0) break;
+ s->yych = *s->cur;
+ if(s->yych == '"') goto yy66;
+ if(s->yych != '\\') goto yy68;
+ ++s->cur;
+ if((s->yych = *s->cur) != 0x0A) goto yy69;
yy65:
- {
+ {
fputc(*s->tok, stdout);
continue;
}
yy66:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc(*s->tok, stdout);
s->cond = EStateNormal;
continue;
}
yy68:
- s->yych = *++s->cur;
- goto yy65;
+ s->yych = *++s->cur;
+ goto yy65;
yy69:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputl((const char*)s->tok, 2, stdout);
continue;
}
- }
}
}
{
s->tok = s->cur;
- {
- if (s->state < 1) {
- if (s->state < 0) {
- goto yy0;
- } else {
- goto yyFillLabel0;
- }
+ if (s->state < 1) {
+ if (s->state < 0) {
+ goto yy0;
} else {
- if (s->state < 2) {
- goto yyFillLabel1;
+ goto yyFillLabel0;
+ }
+ } else {
+ if (s->state < 2) {
+ goto yyFillLabel1;
+ } else {
+ if (s->state < 3) {
+ goto yyFillLabel2;
} else {
- if (s->state < 3) {
- goto yyFillLabel2;
- } else {
- goto yyFillLabel3;
- }
+ goto yyFillLabel3;
}
}
+ }
yy0:
- if (s->cond < 2) {
- if (s->cond < 1) {
- goto yyc_Normal;
- } else {
- goto yyc_Comment;
- }
+ if (s->cond < 2) {
+ if (s->cond < 1) {
+ goto yyc_Normal;
} else {
- if (s->cond < 3) {
- goto yyc_Skiptoeol;
- } else {
- goto yyc_String;
- }
+ goto yyc_Comment;
+ }
+ } else {
+ if (s->cond < 3) {
+ goto yyc_Skiptoeol;
+ } else {
+ goto yyc_String;
}
+ }
/* *********************************** */
yyc_Comment:
- s->state = 0;
- if((s->lim - s->cur) < 2) if(fill(s, 2) >= 0) break;
+ s->state = 0;
+ if((s->lim - s->cur) < 2) if(fill(s, 2) >= 0) break;
yyFillLabel0:
- s->yych = *s->cur;
- if(s->yych != '*') goto yy4;
- ++s->cur;
- if((s->yych = *s->cur) == '/') goto yy5;
+ s->yych = *s->cur;
+ if(s->yych != '*') goto yy4;
+ ++s->cur;
+ if((s->yych = *s->cur) == '/') goto yy5;
yy3:
- {
+ {
goto yyc_Comment;
}
yy4:
- s->yych = *++s->cur;
- goto yy3;
+ s->yych = *++s->cur;
+ goto yy3;
yy5:
- ++s->cur;
- {
+ ++s->cur;
+ {
s->cond = EStateNormal;
continue;
}
/* *********************************** */
yyc_Normal:
- s->state = 1;
- if((s->lim - s->cur) < 4) if(fill(s, 4) >= 0) break;
+ s->state = 1;
+ if((s->lim - s->cur) < 4) if(fill(s, 4) >= 0) break;
yyFillLabel1:
- s->yych = *s->cur;
- if(s->yych <= '\'') {
- if(s->yych == '"') goto yy13;
- if(s->yych <= '&') goto yy15;
- goto yy12;
+ s->yych = *s->cur;
+ if(s->yych <= '\'') {
+ if(s->yych == '"') goto yy13;
+ if(s->yych <= '&') goto yy15;
+ goto yy12;
+ } else {
+ if(s->yych <= '/') {
+ if(s->yych <= '.') goto yy15;
+ goto yy11;
} else {
- if(s->yych <= '/') {
- if(s->yych <= '.') goto yy15;
- goto yy11;
- } else {
- if(s->yych != '?') goto yy15;
- }
+ if(s->yych != '?') goto yy15;
}
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == '?') goto yy26;
+ }
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == '?') goto yy26;
yy10:
- {
+ {
fputc(*s->tok, stdout);
continue;
}
yy11:
- s->yych = *++s->cur;
- if(s->yych == '*') goto yy24;
- if(s->yych == '/') goto yy22;
- goto yy10;
+ s->yych = *++s->cur;
+ if(s->yych == '*') goto yy24;
+ if(s->yych == '/') goto yy22;
+ goto yy10;
yy12:
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == '"') goto yy16;
- if(s->yych == '\\') goto yy18;
- goto yy10;
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == '"') goto yy16;
+ if(s->yych == '\\') goto yy18;
+ goto yy10;
yy13:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc(*s->tok, stdout);
s->state = EStateString;
continue;
}
yy15:
- s->yych = *++s->cur;
- goto yy10;
+ s->yych = *++s->cur;
+ goto yy10;
yy16:
- s->yych = *++s->cur;
- if(s->yych == '\'') goto yy20;
+ s->yych = *++s->cur;
+ if(s->yych == '\'') goto yy20;
yy17:
- s->cur = s->tok;
- goto yy10;
+ s->cur = s->tok;
+ goto yy10;
yy18:
- s->yych = *++s->cur;
- if(s->yych != '"') goto yy17;
- s->yych = *++s->cur;
- if(s->yych != '\'') goto yy17;
+ s->yych = *++s->cur;
+ if(s->yych != '"') goto yy17;
+ s->yych = *++s->cur;
+ if(s->yych != '\'') goto yy17;
yy20:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputl("'\"'", 3, stdout);
continue;
}
yy22:
- ++s->cur;
- {
+ ++s->cur;
+ {
s->cond = EStateSkiptoeol;
goto yyc_Skiptoeol;
}
yy24:
- ++s->cur;
- {
+ ++s->cur;
+ {
s->cond = EStateComment;
goto yyc_Comment;
}
yy26:
- s->yych = *++s->cur;
- switch(s->yych) {
- case '!': goto yy41;
- case '\'': goto yy39;
- case '(': goto yy27;
- case ')': goto yy29;
- case '-': goto yy43;
- case '/': goto yy37;
- case '<': goto yy31;
- case '=': goto yy35;
- case '>': goto yy33;
- default: goto yy17;
- }
+ s->yych = *++s->cur;
+ switch(s->yych) {
+ case '!': goto yy41;
+ case '\'': goto yy39;
+ case '(': goto yy27;
+ case ')': goto yy29;
+ case '-': goto yy43;
+ case '/': goto yy37;
+ case '<': goto yy31;
+ case '=': goto yy35;
+ case '>': goto yy33;
+ default: goto yy17;
+ }
yy27:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('[', stdout);
continue;
}
yy29:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc(']', stdout);
continue;
}
yy31:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('{', stdout);
continue;
}
yy33:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('}', stdout);
continue;
}
yy35:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('#', stdout);
continue;
}
yy37:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('\\', stdout);
continue;
}
yy39:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('^', stdout);
continue;
}
yy41:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('|', stdout);
continue;
}
yy43:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('~', stdout);
continue;
}
/* *********************************** */
yyc_Skiptoeol:
- s->state = 2;
- if((s->lim - s->cur) < 5) if(fill(s, 5) >= 0) break;
+ s->state = 2;
+ if((s->lim - s->cur) < 5) if(fill(s, 5) >= 0) break;
yyFillLabel2:
- s->yych = *s->cur;
- if(s->yych <= '>') {
- if(s->yych == 0x0A) goto yy50;
- goto yy52;
- } else {
- if(s->yych <= '?') goto yy47;
- if(s->yych == '\\') goto yy49;
- goto yy52;
- }
+ s->yych = *s->cur;
+ if(s->yych <= '>') {
+ if(s->yych == 0x0A) goto yy50;
+ goto yy52;
+ } else {
+ if(s->yych <= '?') goto yy47;
+ if(s->yych == '\\') goto yy49;
+ goto yy52;
+ }
yy47:
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == '?') goto yy57;
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == '?') goto yy57;
yy48:
- {
+ {
goto yyc_Skiptoeol;
}
yy49:
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == 0x0A) goto yy55;
- if(s->yych == 0x0D) goto yy53;
- goto yy48;
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == 0x0A) goto yy55;
+ if(s->yych == 0x0D) goto yy53;
+ goto yy48;
yy50:
- ++s->cur;
- {
+ ++s->cur;
+ {
s->cond = EStateNormal;
continue;
}
yy52:
- s->yych = *++s->cur;
- goto yy48;
+ s->yych = *++s->cur;
+ goto yy48;
yy53:
- s->yych = *++s->cur;
- if(s->yych == 0x0A) goto yy55;
+ s->yych = *++s->cur;
+ if(s->yych == 0x0A) goto yy55;
yy54:
- s->cur = s->tok;
- goto yy48;
+ s->cur = s->tok;
+ goto yy48;
yy55:
- ++s->cur;
- {
+ ++s->cur;
+ {
goto yyc_Skiptoeol;
}
yy57:
- s->yych = *++s->cur;
- if(s->yych != '/') goto yy54;
- s->yych = *++s->cur;
- if(s->yych == 0x0A) goto yy60;
- if(s->yych != 0x0D) goto yy54;
- s->yych = *++s->cur;
- if(s->yych != 0x0A) goto yy54;
+ s->yych = *++s->cur;
+ if(s->yych != '/') goto yy54;
+ s->yych = *++s->cur;
+ if(s->yych == 0x0A) goto yy60;
+ if(s->yych != 0x0D) goto yy54;
+ s->yych = *++s->cur;
+ if(s->yych != 0x0A) goto yy54;
yy60:
- ++s->cur;
- {
+ ++s->cur;
+ {
goto yyc_Skiptoeol;
}
/* *********************************** */
yyc_String:
- s->state = 3;
- if((s->lim - s->cur) < 2) if(fill(s, 2) >= 0) break;
+ s->state = 3;
+ if((s->lim - s->cur) < 2) if(fill(s, 2) >= 0) break;
yyFillLabel3:
- s->yych = *s->cur;
- if(s->yych == '"') goto yy66;
- if(s->yych != '\\') goto yy68;
- ++s->cur;
- if((s->yych = *s->cur) != 0x0A) goto yy69;
+ s->yych = *s->cur;
+ if(s->yych == '"') goto yy66;
+ if(s->yych != '\\') goto yy68;
+ ++s->cur;
+ if((s->yych = *s->cur) != 0x0A) goto yy69;
yy65:
- {
+ {
fputc(*s->tok, stdout);
continue;
}
yy66:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc(*s->tok, stdout);
s->cond = EStateNormal;
continue;
}
yy68:
- s->yych = *++s->cur;
- goto yy65;
+ s->yych = *++s->cur;
+ goto yy65;
yy69:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputl((const char*)s->tok, 2, stdout);
continue;
}
- }
}
}
{
s->tok = s->cur;
- {
yy0:
- if (s->cond < 2) {
- if (s->cond < 1) {
- goto yyc_Normal;
- } else {
- goto yyc_Comment;
- }
+ if (s->cond < 2) {
+ if (s->cond < 1) {
+ goto yyc_Normal;
+ } else {
+ goto yyc_Comment;
+ }
+ } else {
+ if (s->cond < 3) {
+ goto yyc_Skiptoeol;
} else {
- if (s->cond < 3) {
- goto yyc_Skiptoeol;
- } else {
- goto yyc_String;
- }
+ goto yyc_String;
}
+ }
/* *********************************** */
yyc_Comment:
- s->state = 0;
- if((s->lim - s->cur) < 2) if(fill(s, 2) == ~0) break;
+ s->state = 0;
+ if((s->lim - s->cur) < 2) if(fill(s, 2) == ~0) break;
yyFillLabel0:
- s->yych = *s->cur;
- if(s->yych != '*') goto yy4;
- ++s->cur;
- if((s->yych = *s->cur) == '/') goto yy5;
+ s->yych = *s->cur;
+ if(s->yych != '*') goto yy4;
+ ++s->cur;
+ if((s->yych = *s->cur) == '/') goto yy5;
yy3:
- {
+ {
goto yyc_Comment;
}
yy4:
- s->yych = *++s->cur;
- goto yy3;
+ s->yych = *++s->cur;
+ goto yy3;
yy5:
- ++s->cur;
- s->cond = EStateNormal;
- {
+ ++s->cur;
+ s->cond = EStateNormal;
+ {
continue;
}
/* *********************************** */
yyc_Normal:
- s->state = 1;
- if((s->lim - s->cur) < 4) if(fill(s, 4) == ~0) break;
+ s->state = 1;
+ if((s->lim - s->cur) < 4) if(fill(s, 4) == ~0) break;
yyFillLabel1:
- s->yych = *s->cur;
- if(s->yych <= '\'') {
- if(s->yych == '"') goto yy13;
- if(s->yych <= '&') goto yy15;
- goto yy12;
+ s->yych = *s->cur;
+ if(s->yych <= '\'') {
+ if(s->yych == '"') goto yy13;
+ if(s->yych <= '&') goto yy15;
+ goto yy12;
+ } else {
+ if(s->yych <= '/') {
+ if(s->yych <= '.') goto yy15;
+ goto yy11;
} else {
- if(s->yych <= '/') {
- if(s->yych <= '.') goto yy15;
- goto yy11;
- } else {
- if(s->yych != '?') goto yy15;
- }
+ if(s->yych != '?') goto yy15;
}
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == '?') goto yy26;
+ }
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == '?') goto yy26;
yy10:
- {
+ {
fputc(s->cur[-1], stdout);
continue;
}
yy11:
- s->yych = *++s->cur;
- if(s->yych == '*') goto yy24;
- if(s->yych == '/') goto yy22;
- goto yy10;
+ s->yych = *++s->cur;
+ if(s->yych == '*') goto yy24;
+ if(s->yych == '/') goto yy22;
+ goto yy10;
yy12:
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == '"') goto yy16;
- if(s->yych == '\\') goto yy18;
- goto yy10;
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == '"') goto yy16;
+ if(s->yych == '\\') goto yy18;
+ goto yy10;
yy13:
- ++s->cur;
- s->cond = EStateString;
- {
+ ++s->cur;
+ s->cond = EStateString;
+ {
fputc(s->cur[-1], stdout);
continue;
}
yy15:
- s->yych = *++s->cur;
- goto yy10;
+ s->yych = *++s->cur;
+ goto yy10;
yy16:
- s->yych = *++s->cur;
- if(s->yych == '\'') goto yy20;
+ s->yych = *++s->cur;
+ if(s->yych == '\'') goto yy20;
yy17:
- s->cur = s->tok;
- goto yy10;
+ s->cur = s->tok;
+ goto yy10;
yy18:
- s->yych = *++s->cur;
- if(s->yych != '"') goto yy17;
- s->yych = *++s->cur;
- if(s->yych != '\'') goto yy17;
+ s->yych = *++s->cur;
+ if(s->yych != '"') goto yy17;
+ s->yych = *++s->cur;
+ if(s->yych != '\'') goto yy17;
yy20:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputl("'\"'", 3, stdout);
continue;
}
yy22:
- ++s->cur;
- s->cond = EStateSkiptoeol;
- {
+ ++s->cur;
+ s->cond = EStateSkiptoeol;
+ {
goto yyc_Skiptoeol;
}
yy24:
- ++s->cur;
- s->cond = EStateComment;
- {
+ ++s->cur;
+ s->cond = EStateComment;
+ {
goto yyc_Comment;
}
yy26:
- s->yych = *++s->cur;
- switch(s->yych) {
- case '!': goto yy41;
- case '\'': goto yy39;
- case '(': goto yy27;
- case ')': goto yy29;
- case '-': goto yy43;
- case '/': goto yy37;
- case '<': goto yy31;
- case '=': goto yy35;
- case '>': goto yy33;
- default: goto yy17;
- }
+ s->yych = *++s->cur;
+ switch(s->yych) {
+ case '!': goto yy41;
+ case '\'': goto yy39;
+ case '(': goto yy27;
+ case ')': goto yy29;
+ case '-': goto yy43;
+ case '/': goto yy37;
+ case '<': goto yy31;
+ case '=': goto yy35;
+ case '>': goto yy33;
+ default: goto yy17;
+ }
yy27:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('[', stdout);
continue;
}
yy29:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc(']', stdout);
continue;
}
yy31:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('{', stdout);
continue;
}
yy33:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('}', stdout);
continue;
}
yy35:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('#', stdout);
continue;
}
yy37:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('\\', stdout);
continue;
}
yy39:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('^', stdout);
continue;
}
yy41:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('|', stdout);
continue;
}
yy43:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputc('~', stdout);
continue;
}
/* *********************************** */
yyc_Skiptoeol:
- s->state = 2;
- if((s->lim - s->cur) < 5) if(fill(s, 5) == ~0) break;
+ s->state = 2;
+ if((s->lim - s->cur) < 5) if(fill(s, 5) == ~0) break;
yyFillLabel2:
- s->yych = *s->cur;
- if(s->yych <= 0x0D) {
- if(s->yych == 0x0A) goto yy51;
- if(s->yych <= 0x0C) goto yy53;
- goto yy50;
+ s->yych = *s->cur;
+ if(s->yych <= 0x0D) {
+ if(s->yych == 0x0A) goto yy51;
+ if(s->yych <= 0x0C) goto yy53;
+ goto yy50;
+ } else {
+ if(s->yych <= '?') {
+ if(s->yych <= '>') goto yy53;
} else {
- if(s->yych <= '?') {
- if(s->yych <= '>') goto yy53;
- } else {
- if(s->yych == '\\') goto yy49;
- goto yy53;
- }
+ if(s->yych == '\\') goto yy49;
+ goto yy53;
}
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == '?') goto yy60;
+ }
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == '?') goto yy60;
yy48:
- {
+ {
goto yyc_Skiptoeol;
}
yy49:
- s->yych = *(s->tok = ++s->cur);
- if(s->yych == 0x0A) goto yy58;
- if(s->yych == 0x0D) goto yy56;
- goto yy48;
+ s->yych = *(s->tok = ++s->cur);
+ if(s->yych == 0x0A) goto yy58;
+ if(s->yych == 0x0D) goto yy56;
+ goto yy48;
yy50:
- s->yych = *++s->cur;
- if(s->yych == 0x0A) goto yy54;
- goto yy48;
+ s->yych = *++s->cur;
+ if(s->yych == 0x0A) goto yy54;
+ goto yy48;
yy51:
- ++s->cur;
- s->cond = EStateNormal;
- {
+ ++s->cur;
+ s->cond = EStateNormal;
+ {
fputc('\n', stdout);
continue;
}
yy53:
- s->yych = *++s->cur;
- goto yy48;
+ s->yych = *++s->cur;
+ goto yy48;
yy54:
- ++s->cur;
- s->cond = EStateNormal;
- {
+ ++s->cur;
+ s->cond = EStateNormal;
+ {
fputc('\r', stdout);
fputc('\n', stdout);
continue;
}
yy56:
- s->yych = *++s->cur;
- if(s->yych == 0x0A) goto yy58;
+ s->yych = *++s->cur;
+ if(s->yych == 0x0A) goto yy58;
yy57:
- s->cur = s->tok;
- goto yy48;
+ s->cur = s->tok;
+ goto yy48;
yy58:
- ++s->cur;
- {
+ ++s->cur;
+ {
goto yyc_Skiptoeol;
}
yy60:
- s->yych = *++s->cur;
- if(s->yych != '/') goto yy57;
- s->yych = *++s->cur;
- if(s->yych == 0x0A) goto yy63;
- if(s->yych != 0x0D) goto yy57;
- s->yych = *++s->cur;
- if(s->yych != 0x0A) goto yy57;
+ s->yych = *++s->cur;
+ if(s->yych != '/') goto yy57;
+ s->yych = *++s->cur;
+ if(s->yych == 0x0A) goto yy63;
+ if(s->yych != 0x0D) goto yy57;
+ s->yych = *++s->cur;
+ if(s->yych != 0x0A) goto yy57;
yy63:
- ++s->cur;
- {
+ ++s->cur;
+ {
goto yyc_Skiptoeol;
}
/* *********************************** */
yyc_String:
- s->state = 3;
- if((s->lim - s->cur) < 2) if(fill(s, 2) == ~0) break;
+ s->state = 3;
+ if((s->lim - s->cur) < 2) if(fill(s, 2) == ~0) break;
yyFillLabel3:
- s->yych = *s->cur;
- if(s->yych == '"') goto yy69;
- if(s->yych != '\\') goto yy71;
- ++s->cur;
- if((s->yych = *s->cur) != 0x0A) goto yy72;
+ s->yych = *s->cur;
+ if(s->yych == '"') goto yy69;
+ if(s->yych != '\\') goto yy71;
+ ++s->cur;
+ if((s->yych = *s->cur) != 0x0A) goto yy72;
yy68:
- {
+ {
fputc(s->cur[-1], stdout);
continue;
}
yy69:
- ++s->cur;
- s->cond = EStateNormal;
- {
+ ++s->cur;
+ s->cond = EStateNormal;
+ {
fputc(s->cur[-1], stdout);
continue;
}
yy71:
- s->yych = *++s->cur;
- goto yy68;
+ s->yych = *++s->cur;
+ goto yy68;
yy72:
- ++s->cur;
- {
+ ++s->cur;
+ {
fputl((const char*)s->cur-2, 2, stdout);
continue;
}
- }
}
}
char *q;
#line 15 "<stdout>"
-{
switch(YYGETSTATE()) {
default: goto yy0;
yy3:
#line 13 "config4a.f.re"
{ return YYCURSOR; }
-#line 48 "<stdout>"
+#line 47 "<stdout>"
yy4:
++YYCURSOR;
#line 14 "config4a.f.re"
{ return NULL; }
-#line 53 "<stdout>"
+#line 52 "<stdout>"
yy6:
++YYCURSOR;
YYSETSTATE(1);
case '9': goto yy6;
default: goto yy3;
}
-}
#line 15 "config4a.f.re"
}
char *q;
#line 15 "<stdout>"
-{
switch(YYGETSTATE()) {
default: abort();
yy3:
#line 13 "config4b.f.re"
{ return YYCURSOR; }
-#line 49 "<stdout>"
+#line 48 "<stdout>"
yy4:
++YYCURSOR;
#line 14 "config4b.f.re"
{ return NULL; }
-#line 54 "<stdout>"
+#line 53 "<stdout>"
yy6:
++YYCURSOR;
YYSETSTATE(1);
case '9': goto yy6;
default: goto yy3;
}
-}
#line 15 "config4b.f.re"
}
char *q;
#line 15 "<stdout>"
-{
switch(YYGETSTATE()) {
default: goto yy0;
yy3:
#line 14 "config4c.f.re"
{ return YYCURSOR; }
-#line 49 "<stdout>"
+#line 48 "<stdout>"
yy4:
++YYCURSOR;
#line 15 "config4c.f.re"
{ return NULL; }
-#line 54 "<stdout>"
+#line 53 "<stdout>"
yy6:
++YYCURSOR;
YYSETSTATE(1);
case '9': goto yy6;
default: goto yy3;
}
-}
#line 16 "config4c.f.re"
}
char *q;
#line 15 "<stdout>"
-{
switch(YYGETSTATE()) {
default: goto yy0;
yy3:
#line 15 "config4d.f.re"
{ return YYCURSOR; }
-#line 50 "<stdout>"
+#line 49 "<stdout>"
yy4:
++YYCURSOR;
#line 16 "config4d.f.re"
{ return NULL; }
-#line 55 "<stdout>"
+#line 54 "<stdout>"
yy6:
++YYCURSOR;
YYSETSTATE(1);
case '9': goto yy6;
default: goto yy3;
}
-}
#line 17 "config4d.f.re"
}
char *q;
#line 15 "<stdout>"
-{
switch(YYGETSTATE()) {
default: goto yy0;
yy3:
#line 15 "config4e.f.re"
{ return YYCURSOR; }
-#line 49 "<stdout>"
+#line 48 "<stdout>"
yy4:
++YYCURSOR;
#line 16 "config4e.f.re"
{ return NULL; }
-#line 54 "<stdout>"
+#line 53 "<stdout>"
yy6:
++YYCURSOR;
YYSETSTATE(1);
case '9': goto yy6;
default: goto yy3;
}
-}
#line 17 "config4e.f.re"
}
#line 25 "<stdout>"
- {
yy0:
- YYSETSTATE(0);
- if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+ YYSETSTATE(0);
+ if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yyFillLabel0:
- yych = *YYCURSOR;
- switch(yych) {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy2;
- default: goto yy4;
- }
+ yych = *YYCURSOR;
+ switch(yych) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy2;
+ default: goto yy4;
+ }
yy2:
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy7;
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy7;
yy3:
#line 21 "config4f.f.re"
- { return YYCURSOR; }
-#line 53 "<stdout>"
+ { return YYCURSOR; }
+#line 52 "<stdout>"
yy4:
- ++YYCURSOR;
+ ++YYCURSOR;
#line 22 "config4f.f.re"
- { return NULL; }
-#line 58 "<stdout>"
+ { return NULL; }
+#line 57 "<stdout>"
yy6:
- ++YYCURSOR;
- YYSETSTATE(1);
- if(YYLIMIT == YYCURSOR) YYFILL(1);
+ ++YYCURSOR;
+ YYSETSTATE(1);
+ if(YYLIMIT == YYCURSOR) YYFILL(1);
yyFillLabel1:
- yych = *YYCURSOR;
+ yych = *YYCURSOR;
yy7:
- switch(yych) {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy6;
- default: goto yy3;
- }
+ switch(yych) {
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy6;
+ default: goto yy3;
}
#line 23 "config4f.f.re"
#line 233 "<stdout>"
-{
switch(YYGETSTATE()) {
default: goto yy0;
yy3:
#line 246 "push.f.re"
{ SEND(kIdentifier); }
-#line 336 "<stdout>"
+#line 335 "<stdout>"
yy4:
yych = *++YYCURSOR;
switch(yych) {
yy13:
#line 247 "push.f.re"
{ SEND(kDecimalConstant);}
-#line 386 "<stdout>"
+#line 385 "<stdout>"
yy14:
++YYCURSOR;
#line 249 "push.f.re"
{ SEND(kEqual); }
-#line 391 "<stdout>"
+#line 390 "<stdout>"
yy16:
++YYCURSOR;
#line 250 "push.f.re"
{ SEND(kLeftParen); }
-#line 396 "<stdout>"
+#line 395 "<stdout>"
yy18:
++YYCURSOR;
#line 251 "push.f.re"
{ SEND(kRightParen); }
-#line 401 "<stdout>"
+#line 400 "<stdout>"
yy20:
++YYCURSOR;
#line 252 "push.f.re"
{ SEND(kMinus); }
-#line 406 "<stdout>"
+#line 405 "<stdout>"
yy22:
++YYCURSOR;
#line 253 "push.f.re"
{ SEND(kPlus); }
-#line 411 "<stdout>"
+#line 410 "<stdout>"
yy24:
++YYCURSOR;
#line 254 "push.f.re"
{ SEND(kStar); }
-#line 416 "<stdout>"
+#line 415 "<stdout>"
yy26:
++YYCURSOR;
#line 255 "push.f.re"
{ SEND(kSlash); }
-#line 421 "<stdout>"
+#line 420 "<stdout>"
yy28:
++YYCURSOR;
#line 257 "push.f.re"
{ SKIP(); }
-#line 426 "<stdout>"
+#line 425 "<stdout>"
yy30:
++YYCURSOR;
#line 258 "push.f.re"
{ SKIP(); }
-#line 431 "<stdout>"
+#line 430 "<stdout>"
yy32:
++YYCURSOR;
#line 259 "push.f.re"
{ send(kEOF); return 1; }
-#line 436 "<stdout>"
+#line 435 "<stdout>"
yy34:
++YYCURSOR;
#line 260 "push.f.re"
{ SEND(kUnknown); }
-#line 441 "<stdout>"
+#line 440 "<stdout>"
yy36:
++YYCURSOR;
YYSETSTATE(1);
yy45:
#line 245 "push.f.re"
{ SEND(kReturn); }
-#line 630 "<stdout>"
+#line 629 "<stdout>"
yy46:
yych = *++YYCURSOR;
switch(yych) {
yy50:
#line 244 "push.f.re"
{ SEND(kWhile); }
-#line 720 "<stdout>"
+#line 719 "<stdout>"
yy51:
yych = *++YYCURSOR;
switch(yych) {
yy55:
#line 243 "push.f.re"
{ SEND(kBreak); }
-#line 810 "<stdout>"
+#line 809 "<stdout>"
yy56:
yych = *++YYCURSOR;
switch(yych) {
yy59:
#line 242 "push.f.re"
{ SEND(kGoto); }
-#line 894 "<stdout>"
+#line 893 "<stdout>"
yy60:
yych = *++YYCURSOR;
switch(yych) {
yy63:
#line 241 "push.f.re"
{ SEND(kElse); }
-#line 978 "<stdout>"
+#line 977 "<stdout>"
yy64:
yych = *++YYCURSOR;
switch(yych) {
yy66:
#line 240 "push.f.re"
{ SEND(kFor); }
-#line 1056 "<stdout>"
+#line 1055 "<stdout>"
yy67:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
yy68:
#line 239 "push.f.re"
{ SEND(kIf); }
-#line 1128 "<stdout>"
-}
+#line 1127 "<stdout>"
#line 261 "push.f.re"
#line 22 "<stdout>"
-{
switch(YYGETSTATE()) {
default: goto yy0;
yy3:
#line 35 "push.fs.re"
{ SEND(kIdentifier); }
-#line 118 "<stdout>"
+#line 117 "<stdout>"
yy4:
yych = *++YYCURSOR;
if(yych == 'o') goto yy64;
yy13:
#line 36 "push.fs.re"
{ SEND(kDecimalConstant);}
-#line 156 "<stdout>"
+#line 155 "<stdout>"
yy14:
++YYCURSOR;
#line 38 "push.fs.re"
{ SEND(kEqual); }
-#line 161 "<stdout>"
+#line 160 "<stdout>"
yy16:
++YYCURSOR;
#line 39 "push.fs.re"
{ SEND(kLeftParen); }
-#line 166 "<stdout>"
+#line 165 "<stdout>"
yy18:
++YYCURSOR;
#line 40 "push.fs.re"
{ SEND(kRightParen); }
-#line 171 "<stdout>"
+#line 170 "<stdout>"
yy20:
++YYCURSOR;
#line 41 "push.fs.re"
{ SEND(kMinus); }
-#line 176 "<stdout>"
+#line 175 "<stdout>"
yy22:
++YYCURSOR;
#line 42 "push.fs.re"
{ SEND(kPlus); }
-#line 181 "<stdout>"
+#line 180 "<stdout>"
yy24:
++YYCURSOR;
#line 43 "push.fs.re"
{ SEND(kStar); }
-#line 186 "<stdout>"
+#line 185 "<stdout>"
yy26:
++YYCURSOR;
#line 44 "push.fs.re"
{ SEND(kSlash); }
-#line 191 "<stdout>"
+#line 190 "<stdout>"
yy28:
++YYCURSOR;
#line 46 "push.fs.re"
{ SKIP(); }
-#line 196 "<stdout>"
+#line 195 "<stdout>"
yy30:
++YYCURSOR;
#line 47 "push.fs.re"
{ SKIP(); }
-#line 201 "<stdout>"
+#line 200 "<stdout>"
yy32:
++YYCURSOR;
#line 48 "push.fs.re"
{ send(kEOF); return 1; }
-#line 206 "<stdout>"
+#line 205 "<stdout>"
yy34:
++YYCURSOR;
#line 49 "push.fs.re"
{ SEND(kUnknown); }
-#line 211 "<stdout>"
+#line 210 "<stdout>"
yy36:
++YYCURSOR;
YYSETSTATE(1);
yy45:
#line 34 "push.fs.re"
{ SEND(kReturn); }
-#line 269 "<stdout>"
+#line 268 "<stdout>"
yy46:
yych = *++YYCURSOR;
if(yych != 'i') goto yy39;
yy50:
#line 33 "push.fs.re"
{ SEND(kWhile); }
-#line 293 "<stdout>"
+#line 292 "<stdout>"
yy51:
yych = *++YYCURSOR;
if(yych != 'e') goto yy39;
yy55:
#line 32 "push.fs.re"
{ SEND(kBreak); }
-#line 317 "<stdout>"
+#line 316 "<stdout>"
yy56:
yych = *++YYCURSOR;
if(yych != 't') goto yy39;
yy59:
#line 31 "push.fs.re"
{ SEND(kGoto); }
-#line 339 "<stdout>"
+#line 338 "<stdout>"
yy60:
yych = *++YYCURSOR;
if(yych != 's') goto yy39;
yy63:
#line 30 "push.fs.re"
{ SEND(kElse); }
-#line 361 "<stdout>"
+#line 360 "<stdout>"
yy64:
yych = *++YYCURSOR;
if(yych != 'r') goto yy39;
yy66:
#line 29 "push.fs.re"
{ SEND(kFor); }
-#line 381 "<stdout>"
+#line 380 "<stdout>"
yy67:
++YYCURSOR;
if((yych = *YYCURSOR) <= 'Z') {
yy68:
#line 28 "push.fs.re"
{ SEND(kIf); }
-#line 399 "<stdout>"
-}
+#line 398 "<stdout>"
#line 50 "push.fs.re"
echo:
#line 96 "<stdout>"
-{
switch(YYGETSTATE()) {
default: goto yy0;
{
goto echo;
}
-#line 158 "<stdout>"
+#line 157 "<stdout>"
yy4:
yych = *++YYCURSOR;
if(yych == '/') goto yy10;
tok = pos = cursor; cline++;
goto echo;
}
-#line 171 "<stdout>"
+#line 170 "<stdout>"
yy7:
++YYCURSOR;
#line 135 "scanner.fs.re"
RETURN(0);
}
}
-#line 181 "<stdout>"
+#line 180 "<stdout>"
yy9:
yych = *++YYCURSOR;
goto yy3;
tok = pos = cursor;
goto echo;
}
-#line 197 "<stdout>"
+#line 196 "<stdout>"
yy12:
yych = *++YYCURSOR;
if(yych == '!') goto yy14;
tok = cursor;
RETURN(1);
}
-#line 227 "<stdout>"
+#line 226 "<stdout>"
yy21:
yych = *++YYCURSOR;
if(yych != 'x') goto yy13;
ignore_eoc = true;
goto echo;
}
-#line 249 "<stdout>"
-}
+#line 248 "<stdout>"
#line 144 "scanner.fs.re"
}
goto value;
}
-#line 274 "<stdout>"
-{
+#line 272 "<stdout>"
YYSETSTATE(1);
if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
{ depth = 1;
goto code;
}
-#line 353 "<stdout>"
+#line 350 "<stdout>"
yy33:
++YYCURSOR;
if((yych = *YYCURSOR) == '*') goto yy92;
yy34:
#line 196 "scanner.fs.re"
{ RETURN(*tok); }
-#line 360 "<stdout>"
+#line 357 "<stdout>"
yy35:
++YYCURSOR;
if((yych = *YYCURSOR) == '/') goto yy90;
#line 198 "scanner.fs.re"
{ yylval.op = *tok;
RETURN(CLOSE); }
-#line 368 "<stdout>"
+#line 365 "<stdout>"
yy37:
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
yy38:
#line 183 "scanner.fs.re"
{ fatal("unterminated string constant (missing \")"); }
-#line 376 "<stdout>"
+#line 373 "<stdout>"
yy39:
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
yy40:
#line 184 "scanner.fs.re"
{ fatal("unterminated string constant (missing ')"); }
-#line 384 "<stdout>"
+#line 381 "<stdout>"
yy41:
yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
yy42:
#line 194 "scanner.fs.re"
{ fatal("unterminated range (missing ])"); }
-#line 394 "<stdout>"
+#line 391 "<stdout>"
yy43:
yych = *++YYCURSOR;
goto yy34;
{ cur = cursor;
yylval.symbol = Symbol::find(token());
return ID; }
-#line 410 "<stdout>"
+#line 407 "<stdout>"
yy47:
yych = *++YYCURSOR;
goto yy61;
yylval.regexp = mkDot();
return RANGE;
}
-#line 421 "<stdout>"
+#line 418 "<stdout>"
yy50:
++YYCURSOR;
yych = *YYCURSOR;
yy51:
#line 234 "scanner.fs.re"
{ goto scan; }
-#line 429 "<stdout>"
+#line 426 "<stdout>"
yy52:
++YYCURSOR;
yy53:
pos = cursor; cline++;
goto scan;
}
-#line 438 "<stdout>"
+#line 435 "<stdout>"
yy54:
++YYCURSOR;
if((yych = *YYCURSOR) == 0x0A) goto yy57;
fatal(msg.str().c_str());
goto scan;
}
-#line 450 "<stdout>"
+#line 447 "<stdout>"
yy56:
yych = *++YYCURSOR;
goto yy55;
yylval.str = new Str(token());
return CONFIG;
}
-#line 559 "<stdout>"
+#line 556 "<stdout>"
yy70:
++YYCURSOR;
YYSETSTATE(6);
{ cur = cursor;
yylval.regexp = ranToRE(token());
return RANGE; }
-#line 603 "<stdout>"
+#line 600 "<stdout>"
yy77:
++YYCURSOR;
YYSETSTATE(9);
{ cur = cursor;
yylval.regexp = invToRE(token());
return RANGE; }
-#line 618 "<stdout>"
+#line 615 "<stdout>"
yy80:
++YYCURSOR;
YYSETSTATE(10);
{ cur = cursor;
yylval.regexp = strToCaseInsensitiveRE(token());
return STRING; }
-#line 646 "<stdout>"
+#line 643 "<stdout>"
yy85:
++YYCURSOR;
YYSETSTATE(12);
{ cur = cursor;
yylval.regexp = strToRE(token());
return STRING; }
-#line 674 "<stdout>"
+#line 671 "<stdout>"
yy90:
++YYCURSOR;
#line 172 "scanner.fs.re"
{ tok = cursor;
RETURN(0); }
-#line 680 "<stdout>"
+#line 677 "<stdout>"
yy92:
++YYCURSOR;
#line 169 "scanner.fs.re"
{ depth = 1;
goto comment; }
-#line 686 "<stdout>"
+#line 683 "<stdout>"
yy94:
yych = *++YYCURSOR;
if(yych == ',') goto yy108;
yy98:
#line 216 "scanner.fs.re"
{ fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); }
-#line 711 "<stdout>"
+#line 708 "<stdout>"
yy99:
++YYCURSOR;
#line 204 "scanner.fs.re"
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = atoi((char *)tok+1);
RETURN(CLOSESIZE); }
-#line 718 "<stdout>"
+#line 715 "<stdout>"
yy101:
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = -1;
RETURN(CLOSESIZE); }
-#line 730 "<stdout>"
+#line 727 "<stdout>"
yy104:
++YYCURSOR;
YYSETSTATE(15);
{ yylval.extop.minsize = atoi((char *)tok+1);
yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1));
RETURN(CLOSESIZE); }
-#line 745 "<stdout>"
+#line 742 "<stdout>"
yy108:
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
#line 201 "scanner.fs.re"
{ yylval.op = '*';
RETURN(CLOSE); }
-#line 756 "<stdout>"
-}
+#line 753 "<stdout>"
#line 247 "scanner.fs.re"
code:
-#line 763 "<stdout>"
-{
+#line 759 "<stdout>"
YYSETSTATE(16);
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
return CODE;
}
goto code; }
-#line 795 "<stdout>"
+#line 790 "<stdout>"
yy115:
++YYCURSOR;
#line 257 "scanner.fs.re"
{ ++depth;
goto code; }
-#line 801 "<stdout>"
+#line 796 "<stdout>"
yy117:
++YYCURSOR;
#line 259 "scanner.fs.re"
pos = cursor; cline++;
goto code;
}
-#line 809 "<stdout>"
+#line 804 "<stdout>"
yy119:
++YYCURSOR;
yy120:
#line 263 "scanner.fs.re"
{ goto code; }
-#line 815 "<stdout>"
+#line 810 "<stdout>"
yy121:
yych = *(YYMARKER = ++YYCURSOR);
if(yych == 0x0A) goto yy120;
yych = *YYCURSOR;
if(yych == 0x0A) goto yy125;
goto yy127;
-}
#line 264 "scanner.fs.re"
comment:
-#line 876 "<stdout>"
-{
+#line 870 "<stdout>"
YYSETSTATE(21);
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
#line 279 "scanner.fs.re"
{ if(cursor == eof) RETURN(0);
goto comment; }
-#line 898 "<stdout>"
+#line 891 "<stdout>"
yy134:
yych = *++YYCURSOR;
if(yych == '*') goto yy138;
tok = pos = cursor; cline++;
goto comment;
}
-#line 910 "<stdout>"
+#line 903 "<stdout>"
yy137:
yych = *++YYCURSOR;
goto yy133;
{ ++depth;
fatal("ambiguous /* found");
goto comment; }
-#line 920 "<stdout>"
+#line 913 "<stdout>"
yy140:
++YYCURSOR;
#line 268 "scanner.fs.re"
goto scan;
else
goto comment; }
-#line 928 "<stdout>"
-}
+#line 921 "<stdout>"
#line 281 "scanner.fs.re"
config:
-#line 935 "<stdout>"
-{
+#line 927 "<stdout>"
YYSETSTATE(22);
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yy145:
#line 285 "scanner.fs.re"
{ goto config; }
-#line 956 "<stdout>"
+#line 947 "<stdout>"
yy146:
++YYCURSOR;
yych = *YYCURSOR;
cur = cursor;
RETURN('=');
}
-#line 967 "<stdout>"
+#line 958 "<stdout>"
yy148:
++YYCURSOR;
#line 290 "scanner.fs.re"
{ fatal("missing '='"); }
-#line 972 "<stdout>"
+#line 963 "<stdout>"
yy150:
++YYCURSOR;
YYSETSTATE(23);
if(yych == 0x09) goto yy152;
if(yych == ' ') goto yy152;
goto yy145;
-}
#line 291 "scanner.fs.re"
value:
-#line 999 "<stdout>"
-{
+#line 989 "<stdout>"
YYSETSTATE(25);
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
iscfg = 0;
return VALUE;
}
-#line 1040 "<stdout>"
+#line 1029 "<stdout>"
yy157:
++YYCURSOR;
if((yych = *YYCURSOR) <= 0x0D) {
iscfg = 0;
return NUMBER;
}
-#line 1061 "<stdout>"
+#line 1050 "<stdout>"
yy159:
yych = *++YYCURSOR;
if(yych <= '0') goto yy163;
yych = *YYCURSOR;
if(yych == 0x0A) goto yy170;
goto yy174;
-}
#line 305 "scanner.fs.re"
}