]> granicus.if.org Git - re2c/commitdiff
- Add YYFillNamed
authorhelly <helly@642ea486-5414-0410-9d7f-a0204ed87703>
Tue, 1 May 2007 11:30:27 +0000 (11:30 +0000)
committerhelly <helly@642ea486-5414-0410-9d7f-a0204ed87703>
Tue, 1 May 2007 11:30:27 +0000 (11:30 +0000)
- Rename bUseYYGetStateFunc to bUseYYGetStateNaked

18 files changed:
re2c/code.cc
re2c/globals.h
re2c/main.cc
re2c/test/condition_05.cg.c
re2c/test/condition_05.cg.re
re2c/test/condition_05.cgitcondition_05.cgit.h.re
re2c/test/condition_05.cgtcondition_05.cgt.h.c
re2c/test/condition_05.cgtcondition_05.cgt.h.re
re2c/test/condition_05.cs.c
re2c/test/condition_05.cs.re
re2c/test/condition_06.cs.c
re2c/test/condition_06.cs.re
re2c/test/condition_07.cbi.re
re2c/test/condition_08.cbi.re
re2c/test/condition_08.cbif.re
re2c/test/condition_09.cbif.re
re2c/test/condition_09.cgif.re
re2c/test/config10.re

index 6f38e1e245ee29d6bee7c887d0ad8b6132f9d94d..856eac34e57f46bfd7dc3e8efefd34362bcbfddc 100644 (file)
@@ -328,15 +328,25 @@ static std::string replaceParam(std::string str, const std::string& param, int v
        return str;
 }
 
-static void genYyfill(std::ostream &o, uint ind, uint need)
+static void genYYFill(std::ostream &o, uint ind, uint need)
 {
        if (bUseYYFillParam)
        {
-               o << mapCodeName["YYFILL"] << "(" << need << ");\n";
+               o << mapCodeName["YYFILL"];
+               if (!bUseYYFillNaked)
+               {
+                       o << "(" << need << ");";
+               }
+               o << "\n";
        }
        else
        {
-               o << replaceParam(mapCodeName["YYFILL"], yyFillLength, need) << "\n";
+               o << replaceParam(mapCodeName["YYFILL"], yyFillLength, need);
+               if (!bUseYYFillNaked)
+               {
+                       o << ";";
+               }
+               o << "\n";
        }
 }
 
@@ -362,12 +372,12 @@ static void need(std::ostream &o, uint ind, uint n, bool & readCh, bool bSetMark
                if (n == 1)
                {
                        o << indent(ind) << "if(" << mapCodeName["YYLIMIT"] << " == " << mapCodeName["YYCURSOR"] << ") ";
-                       genYyfill(o, ind, n);
+                       genYYFill(o, ind, n);
                }
                else
                {
                        o << indent(ind) << "if((" << mapCodeName["YYLIMIT"] << " - " << mapCodeName["YYCURSOR"] << ") < " << n << ") ";
-                       genYyfill(o, ind, n);
+                       genYYFill(o, ind, n);
                }
        }
 
