From: helly Date: Sun, 6 May 2007 22:55:26 +0000 (+0000) Subject: - Avoid unnecessary braces X-Git-Tag: 0.13.6~140 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=10d79ae0a45f087d53ffc464ce0e342b520efa94;p=re2c - Avoid unnecessary braces --- diff --git a/re2c/actions.cc b/re2c/actions.cc index c761298c..6a8d6754 100644 --- a/re2c/actions.cc +++ b/re2c/actions.cc @@ -1004,7 +1004,7 @@ CharSet::~CharSet() 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; @@ -1052,7 +1052,7 @@ void genCode(std::ostream& o, uint& ind, RegExp *re, const RegExpMap* specMap, c } 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; diff --git a/re2c/code.cc b/re2c/code.cc index 4a05b454..2fae957c 100644 --- a/re2c/code.cc +++ b/re2c/code.cc @@ -1475,7 +1475,7 @@ void DFA::findBaseState() 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; @@ -1651,7 +1651,20 @@ void DFA::emit(std::ostream &o, uint& ind, const RegExpMap* specMap, const std:: 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) { @@ -1691,19 +1704,16 @@ void DFA::emit(std::ostream &o, uint& ind, const RegExpMap* specMap, const std:: 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? @@ -1726,7 +1736,7 @@ void DFA::emit(std::ostream &o, uint& ind, const RegExpMap* specMap, const std:: o << indent(--ind) << "}\n"; } // Generate epilog - if (!cFlag || isLastCond) + if ((!cFlag || isLastCond) && bPrologBrace) { o << indent(--ind) << "}\n"; } diff --git a/re2c/dfa.h b/re2c/dfa.h index 912b0082..fb9a2e00 100644 --- a/re2c/dfa.h +++ b/re2c/dfa.h @@ -266,7 +266,7 @@ public: 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*); diff --git a/re2c/parser.y b/re2c/parser.y index bc7cbd4e..d48526b3 100644 --- a/re2c/parser.y +++ b/re2c/parser.y @@ -385,6 +385,7 @@ void parse(Scanner& i, std::ostream& o, std::ostream* h) while(i.echo()) { + bool bPrologBrace = false; yyparse(); if (cFlag) { @@ -423,7 +424,7 @@ void parse(Scanner& i, std::ostream& o, std::ostream* h) 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) { @@ -436,7 +437,7 @@ void parse(Scanner& i, std::ostream& o, std::ostream* h) } else if(spec) { - genCode(o, topIndent, spec, NULL, "", 0); + genCode(o, topIndent, spec, NULL, "", 0, bPrologBrace); } o << sourceFileInfo; } diff --git a/re2c/re.h b/re2c/re.h index 5852cf92..d303bb69 100644 --- a/re2c/re.h +++ b/re2c/re.h @@ -494,7 +494,7 @@ typedef std::map RegExpMap; typedef std::vector RegExpIndices; typedef std::list 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&); diff --git a/re2c/test/bug1472770.f.c b/re2c/test/bug1472770.f.c index 28b3584a..4fafe0b6 100755 --- a/re2c/test/bug1472770.f.c +++ b/re2c/test/bug1472770.f.c @@ -26,7 +26,6 @@ int scan(char *p) start: #line 29 "" -{ switch(YYGETSTATE()) { default: goto yy0; @@ -52,15 +51,14 @@ yy3: ++n; goto start; } -#line 56 "" +#line 55 "" yy5: ++YYCURSOR; #line 32 "bug1472770.f.re" { return n; } -#line 63 "" -} +#line 62 "" #line 35 "bug1472770.f.re" } diff --git a/re2c/test/condition_08.cbi.c b/re2c/test/condition_08.cbi.c index 75e698b7..d2fc906d 100755 --- a/re2c/test/condition_08.cbi.c +++ b/re2c/test/condition_08.cbi.c @@ -72,268 +72,266 @@ void scan(Scanner *s) { 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; } - } } } diff --git a/re2c/test/condition_08.cbif.c b/re2c/test/condition_08.cbif.c index d460715f..eae138f7 100755 --- a/re2c/test/condition_08.cbif.c +++ b/re2c/test/condition_08.cbif.c @@ -72,295 +72,293 @@ void scan(Scanner *s) { 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; } - } } } diff --git a/re2c/test/condition_09.cbif.c b/re2c/test/condition_09.cbif.c index 92975e87..fdd2f1e5 100755 --- a/re2c/test/condition_09.cbif.c +++ b/re2c/test/condition_09.cbif.c @@ -99,294 +99,292 @@ void scan(Scanner *s) { 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; } - } } } diff --git a/re2c/test/config4a.f.c b/re2c/test/config4a.f.c index 90adc3d9..bc02e21d 100755 --- a/re2c/test/config4a.f.c +++ b/re2c/test/config4a.f.c @@ -12,7 +12,6 @@ char *scan(char *p) char *q; #line 15 "" -{ switch(YYGETSTATE()) { default: goto yy0; @@ -44,12 +43,12 @@ yy2: yy3: #line 13 "config4a.f.re" { return YYCURSOR; } -#line 48 "" +#line 47 "" yy4: ++YYCURSOR; #line 14 "config4a.f.re" { return NULL; } -#line 53 "" +#line 52 "" yy6: ++YYCURSOR; YYSETSTATE(1); @@ -70,7 +69,6 @@ yy7: case '9': goto yy6; default: goto yy3; } -} #line 15 "config4a.f.re" } diff --git a/re2c/test/config4b.f.c b/re2c/test/config4b.f.c index a7d90119..1bad6c88 100755 --- a/re2c/test/config4b.f.c +++ b/re2c/test/config4b.f.c @@ -12,7 +12,6 @@ char *scan(char *p) char *q; #line 15 "" -{ switch(YYGETSTATE()) { default: abort(); @@ -45,12 +44,12 @@ yy2: yy3: #line 13 "config4b.f.re" { return YYCURSOR; } -#line 49 "" +#line 48 "" yy4: ++YYCURSOR; #line 14 "config4b.f.re" { return NULL; } -#line 54 "" +#line 53 "" yy6: ++YYCURSOR; YYSETSTATE(1); @@ -71,7 +70,6 @@ yy7: case '9': goto yy6; default: goto yy3; } -} #line 15 "config4b.f.re" } diff --git a/re2c/test/config4c.f.c b/re2c/test/config4c.f.c index 8ea96112..c5284474 100755 --- a/re2c/test/config4c.f.c +++ b/re2c/test/config4c.f.c @@ -12,7 +12,6 @@ char *scan(char *p) char *q; #line 15 "" -{ switch(YYGETSTATE()) { default: goto yy0; @@ -45,12 +44,12 @@ yy2: yy3: #line 14 "config4c.f.re" { return YYCURSOR; } -#line 49 "" +#line 48 "" yy4: ++YYCURSOR; #line 15 "config4c.f.re" { return NULL; } -#line 54 "" +#line 53 "" yy6: ++YYCURSOR; YYSETSTATE(1); @@ -71,7 +70,6 @@ yy7: case '9': goto yy6; default: goto yy3; } -} #line 16 "config4c.f.re" } diff --git a/re2c/test/config4d.f.c b/re2c/test/config4d.f.c index fb6a97c6..fbaea51d 100755 --- a/re2c/test/config4d.f.c +++ b/re2c/test/config4d.f.c @@ -12,7 +12,6 @@ char *scan(char *p) char *q; #line 15 "" -{ switch(YYGETSTATE()) { default: goto yy0; @@ -46,12 +45,12 @@ yy2: yy3: #line 15 "config4d.f.re" { return YYCURSOR; } -#line 50 "" +#line 49 "" yy4: ++YYCURSOR; #line 16 "config4d.f.re" { return NULL; } -#line 55 "" +#line 54 "" yy6: ++YYCURSOR; YYSETSTATE(1); @@ -72,7 +71,6 @@ yy7: case '9': goto yy6; default: goto yy3; } -} #line 17 "config4d.f.re" } diff --git a/re2c/test/config4e.f.c b/re2c/test/config4e.f.c index 6dcb02c6..27f7e331 100755 --- a/re2c/test/config4e.f.c +++ b/re2c/test/config4e.f.c @@ -12,7 +12,6 @@ char *scan(char *p) char *q; #line 15 "" -{ switch(YYGETSTATE()) { default: goto yy0; @@ -45,12 +44,12 @@ yy2: yy3: #line 15 "config4e.f.re" { return YYCURSOR; } -#line 49 "" +#line 48 "" yy4: ++YYCURSOR; #line 16 "config4e.f.re" { return NULL; } -#line 54 "" +#line 53 "" yy6: ++YYCURSOR; YYSETSTATE(1); @@ -71,7 +70,6 @@ yy7: case '9': goto yy6; default: goto yy3; } -} #line 17 "config4e.f.re" } diff --git a/re2c/test/config4f.f.c b/re2c/test/config4f.f.c index 02e14a51..dbc30818 100755 --- a/re2c/test/config4f.f.c +++ b/re2c/test/config4f.f.c @@ -22,59 +22,57 @@ char *scan(char *p) #line 25 "" - { 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 "" + { return YYCURSOR; } +#line 52 "" yy4: - ++YYCURSOR; + ++YYCURSOR; #line 22 "config4f.f.re" - { return NULL; } -#line 58 "" + { return NULL; } +#line 57 "" 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" diff --git a/re2c/test/push.f.c b/re2c/test/push.f.c index 3e11b154..00983b94 100755 --- a/re2c/test/push.f.c +++ b/re2c/test/push.f.c @@ -230,7 +230,6 @@ public: #line 233 "" -{ switch(YYGETSTATE()) { default: goto yy0; @@ -332,7 +331,7 @@ yy2: yy3: #line 246 "push.f.re" { SEND(kIdentifier); } -#line 336 "" +#line 335 "" yy4: yych = *++YYCURSOR; switch(yych) { @@ -382,62 +381,62 @@ yy12: yy13: #line 247 "push.f.re" { SEND(kDecimalConstant);} -#line 386 "" +#line 385 "" yy14: ++YYCURSOR; #line 249 "push.f.re" { SEND(kEqual); } -#line 391 "" +#line 390 "" yy16: ++YYCURSOR; #line 250 "push.f.re" { SEND(kLeftParen); } -#line 396 "" +#line 395 "" yy18: ++YYCURSOR; #line 251 "push.f.re" { SEND(kRightParen); } -#line 401 "" +#line 400 "" yy20: ++YYCURSOR; #line 252 "push.f.re" { SEND(kMinus); } -#line 406 "" +#line 405 "" yy22: ++YYCURSOR; #line 253 "push.f.re" { SEND(kPlus); } -#line 411 "" +#line 410 "" yy24: ++YYCURSOR; #line 254 "push.f.re" { SEND(kStar); } -#line 416 "" +#line 415 "" yy26: ++YYCURSOR; #line 255 "push.f.re" { SEND(kSlash); } -#line 421 "" +#line 420 "" yy28: ++YYCURSOR; #line 257 "push.f.re" { SKIP(); } -#line 426 "" +#line 425 "" yy30: ++YYCURSOR; #line 258 "push.f.re" { SKIP(); } -#line 431 "" +#line 430 "" yy32: ++YYCURSOR; #line 259 "push.f.re" { send(kEOF); return 1; } -#line 436 "" +#line 435 "" yy34: ++YYCURSOR; #line 260 "push.f.re" { SEND(kUnknown); } -#line 441 "" +#line 440 "" yy36: ++YYCURSOR; YYSETSTATE(1); @@ -626,7 +625,7 @@ yy44: yy45: #line 245 "push.f.re" { SEND(kReturn); } -#line 630 "" +#line 629 "" yy46: yych = *++YYCURSOR; switch(yych) { @@ -716,7 +715,7 @@ yy49: yy50: #line 244 "push.f.re" { SEND(kWhile); } -#line 720 "" +#line 719 "" yy51: yych = *++YYCURSOR; switch(yych) { @@ -806,7 +805,7 @@ yy54: yy55: #line 243 "push.f.re" { SEND(kBreak); } -#line 810 "" +#line 809 "" yy56: yych = *++YYCURSOR; switch(yych) { @@ -890,7 +889,7 @@ yy58: yy59: #line 242 "push.f.re" { SEND(kGoto); } -#line 894 "" +#line 893 "" yy60: yych = *++YYCURSOR; switch(yych) { @@ -974,7 +973,7 @@ yy62: yy63: #line 241 "push.f.re" { SEND(kElse); } -#line 978 "" +#line 977 "" yy64: yych = *++YYCURSOR; switch(yych) { @@ -1052,7 +1051,7 @@ yy65: yy66: #line 240 "push.f.re" { SEND(kFor); } -#line 1056 "" +#line 1055 "" yy67: ++YYCURSOR; switch((yych = *YYCURSOR)) { @@ -1124,8 +1123,7 @@ yy67: yy68: #line 239 "push.f.re" { SEND(kIf); } -#line 1128 "" -} +#line 1127 "" #line 261 "push.f.re" diff --git a/re2c/test/push.fs.c b/re2c/test/push.fs.c index 1ab06daf..c7b0b68e 100755 --- a/re2c/test/push.fs.c +++ b/re2c/test/push.fs.c @@ -19,7 +19,6 @@ start: #line 22 "" -{ switch(YYGETSTATE()) { default: goto yy0; @@ -114,7 +113,7 @@ yyFillLabel0: yy3: #line 35 "push.fs.re" { SEND(kIdentifier); } -#line 118 "" +#line 117 "" yy4: yych = *++YYCURSOR; if(yych == 'o') goto yy64; @@ -152,62 +151,62 @@ yy12: yy13: #line 36 "push.fs.re" { SEND(kDecimalConstant);} -#line 156 "" +#line 155 "" yy14: ++YYCURSOR; #line 38 "push.fs.re" { SEND(kEqual); } -#line 161 "" +#line 160 "" yy16: ++YYCURSOR; #line 39 "push.fs.re" { SEND(kLeftParen); } -#line 166 "" +#line 165 "" yy18: ++YYCURSOR; #line 40 "push.fs.re" { SEND(kRightParen); } -#line 171 "" +#line 170 "" yy20: ++YYCURSOR; #line 41 "push.fs.re" { SEND(kMinus); } -#line 176 "" +#line 175 "" yy22: ++YYCURSOR; #line 42 "push.fs.re" { SEND(kPlus); } -#line 181 "" +#line 180 "" yy24: ++YYCURSOR; #line 43 "push.fs.re" { SEND(kStar); } -#line 186 "" +#line 185 "" yy26: ++YYCURSOR; #line 44 "push.fs.re" { SEND(kSlash); } -#line 191 "" +#line 190 "" yy28: ++YYCURSOR; #line 46 "push.fs.re" { SKIP(); } -#line 196 "" +#line 195 "" yy30: ++YYCURSOR; #line 47 "push.fs.re" { SKIP(); } -#line 201 "" +#line 200 "" yy32: ++YYCURSOR; #line 48 "push.fs.re" { send(kEOF); return 1; } -#line 206 "" +#line 205 "" yy34: ++YYCURSOR; #line 49 "push.fs.re" { SEND(kUnknown); } -#line 211 "" +#line 210 "" yy36: ++YYCURSOR; YYSETSTATE(1); @@ -265,7 +264,7 @@ yy40: yy45: #line 34 "push.fs.re" { SEND(kReturn); } -#line 269 "" +#line 268 "" yy46: yych = *++YYCURSOR; if(yych != 'i') goto yy39; @@ -289,7 +288,7 @@ yy46: yy50: #line 33 "push.fs.re" { SEND(kWhile); } -#line 293 "" +#line 292 "" yy51: yych = *++YYCURSOR; if(yych != 'e') goto yy39; @@ -313,7 +312,7 @@ yy51: yy55: #line 32 "push.fs.re" { SEND(kBreak); } -#line 317 "" +#line 316 "" yy56: yych = *++YYCURSOR; if(yych != 't') goto yy39; @@ -335,7 +334,7 @@ yy56: yy59: #line 31 "push.fs.re" { SEND(kGoto); } -#line 339 "" +#line 338 "" yy60: yych = *++YYCURSOR; if(yych != 's') goto yy39; @@ -357,7 +356,7 @@ yy60: yy63: #line 30 "push.fs.re" { SEND(kElse); } -#line 361 "" +#line 360 "" yy64: yych = *++YYCURSOR; if(yych != 'r') goto yy39; @@ -377,7 +376,7 @@ yy64: yy66: #line 29 "push.fs.re" { SEND(kFor); } -#line 381 "" +#line 380 "" yy67: ++YYCURSOR; if((yych = *YYCURSOR) <= 'Z') { @@ -395,8 +394,7 @@ yy67: yy68: #line 28 "push.fs.re" { SEND(kIf); } -#line 399 "" -} +#line 398 "" #line 50 "push.fs.re" diff --git a/re2c/test/scanner.fs.c b/re2c/test/scanner.fs.c index 4c9d40a4..78dc928a 100755 --- a/re2c/test/scanner.fs.c +++ b/re2c/test/scanner.fs.c @@ -93,7 +93,6 @@ int Scanner::echo() echo: #line 96 "" -{ switch(YYGETSTATE()) { default: goto yy0; @@ -154,7 +153,7 @@ yy3: { goto echo; } -#line 158 "" +#line 157 "" yy4: yych = *++YYCURSOR; if(yych == '/') goto yy10; @@ -167,7 +166,7 @@ yy5: tok = pos = cursor; cline++; goto echo; } -#line 171 "" +#line 170 "" yy7: ++YYCURSOR; #line 135 "scanner.fs.re" @@ -177,7 +176,7 @@ yy7: RETURN(0); } } -#line 181 "" +#line 180 "" yy9: yych = *++YYCURSOR; goto yy3; @@ -193,7 +192,7 @@ yy10: tok = pos = cursor; goto echo; } -#line 197 "" +#line 196 "" yy12: yych = *++YYCURSOR; if(yych == '!') goto yy14; @@ -223,7 +222,7 @@ yy16: tok = cursor; RETURN(1); } -#line 227 "" +#line 226 "" yy21: yych = *++YYCURSOR; if(yych != 'x') goto yy13; @@ -245,8 +244,7 @@ yy21: ignore_eoc = true; goto echo; } -#line 249 "" -} +#line 248 "" #line 144 "scanner.fs.re" } @@ -270,8 +268,7 @@ scan: goto value; } -#line 274 "" -{ +#line 272 "" YYSETSTATE(1); if((YYLIMIT - YYCURSOR) < 5) YYFILL(5); @@ -349,14 +346,14 @@ yy32: { depth = 1; goto code; } -#line 353 "" +#line 350 "" yy33: ++YYCURSOR; if((yych = *YYCURSOR) == '*') goto yy92; yy34: #line 196 "scanner.fs.re" { RETURN(*tok); } -#line 360 "" +#line 357 "" yy35: ++YYCURSOR; if((yych = *YYCURSOR) == '/') goto yy90; @@ -364,7 +361,7 @@ yy36: #line 198 "scanner.fs.re" { yylval.op = *tok; RETURN(CLOSE); } -#line 368 "" +#line 365 "" yy37: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); @@ -372,7 +369,7 @@ yy37: yy38: #line 183 "scanner.fs.re" { fatal("unterminated string constant (missing \")"); } -#line 376 "" +#line 373 "" yy39: yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); @@ -380,7 +377,7 @@ yy39: yy40: #line 184 "scanner.fs.re" { fatal("unterminated string constant (missing ')"); } -#line 384 "" +#line 381 "" yy41: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); @@ -390,7 +387,7 @@ yy41: yy42: #line 194 "scanner.fs.re" { fatal("unterminated range (missing ])"); } -#line 394 "" +#line 391 "" yy43: yych = *++YYCURSOR; goto yy34; @@ -406,7 +403,7 @@ yy46: { cur = cursor; yylval.symbol = Symbol::find(token()); return ID; } -#line 410 "" +#line 407 "" yy47: yych = *++YYCURSOR; goto yy61; @@ -417,7 +414,7 @@ yy48: yylval.regexp = mkDot(); return RANGE; } -#line 421 "" +#line 418 "" yy50: ++YYCURSOR; yych = *YYCURSOR; @@ -425,7 +422,7 @@ yy50: yy51: #line 234 "scanner.fs.re" { goto scan; } -#line 429 "" +#line 426 "" yy52: ++YYCURSOR; yy53: @@ -434,7 +431,7 @@ yy53: pos = cursor; cline++; goto scan; } -#line 438 "" +#line 435 "" yy54: ++YYCURSOR; if((yych = *YYCURSOR) == 0x0A) goto yy57; @@ -446,7 +443,7 @@ yy55: fatal(msg.str().c_str()); goto scan; } -#line 450 "" +#line 447 "" yy56: yych = *++YYCURSOR; goto yy55; @@ -555,7 +552,7 @@ yy69: yylval.str = new Str(token()); return CONFIG; } -#line 559 "" +#line 556 "" yy70: ++YYCURSOR; YYSETSTATE(6); @@ -599,7 +596,7 @@ yy75: { cur = cursor; yylval.regexp = ranToRE(token()); return RANGE; } -#line 603 "" +#line 600 "" yy77: ++YYCURSOR; YYSETSTATE(9); @@ -614,7 +611,7 @@ yy78: { cur = cursor; yylval.regexp = invToRE(token()); return RANGE; } -#line 618 "" +#line 615 "" yy80: ++YYCURSOR; YYSETSTATE(10); @@ -642,7 +639,7 @@ yy83: { cur = cursor; yylval.regexp = strToCaseInsensitiveRE(token()); return STRING; } -#line 646 "" +#line 643 "" yy85: ++YYCURSOR; YYSETSTATE(12); @@ -670,19 +667,19 @@ yy88: { cur = cursor; yylval.regexp = strToRE(token()); return STRING; } -#line 674 "" +#line 671 "" yy90: ++YYCURSOR; #line 172 "scanner.fs.re" { tok = cursor; RETURN(0); } -#line 680 "" +#line 677 "" yy92: ++YYCURSOR; #line 169 "scanner.fs.re" { depth = 1; goto comment; } -#line 686 "" +#line 683 "" yy94: yych = *++YYCURSOR; if(yych == ',') goto yy108; @@ -707,14 +704,14 @@ yy97: yy98: #line 216 "scanner.fs.re" { fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers"); } -#line 711 "" +#line 708 "" 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 "" +#line 715 "" yy101: yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); @@ -726,7 +723,7 @@ yy101: { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = -1; RETURN(CLOSESIZE); } -#line 730 "" +#line 727 "" yy104: ++YYCURSOR; YYSETSTATE(15); @@ -741,7 +738,7 @@ yyFillLabel15: { yylval.extop.minsize = atoi((char *)tok+1); yylval.extop.maxsize = MAX(yylval.extop.minsize,atoi(strchr((char *)tok, ',')+1)); RETURN(CLOSESIZE); } -#line 745 "" +#line 742 "" yy108: yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); @@ -752,15 +749,13 @@ yy108: #line 201 "scanner.fs.re" { yylval.op = '*'; RETURN(CLOSE); } -#line 756 "" -} +#line 753 "" #line 247 "scanner.fs.re" code: -#line 763 "" -{ +#line 759 "" YYSETSTATE(16); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); @@ -791,13 +786,13 @@ yyFillLabel16: return CODE; } goto code; } -#line 795 "" +#line 790 "" yy115: ++YYCURSOR; #line 257 "scanner.fs.re" { ++depth; goto code; } -#line 801 "" +#line 796 "" yy117: ++YYCURSOR; #line 259 "scanner.fs.re" @@ -805,13 +800,13 @@ yy117: pos = cursor; cline++; goto code; } -#line 809 "" +#line 804 "" yy119: ++YYCURSOR; yy120: #line 263 "scanner.fs.re" { goto code; } -#line 815 "" +#line 810 "" yy121: yych = *(YYMARKER = ++YYCURSOR); if(yych == 0x0A) goto yy120; @@ -866,14 +861,12 @@ yyFillLabel20: yych = *YYCURSOR; if(yych == 0x0A) goto yy125; goto yy127; -} #line 264 "scanner.fs.re" comment: -#line 876 "" -{ +#line 870 "" YYSETSTATE(21); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); @@ -894,7 +887,7 @@ yy133: #line 279 "scanner.fs.re" { if(cursor == eof) RETURN(0); goto comment; } -#line 898 "" +#line 891 "" yy134: yych = *++YYCURSOR; if(yych == '*') goto yy138; @@ -906,7 +899,7 @@ yy135: tok = pos = cursor; cline++; goto comment; } -#line 910 "" +#line 903 "" yy137: yych = *++YYCURSOR; goto yy133; @@ -916,7 +909,7 @@ yy138: { ++depth; fatal("ambiguous /* found"); goto comment; } -#line 920 "" +#line 913 "" yy140: ++YYCURSOR; #line 268 "scanner.fs.re" @@ -924,15 +917,13 @@ yy140: goto scan; else goto comment; } -#line 928 "" -} +#line 921 "" #line 281 "scanner.fs.re" config: -#line 935 "" -{ +#line 927 "" YYSETSTATE(22); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); @@ -952,7 +943,7 @@ yy144: yy145: #line 285 "scanner.fs.re" { goto config; } -#line 956 "" +#line 947 "" yy146: ++YYCURSOR; yych = *YYCURSOR; @@ -963,12 +954,12 @@ yy147: cur = cursor; RETURN('='); } -#line 967 "" +#line 958 "" yy148: ++YYCURSOR; #line 290 "scanner.fs.re" { fatal("missing '='"); } -#line 972 "" +#line 963 "" yy150: ++YYCURSOR; YYSETSTATE(23); @@ -989,14 +980,12 @@ yy153: if(yych == 0x09) goto yy152; if(yych == ' ') goto yy152; goto yy145; -} #line 291 "scanner.fs.re" value: -#line 999 "" -{ +#line 989 "" YYSETSTATE(25); if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); @@ -1036,7 +1025,7 @@ yy156: iscfg = 0; return VALUE; } -#line 1040 "" +#line 1029 "" yy157: ++YYCURSOR; if((yych = *YYCURSOR) <= 0x0D) { @@ -1057,7 +1046,7 @@ yy158: iscfg = 0; return NUMBER; } -#line 1061 "" +#line 1050 "" yy159: yych = *++YYCURSOR; if(yych <= '0') goto yy163; @@ -1250,7 +1239,6 @@ yyFillLabel35: yych = *YYCURSOR; if(yych == 0x0A) goto yy170; goto yy174; -} #line 305 "scanner.fs.re" }