@@ -1700,7 +1710,7 @@ void genGetState(std::ostream &o, uint& ind, uint start_label)
        {
                vUsedLabels.insert(start_label);
                o << indent(ind) << "switch(" << mapCodeName["YYGETSTATE"];
-               if (bUseYYGetStateFunc)
+               if (!bUseYYGetStateNaked)
                {
                        o << "()";
                }
@@ -1881,6 +1891,10 @@ void Scanner::config(const Str& cfg, int num)
        {
                bUseYYFillParam = num != 0;
        }
+       else if (cfg.to_string() == "define:YYFILL:naked")
+       {
+               bUseYYFillNaked = num != 0;
+       }
        else if (cfg.to_string() == "cgoto:threshold")
        {
                cGotoThreshold = num;
@@ -1902,9 +1916,9 @@ void Scanner::config(const Str& cfg, int num)
        {
                bEmitYYCh = num != 0;
        }
-       else if (cfg.to_string() == "define:YYGETSTATE:func")
+       else if (cfg.to_string() == "define:YYGETSTATE:naked")
        {
-               bUseYYGetStateFunc = num != 0;
+               bUseYYGetStateNaked = num != 0;
        }
        else
        {
index e6530eafb1fd5ac2daac9297b1ee625699ea98dc..2d9ec9ee8604b7dc9bea63017c1c9c3625ca8d17 100644 (file)
@@ -59,8 +59,9 @@ extern bool bUseStateAbort;
 extern bool bUseStateNext;
 extern bool bUseYYFill;
 extern bool bUseYYFillParam;
+extern bool bUseYYFillNaked;
 extern bool bUseYYSetStateParam;
-extern bool bUseYYGetStateFunc;
+extern bool bUseYYGetStateNaked;
 extern bool bWroteGetState;
 extern bool bWroteCondCheck;
 
index 314f572f37ab01fd4bf3f2e13c4040b525bc038e..29ddf8ca0845cc1fdeb0a00ad560369e2784728e 100644 (file)
@@ -49,8 +49,9 @@ bool bUseStartLabel  = false;
 bool bUseStateNext   = false;
 bool bUseYYFill      = true;
 bool bUseYYFillParam = true;
+bool bUseYYFillNaked = false;
 bool bUseYYSetStateParam = true;
-bool bUseYYGetStateFunc  = true;
+bool bUseYYGetStateNaked = false;
 
 std::string startLabelName;
 std::string labelPrefix("yy");
index ac08c114f382707a67276efc2508d2b499602d7a..0f7c418ff7d7e559084eed2f93a3e513a79581a3 100755 (executable)
@@ -72,7 +72,7 @@ yyc_comment:
                        ++s->cur;
                        if((yych = *s->cur) == '/') goto yy5;
 yy3:
-#line 80 "condition_05.cg.re"
+#line 82 "condition_05.cg.re"
                        {
                                goto yyc_comment;
                        }
@@ -82,7 +82,7 @@ yy4:
                        goto yy3;
 yy5:
                        ++s->cur;
-#line 76 "condition_05.cg.re"
+#line 78 "condition_05.cg.re"
                        {
                                continue;
                        }
@@ -95,7 +95,7 @@ yyc_normal:
                        ++s->cur;
                        if((yych = *s->cur) == '*') goto yy12;
 yy10:
-#line 71 "condition_05.cg.re"
+#line 73 "condition_05.cg.re"
                        {
                                fputc(*s->tok, stdout);
                                continue;
@@ -106,13 +106,13 @@ yy11:
                        goto yy10;
 yy12:
                        ++s->cur;
-#line 67 "condition_05.cg.re"
+#line 69 "condition_05.cg.re"
                        {
                                goto yyc_comment;
                        }
 #line 114 "<stdout>"
                }
-#line 84 "condition_05.cg.re"
+#line 86 "condition_05.cg.re"
 
        }
 }
index 7c702fa2df070a07a2fbbfffb13aa2105075cb76..17cb4c1972e3cfaffadfeab48f726e0e972ee9fe 100755 (executable)
@@ -58,7 +58,9 @@ re2c:define:YYCTYPE     = "unsigned char";
 re2c:define:YYCURSOR    = s->cur;
 re2c:define:YYLIMIT     = s->lim;
 re2c:define:YYMARKER    = s->ptr;
-re2c:define:YYFILL      = "{ if(fill(s, 2) >= 0) break; }";
+re2c:define:YYFILL:len  = #;
+re2c:define:YYFILL:naked= 1;
+re2c:define:YYFILL      = "{ if(fill(s, #) >= 0) break; }";
 re2c:define:YYCONDITION = state;
 re2c:yyfill:parameter   = 0;
 re2c:indent:top         = 2;
index 7c702fa2df070a07a2fbbfffb13aa2105075cb76..17cb4c1972e3cfaffadfeab48f726e0e972ee9fe 100755 (executable)
@@ -58,7 +58,9 @@ re2c:define:YYCTYPE     = "unsigned char";
 re2c:define:YYCURSOR    = s->cur;
 re2c:define:YYLIMIT     = s->lim;
 re2c:define:YYMARKER    = s->ptr;
-re2c:define:YYFILL      = "{ if(fill(s, 2) >= 0) break; }";
+re2c:define:YYFILL:len  = #;
+re2c:define:YYFILL:naked= 1;
+re2c:define:YYFILL      = "{ if(fill(s, #) >= 0) break; }";
 re2c:define:YYCONDITION = state;
 re2c:yyfill:parameter   = 0;
 re2c:indent:top         = 2;
index bb66abade1efa70dba7a1eb85f25b60b32ac5429..a635939b05bdac18539c6f93f86659e83d571516 100755 (executable)
@@ -72,7 +72,7 @@ yyc_comment:
                        ++s->cur;
                        if((yych = *s->cur) == '/') goto yy5;
 yy3:
-#line 80 "condition_05.cgtcondition_05.cgt.h.re"
+#line 82 "condition_05.cgtcondition_05.cgt.h.re"
                        {
                                goto yyc_comment;
                        }
@@ -82,7 +82,7 @@ yy4:
                        goto yy3;
 yy5:
                        ++s->cur;
-#line 76 "condition_05.cgtcondition_05.cgt.h.re"
+#line 78 "condition_05.cgtcondition_05.cgt.h.re"
                        {
                                continue;
                        }
@@ -95,7 +95,7 @@ yyc_normal:
                        ++s->cur;
                        if((yych = *s->cur) == '*') goto yy12;
 yy10:
-#line 71 "condition_05.cgtcondition_05.cgt.h.re"
+#line 73 "condition_05.cgtcondition_05.cgt.h.re"
                        {
                                fputc(*s->tok, stdout);
                                continue;
@@ -106,13 +106,13 @@ yy11:
                        goto yy10;
 yy12:
                        ++s->cur;
-#line 67 "condition_05.cgtcondition_05.cgt.h.re"
+#line 69 "condition_05.cgtcondition_05.cgt.h.re"
                        {
                                goto yyc_comment;
                        }
 #line 114 "<stdout>"
                }
-#line 84 "condition_05.cgtcondition_05.cgt.h.re"
+#line 86 "condition_05.cgtcondition_05.cgt.h.re"
 
        }
 }
index 7c702fa2df070a07a2fbbfffb13aa2105075cb76..17cb4c1972e3cfaffadfeab48f726e0e972ee9fe 100755 (executable)
@@ -58,7 +58,9 @@ re2c:define:YYCTYPE     = "unsigned char";
 re2c:define:YYCURSOR    = s->cur;
 re2c:define:YYLIMIT     = s->lim;
 re2c:define:YYMARKER    = s->ptr;
-re2c:define:YYFILL      = "{ if(fill(s, 2) >= 0) break; }";
+re2c:define:YYFILL:len  = #;
+re2c:define:YYFILL:naked= 1;
+re2c:define:YYFILL      = "{ if(fill(s, #) >= 0) break; }";
 re2c:define:YYCONDITION = state;
 re2c:yyfill:parameter   = 0;
 re2c:indent:top         = 2;
index cf142102520a39728aa8833b869019bc8f50c1da..e9dfb1db9002c94e02b321eb5c370918ce393067 100755 (executable)
@@ -72,7 +72,7 @@ yyc_comment:
                        ++s->cur;
                        if((yych = *s->cur) == '/') goto yy5;
 yy3:
-#line 80 "condition_05.cs.re"
+#line 82 "condition_05.cs.re"
                        {
                                goto yyc_comment;
                        }
@@ -82,7 +82,7 @@ yy4:
                        goto yy3;
 yy5:
                        ++s->cur;
-#line 76 "condition_05.cs.re"
+#line 78 "condition_05.cs.re"
                        {
                                continue;
                        }
@@ -95,7 +95,7 @@ yyc_normal:
                        ++s->cur;
                        if((yych = *s->cur) == '*') goto yy12;
 yy10:
-#line 71 "condition_05.cs.re"
+#line 73 "condition_05.cs.re"
                        {
                                fputc(*s->tok, stdout);
                                continue;
@@ -106,13 +106,13 @@ yy11:
                        goto yy10;
 yy12:
                        ++s->cur;
-#line 67 "condition_05.cs.re"
+#line 69 "condition_05.cs.re"
                        {
                                goto yyc_comment;
                        }
 #line 114 "<stdout>"
                }
-#line 84 "condition_05.cs.re"
+#line 86 "condition_05.cs.re"
 
        }
 }
index 7c702fa2df070a07a2fbbfffb13aa2105075cb76..17cb4c1972e3cfaffadfeab48f726e0e972ee9fe 100755 (executable)
@@ -58,7 +58,9 @@ re2c:define:YYCTYPE     = "unsigned char";
 re2c:define:YYCURSOR    = s->cur;
 re2c:define:YYLIMIT     = s->lim;
 re2c:define:YYMARKER    = s->ptr;
-re2c:define:YYFILL      = "{ if(fill(s, 2) >= 0) break; }";
+re2c:define:YYFILL:len  = #;
+re2c:define:YYFILL:naked= 1;
+re2c:define:YYFILL      = "{ if(fill(s, #) >= 0) break; }";
 re2c:define:YYCONDITION = state;
 re2c:yyfill:parameter   = 0;
 re2c:indent:top         = 2;
index c4b2ba09f3c20a84d4cc95cb20cba1f3b7ba937a..7b861603e5d6a9fb2895354e4f58e83bd5937e35 100755 (executable)
@@ -99,7 +99,7 @@ yyc_Comment:
                        ++s->cur;
                        if((yych = *s->cur) == '/') goto yy5;
 yy3:
-#line 147 "condition_06.cs.re"
+#line 148 "condition_06.cs.re"
                        {
                                goto yyc_Comment;
                        }
@@ -109,7 +109,7 @@ yy4:
                        goto yy3;
 yy5:
                        ++s->cur;
-#line 143 "condition_06.cs.re"
+#line 144 "condition_06.cs.re"
                        {
                                continue;
                        }
@@ -128,7 +128,7 @@ yyc_Normal:
                        yych = *(s->tok = ++s->cur);
                        if(yych == '?') goto yy19;
 yy10:
-#line 138 "condition_06.cs.re"
+#line 139 "condition_06.cs.re"
                        {
                                fputc(*s->tok, stdout);
                                continue;
@@ -141,7 +141,7 @@ yy11:
                        goto yy10;
 yy12:
                        ++s->cur;
-#line 132 "condition_06.cs.re"
+#line 133 "condition_06.cs.re"
                        {
                                fputc(*s->tok, stdout);
                                state = EStateString;
@@ -153,14 +153,14 @@ yy14:
                        goto yy10;
 yy15:
                        ++s->cur;
-#line 128 "condition_06.cs.re"
+#line 129 "condition_06.cs.re"
                        {
                                goto yyc_Skiptoeol;
                        }
 #line 161 "<stdout>"
 yy17:
                        ++s->cur;
-#line 124 "condition_06.cs.re"
+#line 125 "condition_06.cs.re"
                        {
                                goto yyc_Comment;
                        }
@@ -184,7 +184,7 @@ yy20:
                        goto yy10;
 yy21:
                        ++s->cur;
-#line 79 "condition_06.cs.re"
+#line 80 "condition_06.cs.re"
                        {
                                fputc('[', stdout);
                                continue;
@@ -192,7 +192,7 @@ yy21:
 #line 193 "<stdout>"
 yy23:
                        ++s->cur;
-#line 84 "condition_06.cs.re"
+#line 85 "condition_06.cs.re"
                        {
                                fputc(']', stdout);
                                continue;
@@ -200,7 +200,7 @@ yy23:
 #line 201 "<stdout>"
 yy25:
                        ++s->cur;
-#line 89 "condition_06.cs.re"
+#line 90 "condition_06.cs.re"
                        {
                                fputc('{', stdout);
                                continue;
@@ -208,7 +208,7 @@ yy25:
 #line 209 "<stdout>"
 yy27:
                        ++s->cur;
-#line 94 "condition_06.cs.re"
+#line 95 "condition_06.cs.re"
                        {
                                fputc('}', stdout);
                                continue;
@@ -216,7 +216,7 @@ yy27:
 #line 217 "<stdout>"
 yy29:
                        ++s->cur;
-#line 99 "condition_06.cs.re"
+#line 100 "condition_06.cs.re"
                        {
                                fputc('#', stdout);
                                continue;
@@ -224,7 +224,7 @@ yy29:
 #line 225 "<stdout>"
 yy31:
                        ++s->cur;
-#line 104 "condition_06.cs.re"
+#line 105 "condition_06.cs.re"
                        {
                                fputc('\\', stdout);
                                continue;
@@ -232,7 +232,7 @@ yy31:
 #line 233 "<stdout>"
 yy33:
                        ++s->cur;
-#line 109 "condition_06.cs.re"
+#line 110 "condition_06.cs.re"
                        {
                                fputc('^', stdout);
                                continue;
@@ -240,7 +240,7 @@ yy33:
 #line 241 "<stdout>"
 yy35:
                        ++s->cur;
-#line 114 "condition_06.cs.re"
+#line 115 "condition_06.cs.re"
                        {
                                fputc('|', stdout);
                                continue;
@@ -248,7 +248,7 @@ yy35:
 #line 249 "<stdout>"
 yy37:
                        ++s->cur;
-#line 119 "condition_06.cs.re"
+#line 120 "condition_06.cs.re"
                        {
                                fputc('~', stdout);
                                continue;
@@ -270,7 +270,7 @@ yy41:
                        yych = *(s->tok = ++s->cur);
                        if(yych == '?') goto yy51;
 yy42:
-#line 163 "condition_06.cs.re"
+#line 164 "condition_06.cs.re"
                        {
                                goto yyc_Skiptoeol;
                        }
@@ -282,7 +282,7 @@ yy43:
                        goto yy42;
 yy44:
                        ++s->cur;
-#line 159 "condition_06.cs.re"
+#line 160 "condition_06.cs.re"
                        {
                                continue;
                        }
@@ -298,7 +298,7 @@ yy48:
                        goto yy42;
 yy49:
                        ++s->cur;
-#line 155 "condition_06.cs.re"
+#line 156 "condition_06.cs.re"
                        {
                                goto yyc_Skiptoeol;
                        }
@@ -313,7 +313,7 @@ yy51:
                        if(yych != 0x0A) goto yy48;
 yy54:
                        ++s->cur;
-#line 151 "condition_06.cs.re"
+#line 152 "condition_06.cs.re"
                        {
                                goto yyc_Skiptoeol;
                        }
@@ -327,7 +327,7 @@ yyc_String:
                        ++s->cur;
                        if((yych = *s->cur) != 0x0A) goto yy63;
 yy59:
-#line 177 "condition_06.cs.re"
+#line 178 "condition_06.cs.re"
                        {
                                fputc(*s->tok, stdout);
                                continue;
@@ -335,7 +335,7 @@ yy59:
 #line 336 "<stdout>"
 yy60:
                        ++s->cur;
-#line 172 "condition_06.cs.re"
+#line 173 "condition_06.cs.re"
                        {
                                fputc(*s->tok, stdout);
                                continue;
@@ -346,14 +346,14 @@ yy62:
                        goto yy59;
 yy63:
                        ++s->cur;
-#line 167 "condition_06.cs.re"
+#line 168 "condition_06.cs.re"
                        {
                                fputl((const char*)s->tok, 2, stdout);
                                continue;
                        }
 #line 355 "<stdout>"
                }
-#line 181 "condition_06.cs.re"
+#line 182 "condition_06.cs.re"
 
        }
 }
index 66152295c4b9824b115ddc87dcea1fac939a9364..8a511d5b03b59e56370099ebdd4f5855bda51614 100755 (executable)
@@ -69,6 +69,7 @@ re2c:define:YYCURSOR    = s->cur;
 re2c:define:YYLIMIT     = s->lim;
 re2c:define:YYMARKER    = s->tok;
 re2c:define:YYFILL:len  = #;
+re2c:define:YYFILL:naked= 1;
 re2c:define:YYFILL      = "{ if(fill(s, #) >= 0) break; }";
 re2c:define:YYCONDITION = state;
 re2c:yyfill:parameter   = 0;
index 35f62508be1371720a3dae0c3182221a0b9df245..76264fef6eecf31916ebb5657c78de6c3bf50754 100755 (executable)
@@ -69,6 +69,7 @@ re2c:define:YYCURSOR    = s->cur;
 re2c:define:YYLIMIT     = s->lim;
 re2c:define:YYMARKER    = s->tok;
 re2c:define:YYFILL:len  = #;
+re2c:define:YYFILL:naked= 1;
 re2c:define:YYFILL      = "{ if(fill(s, #) >= 0) break; }";
 re2c:define:YYCONDITION = state;
 re2c:yyfill:parameter   = 0;
index 148d9c6968c20023bb70159db625a7a5f2c27470..01361cf7d2db1e1d15d90237b8e5f22976eb740f 100755 (executable)
@@ -70,11 +70,12 @@ re2c:define:YYCURSOR         = s->cur;
 re2c:define:YYLIMIT          = s->lim;
 re2c:define:YYMARKER         = s->tok;
 re2c:define:YYFILL:len       = #;
+re2c:define:YYFILL:naked     = 1;
 re2c:define:YYFILL           = "if(fill(s, #) >= 0) break;";
 re2c:define:YYSETSTATE:state = #;
 re2c:define:YYSETSTATE       = "s->state = #;";
 re2c:define:YYGETSTATE       = "s->state";
-re2c:define:YYGETSTATE:func  = 0;
+re2c:define:YYGETSTATE:naked = 1;
 re2c:define:YYCONDITION      = s->cond;
 re2c:define:YYCONDTYPE       = ScanContition;
 re2c:variable:yych           = s->yych;
index 148d9c6968c20023bb70159db625a7a5f2c27470..01361cf7d2db1e1d15d90237b8e5f22976eb740f 100755 (executable)
@@ -70,11 +70,12 @@ re2c:define:YYCURSOR         = s->cur;
 re2c:define:YYLIMIT          = s->lim;
 re2c:define:YYMARKER         = s->tok;
 re2c:define:YYFILL:len       = #;
+re2c:define:YYFILL:naked     = 1;
 re2c:define:YYFILL           = "if(fill(s, #) >= 0) break;";
 re2c:define:YYSETSTATE:state = #;
 re2c:define:YYSETSTATE       = "s->state = #;";
 re2c:define:YYGETSTATE       = "s->state";
-re2c:define:YYGETSTATE:func  = 0;
+re2c:define:YYGETSTATE:naked = 1;
 re2c:define:YYCONDITION      = s->cond;
 re2c:define:YYCONDTYPE       = ScanContition;
 re2c:variable:yych           = s->yych;
index 432a0cc563a2796fd4cefe7d5657915e48dc67ac..5f93a6a2cf198a357aaf513403469b76ddee3df6 100755 (executable)
@@ -70,11 +70,12 @@ re2c:define:YYCURSOR         = s->cur;
 re2c:define:YYLIMIT          = s->lim;
 re2c:define:YYMARKER         = s->tok;
 re2c:define:YYFILL:len       = #;
+re2c:define:YYFILL:naked     = 1;
 re2c:define:YYFILL           = "if(fill(s, #) >= 0) break;";
 re2c:define:YYSETSTATE:state = #;
 re2c:define:YYSETSTATE       = "s->state = #;";
 re2c:define:YYGETSTATE       = "s->state";
-re2c:define:YYGETSTATE:func  = 0;
+re2c:define:YYGETSTATE:naked = 1;
 re2c:define:YYCONDITION      = s->cond;
 re2c:define:YYCONDTYPE       = ScanContition;
 re2c:variable:yych           = s->yych;
index 432a0cc563a2796fd4cefe7d5657915e48dc67ac..5f93a6a2cf198a357aaf513403469b76ddee3df6 100755 (executable)
@@ -70,11 +70,12 @@ re2c:define:YYCURSOR         = s->cur;
 re2c:define:YYLIMIT          = s->lim;
 re2c:define:YYMARKER         = s->tok;
 re2c:define:YYFILL:len       = #;
+re2c:define:YYFILL:naked     = 1;
 re2c:define:YYFILL           = "if(fill(s, #) >= 0) break;";
 re2c:define:YYSETSTATE:state = #;
 re2c:define:YYSETSTATE       = "s->state = #;";
 re2c:define:YYGETSTATE       = "s->state";
-re2c:define:YYGETSTATE:func  = 0;
+re2c:define:YYGETSTATE:naked = 1;
 re2c:define:YYCONDITION      = s->cond;
 re2c:define:YYCONDTYPE       = ScanContition;
 re2c:variable:yych           = s->yych;
index 4724b92dbd34c82fe739897b028a2c9c1361db2e..3c3fafcb2f83592e8eacdf0e2d1e1551a1c31fd9 100755 (executable)
@@ -46,7 +46,7 @@ re2c:define:YYCURSOR  = s.cur;
 re2c:define:YYLIMIT            = s.lim;
 re2c:define:YYMARKER   = s.ptr;
 re2c:define:YYCTXMARKER        = s.ctx;
-re2c:define:YYFILL      = "fill();";
+re2c:define:YYFILL      = "fill()";
 
 re2c:yyfill:parameter   = 0;
 re2c:variable:yych      = curr;