]> granicus.if.org Git - re2c/commitdiff
Lexer: suppressed directives in skeleton mode, cleaned up code.
authorUlya Trofimovich <skvadrik@gmail.com>
Sat, 2 Apr 2016 10:41:04 +0000 (11:41 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Sat, 2 Apr 2016 10:41:04 +0000 (11:41 +0100)
15 files changed:
re2c/bootstrap/src/parse/lex.cc
re2c/bootstrap/src/parse/lex_conf.cc
re2c/src/parse/lex.re
re2c/src/parse/lex_conf.re
re2c/test/bug1163046.--skeleton.c
re2c/test/condition_10.cgif--skeleton.c
re2c/test/ctx.--skeleton.c
re2c/test/php20150211_parse_iso_intervals.ig--skeleton.c
re2c/test/php20150211_zend_ini_scanner.igcd--skeleton--flex-syntax--case-inverted.c
re2c/test/php20150211_zend_language_scanner.igcd--skeleton--flex-syntax--case-inverted.c
re2c/test/repeat-01.cgir--skeleton.c
re2c/test/repeat-02.cgir--skeleton.c
re2c/test/repeat-03.cgir--skeleton.c
re2c/test/reuse_conds_default_1.cgir--skeleton.c
re2c/test/strip_003.b--skeleton.c

index 2d1f84d5e4603a6b9e27f2d13a0491e12c12a056..cb8dd2d5524c5403adf5afcf17777583a9ab055f 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 on Fri Apr  1 16:33:55 2016 */
+/* Generated by re2c 0.16 on Sat Apr  2 11:23:34 2016 */
 #line 1 "../src/parse/lex.re"
 #include "src/util/c99_stdint.h"
 #include <stddef.h>
@@ -41,13 +41,12 @@ namespace re2c
 #line 41 "../src/parse/lex.re"
 
 
-#line 61 "../src/parse/lex.re"
+#line 62 "../src/parse/lex.re"
 
 
 Scanner::ParseMode Scanner::echo()
 {
-       bool ignore_eoc = false;
-       int  ignore_cnt = 0;
+       uint32_t ignored = 0;
 
        if (eof && cur == eof) // Catch EOF
        {
@@ -57,7 +56,7 @@ Scanner::ParseMode Scanner::echo()
        tok = cur;
 echo:
 
-#line 61 "src/parse/lex.cc"
+#line 60 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -97,113 +96,107 @@ echo:
        };
        if ((YYLIMIT - YYCURSOR) < 16) YYFILL(16);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= '%') {
-               if (yych <= '\t') {
-                       if (yych >= 0x01) goto yy4;
+       if (yych <= '$') {
+               if (yych <= '\n') {
+                       if (yych <= 0x00) goto yy2;
+                       if (yych <= '\t') goto yy4;
+                       goto yy6;
                } else {
-                       if (yych <= '\n') goto yy6;
-                       if (yych <= '$') goto yy4;
-                       goto yy8;
+                       if (yych == '\r') goto yy8;
+                       goto yy4;
                }
        } else {
                if (yych <= '*') {
+                       if (yych <= '%') goto yy9;
                        if (yych <= ')') goto yy4;
-                       goto yy9;
+                       goto yy10;
                } else {
-                       if (yych == '/') goto yy10;
+                       if (yych == '/') goto yy11;
                        goto yy4;
                }
        }
+yy2:
        ++YYCURSOR;
-#line 218 "../src/parse/lex.re"
+#line 180 "../src/parse/lex.re"
        {
-                                       if (!ignore_eoc && opts->target == opt_t::CODE)
-                                       {
-                                               out.wraw(tok, tok_len () - 1);
-                                               // -1 so we don't write out the \0
-                                       }
-                                       if(cur == eof)
-                                       {
-                                               return Stop;
-                                       }
-                               }
+               if (opts->target == opt_t::CODE) {
+                       out.wraw(tok, tok_len () - 1);
+                       // -1 so we don't write out the \0
+               }
+               if (cur == eof) {
+                       return Stop;
+               }
+       }
 #line 131 "src/parse/lex.cc"
 yy4:
        ++YYCURSOR;
 yy5:
-#line 229 "../src/parse/lex.re"
-       {
-                                       goto echo;
-                               }
-#line 139 "src/parse/lex.cc"
+#line 190 "../src/parse/lex.re"
+       { goto echo; }
+#line 137 "src/parse/lex.cc"
 yy6:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 32) {
-               goto yy11;
+               goto yy12;
        }
-       if (yych == '#') goto yy14;
+       if (yych == '#') goto yy15;
 yy7:
-#line 205 "../src/parse/lex.re"
+#line 171 "../src/parse/lex.re"
        {
-                                       if (ignore_eoc)
-                                       {
-                                               ignore_cnt++;
-                                       }
-                                       else if (opts->target == opt_t::CODE)
-                                       {
-                                               out.wraw(tok, tok_len ());
-                                       }
-                                       tok = pos = cur;
-                                       cline++;
-                                       goto echo;
-                               }
-#line 162 "src/parse/lex.cc"
+               if (opts->target == opt_t::CODE) {
+                       out.wraw(tok, tok_len ());
+               }
+               cline++;
+               tok = pos = cur;
+               goto echo;
+       }
+#line 155 "src/parse/lex.cc"
 yy8:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '{') goto yy16;
+       if (yych == '\n') goto yy6;
        goto yy5;
 yy9:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '/') goto yy18;
+       if (yych == '{') goto yy17;
        goto yy5;
 yy10:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '/') goto yy19;
+       goto yy5;
+yy11:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '*') goto yy20;
+       if (yych == '*') goto yy21;
        goto yy5;
-yy11:
+yy12:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 32) {
-               goto yy11;
+               goto yy12;
        }
-       if (yych == '#') goto yy14;
-yy13:
+       if (yych == '#') goto yy15;
+yy14:
        YYCURSOR = YYMARKER;
-       if (yyaccept <= 1) {
-               if (yyaccept == 0) {
-                       goto yy7;
-               } else {
-                       goto yy5;
-               }
+       if (yyaccept == 0) {
+               goto yy7;
        } else {
-               goto yy19;
+               goto yy5;
        }
-yy14:
+yy15:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy14;
-               goto yy13;
+               if (yych == '\t') goto yy15;
+               goto yy14;
        } else {
-               if (yych <= ' ') goto yy14;
-               if (yych == 'l') goto yy21;
-               goto yy13;
+               if (yych <= ' ') goto yy15;
+               if (yych == 'l') goto yy22;
+               goto yy14;
        }
-yy16:
+yy17:
        ++YYCURSOR;
 #line 77 "../src/parse/lex.re"
        {
@@ -221,408 +214,365 @@ yy16:
                                        tok = cur;
                                        return Parse;
                                }
-#line 225 "src/parse/lex.cc"
-yy18:
-       yyaccept = 2;
-       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '\n') goto yy22;
-       if (yych == '\r') goto yy24;
+#line 218 "src/parse/lex.cc"
 yy19:
-#line 184 "../src/parse/lex.re"
+       ++YYCURSOR;
+#line 158 "../src/parse/lex.re"
        {
-                                       if (ignore_eoc)
-                                       {
-                                               if (ignore_cnt)
-                                               {
-                                                       out.ws("\n").wline_info (cline, get_fname ().c_str ());
-                                               }
-                                               ignore_eoc = false;
-                                               ignore_cnt = 0;
-                                       }
-                                       else if (opts->target == opt_t::CODE)
-                                       {
-                                               out.wraw(tok, tok_len ());
-                                       }
-                                       tok = pos = cur;
-                                       goto echo;
-                               }
-#line 250 "src/parse/lex.cc"
-yy20:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '!') goto yy25;
-       goto yy13;
+               if (opts->target == opt_t::CODE) {
+                       out.wraw(tok, tok_len ());
+               }
+               tok = pos = cur;
+               goto echo;
+       }
+#line 229 "src/parse/lex.cc"
 yy21:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy26;
-       goto yy13;
+       if (yych == '!') goto yy23;
+       goto yy14;
 yy22:
-       ++YYCURSOR;
-#line 166 "../src/parse/lex.re"
-       {
-                                       cline++;
-                                       if (ignore_eoc)
-                                       {
-                                               if (ignore_cnt)
-                                               {
-                                                       out.wline_info (cline, get_fname ().c_str ());
-                                               }
-                                               ignore_eoc = false;
-                                               ignore_cnt = 0;
-                                       }
-                                       else if (opts->target == opt_t::CODE)
-                                       {
-                                               out.wraw(tok, tok_len ());
-                                       }
-                                       tok = pos = cur;
-                                       goto echo;
-                               }
-#line 280 "src/parse/lex.cc"
-yy24:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy22;
-       goto yy13;
-yy25:
+       if (yych == 'i') goto yy24;
+       goto yy14;
+yy23:
        yych = (YYCTYPE)*++YYCURSOR;
        switch (yych) {
-       case 'c':       goto yy27;
-       case 'g':       goto yy28;
-       case 'i':       goto yy29;
-       case 'm':       goto yy30;
-       case 'r':       goto yy31;
-       case 't':       goto yy32;
-       case 'u':       goto yy33;
-       default:        goto yy13;
+       case 'c':       goto yy25;
+       case 'g':       goto yy26;
+       case 'i':       goto yy27;
+       case 'm':       goto yy28;
+       case 'r':       goto yy29;
+       case 't':       goto yy30;
+       case 'u':       goto yy31;
+       default:        goto yy14;
        }
+yy24:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy32;
+       goto yy14;
+yy25:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy33;
+       goto yy14;
 yy26:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy34;
-       goto yy13;
+       if (yych == 'e') goto yy34;
+       goto yy14;
 yy27:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy35;
-       goto yy13;
+       if (yych == 'g') goto yy35;
+       goto yy14;
 yy28:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy36;
-       goto yy13;
+       if (yych == 'a') goto yy36;
+       goto yy14;
 yy29:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy37;
-       goto yy13;
+       if (yych == 'e') goto yy37;
+       if (yych == 'u') goto yy38;
+       goto yy14;
 yy30:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy38;
-       goto yy13;
+       if (yych == 'y') goto yy39;
+       goto yy14;
 yy31:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy39;
-       if (yych == 'u') goto yy40;
-       goto yy13;
+       if (yych == 's') goto yy40;
+       goto yy14;
 yy32:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy41;
-       goto yy13;
+       if (yych == 'e') goto yy41;
+       goto yy14;
 yy33:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy42;
-       goto yy13;
+       if (yych == 'n') goto yy42;
+       goto yy14;
 yy34:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy43;
-       goto yy13;
+       if (yych == 't') goto yy43;
+       goto yy14;
 yy35:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'n') goto yy44;
-       goto yy13;
+       goto yy14;
 yy36:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy45;
-       goto yy13;
+       if (yych == 'x') goto yy45;
+       goto yy14;
 yy37:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy46;
-       goto yy13;
+       if (yych == '2') goto yy46;
+       goto yy14;
 yy38:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy47;
-       goto yy13;
+       if (yych == 'l') goto yy47;
+       goto yy14;
 yy39:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy48;
-       goto yy13;
+       if (yych == 'p') goto yy48;
+       goto yy14;
 yy40:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy49;
-       goto yy13;
+       if (yych == 'e') goto yy49;
+       goto yy14;
 yy41:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy50;
-       goto yy13;
+       if (yych <= '0') goto yy51;
+       if (yych <= '9') goto yy14;
+       goto yy51;
 yy42:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy51;
-       goto yy13;
+       if (yych == 't') goto yy52;
+       goto yy14;
 yy43:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '0') goto yy53;
-       if (yych <= '9') goto yy13;
-       goto yy53;
+       if (yych == 's') goto yy53;
+       goto yy14;
 yy44:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy54;
-       goto yy13;
+       if (yych == 'o') goto yy54;
+       goto yy14;
 yy45:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy55;
-       goto yy13;
+       if (yych == ':') goto yy55;
+       goto yy14;
 yy46:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy56;
-       goto yy13;
+       if (yych == 'c') goto yy17;
+       goto yy14;
 yy47:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy57;
-       goto yy13;
+       if (yych == 'e') goto yy56;
+       goto yy14;
 yy48:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy16;
-       goto yy13;
+       if (yych == 'e') goto yy57;
+       goto yy14;
 yy49:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy58;
-       goto yy13;
+       if (yych == ':') goto yy58;
+       goto yy14;
 yy50:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy59;
-       goto yy13;
-yy51:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy60;
-       goto yy13;
-yy52:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-yy53:
+yy51:
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy52;
-               goto yy13;
+               if (yych == '\t') goto yy50;
+               goto yy14;
        } else {
-               if (yych <= ' ') goto yy52;
-               if (yych <= '0') goto yy13;
-               if (yych <= '9') goto yy61;
-               goto yy13;
+               if (yych <= ' ') goto yy50;
+               if (yych <= '0') goto yy14;
+               if (yych <= '9') goto yy59;
+               goto yy14;
        }
+yy52:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy61;
+       goto yy14;
+yy53:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy62;
+       goto yy14;
 yy54:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy63;
-       goto yy13;
+       if (yych == 'r') goto yy63;
+       goto yy14;
 yy55:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy64;
-       goto yy13;
+       if (yych == 'r') goto yy64;
+       goto yy14;
 yy56:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy65;
-       goto yy13;
+       if (yych == 's') goto yy65;
+       goto yy14;
 yy57:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy66;
-       goto yy13;
+       if (yych == 's') goto yy66;
+       goto yy14;
 yy58:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy67;
-       goto yy13;
+       if (yych == 'r') goto yy67;
+       goto yy14;
 yy59:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy68;
-       goto yy13;
-yy60:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy69;
-       goto yy13;
-yy61:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 64) {
-               goto yy61;
+               goto yy59;
        }
        if (yych <= '\f') {
-               if (yych <= 0x08) goto yy13;
-               if (yych <= '\t') goto yy70;
-               if (yych <= '\n') goto yy72;
-               goto yy13;
+               if (yych <= 0x08) goto yy14;
+               if (yych <= '\t') goto yy68;
+               if (yych <= '\n') goto yy70;
+               goto yy14;
        } else {
-               if (yych <= '\r') goto yy74;
-               if (yych == ' ') goto yy70;
-               goto yy13;
+               if (yych <= '\r') goto yy72;
+               if (yych == ' ') goto yy68;
+               goto yy14;
        }
+yy61:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'x') goto yy73;
+       goto yy14;
+yy62:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy74;
+       goto yy14;
 yy63:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy75;
-       goto yy13;
+       if (yych == 'e') goto yy75;
+       goto yy14;
 yy64:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy76;
-       goto yy13;
+       if (yych == 'e') goto yy76;
+       goto yy14;
 yy65:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy77;
-       goto yy13;
+       if (yych == ':') goto yy77;
+       goto yy14;
 yy66:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy78;
-       goto yy13;
+       if (yych == ':') goto yy78;
+       goto yy14;
 yy67:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy79;
-       goto yy13;
+       if (yych == 'e') goto yy79;
+       goto yy14;
 yy68:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy80;
-       goto yy13;
-yy69:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy81;
-       goto yy13;
-yy70:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy70;
-               goto yy13;
+               if (yych == '\t') goto yy68;
+               goto yy14;
        } else {
-               if (yych <= ' ') goto yy70;
-               if (yych == '"') goto yy82;
-               goto yy13;
+               if (yych <= ' ') goto yy68;
+               if (yych == '"') goto yy80;
+               goto yy14;
        }
-yy72:
+yy70:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 201 "../src/parse/lex.re"
+#line 166 "../src/parse/lex.re"
        {
-                                       set_sourceline ();
-                                       goto echo;
-                               }
-#line 511 "src/parse/lex.cc"
+               set_sourceline();
+               goto echo;
+       }
+#line 464 "src/parse/lex.cc"
+yy72:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '\n') goto yy70;
+       goto yy14;
+yy73:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy82;
+       goto yy14;
 yy74:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy72;
-       goto yy13;
+       if (yych == 't') goto yy83;
+       goto yy14;
 yy75:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy84;
-       goto yy13;
+       if (yych == ':') goto yy84;
+       goto yy14;
 yy76:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy85;
-       goto yy13;
+       if (yych == '2') goto yy85;
+       goto yy14;
 yy77:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy86;
-       goto yy13;
+       if (yych == 'r') goto yy86;
+       goto yy14;
 yy78:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy87;
-       goto yy13;
+       if (yych == 'r') goto yy87;
+       goto yy14;
 yy79:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy88;
-       goto yy13;
+       if (yych == '2') goto yy88;
+       goto yy14;
 yy80:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy89;
-       goto yy13;
-yy81:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy90;
-       goto yy13;
-yy82:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy82;
+               goto yy80;
        }
-       if (yych <= '\n') goto yy13;
-       if (yych <= '"') goto yy91;
-       goto yy92;
+       if (yych <= '\n') goto yy14;
+       if (yych <= '"') goto yy89;
+       goto yy90;
+yy82:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy91;
+       goto yy14;
+yy83:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy92;
+       goto yy14;
 yy84:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy93;
-       goto yy13;
+       if (yych == 'r') goto yy93;
+       goto yy14;
 yy85:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy94;
-       goto yy13;
+       if (yych == 'c') goto yy94;
+       goto yy14;
 yy86:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy95;
-       goto yy13;
+       if (yych == 'e') goto yy96;
+       goto yy14;
 yy87:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy96;
-       goto yy13;
+       if (yych == 'e') goto yy97;
+       goto yy14;
 yy88:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy98;
-       goto yy13;
+       if (yych == 'c') goto yy98;
+       goto yy14;
 yy89:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy99;
-       goto yy13;
+       if (yych == '\n') goto yy70;
+       if (yych == '\r') goto yy72;
+       goto yy14;
 yy90:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy100;
-       goto yy13;
-yy91:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy72;
-       if (yych == '\r') goto yy74;
-       goto yy13;
-yy92:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy13;
-       goto yy82;
-yy93:
+       if (yych == '\n') goto yy14;
+       goto yy80;
+yy91:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy102;
-       goto yy13;
-yy94:
+       if (yych == ':') goto yy100;
+       goto yy14;
+yy92:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy103;
-       goto yy13;
-yy95:
+       if (yych == ':') goto yy101;
+       goto yy14;
+yy93:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy104;
-       goto yy13;
-yy96:
+       if (yych == 'e') goto yy102;
+       goto yy14;
+yy94:
        ++YYCURSOR;
-#line 118 "../src/parse/lex.re"
+#line 121 "../src/parse/lex.re"
        {
-                                       if (opts->target != opt_t::DOT)
-                                       {
-                                               out.wdelay_yymaxfill ();
-                                       }
-                                       tok = pos = cur;
-                                       ignore_eoc = true;
-                                       goto echo;
-                               }
-#line 617 "src/parse/lex.cc"
-yy98:
+               if (opts->target == opt_t::CODE) {
+                       out.wdelay_yymaxfill();
+               }
+               goto eoc;
+       }
+#line 567 "src/parse/lex.cc"
+yy96:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy105;
-       goto yy13;
-yy99:
+       if (yych == '2') goto yy103;
+       goto yy14;
+yy97:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy106;
-       goto yy13;
-yy100:
+       if (yych == '2') goto yy104;
+       goto yy14;
+yy98:
        ++YYCURSOR;
 #line 104 "../src/parse/lex.re"
        {
@@ -639,40 +589,40 @@ yy100:
                                        tok = cur;
                                        return Reuse;
                                }
-#line 643 "src/parse/lex.cc"
+#line 593 "src/parse/lex.cc"
+yy100:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'r') goto yy105;
+       goto yy14;
+yy101:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'r') goto yy106;
+       goto yy14;
 yy102:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy107;
-       goto yy13;
+       if (yych == '2') goto yy107;
+       goto yy14;
 yy103:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy108;
-       goto yy13;
+       if (yych == 'c') goto yy108;
+       goto yy14;
 yy104:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy109;
-       goto yy13;
+       if (yych == 'c') goto yy110;
+       goto yy14;
 yy105:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy110;
-       goto yy13;
+       if (yych == 'e') goto yy112;
+       goto yy14;
 yy106:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy112;
-       goto yy13;
+       if (yych == 'e') goto yy113;
+       goto yy14;
 yy107:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy114;
-       goto yy13;
+       if (yych == 'c') goto yy114;
+       goto yy14;
 yy108:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy115;
-       goto yy13;
-yy109:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy116;
-       goto yy13;
-yy110:
        ++YYCURSOR;
 #line 92 "../src/parse/lex.re"
        {
@@ -687,78 +637,146 @@ yy110:
                                        tok = cur;
                                        return Rules;
                                }
-#line 691 "src/parse/lex.cc"
-yy112:
+#line 641 "src/parse/lex.cc"
+yy110:
        ++YYCURSOR;
-#line 138 "../src/parse/lex.re"
+#line 135 "../src/parse/lex.re"
        {
-                                       tok = pos = cur;
-                                       ignore_eoc = true;
-                                       if (opts->target != opt_t::DOT)
-                                       {
-                                               out.wdelay_line_info ().ws("\n")
-                                                       .wdelay_types ().ws("\n")
-                                                       .wline_info (cline, get_fname ().c_str ());
-                                       }
-                                       goto echo;
-                               }
-#line 706 "src/parse/lex.cc"
-yy114:
+               if (opts->target == opt_t::CODE) {
+                       out.wdelay_line_info().ws("\n")
+                               .wdelay_types().ws("\n")
+                               .wline_info(cline, get_fname().c_str());
+               }
+               goto eoc;
+       }
+#line 653 "src/parse/lex.cc"
+yy112:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy118;
-       goto yy13;
-yy115:
+       if (yych == '2') goto yy116;
+       goto yy14;
+yy113:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy119;
-       goto yy13;
-yy116:
+       if (yych == '2') goto yy117;
+       goto yy14;
+yy114:
        ++YYCURSOR;
-#line 133 "../src/parse/lex.re"
-       {
-                                       tok = pos = cur;
-                                       ignore_eoc = true;
-                                       goto echo;
-                               }
-#line 723 "src/parse/lex.cc"
-yy118:
+#line 119 "../src/parse/lex.re"
+       { goto eoc; }
+#line 666 "src/parse/lex.cc"
+yy116:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy120;
-       goto yy13;
-yy119:
+       if (yych == 'c') goto yy118;
+       goto yy14;
+yy117:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy122;
-       goto yy13;
-yy120:
+       if (yych == 'c') goto yy120;
+       goto yy14;
+yy118:
        ++YYCURSOR;
-#line 150 "../src/parse/lex.re"
+#line 144 "../src/parse/lex.re"
        {
                if (opts->target == opt_t::CODE) {
                        const size_t len = sizeof("/*!contexts:re2c") - 1;
                        out.wraw(tok, tok_len() - len);
                }
-
                ConfContexts *conf = new ConfContexts;
                lex_conf_contexts(*conf);
                if (opts->target == opt_t::CODE) {
                        out.wdelay_contexts(opts->topIndent, conf);
                }
+               tok = pos = cur;
+               goto echo;
+       }
+#line 691 "src/parse/lex.cc"
+yy120:
+       ++YYCURSOR;
+#line 128 "../src/parse/lex.re"
+       {
+               if (opts->target == opt_t::CODE) {
+                       out.wdelay_state_goto(opts->topIndent);
+               }
+               goto eoc;
+       }
+#line 701 "src/parse/lex.cc"
+}
+#line 191 "../src/parse/lex.re"
+
+
+eoc:
 
+#line 708 "src/parse/lex.cc"
+{
+       YYCTYPE yych;
+       if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+       yych = (YYCTYPE)*YYCURSOR;
+       if (yych <= '\f') {
+               if (yych <= 0x00) goto yy124;
+               if (yych == '\n') goto yy128;
+               goto yy126;
+       } else {
+               if (yych <= '\r') goto yy130;
+               if (yych == '*') goto yy131;
+               goto yy126;
+       }
+yy124:
+       ++YYCURSOR;
+#line 195 "../src/parse/lex.re"
+       { fatal("expected end of block"); }
+#line 726 "src/parse/lex.cc"
+yy126:
+       ++YYCURSOR;
+yy127:
+#line 196 "../src/parse/lex.re"
+       { goto eoc; }
+#line 732 "src/parse/lex.cc"
+yy128:
+       ++YYCURSOR;
+#line 197 "../src/parse/lex.re"
+       { ++ignored; goto eoc; }
+#line 737 "src/parse/lex.cc"
+yy130:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '\n') goto yy128;
+       goto yy127;
+yy131:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != '/') goto yy127;
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == '\n') goto yy134;
+       if (yych == '\r') goto yy136;
+yy133:
+#line 198 "../src/parse/lex.re"
+       {
+               if (ignored > 0) {
+                       cline += ignored;
+                       ignored = 0;
+                       out.ws("\n").wline_info(cline, get_fname().c_str());
+               }
                tok = pos = cur;
                goto echo;
        }
-#line 750 "src/parse/lex.cc"
-yy122:
+#line 759 "src/parse/lex.cc"
+yy134:
        ++YYCURSOR;
-#line 127 "../src/parse/lex.re"
+#line 207 "../src/parse/lex.re"
        {
-                                       tok = pos = cur;
-                                       out.wdelay_state_goto (opts->topIndent);
-                                       ignore_eoc = true;
-                                       goto echo;
-                               }
-#line 760 "src/parse/lex.cc"
+               ++cline;
+               if (ignored > 0) {
+                       cline += ignored;
+                       ignored = 0;
+                       out.wline_info(cline, get_fname().c_str());
+               }
+               tok = pos = cur;
+               goto echo;
+       }
+#line 773 "src/parse/lex.cc"
+yy136:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '\n') goto yy134;
+       YYCURSOR = YYMARKER;
+       goto yy133;
 }
-#line 232 "../src/parse/lex.re"
+#line 217 "../src/parse/lex.re"
 
 }
 
@@ -778,7 +796,7 @@ scan:
 
 start:
 
-#line 782 "src/parse/lex.cc"
+#line 800 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -819,293 +837,293 @@ start:
        if ((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 16) {
-               goto yy128;
+               goto yy142;
        }
        if (yych <= '9') {
                if (yych <= '&') {
                        if (yych <= '\r') {
-                               if (yych <= 0x08) goto yy126;
-                               if (yych <= '\n') goto yy131;
-                               if (yych >= '\r') goto yy133;
+                               if (yych <= 0x08) goto yy140;
+                               if (yych <= '\n') goto yy145;
+                               if (yych >= '\r') goto yy147;
                        } else {
                                if (yych <= '"') {
-                                       if (yych >= '"') goto yy134;
+                                       if (yych >= '"') goto yy148;
                                } else {
-                                       if (yych == '%') goto yy136;
+                                       if (yych == '%') goto yy150;
                                }
                        }
                } else {
                        if (yych <= '+') {
-                               if (yych <= '\'') goto yy137;
-                               if (yych <= ')') goto yy139;
-                               if (yych <= '*') goto yy141;
-                               goto yy143;
+                               if (yych <= '\'') goto yy151;
+                               if (yych <= ')') goto yy153;
+                               if (yych <= '*') goto yy155;
+                               goto yy157;
                        } else {
                                if (yych <= '-') {
-                                       if (yych <= ',') goto yy139;
+                                       if (yych <= ',') goto yy153;
                                } else {
-                                       if (yych <= '.') goto yy145;
-                                       if (yych <= '/') goto yy147;
-                                       goto yy148;
+                                       if (yych <= '.') goto yy159;
+                                       if (yych <= '/') goto yy161;
+                                       goto yy162;
                                }
                        }
                }
        } else {
                if (yych <= '\\') {
                        if (yych <= '>') {
-                               if (yych <= ':') goto yy149;
-                               if (yych == '<') goto yy150;
-                               goto yy139;
+                               if (yych <= ':') goto yy163;
+                               if (yych == '<') goto yy164;
+                               goto yy153;
                        } else {
                                if (yych <= '@') {
-                                       if (yych <= '?') goto yy143;
-                                       goto yy151;
+                                       if (yych <= '?') goto yy157;
+                                       goto yy165;
                                } else {
-                                       if (yych <= 'Z') goto yy148;
-                                       if (yych <= '[') goto yy152;
-                                       goto yy139;
+                                       if (yych <= 'Z') goto yy162;
+                                       if (yych <= '[') goto yy166;
+                                       goto yy153;
                                }
                        }
                } else {
                        if (yych <= 'q') {
-                               if (yych == '_') goto yy148;
-                               if (yych >= 'a') goto yy148;
+                               if (yych == '_') goto yy162;
+                               if (yych >= 'a') goto yy162;
                        } else {
                                if (yych <= 'z') {
-                                       if (yych <= 'r') goto yy154;
-                                       goto yy148;
+                                       if (yych <= 'r') goto yy168;
+                                       goto yy162;
                                } else {
-                                       if (yych <= '{') goto yy155;
-                                       if (yych <= '|') goto yy139;
+                                       if (yych <= '{') goto yy169;
+                                       if (yych <= '|') goto yy153;
                                }
                        }
                }
        }
-yy126:
+yy140:
        ++YYCURSOR;
-yy127:
-#line 410 "../src/parse/lex.re"
+yy141:
+#line 395 "../src/parse/lex.re"
        {
                                        fatalf("unexpected character: '%c'", *tok);
                                        goto scan;
                                }
-#line 893 "src/parse/lex.cc"
-yy128:
+#line 911 "src/parse/lex.cc"
+yy142:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 16) {
-               goto yy128;
+               goto yy142;
        }
-#line 394 "../src/parse/lex.re"
+#line 379 "../src/parse/lex.re"
        {
                                        goto scan;
                                }
-#line 905 "src/parse/lex.cc"
-yy131:
+#line 923 "src/parse/lex.cc"
+yy145:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy157;
+               if (yych == '\t') goto yy171;
        } else {
-               if (yych <= ' ') goto yy157;
-               if (yych == '#') goto yy160;
+               if (yych <= ' ') goto yy171;
+               if (yych == '#') goto yy174;
        }
-yy132:
-#line 403 "../src/parse/lex.re"
+yy146:
+#line 388 "../src/parse/lex.re"
        {
                                        if (cur == eof) return 0;
                                        pos = cur;
                                        cline++;
                                        goto scan;
                                }
-#line 923 "src/parse/lex.cc"
-yy133:
+#line 941 "src/parse/lex.cc"
+yy147:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy131;
-       goto yy127;
-yy134:
+       if (yych == '\n') goto yy145;
+       goto yy141;
+yy148:
        ++YYCURSOR;
-#line 281 "../src/parse/lex.re"
+#line 266 "../src/parse/lex.re"
        { yylval.regexp = lex_str('"',  opts->bCaseInsensitive ||  opts->bCaseInverted); return TOKEN_REGEXP; }
-#line 932 "src/parse/lex.cc"
-yy136:
+#line 950 "src/parse/lex.cc"
+yy150:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '}') goto yy162;
-       goto yy127;
-yy137:
+       if (yych == '}') goto yy176;
+       goto yy141;
+yy151:
        ++YYCURSOR;
-#line 280 "../src/parse/lex.re"
+#line 265 "../src/parse/lex.re"
        { yylval.regexp = lex_str('\'', opts->bCaseInsensitive || !opts->bCaseInverted); return TOKEN_REGEXP; }
-#line 941 "src/parse/lex.cc"
-yy139:
+#line 959 "src/parse/lex.cc"
+yy153:
        ++YYCURSOR;
-yy140:
-#line 297 "../src/parse/lex.re"
+yy154:
+#line 282 "../src/parse/lex.re"
        {
                                        return *tok;
                                }
-#line 949 "src/parse/lex.cc"
-yy141:
+#line 967 "src/parse/lex.cc"
+yy155:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) == '/') goto yy162;
-#line 301 "../src/parse/lex.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) == '/') goto yy176;
+#line 286 "../src/parse/lex.re"
        {
                                        yylval.op = *tok;
                                        return TOKEN_STAR;
                                }
-#line 958 "src/parse/lex.cc"
-yy143:
+#line 976 "src/parse/lex.cc"
+yy157:
        ++YYCURSOR;
-#line 305 "../src/parse/lex.re"
+#line 290 "../src/parse/lex.re"
        {
                                        yylval.op = *tok;
                                        return TOKEN_CLOSE;
                                }
-#line 966 "src/parse/lex.cc"
-yy145:
+#line 984 "src/parse/lex.cc"
+yy159:
        ++YYCURSOR;
-#line 389 "../src/parse/lex.re"
+#line 374 "../src/parse/lex.re"
        {
                                        yylval.regexp = mkDot();
                                        return TOKEN_REGEXP;
                                }
-#line 974 "src/parse/lex.cc"
-yy147:
+#line 992 "src/parse/lex.cc"
+yy161:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '*') goto yy164;
-       if (yych == '/') goto yy166;
-       goto yy140;
-yy148:
+       if (yych == '*') goto yy178;
+       if (yych == '/') goto yy180;
+       goto yy154;
+yy162:
        yych = (YYCTYPE)*++YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-       goto yy174;
-yy149:
+       goto yy188;
+yy163:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '=') goto yy175;
-       goto yy127;
-yy150:
+       if (yych == '=') goto yy189;
+       goto yy141;
+yy164:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '!') goto yy177;
-       if (yych == '>') goto yy179;
-       goto yy140;
-yy151:
+       if (yych == '!') goto yy191;
+       if (yych == '>') goto yy193;
+       goto yy154;
+yy165:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= 'Z') {
-               if (yych <= '/') goto yy127;
-               if (yych <= '9') goto yy180;
-               if (yych <= '@') goto yy127;
-               goto yy180;
+               if (yych <= '/') goto yy141;
+               if (yych <= '9') goto yy194;
+               if (yych <= '@') goto yy141;
+               goto yy194;
        } else {
                if (yych <= '_') {
-                       if (yych <= '^') goto yy127;
-                       goto yy180;
+                       if (yych <= '^') goto yy141;
+                       goto yy194;
                } else {
-                       if (yych <= '`') goto yy127;
-                       if (yych <= 'z') goto yy180;
-                       goto yy127;
+                       if (yych <= '`') goto yy141;
+                       if (yych <= 'z') goto yy194;
+                       goto yy141;
                }
        }
-yy152:
+yy166:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) == '^') goto yy183;
-#line 282 "../src/parse/lex.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) == '^') goto yy197;
+#line 267 "../src/parse/lex.re"
        { yylval.regexp = lex_cls(false); return TOKEN_REGEXP; }
-#line 1016 "src/parse/lex.cc"
-yy154:
+#line 1034 "src/parse/lex.cc"
+yy168:
        yych = (YYCTYPE)*++YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-       if (yych == 'e') goto yy185;
-       goto yy174;
-yy155:
+       if (yych == 'e') goto yy199;
+       goto yy188;
+yy169:
        yyaccept = 2;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 64) {
-               goto yy188;
+               goto yy202;
        }
        if (yych <= 'Z') {
-               if (yych == ',') goto yy186;
-               if (yych >= 'A') goto yy190;
+               if (yych == ',') goto yy200;
+               if (yych >= 'A') goto yy204;
        } else {
                if (yych <= '_') {
-                       if (yych >= '_') goto yy190;
+                       if (yych >= '_') goto yy204;
                } else {
-                       if (yych <= '`') goto yy156;
-                       if (yych <= 'z') goto yy190;
+                       if (yych <= '`') goto yy170;
+                       if (yych <= 'z') goto yy204;
                }
        }
-yy156:
-#line 251 "../src/parse/lex.re"
+yy170:
+#line 236 "../src/parse/lex.re"
        {
                                        depth = 1;
                                        goto code;
                                }
-#line 1045 "src/parse/lex.cc"
-yy157:
+#line 1063 "src/parse/lex.cc"
+yy171:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy157;
+               if (yych == '\t') goto yy171;
        } else {
-               if (yych <= ' ') goto yy157;
-               if (yych == '#') goto yy160;
+               if (yych <= ' ') goto yy171;
+               if (yych == '#') goto yy174;
        }
-yy159:
+yy173:
        YYCURSOR = YYMARKER;
        if (yyaccept <= 1) {
                if (yyaccept == 0) {
-                       goto yy132;
+                       goto yy146;
                } else {
-                       goto yy140;
+                       goto yy154;
                }
        } else {
                if (yyaccept == 2) {
-                       goto yy156;
+                       goto yy170;
                } else {
-                       goto yy187;
+                       goto yy201;
                }
        }
-yy160:
+yy174:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy160;
-               goto yy159;
+               if (yych == '\t') goto yy174;
+               goto yy173;
        } else {
-               if (yych <= ' ') goto yy160;
-               if (yych == 'l') goto yy192;
-               goto yy159;
+               if (yych <= ' ') goto yy174;
+               if (yych == 'l') goto yy206;
+               goto yy173;
        }
-yy162:
+yy176:
        ++YYCURSOR;
-#line 275 "../src/parse/lex.re"
+#line 260 "../src/parse/lex.re"
        {
                                        tok = cur;
                                        return 0;
                                }
-#line 1090 "src/parse/lex.cc"
-yy164:
+#line 1108 "src/parse/lex.cc"
+yy178:
        ++YYCURSOR;
-#line 269 "../src/parse/lex.re"
+#line 254 "../src/parse/lex.re"
        {
                                        depth = 1;
                                        goto comment;
                                }
-#line 1098 "src/parse/lex.cc"
-yy166:
+#line 1116 "src/parse/lex.cc"
+yy180:
        ++YYCURSOR;
-#line 266 "../src/parse/lex.re"
+#line 251 "../src/parse/lex.re"
        {
                                goto nextLine;
                        }
-#line 1105 "src/parse/lex.cc"
-yy168:
+#line 1123 "src/parse/lex.cc"
+yy182:
        ++YYCURSOR;
        YYCURSOR -= 1;
-#line 373 "../src/parse/lex.re"
+#line 358 "../src/parse/lex.re"
        {
                                        if (!opts->FFlag) {
                                                yylval.str = new std::string (tok, tok_len());
@@ -1121,157 +1139,157 @@ yy168:
                                                return TOKEN_REGEXP;
                                        }
                                }
-#line 1125 "src/parse/lex.cc"
-yy170:
+#line 1143 "src/parse/lex.cc"
+yy184:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy196;
-yy171:
+       goto yy210;
+yy185:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 368 "../src/parse/lex.re"
+#line 353 "../src/parse/lex.re"
        {
                                        yylval.str = new std::string (tok, tok_len ());
                                        return TOKEN_ID;
                                }
-#line 1137 "src/parse/lex.cc"
-yy173:
+#line 1155 "src/parse/lex.cc"
+yy187:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-yy174:
+yy188:
        if (yybm[0+yych] & 32) {
-               goto yy173;
+               goto yy187;
        }
        if (yych <= ' ') {
-               if (yych == '\t') goto yy170;
-               if (yych <= 0x1F) goto yy168;
-               goto yy170;
+               if (yych == '\t') goto yy184;
+               if (yych <= 0x1F) goto yy182;
+               goto yy184;
        } else {
                if (yych <= ',') {
-                       if (yych <= '+') goto yy168;
-                       goto yy171;
+                       if (yych <= '+') goto yy182;
+                       goto yy185;
                } else {
-                       if (yych <= '<') goto yy168;
-                       if (yych <= '>') goto yy171;
-                       goto yy168;
+                       if (yych <= '<') goto yy182;
+                       if (yych <= '>') goto yy185;
+                       goto yy182;
                }
        }
-yy175:
+yy189:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) == '>') goto yy197;
-#line 260 "../src/parse/lex.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) == '>') goto yy211;
+#line 245 "../src/parse/lex.re"
        {
                                        tok += 2; /* skip ":=" */
                                        depth = 0;
                                        goto code;
                                }
-#line 1170 "src/parse/lex.cc"
-yy177:
+#line 1188 "src/parse/lex.cc"
+yy191:
        ++YYCURSOR;
-#line 288 "../src/parse/lex.re"
+#line 273 "../src/parse/lex.re"
        {
                                        return TOKEN_SETUP;
                                }
-#line 1177 "src/parse/lex.cc"
-yy179:
+#line 1195 "src/parse/lex.cc"
+yy193:
        yych = (YYCTYPE)*++YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-       goto yy200;
-yy180:
+       goto yy214;
+yy194:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'Z') {
-               if (yych <= '/') goto yy182;
-               if (yych <= '9') goto yy180;
-               if (yych >= 'A') goto yy180;
+               if (yych <= '/') goto yy196;
+               if (yych <= '9') goto yy194;
+               if (yych >= 'A') goto yy194;
        } else {
                if (yych <= '_') {
-                       if (yych >= '_') goto yy180;
+                       if (yych >= '_') goto yy194;
                } else {
-                       if (yych <= '`') goto yy182;
-                       if (yych <= 'z') goto yy180;
+                       if (yych <= '`') goto yy196;
+                       if (yych <= 'z') goto yy194;
                }
        }
-yy182:
-#line 292 "../src/parse/lex.re"
+yy196:
+#line 277 "../src/parse/lex.re"
        {
                yylval.str = new std::string(tok + 1, tok_len() - 1);
                return TOKEN_CTX;
        }
-#line 1204 "src/parse/lex.cc"
-yy183:
+#line 1222 "src/parse/lex.cc"
+yy197:
        ++YYCURSOR;
-#line 283 "../src/parse/lex.re"
+#line 268 "../src/parse/lex.re"
        { yylval.regexp = lex_cls(true);  return TOKEN_REGEXP; }
-#line 1209 "src/parse/lex.cc"
-yy185:
+#line 1227 "src/parse/lex.cc"
+yy199:
        yych = (YYCTYPE)*++YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-       if (yych == '2') goto yy205;
-       goto yy174;
-yy186:
+       if (yych == '2') goto yy219;
+       goto yy188;
+yy200:
        ++YYCURSOR;
-yy187:
-#line 341 "../src/parse/lex.re"
+yy201:
+#line 326 "../src/parse/lex.re"
        {
                                        fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers");
                                }
-#line 1222 "src/parse/lex.cc"
-yy188:
+#line 1240 "src/parse/lex.cc"
+yy202:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 64) {
-               goto yy188;
+               goto yy202;
        }
        if (yych <= '^') {
                if (yych <= ',') {
-                       if (yych <= '+') goto yy159;
-                       goto yy206;
+                       if (yych <= '+') goto yy173;
+                       goto yy220;
                } else {
-                       if (yych <= '@') goto yy159;
-                       if (yych >= '[') goto yy159;
+                       if (yych <= '@') goto yy173;
+                       if (yych >= '[') goto yy173;
                }
        } else {
                if (yych <= 'z') {
-                       if (yych == '`') goto yy159;
+                       if (yych == '`') goto yy173;
                } else {
-                       if (yych == '}') goto yy207;
-                       goto yy159;
+                       if (yych == '}') goto yy221;
+                       goto yy173;
                }
        }
-yy190:
+yy204:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '^') {
                if (yych <= '9') {
-                       if (yych <= '/') goto yy159;
-                       goto yy190;
+                       if (yych <= '/') goto yy173;
+                       goto yy204;
                } else {
-                       if (yych <= '@') goto yy159;
-                       if (yych <= 'Z') goto yy190;
-                       goto yy159;
+                       if (yych <= '@') goto yy173;
+                       if (yych <= 'Z') goto yy204;
+                       goto yy173;
                }
        } else {
                if (yych <= 'z') {
-                       if (yych == '`') goto yy159;
-                       goto yy190;
+                       if (yych == '`') goto yy173;
+                       goto yy204;
                } else {
-                       if (yych == '}') goto yy209;
-                       goto yy159;
+                       if (yych == '}') goto yy223;
+                       goto yy173;
                }
        }
-yy192:
+yy206:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy211;
-       goto yy159;
-yy193:
+       if (yych == 'i') goto yy225;
+       goto yy173;
+yy207:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 355 "../src/parse/lex.re"
+#line 340 "../src/parse/lex.re"
        {
                                        yylval.str = new std::string (tok, tok_len ());
                                        if (opts->FFlag)
@@ -1284,87 +1302,87 @@ yy193:
                                                return TOKEN_ID;
                                        }
                                }
-#line 1288 "src/parse/lex.cc"
-yy195:
+#line 1306 "src/parse/lex.cc"
+yy209:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy196:
+yy210:
        if (yych <= ' ') {
-               if (yych == '\t') goto yy195;
-               if (yych <= 0x1F) goto yy193;
-               goto yy195;
+               if (yych == '\t') goto yy209;
+               if (yych <= 0x1F) goto yy207;
+               goto yy209;
        } else {
                if (yych <= ',') {
-                       if (yych <= '+') goto yy193;
-                       goto yy171;
+                       if (yych <= '+') goto yy207;
+                       goto yy185;
                } else {
-                       if (yych <= '<') goto yy193;
-                       if (yych <= '>') goto yy171;
-                       goto yy193;
+                       if (yych <= '<') goto yy207;
+                       if (yych <= '>') goto yy185;
+                       goto yy207;
                }
        }
-yy197:
+yy211:
        ++YYCURSOR;
        YYCURSOR -= 2;
-#line 256 "../src/parse/lex.re"
+#line 241 "../src/parse/lex.re"
        {
                                        return *tok;
                                }
-#line 1315 "src/parse/lex.cc"
-yy199:
+#line 1333 "src/parse/lex.cc"
+yy213:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
-yy200:
+yy214:
        if (yych <= '9') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy159;
-                       goto yy199;
+                       if (yych <= 0x08) goto yy173;
+                       goto yy213;
                } else {
-                       if (yych == ' ') goto yy199;
-                       goto yy159;
+                       if (yych == ' ') goto yy213;
+                       goto yy173;
                }
        } else {
                if (yych <= '=') {
-                       if (yych <= ':') goto yy201;
-                       if (yych <= '<') goto yy159;
-                       goto yy202;
+                       if (yych <= ':') goto yy215;
+                       if (yych <= '<') goto yy173;
+                       goto yy216;
                } else {
-                       if (yych == '{') goto yy203;
-                       goto yy159;
+                       if (yych == '{') goto yy217;
+                       goto yy173;
                }
        }
-yy201:
+yy215:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '=') goto yy203;
-       goto yy159;
-yy202:
+       if (yych == '=') goto yy217;
+       goto yy173;
+yy216:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '>') goto yy159;
-yy203:
+       if (yych != '>') goto yy173;
+yy217:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 285 "../src/parse/lex.re"
+#line 270 "../src/parse/lex.re"
        {
                                        return TOKEN_NOCOND;
                                }
-#line 1353 "src/parse/lex.cc"
-yy205:
+#line 1371 "src/parse/lex.cc"
+yy219:
        yych = (YYCTYPE)*++YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-       if (yych == 'c') goto yy212;
-       goto yy174;
-yy206:
+       if (yych == 'c') goto yy226;
+       goto yy188;
+yy220:
        yyaccept = 3;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych <= '/') goto yy187;
-       if (yych <= '9') goto yy213;
-       if (yych == '}') goto yy215;
-       goto yy187;
-yy207:
+       if (yych <= '/') goto yy201;
+       if (yych <= '9') goto yy227;
+       if (yych == '}') goto yy229;
+       goto yy201;
+yy221:
        ++YYCURSOR;
-#line 310 "../src/parse/lex.re"
+#line 295 "../src/parse/lex.re"
        {
                                        if (!s_to_u32_unsafe (tok + 1, cur - 1, yylval.extop.min))
                                        {
@@ -1373,10 +1391,10 @@ yy207:
                                        yylval.extop.max = yylval.extop.min;
                                        return TOKEN_CLOSESIZE;
                                }
-#line 1377 "src/parse/lex.cc"
-yy209:
+#line 1395 "src/parse/lex.cc"
+yy223:
        ++YYCURSOR;
-#line 345 "../src/parse/lex.re"
+#line 330 "../src/parse/lex.re"
        {
                                        if (!opts->FFlag) {
                                                fatal("curly braces for names only allowed with -F switch");
@@ -1384,27 +1402,27 @@ yy209:
                                        yylval.str = new std::string (tok + 1, tok_len () - 2); // -2 to omit braces
                                        return TOKEN_ID;
                                }
-#line 1388 "src/parse/lex.cc"
-yy211:
+#line 1406 "src/parse/lex.cc"
+yy225:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy217;
-       goto yy159;
-yy212:
+       if (yych == 'n') goto yy231;
+       goto yy173;
+yy226:
        yych = (YYCTYPE)*++YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-       if (yych == ':') goto yy218;
-       goto yy174;
-yy213:
+       if (yych == ':') goto yy232;
+       goto yy188;
+yy227:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= '/') goto yy159;
-       if (yych <= '9') goto yy213;
-       if (yych == '}') goto yy220;
-       goto yy159;
-yy215:
+       if (yych <= '/') goto yy173;
+       if (yych <= '9') goto yy227;
+       if (yych == '}') goto yy234;
+       goto yy173;
+yy229:
        ++YYCURSOR;
-#line 332 "../src/parse/lex.re"
+#line 317 "../src/parse/lex.re"
        {
                                        if (!s_to_u32_unsafe (tok + 1, cur - 2, yylval.extop.min))
                                        {
@@ -1413,19 +1431,19 @@ yy215:
                                        yylval.extop.max = std::numeric_limits<uint32_t>::max();
                                        return TOKEN_CLOSESIZE;
                                }
-#line 1417 "src/parse/lex.cc"
-yy217:
+#line 1435 "src/parse/lex.cc"
+yy231:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy222;
-       goto yy159;
-yy218:
+       if (yych == 'e') goto yy236;
+       goto yy173;
+yy232:
        ++YYCURSOR;
-#line 353 "../src/parse/lex.re"
+#line 338 "../src/parse/lex.re"
        { lex_conf (); return TOKEN_CONF; }
-#line 1426 "src/parse/lex.cc"
-yy220:
+#line 1444 "src/parse/lex.cc"
+yy234:
        ++YYCURSOR;
-#line 319 "../src/parse/lex.re"
+#line 304 "../src/parse/lex.re"
        {
                                        const char * p = strchr (tok, ',');
                                        if (!s_to_u32_unsafe (tok + 1, p, yylval.extop.min))
@@ -1438,132 +1456,132 @@ yy220:
                                        }
                                        return TOKEN_CLOSESIZE;
                                }
-#line 1442 "src/parse/lex.cc"
-yy222:
+#line 1460 "src/parse/lex.cc"
+yy236:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '0') goto yy224;
-       if (yych <= '9') goto yy159;
-       goto yy224;
-yy223:
+       if (yych <= '0') goto yy238;
+       if (yych <= '9') goto yy173;
+       goto yy238;
+yy237:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-yy224:
+yy238:
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy223;
-               goto yy159;
+               if (yych == '\t') goto yy237;
+               goto yy173;
        } else {
-               if (yych <= ' ') goto yy223;
-               if (yych <= '0') goto yy159;
-               if (yych >= ':') goto yy159;
+               if (yych <= ' ') goto yy237;
+               if (yych <= '0') goto yy173;
+               if (yych >= ':') goto yy173;
        }
-yy225:
+yy239:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '\r') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy159;
+                       if (yych <= 0x08) goto yy173;
                } else {
-                       if (yych <= '\n') goto yy229;
-                       if (yych <= '\f') goto yy159;
-                       goto yy231;
+                       if (yych <= '\n') goto yy243;
+                       if (yych <= '\f') goto yy173;
+                       goto yy245;
                }
        } else {
                if (yych <= ' ') {
-                       if (yych <= 0x1F) goto yy159;
+                       if (yych <= 0x1F) goto yy173;
                } else {
-                       if (yych <= '/') goto yy159;
-                       if (yych <= '9') goto yy225;
-                       goto yy159;
+                       if (yych <= '/') goto yy173;
+                       if (yych <= '9') goto yy239;
+                       goto yy173;
                }
        }
-yy227:
+yy241:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy227;
-               goto yy159;
+               if (yych == '\t') goto yy241;
+               goto yy173;
        } else {
-               if (yych <= ' ') goto yy227;
-               if (yych == '"') goto yy232;
-               goto yy159;
+               if (yych <= ' ') goto yy241;
+               if (yych == '"') goto yy246;
+               goto yy173;
        }
-yy229:
+yy243:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 398 "../src/parse/lex.re"
+#line 383 "../src/parse/lex.re"
        {
                                        set_sourceline ();
                                        goto scan;
                                }
-#line 1503 "src/parse/lex.cc"
-yy231:
+#line 1521 "src/parse/lex.cc"
+yy245:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy229;
-       goto yy159;
-yy232:
+       if (yych == '\n') goto yy243;
+       goto yy173;
+yy246:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy232;
+               goto yy246;
        }
-       if (yych <= '\n') goto yy159;
-       if (yych >= '#') goto yy235;
+       if (yych <= '\n') goto yy173;
+       if (yych >= '#') goto yy249;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy229;
-       if (yych == '\r') goto yy231;
-       goto yy159;
-yy235:
+       if (yych == '\n') goto yy243;
+       if (yych == '\r') goto yy245;
+       goto yy173;
+yy249:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy159;
-       goto yy232;
+       if (yych == '\n') goto yy173;
+       goto yy246;
 }
-#line 414 "../src/parse/lex.re"
+#line 399 "../src/parse/lex.re"
 
 
 flex_name:
 
-#line 1533 "src/parse/lex.cc"
+#line 1551 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy240;
-       if (yych == '\r') goto yy242;
+       if (yych == '\n') goto yy254;
+       if (yych == '\r') goto yy256;
        ++YYCURSOR;
-yy239:
-#line 425 "../src/parse/lex.re"
+yy253:
+#line 410 "../src/parse/lex.re"
        {
                YYCURSOR = tok;
                goto start;
        }
-#line 1547 "src/parse/lex.cc"
-yy240:
+#line 1565 "src/parse/lex.cc"
+yy254:
        ++YYCURSOR;
-#line 419 "../src/parse/lex.re"
+#line 404 "../src/parse/lex.re"
        {
                YYCURSOR = tok;
                lexer_state = LEX_NORMAL;
                return TOKEN_FID_END;
        }
-#line 1556 "src/parse/lex.cc"
-yy242:
+#line 1574 "src/parse/lex.cc"
+yy256:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) == '\n') goto yy240;
-       goto yy239;
+       if ((yych = (YYCTYPE)*YYCURSOR) == '\n') goto yy254;
+       goto yy253;
 }
-#line 429 "../src/parse/lex.re"
+#line 414 "../src/parse/lex.re"
 
 
 code:
 
-#line 1567 "src/parse/lex.cc"
+#line 1585 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -1605,26 +1623,26 @@ code:
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '&') {
                if (yych <= '\n') {
-                       if (yych <= 0x00) goto yy245;
-                       if (yych <= '\t') goto yy247;
-                       goto yy249;
+                       if (yych <= 0x00) goto yy259;
+                       if (yych <= '\t') goto yy261;
+                       goto yy263;
                } else {
-                       if (yych == '"') goto yy251;
-                       goto yy247;
+                       if (yych == '"') goto yy265;
+                       goto yy261;
                }
        } else {
                if (yych <= '{') {
-                       if (yych <= '\'') goto yy252;
-                       if (yych <= 'z') goto yy247;
-                       goto yy253;
+                       if (yych <= '\'') goto yy266;
+                       if (yych <= 'z') goto yy261;
+                       goto yy267;
                } else {
-                       if (yych == '}') goto yy255;
-                       goto yy247;
+                       if (yych == '}') goto yy269;
+                       goto yy261;
                }
        }
-yy245:
+yy259:
        ++YYCURSOR;
-#line 492 "../src/parse/lex.re"
+#line 477 "../src/parse/lex.re"
        {
                                        if (cur == eof)
                                        {
@@ -1636,34 +1654,34 @@ yy245:
                                        }
                                        goto code;
                                }
-#line 1640 "src/parse/lex.cc"
-yy247:
+#line 1658 "src/parse/lex.cc"
+yy261:
        ++YYCURSOR;
-yy248:
-#line 506 "../src/parse/lex.re"
+yy262:
+#line 491 "../src/parse/lex.re"
        {
                                        goto code;
                                }
-#line 1648 "src/parse/lex.cc"
-yy249:
+#line 1666 "src/parse/lex.cc"
+yy263:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '\r') {
                if (yych <= '\t') {
-                       if (yych >= '\t') goto yy257;
+                       if (yych >= '\t') goto yy271;
                } else {
-                       if (yych <= '\n') goto yy259;
-                       if (yych >= '\r') goto yy259;
+                       if (yych <= '\n') goto yy273;
+                       if (yych >= '\r') goto yy273;
                }
        } else {
                if (yych <= ' ') {
-                       if (yych >= ' ') goto yy257;
+                       if (yych >= ' ') goto yy271;
                } else {
-                       if (yych == '#') goto yy260;
+                       if (yych == '#') goto yy274;
                }
        }
-yy250:
-#line 473 "../src/parse/lex.re"
+yy264:
+#line 458 "../src/parse/lex.re"
        {
                                        if (depth == 0)
                                        {
@@ -1683,20 +1701,20 @@ yy250:
                                        cline++;
                                        goto code;
                                }
-#line 1687 "src/parse/lex.cc"
-yy251:
+#line 1705 "src/parse/lex.cc"
+yy265:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '\n') goto yy248;
-       goto yy264;
-yy252:
+       if (yych == '\n') goto yy262;
+       goto yy278;
+yy266:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '\n') goto yy248;
-       goto yy269;
-yy253:
+       if (yych == '\n') goto yy262;
+       goto yy283;
+yy267:
        ++YYCURSOR;
-#line 445 "../src/parse/lex.re"
+#line 430 "../src/parse/lex.re"
        {
                                        if (depth == 0)
                                        {
@@ -1708,10 +1726,10 @@ yy253:
                                        }
                                        goto code;
                                }
-#line 1712 "src/parse/lex.cc"
-yy255:
+#line 1730 "src/parse/lex.cc"
+yy269:
        ++YYCURSOR;
-#line 433 "../src/parse/lex.re"
+#line 418 "../src/parse/lex.re"
        {
                                        if (depth == 0)
                                        {
@@ -1724,19 +1742,19 @@ yy255:
                                        }
                                        goto code;
                                }
-#line 1728 "src/parse/lex.cc"
-yy257:
+#line 1746 "src/parse/lex.cc"
+yy271:
        yyaccept = 2;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy271;
+               if (yych == '\t') goto yy285;
        } else {
-               if (yych <= ' ') goto yy271;
-               if (yych == '#') goto yy260;
+               if (yych <= ' ') goto yy285;
+               if (yych == '#') goto yy274;
        }
-yy258:
+yy272:
        YYCURSOR -= 1;
-#line 460 "../src/parse/lex.re"
+#line 445 "../src/parse/lex.re"
        {
                                        if (depth == 0)
                                        {
@@ -1750,175 +1768,175 @@ yy258:
                                        cline++;
                                        goto code;
                                }
-#line 1754 "src/parse/lex.cc"
-yy259:
+#line 1772 "src/parse/lex.cc"
+yy273:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy258;
-yy260:
+       goto yy272;
+yy274:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 16) {
-               goto yy260;
+               goto yy274;
        }
-       if (yych == 'l') goto yy273;
-yy262:
+       if (yych == 'l') goto yy287;
+yy276:
        YYCURSOR = YYMARKER;
        if (yyaccept <= 1) {
                if (yyaccept == 0) {
-                       goto yy250;
+                       goto yy264;
                } else {
-                       goto yy248;
+                       goto yy262;
                }
        } else {
-               goto yy258;
+               goto yy272;
        }
-yy263:
+yy277:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy264:
+yy278:
        if (yybm[0+yych] & 32) {
-               goto yy263;
+               goto yy277;
        }
-       if (yych <= '\n') goto yy262;
-       if (yych >= '#') goto yy267;
-yy265:
+       if (yych <= '\n') goto yy276;
+       if (yych >= '#') goto yy281;
+yy279:
        ++YYCURSOR;
-#line 503 "../src/parse/lex.re"
+#line 488 "../src/parse/lex.re"
        {
                                        goto code;
                                }
-#line 1793 "src/parse/lex.cc"
-yy267:
+#line 1811 "src/parse/lex.cc"
+yy281:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy262;
-       goto yy263;
-yy268:
+       if (yych == '\n') goto yy276;
+       goto yy277;
+yy282:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy269:
+yy283:
        if (yybm[0+yych] & 64) {
-               goto yy268;
+               goto yy282;
        }
-       if (yych <= '\n') goto yy262;
-       if (yych <= '\'') goto yy265;
+       if (yych <= '\n') goto yy276;
+       if (yych <= '\'') goto yy279;
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy262;
-       goto yy268;
-yy271:
+       if (yych == '\n') goto yy276;
+       goto yy282;
+yy285:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy271;
-               goto yy262;
+               if (yych == '\t') goto yy285;
+               goto yy276;
        } else {
-               if (yych <= ' ') goto yy271;
-               if (yych == '#') goto yy260;
-               goto yy262;
+               if (yych <= ' ') goto yy285;
+               if (yych == '#') goto yy274;
+               goto yy276;
        }
-yy273:
+yy287:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy262;
+       if (yych != 'i') goto yy276;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy262;
+       if (yych != 'n') goto yy276;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy262;
+       if (yych != 'e') goto yy276;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '0') goto yy278;
-       if (yych <= '9') goto yy262;
-       goto yy278;
-yy277:
+       if (yych <= '0') goto yy292;
+       if (yych <= '9') goto yy276;
+       goto yy292;
+yy291:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-yy278:
+yy292:
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy277;
-               goto yy262;
+               if (yych == '\t') goto yy291;
+               goto yy276;
        } else {
-               if (yych <= ' ') goto yy277;
-               if (yych <= '0') goto yy262;
-               if (yych >= ':') goto yy262;
+               if (yych <= ' ') goto yy291;
+               if (yych <= '0') goto yy276;
+               if (yych >= ':') goto yy276;
        }
-yy279:
+yy293:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy279;
+               goto yy293;
        }
        if (yych <= '\f') {
-               if (yych <= 0x08) goto yy262;
-               if (yych <= '\t') goto yy281;
-               if (yych <= '\n') goto yy283;
-               goto yy262;
+               if (yych <= 0x08) goto yy276;
+               if (yych <= '\t') goto yy295;
+               if (yych <= '\n') goto yy297;
+               goto yy276;
        } else {
-               if (yych <= '\r') goto yy285;
-               if (yych != ' ') goto yy262;
+               if (yych <= '\r') goto yy299;
+               if (yych != ' ') goto yy276;
        }
-yy281:
+yy295:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy281;
-               goto yy262;
+               if (yych == '\t') goto yy295;
+               goto yy276;
        } else {
-               if (yych <= ' ') goto yy281;
-               if (yych == '"') goto yy286;
-               goto yy262;
+               if (yych <= ' ') goto yy295;
+               if (yych == '"') goto yy300;
+               goto yy276;
        }
-yy283:
+yy297:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 456 "../src/parse/lex.re"
+#line 441 "../src/parse/lex.re"
        {
                                        set_sourceline ();
                                        goto code;
                                }
-#line 1888 "src/parse/lex.cc"
-yy285:
+#line 1906 "src/parse/lex.cc"
+yy299:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy283;
-       goto yy262;
-yy286:
+       if (yych == '\n') goto yy297;
+       goto yy276;
+yy300:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '!') {
-               if (yych == '\n') goto yy262;
-               goto yy286;
+               if (yych == '\n') goto yy276;
+               goto yy300;
        } else {
-               if (yych <= '"') goto yy288;
-               if (yych == '\\') goto yy289;
-               goto yy286;
+               if (yych <= '"') goto yy302;
+               if (yych == '\\') goto yy303;
+               goto yy300;
        }
-yy288:
+yy302:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy283;
-       if (yych == '\r') goto yy285;
-       goto yy262;
-yy289:
+       if (yych == '\n') goto yy297;
+       if (yych == '\r') goto yy299;
+       goto yy276;
+yy303:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy262;
-       goto yy286;
+       if (yych == '\n') goto yy276;
+       goto yy300;
 }
-#line 509 "../src/parse/lex.re"
+#line 494 "../src/parse/lex.re"
 
 
 comment:
 
-#line 1922 "src/parse/lex.cc"
+#line 1940 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -1958,14 +1976,14 @@ comment:
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= ')') {
-               if (yych == '\n') goto yy294;
+               if (yych == '\n') goto yy308;
        } else {
-               if (yych <= '*') goto yy296;
-               if (yych == '/') goto yy297;
+               if (yych <= '*') goto yy310;
+               if (yych == '/') goto yy311;
        }
        ++YYCURSOR;
-yy293:
-#line 541 "../src/parse/lex.re"
+yy307:
+#line 526 "../src/parse/lex.re"
        {
                                        if (cur == eof)
                                        {
@@ -1973,15 +1991,15 @@ yy293:
                                        }
                                        goto comment;
                                }
-#line 1977 "src/parse/lex.cc"
-yy294:
+#line 1995 "src/parse/lex.cc"
+yy308:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 32) {
-               goto yy298;
+               goto yy312;
        }
-       if (yych == '#') goto yy301;
-yy295:
-#line 532 "../src/parse/lex.re"
+       if (yych == '#') goto yy315;
+yy309:
+#line 517 "../src/parse/lex.re"
        {
                                        if (cur == eof)
                                        {
@@ -1991,41 +2009,41 @@ yy295:
                                        cline++;
                                        goto comment;
                                }
-#line 1995 "src/parse/lex.cc"
-yy296:
+#line 2013 "src/parse/lex.cc"
+yy310:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '/') goto yy303;
-       goto yy293;
-yy297:
+       if (yych == '/') goto yy317;
+       goto yy307;
+yy311:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '*') goto yy305;
-       goto yy293;
-yy298:
+       if (yych == '*') goto yy319;
+       goto yy307;
+yy312:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 32) {
-               goto yy298;
+               goto yy312;
        }
-       if (yych == '#') goto yy301;
-yy300:
+       if (yych == '#') goto yy315;
+yy314:
        YYCURSOR = YYMARKER;
-       goto yy295;
-yy301:
+       goto yy309;
+yy315:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy301;
-               goto yy300;
+               if (yych == '\t') goto yy315;
+               goto yy314;
        } else {
-               if (yych <= ' ') goto yy301;
-               if (yych == 'l') goto yy307;
-               goto yy300;
+               if (yych <= ' ') goto yy315;
+               if (yych == 'l') goto yy321;
+               goto yy314;
        }
-yy303:
+yy317:
        ++YYCURSOR;
-#line 513 "../src/parse/lex.re"
+#line 498 "../src/parse/lex.re"
        {
                                        if (--depth == 0)
                                        {
@@ -2036,124 +2054,124 @@ yy303:
                                                goto comment;
                                        }
                                }
-#line 2040 "src/parse/lex.cc"
-yy305:
+#line 2058 "src/parse/lex.cc"
+yy319:
        ++YYCURSOR;
-#line 523 "../src/parse/lex.re"
+#line 508 "../src/parse/lex.re"
        {
                                        ++depth;
                                        fatal("ambiguous /* found");
                                        goto comment;
                                }
-#line 2049 "src/parse/lex.cc"
-yy307:
+#line 2067 "src/parse/lex.cc"
+yy321:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy300;
+       if (yych != 'i') goto yy314;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy300;
+       if (yych != 'n') goto yy314;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy300;
+       if (yych != 'e') goto yy314;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '0') goto yy312;
-       if (yych <= '9') goto yy300;
-       goto yy312;
-yy311:
+       if (yych <= '0') goto yy326;
+       if (yych <= '9') goto yy314;
+       goto yy326;
+yy325:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        YYCTXMARKER = YYCURSOR;
-yy312:
+yy326:
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy311;
-               goto yy300;
+               if (yych == '\t') goto yy325;
+               goto yy314;
        } else {
-               if (yych <= ' ') goto yy311;
-               if (yych <= '0') goto yy300;
-               if (yych >= ':') goto yy300;
+               if (yych <= ' ') goto yy325;
+               if (yych <= '0') goto yy314;
+               if (yych >= ':') goto yy314;
        }
-yy313:
+yy327:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 64) {
-               goto yy313;
+               goto yy327;
        }
        if (yych <= '\f') {
-               if (yych <= 0x08) goto yy300;
-               if (yych <= '\t') goto yy315;
-               if (yych <= '\n') goto yy317;
-               goto yy300;
+               if (yych <= 0x08) goto yy314;
+               if (yych <= '\t') goto yy329;
+               if (yych <= '\n') goto yy331;
+               goto yy314;
        } else {
-               if (yych <= '\r') goto yy319;
-               if (yych != ' ') goto yy300;
+               if (yych <= '\r') goto yy333;
+               if (yych != ' ') goto yy314;
        }
-yy315:
+yy329:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy315;
-               goto yy300;
+               if (yych == '\t') goto yy329;
+               goto yy314;
        } else {
-               if (yych <= ' ') goto yy315;
-               if (yych == '"') goto yy320;
-               goto yy300;
+               if (yych <= ' ') goto yy329;
+               if (yych == '"') goto yy334;
+               goto yy314;
        }
-yy317:
+yy331:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 528 "../src/parse/lex.re"
+#line 513 "../src/parse/lex.re"
        {
                                        set_sourceline ();
                                        goto comment;
                                }
-#line 2111 "src/parse/lex.cc"
-yy319:
+#line 2129 "src/parse/lex.cc"
+yy333:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy317;
-       goto yy300;
-yy320:
+       if (yych == '\n') goto yy331;
+       goto yy314;
+yy334:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy320;
+               goto yy334;
        }
-       if (yych <= '\n') goto yy300;
-       if (yych >= '#') goto yy323;
+       if (yych <= '\n') goto yy314;
+       if (yych >= '#') goto yy337;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy317;
-       if (yych == '\r') goto yy319;
-       goto yy300;
-yy323:
+       if (yych == '\n') goto yy331;
+       if (yych == '\r') goto yy333;
+       goto yy314;
+yy337:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy300;
-       goto yy320;
+       if (yych == '\n') goto yy314;
+       goto yy334;
 }
-#line 548 "../src/parse/lex.re"
+#line 533 "../src/parse/lex.re"
 
 
 nextLine:
 
-#line 2141 "src/parse/lex.cc"
+#line 2159 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy328;
+       if (yych == '\n') goto yy342;
        ++YYCURSOR;
-#line 559 "../src/parse/lex.re"
+#line 544 "../src/parse/lex.re"
        {  if(cur == eof) {
                   return 0;
                }
                goto nextLine;
             }
-#line 2154 "src/parse/lex.cc"
-yy328:
+#line 2172 "src/parse/lex.cc"
+yy342:
        ++YYCURSOR;
-#line 552 "../src/parse/lex.re"
+#line 537 "../src/parse/lex.re"
        { if(cur == eof) {
                   return 0;
                }
@@ -2161,9 +2179,9 @@ yy328:
                cline++;
                goto scan;
             }
-#line 2165 "src/parse/lex.cc"
+#line 2183 "src/parse/lex.cc"
 }
-#line 564 "../src/parse/lex.re"
+#line 549 "../src/parse/lex.re"
 
 }
 
@@ -2187,44 +2205,44 @@ const RegExp *Scanner::lex_cls(bool neg)
        uint32_t u, l;
 fst:
        
-#line 2191 "src/parse/lex.cc"
+#line 2209 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == ']') goto yy333;
-#line 588 "../src/parse/lex.re"
+       if (yych == ']') goto yy347;
+#line 573 "../src/parse/lex.re"
        { l = lex_cls_chr(); goto snd; }
-#line 2199 "src/parse/lex.cc"
-yy333:
+#line 2217 "src/parse/lex.cc"
+yy347:
        ++YYCURSOR;
-#line 587 "../src/parse/lex.re"
+#line 572 "../src/parse/lex.re"
        { goto end; }
-#line 2204 "src/parse/lex.cc"
+#line 2222 "src/parse/lex.cc"
 }
-#line 589 "../src/parse/lex.re"
+#line 574 "../src/parse/lex.re"
 
 snd:
        
-#line 2210 "src/parse/lex.cc"
+#line 2228 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*(YYMARKER = YYCURSOR);
-       if (yych == '-') goto yy338;
-yy337:
-#line 592 "../src/parse/lex.re"
+       if (yych == '-') goto yy352;
+yy351:
+#line 577 "../src/parse/lex.re"
        { u = l; goto add; }
-#line 2219 "src/parse/lex.cc"
-yy338:
+#line 2237 "src/parse/lex.cc"
+yy352:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != ']') goto yy340;
+       if (yych != ']') goto yy354;
        YYCURSOR = YYMARKER;
-       goto yy337;
-yy340:
+       goto yy351;
+yy354:
        ++YYCURSOR;
        YYCURSOR -= 1;
-#line 593 "../src/parse/lex.re"
+#line 578 "../src/parse/lex.re"
        {
                        u = lex_cls_chr();
                        if (l > u) {
@@ -2233,9 +2251,9 @@ yy340:
                        }
                        goto add;
                }
-#line 2237 "src/parse/lex.cc"
+#line 2255 "src/parse/lex.cc"
 }
-#line 601 "../src/parse/lex.re"
+#line 586 "../src/parse/lex.re"
 
 add:
        if (!(s = opts->encoding.encodeRange(l, u))) {
@@ -2254,290 +2272,290 @@ uint32_t Scanner::lex_cls_chr()
 {
        tok = cur;
        
-#line 2258 "src/parse/lex.cc"
+#line 2276 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
        if ((YYLIMIT - YYCURSOR) < 10) YYFILL(10);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy346;
-       if (yych == '\\') goto yy348;
+       if (yych == '\n') goto yy360;
+       if (yych == '\\') goto yy362;
        ++YYCURSOR;
-#line 624 "../src/parse/lex.re"
+#line 609 "../src/parse/lex.re"
        { return static_cast<uint8_t>(tok[0]); }
-#line 2269 "src/parse/lex.cc"
-yy346:
+#line 2287 "src/parse/lex.cc"
+yy360:
        ++YYCURSOR;
-#line 619 "../src/parse/lex.re"
+#line 604 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error"); }
-#line 2274 "src/parse/lex.cc"
-yy348:
+#line 2292 "src/parse/lex.cc"
+yy362:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) <= '`') {
                if (yych <= '7') {
                        if (yych <= ',') {
-                               if (yych != '\n') goto yy350;
+                               if (yych != '\n') goto yy364;
                        } else {
-                               if (yych <= '-') goto yy352;
-                               if (yych <= '/') goto yy350;
-                               if (yych <= '3') goto yy354;
-                               goto yy356;
+                               if (yych <= '-') goto yy366;
+                               if (yych <= '/') goto yy364;
+                               if (yych <= '3') goto yy368;
+                               goto yy370;
                        }
                } else {
                        if (yych <= 'X') {
-                               if (yych == 'U') goto yy357;
-                               if (yych <= 'W') goto yy350;
-                               goto yy359;
+                               if (yych == 'U') goto yy371;
+                               if (yych <= 'W') goto yy364;
+                               goto yy373;
                        } else {
-                               if (yych <= '[') goto yy350;
-                               if (yych <= '\\') goto yy360;
-                               if (yych <= ']') goto yy362;
-                               goto yy350;
+                               if (yych <= '[') goto yy364;
+                               if (yych <= '\\') goto yy374;
+                               if (yych <= ']') goto yy376;
+                               goto yy364;
                        }
                }
        } else {
                if (yych <= 'q') {
                        if (yych <= 'e') {
-                               if (yych <= 'a') goto yy364;
-                               if (yych <= 'b') goto yy366;
-                               goto yy350;
+                               if (yych <= 'a') goto yy378;
+                               if (yych <= 'b') goto yy380;
+                               goto yy364;
                        } else {
-                               if (yych <= 'f') goto yy368;
-                               if (yych == 'n') goto yy370;
-                               goto yy350;
+                               if (yych <= 'f') goto yy382;
+                               if (yych == 'n') goto yy384;
+                               goto yy364;
                        }
                } else {
                        if (yych <= 'u') {
-                               if (yych <= 'r') goto yy372;
-                               if (yych <= 's') goto yy350;
-                               if (yych <= 't') goto yy374;
-                               goto yy359;
+                               if (yych <= 'r') goto yy386;
+                               if (yych <= 's') goto yy364;
+                               if (yych <= 't') goto yy388;
+                               goto yy373;
                        } else {
-                               if (yych <= 'v') goto yy376;
-                               if (yych == 'x') goto yy378;
-                               goto yy350;
+                               if (yych <= 'v') goto yy390;
+                               if (yych == 'x') goto yy392;
+                               goto yy364;
                        }
                }
        }
-#line 622 "../src/parse/lex.re"
+#line 607 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in escape sequence"); }
-#line 2325 "src/parse/lex.cc"
-yy350:
+#line 2343 "src/parse/lex.cc"
+yy364:
        ++YYCURSOR;
-#line 637 "../src/parse/lex.re"
+#line 622 "../src/parse/lex.re"
        {
                        warn.useless_escape(tline, tok - pos, tok[1]);
                        return static_cast<uint8_t>(tok[1]);
                }
-#line 2333 "src/parse/lex.cc"
-yy352:
+#line 2351 "src/parse/lex.cc"
+yy366:
        ++YYCURSOR;
-#line 635 "../src/parse/lex.re"
+#line 620 "../src/parse/lex.re"
        { return static_cast<uint8_t>('-'); }
-#line 2338 "src/parse/lex.cc"
-yy354:
+#line 2356 "src/parse/lex.cc"
+yy368:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych <= '/') goto yy355;
-       if (yych <= '7') goto yy379;
-yy355:
-#line 621 "../src/parse/lex.re"
+       if (yych <= '/') goto yy369;
+       if (yych <= '7') goto yy393;
+yy369:
+#line 606 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); }
-#line 2347 "src/parse/lex.cc"
-yy356:
+#line 2365 "src/parse/lex.cc"
+yy370:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy355;
-yy357:
+       goto yy369;
+yy371:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy358;
-               if (yych <= '9') goto yy381;
+               if (yych <= '/') goto yy372;
+               if (yych <= '9') goto yy395;
        } else {
-               if (yych <= 'F') goto yy381;
-               if (yych <= '`') goto yy358;
-               if (yych <= 'f') goto yy381;
+               if (yych <= 'F') goto yy395;
+               if (yych <= '`') goto yy372;
+               if (yych <= 'f') goto yy395;
        }
-yy358:
-#line 620 "../src/parse/lex.re"
+yy372:
+#line 605 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); }
-#line 2365 "src/parse/lex.cc"
-yy359:
+#line 2383 "src/parse/lex.cc"
+yy373:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy358;
-               if (yych <= '9') goto yy382;
-               goto yy358;
+               if (yych <= '/') goto yy372;
+               if (yych <= '9') goto yy396;
+               goto yy372;
        } else {
-               if (yych <= 'F') goto yy382;
-               if (yych <= '`') goto yy358;
-               if (yych <= 'f') goto yy382;
-               goto yy358;
+               if (yych <= 'F') goto yy396;
+               if (yych <= '`') goto yy372;
+               if (yych <= 'f') goto yy396;
+               goto yy372;
        }
-yy360:
+yy374:
        ++YYCURSOR;
-#line 634 "../src/parse/lex.re"
+#line 619 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\\'); }
-#line 2383 "src/parse/lex.cc"
-yy362:
+#line 2401 "src/parse/lex.cc"
+yy376:
        ++YYCURSOR;
-#line 636 "../src/parse/lex.re"
+#line 621 "../src/parse/lex.re"
        { return static_cast<uint8_t>(']'); }
-#line 2388 "src/parse/lex.cc"
-yy364:
+#line 2406 "src/parse/lex.cc"
+yy378:
        ++YYCURSOR;
-#line 627 "../src/parse/lex.re"
+#line 612 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\a'); }
-#line 2393 "src/parse/lex.cc"
-yy366:
+#line 2411 "src/parse/lex.cc"
+yy380:
        ++YYCURSOR;
-#line 628 "../src/parse/lex.re"
+#line 613 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\b'); }
-#line 2398 "src/parse/lex.cc"
-yy368:
+#line 2416 "src/parse/lex.cc"
+yy382:
        ++YYCURSOR;
-#line 629 "../src/parse/lex.re"
+#line 614 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\f'); }
-#line 2403 "src/parse/lex.cc"
-yy370:
+#line 2421 "src/parse/lex.cc"
+yy384:
        ++YYCURSOR;
-#line 630 "../src/parse/lex.re"
+#line 615 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\n'); }
-#line 2408 "src/parse/lex.cc"
-yy372:
+#line 2426 "src/parse/lex.cc"
+yy386:
        ++YYCURSOR;
-#line 631 "../src/parse/lex.re"
+#line 616 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\r'); }
-#line 2413 "src/parse/lex.cc"
-yy374:
+#line 2431 "src/parse/lex.cc"
+yy388:
        ++YYCURSOR;
-#line 632 "../src/parse/lex.re"
+#line 617 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\t'); }
-#line 2418 "src/parse/lex.cc"
-yy376:
+#line 2436 "src/parse/lex.cc"
+yy390:
        ++YYCURSOR;
-#line 633 "../src/parse/lex.re"
+#line 618 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\v'); }
-#line 2423 "src/parse/lex.cc"
-yy378:
+#line 2441 "src/parse/lex.cc"
+yy392:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy358;
-               if (yych <= '9') goto yy383;
-               goto yy358;
+               if (yych <= '/') goto yy372;
+               if (yych <= '9') goto yy397;
+               goto yy372;
        } else {
-               if (yych <= 'F') goto yy383;
-               if (yych <= '`') goto yy358;
-               if (yych <= 'f') goto yy383;
-               goto yy358;
+               if (yych <= 'F') goto yy397;
+               if (yych <= '`') goto yy372;
+               if (yych <= 'f') goto yy397;
+               goto yy372;
        }
-yy379:
+yy393:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '/') goto yy380;
-       if (yych <= '7') goto yy384;
-yy380:
+       if (yych <= '/') goto yy394;
+       if (yych <= '7') goto yy398;
+yy394:
        YYCURSOR = YYMARKER;
        if (yyaccept == 0) {
-               goto yy355;
+               goto yy369;
        } else {
-               goto yy358;
+               goto yy372;
        }
-yy381:
+yy395:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy380;
-               if (yych <= '9') goto yy386;
-               goto yy380;
+               if (yych <= '/') goto yy394;
+               if (yych <= '9') goto yy400;
+               goto yy394;
        } else {
-               if (yych <= 'F') goto yy386;
-               if (yych <= '`') goto yy380;
-               if (yych <= 'f') goto yy386;
-               goto yy380;
+               if (yych <= 'F') goto yy400;
+               if (yych <= '`') goto yy394;
+               if (yych <= 'f') goto yy400;
+               goto yy394;
        }
-yy382:
+yy396:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy380;
-               if (yych <= '9') goto yy387;
-               goto yy380;
+               if (yych <= '/') goto yy394;
+               if (yych <= '9') goto yy401;
+               goto yy394;
        } else {
-               if (yych <= 'F') goto yy387;
-               if (yych <= '`') goto yy380;
-               if (yych <= 'f') goto yy387;
-               goto yy380;
+               if (yych <= 'F') goto yy401;
+               if (yych <= '`') goto yy394;
+               if (yych <= 'f') goto yy401;
+               goto yy394;
        }
-yy383:
+yy397:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy380;
-               if (yych <= '9') goto yy388;
-               goto yy380;
+               if (yych <= '/') goto yy394;
+               if (yych <= '9') goto yy402;
+               goto yy394;
        } else {
-               if (yych <= 'F') goto yy388;
-               if (yych <= '`') goto yy380;
-               if (yych <= 'f') goto yy388;
-               goto yy380;
+               if (yych <= 'F') goto yy402;
+               if (yych <= '`') goto yy394;
+               if (yych <= 'f') goto yy402;
+               goto yy394;
        }
-yy384:
+yy398:
        ++YYCURSOR;
-#line 626 "../src/parse/lex.re"
+#line 611 "../src/parse/lex.re"
        { return unesc_oct(tok, cur); }
-#line 2488 "src/parse/lex.cc"
-yy386:
+#line 2506 "src/parse/lex.cc"
+yy400:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy380;
-               if (yych <= '9') goto yy390;
-               goto yy380;
+               if (yych <= '/') goto yy394;
+               if (yych <= '9') goto yy404;
+               goto yy394;
        } else {
-               if (yych <= 'F') goto yy390;
-               if (yych <= '`') goto yy380;
-               if (yych <= 'f') goto yy390;
-               goto yy380;
+               if (yych <= 'F') goto yy404;
+               if (yych <= '`') goto yy394;
+               if (yych <= 'f') goto yy404;
+               goto yy394;
        }
-yy387:
+yy401:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy380;
-               if (yych <= '9') goto yy383;
-               goto yy380;
+               if (yych <= '/') goto yy394;
+               if (yych <= '9') goto yy397;
+               goto yy394;
        } else {
-               if (yych <= 'F') goto yy383;
-               if (yych <= '`') goto yy380;
-               if (yych <= 'f') goto yy383;
-               goto yy380;
+               if (yych <= 'F') goto yy397;
+               if (yych <= '`') goto yy394;
+               if (yych <= 'f') goto yy397;
+               goto yy394;
        }
-yy388:
+yy402:
        ++YYCURSOR;
-#line 625 "../src/parse/lex.re"
+#line 610 "../src/parse/lex.re"
        { return unesc_hex(tok, cur); }
-#line 2517 "src/parse/lex.cc"
-yy390:
+#line 2535 "src/parse/lex.cc"
+yy404:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy380;
-               if (yych >= ':') goto yy380;
+               if (yych <= '/') goto yy394;
+               if (yych >= ':') goto yy394;
        } else {
-               if (yych <= 'F') goto yy391;
-               if (yych <= '`') goto yy380;
-               if (yych >= 'g') goto yy380;
+               if (yych <= 'F') goto yy405;
+               if (yych <= '`') goto yy394;
+               if (yych >= 'g') goto yy394;
        }
-yy391:
+yy405:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) <= '@') {
-               if (yych <= '/') goto yy380;
-               if (yych <= '9') goto yy382;
-               goto yy380;
+               if (yych <= '/') goto yy394;
+               if (yych <= '9') goto yy396;
+               goto yy394;
        } else {
-               if (yych <= 'F') goto yy382;
-               if (yych <= '`') goto yy380;
-               if (yych <= 'f') goto yy382;
-               goto yy380;
+               if (yych <= 'F') goto yy396;
+               if (yych <= '`') goto yy394;
+               if (yych <= 'f') goto yy396;
+               goto yy394;
        }
 }
-#line 641 "../src/parse/lex.re"
+#line 626 "../src/parse/lex.re"
 
 }
 
@@ -2546,282 +2564,282 @@ uint32_t Scanner::lex_str_chr(char quote, bool &end)
        end = false;
        tok = cur;
        
-#line 2550 "src/parse/lex.cc"
+#line 2568 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
        if ((YYLIMIT - YYCURSOR) < 10) YYFILL(10);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy396;
-       if (yych == '\\') goto yy398;
+       if (yych == '\n') goto yy410;
+       if (yych == '\\') goto yy412;
        ++YYCURSOR;
-#line 654 "../src/parse/lex.re"
+#line 639 "../src/parse/lex.re"
        {
                        end = tok[0] == quote;
                        return static_cast<uint8_t>(tok[0]);
                }
-#line 2564 "src/parse/lex.cc"
-yy396:
+#line 2582 "src/parse/lex.cc"
+yy410:
        ++YYCURSOR;
-#line 649 "../src/parse/lex.re"
+#line 634 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error"); }
-#line 2569 "src/parse/lex.cc"
-yy398:
+#line 2587 "src/parse/lex.cc"
+yy412:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) <= 'a') {
                if (yych <= 'T') {
                        if (yych <= '/') {
-                               if (yych != '\n') goto yy400;
+                               if (yych != '\n') goto yy414;
                        } else {
-                               if (yych <= '3') goto yy402;
-                               if (yych <= '7') goto yy404;
-                               goto yy400;
+                               if (yych <= '3') goto yy416;
+                               if (yych <= '7') goto yy418;
+                               goto yy414;
                        }
                } else {
                        if (yych <= 'X') {
-                               if (yych <= 'U') goto yy405;
-                               if (yych <= 'W') goto yy400;
-                               goto yy407;
+                               if (yych <= 'U') goto yy419;
+                               if (yych <= 'W') goto yy414;
+                               goto yy421;
                        } else {
-                               if (yych == '\\') goto yy408;
-                               if (yych <= '`') goto yy400;
-                               goto yy410;
+                               if (yych == '\\') goto yy422;
+                               if (yych <= '`') goto yy414;
+                               goto yy424;
                        }
                }
        } else {
                if (yych <= 'r') {
                        if (yych <= 'f') {
-                               if (yych <= 'b') goto yy412;
-                               if (yych <= 'e') goto yy400;
-                               goto yy414;
+                               if (yych <= 'b') goto yy426;
+                               if (yych <= 'e') goto yy414;
+                               goto yy428;
                        } else {
-                               if (yych == 'n') goto yy416;
-                               if (yych <= 'q') goto yy400;
-                               goto yy418;
+                               if (yych == 'n') goto yy430;
+                               if (yych <= 'q') goto yy414;
+                               goto yy432;
                        }
                } else {
                        if (yych <= 'u') {
-                               if (yych <= 's') goto yy400;
-                               if (yych <= 't') goto yy420;
-                               goto yy407;
+                               if (yych <= 's') goto yy414;
+                               if (yych <= 't') goto yy434;
+                               goto yy421;
                        } else {
-                               if (yych <= 'v') goto yy422;
-                               if (yych == 'x') goto yy424;
-                               goto yy400;
+                               if (yych <= 'v') goto yy436;
+                               if (yych == 'x') goto yy438;
+                               goto yy414;
                        }
                }
        }
-#line 652 "../src/parse/lex.re"
+#line 637 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in escape sequence"); }
-#line 2617 "src/parse/lex.cc"
-yy400:
+#line 2635 "src/parse/lex.cc"
+yy414:
        ++YYCURSOR;
-#line 668 "../src/parse/lex.re"
+#line 653 "../src/parse/lex.re"
        {
                        if (tok[1] != quote) {
                                warn.useless_escape(tline, tok - pos, tok[1]);
                        }
                        return static_cast<uint8_t>(tok[1]);
                }
-#line 2627 "src/parse/lex.cc"
-yy402:
+#line 2645 "src/parse/lex.cc"
+yy416:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych <= '/') goto yy403;
-       if (yych <= '7') goto yy425;
-yy403:
-#line 651 "../src/parse/lex.re"
+       if (yych <= '/') goto yy417;
+       if (yych <= '7') goto yy439;
+yy417:
+#line 636 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); }
-#line 2636 "src/parse/lex.cc"
-yy404:
+#line 2654 "src/parse/lex.cc"
+yy418:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy403;
-yy405:
+       goto yy417;
+yy419:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy406;
-               if (yych <= '9') goto yy427;
+               if (yych <= '/') goto yy420;
+               if (yych <= '9') goto yy441;
        } else {
-               if (yych <= 'F') goto yy427;
-               if (yych <= '`') goto yy406;
-               if (yych <= 'f') goto yy427;
+               if (yych <= 'F') goto yy441;
+               if (yych <= '`') goto yy420;
+               if (yych <= 'f') goto yy441;
        }
-yy406:
-#line 650 "../src/parse/lex.re"
+yy420:
+#line 635 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); }
-#line 2654 "src/parse/lex.cc"
-yy407:
+#line 2672 "src/parse/lex.cc"
+yy421:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy406;
-               if (yych <= '9') goto yy428;
-               goto yy406;
+               if (yych <= '/') goto yy420;
+               if (yych <= '9') goto yy442;
+               goto yy420;
        } else {
-               if (yych <= 'F') goto yy428;
-               if (yych <= '`') goto yy406;
-               if (yych <= 'f') goto yy428;
-               goto yy406;
+               if (yych <= 'F') goto yy442;
+               if (yych <= '`') goto yy420;
+               if (yych <= 'f') goto yy442;
+               goto yy420;
        }
-yy408:
+yy422:
        ++YYCURSOR;
-#line 667 "../src/parse/lex.re"
+#line 652 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\\'); }
-#line 2672 "src/parse/lex.cc"
-yy410:
+#line 2690 "src/parse/lex.cc"
+yy424:
        ++YYCURSOR;
-#line 660 "../src/parse/lex.re"
+#line 645 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\a'); }
-#line 2677 "src/parse/lex.cc"
-yy412:
+#line 2695 "src/parse/lex.cc"
+yy426:
        ++YYCURSOR;
-#line 661 "../src/parse/lex.re"
+#line 646 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\b'); }
-#line 2682 "src/parse/lex.cc"
-yy414:
+#line 2700 "src/parse/lex.cc"
+yy428:
        ++YYCURSOR;
-#line 662 "../src/parse/lex.re"
+#line 647 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\f'); }
-#line 2687 "src/parse/lex.cc"
-yy416:
+#line 2705 "src/parse/lex.cc"
+yy430:
        ++YYCURSOR;
-#line 663 "../src/parse/lex.re"
+#line 648 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\n'); }
-#line 2692 "src/parse/lex.cc"
-yy418:
+#line 2710 "src/parse/lex.cc"
+yy432:
        ++YYCURSOR;
-#line 664 "../src/parse/lex.re"
+#line 649 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\r'); }
-#line 2697 "src/parse/lex.cc"
-yy420:
+#line 2715 "src/parse/lex.cc"
+yy434:
        ++YYCURSOR;
-#line 665 "../src/parse/lex.re"
+#line 650 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\t'); }
-#line 2702 "src/parse/lex.cc"
-yy422:
+#line 2720 "src/parse/lex.cc"
+yy436:
        ++YYCURSOR;
-#line 666 "../src/parse/lex.re"
+#line 651 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\v'); }
-#line 2707 "src/parse/lex.cc"
-yy424:
+#line 2725 "src/parse/lex.cc"
+yy438:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy406;
-               if (yych <= '9') goto yy429;
-               goto yy406;
+               if (yych <= '/') goto yy420;
+               if (yych <= '9') goto yy443;
+               goto yy420;
        } else {
-               if (yych <= 'F') goto yy429;
-               if (yych <= '`') goto yy406;
-               if (yych <= 'f') goto yy429;
-               goto yy406;
+               if (yych <= 'F') goto yy443;
+               if (yych <= '`') goto yy420;
+               if (yych <= 'f') goto yy443;
+               goto yy420;
        }
-yy425:
+yy439:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '/') goto yy426;
-       if (yych <= '7') goto yy430;
-yy426:
+       if (yych <= '/') goto yy440;
+       if (yych <= '7') goto yy444;
+yy440:
        YYCURSOR = YYMARKER;
        if (yyaccept == 0) {
-               goto yy403;
+               goto yy417;
        } else {
-               goto yy406;
+               goto yy420;
        }
-yy427:
+yy441:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy426;
-               if (yych <= '9') goto yy432;
-               goto yy426;
+               if (yych <= '/') goto yy440;
+               if (yych <= '9') goto yy446;
+               goto yy440;
        } else {
-               if (yych <= 'F') goto yy432;
-               if (yych <= '`') goto yy426;
-               if (yych <= 'f') goto yy432;
-               goto yy426;
+               if (yych <= 'F') goto yy446;
+               if (yych <= '`') goto yy440;
+               if (yych <= 'f') goto yy446;
+               goto yy440;
        }
-yy428:
+yy442:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy426;
-               if (yych <= '9') goto yy433;
-               goto yy426;
+               if (yych <= '/') goto yy440;
+               if (yych <= '9') goto yy447;
+               goto yy440;
        } else {
-               if (yych <= 'F') goto yy433;
-               if (yych <= '`') goto yy426;
-               if (yych <= 'f') goto yy433;
-               goto yy426;
+               if (yych <= 'F') goto yy447;
+               if (yych <= '`') goto yy440;
+               if (yych <= 'f') goto yy447;
+               goto yy440;
        }
-yy429:
+yy443:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy426;
-               if (yych <= '9') goto yy434;
-               goto yy426;
+               if (yych <= '/') goto yy440;
+               if (yych <= '9') goto yy448;
+               goto yy440;
        } else {
-               if (yych <= 'F') goto yy434;
-               if (yych <= '`') goto yy426;
-               if (yych <= 'f') goto yy434;
-               goto yy426;
+               if (yych <= 'F') goto yy448;
+               if (yych <= '`') goto yy440;
+               if (yych <= 'f') goto yy448;
+               goto yy440;
        }
-yy430:
+yy444:
        ++YYCURSOR;
-#line 659 "../src/parse/lex.re"
+#line 644 "../src/parse/lex.re"
        { return unesc_oct(tok, cur); }
-#line 2772 "src/parse/lex.cc"
-yy432:
+#line 2790 "src/parse/lex.cc"
+yy446:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy426;
-               if (yych <= '9') goto yy436;
-               goto yy426;
+               if (yych <= '/') goto yy440;
+               if (yych <= '9') goto yy450;
+               goto yy440;
        } else {
-               if (yych <= 'F') goto yy436;
-               if (yych <= '`') goto yy426;
-               if (yych <= 'f') goto yy436;
-               goto yy426;
+               if (yych <= 'F') goto yy450;
+               if (yych <= '`') goto yy440;
+               if (yych <= 'f') goto yy450;
+               goto yy440;
        }
-yy433:
+yy447:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy426;
-               if (yych <= '9') goto yy429;
-               goto yy426;
+               if (yych <= '/') goto yy440;
+               if (yych <= '9') goto yy443;
+               goto yy440;
        } else {
-               if (yych <= 'F') goto yy429;
-               if (yych <= '`') goto yy426;
-               if (yych <= 'f') goto yy429;
-               goto yy426;
+               if (yych <= 'F') goto yy443;
+               if (yych <= '`') goto yy440;
+               if (yych <= 'f') goto yy443;
+               goto yy440;
        }
-yy434:
+yy448:
        ++YYCURSOR;
-#line 658 "../src/parse/lex.re"
+#line 643 "../src/parse/lex.re"
        { return unesc_hex(tok, cur); }
-#line 2801 "src/parse/lex.cc"
-yy436:
+#line 2819 "src/parse/lex.cc"
+yy450:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy426;
-               if (yych >= ':') goto yy426;
+               if (yych <= '/') goto yy440;
+               if (yych >= ':') goto yy440;
        } else {
-               if (yych <= 'F') goto yy437;
-               if (yych <= '`') goto yy426;
-               if (yych >= 'g') goto yy426;
+               if (yych <= 'F') goto yy451;
+               if (yych <= '`') goto yy440;
+               if (yych >= 'g') goto yy440;
        }
-yy437:
+yy451:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) <= '@') {
-               if (yych <= '/') goto yy426;
-               if (yych <= '9') goto yy428;
-               goto yy426;
+               if (yych <= '/') goto yy440;
+               if (yych <= '9') goto yy442;
+               goto yy440;
        } else {
-               if (yych <= 'F') goto yy428;
-               if (yych <= '`') goto yy426;
-               if (yych <= 'f') goto yy428;
-               goto yy426;
+               if (yych <= 'F') goto yy442;
+               if (yych <= '`') goto yy440;
+               if (yych <= 'f') goto yy442;
+               goto yy440;
        }
 }
-#line 674 "../src/parse/lex.re"
+#line 659 "../src/parse/lex.re"
 
 }
 
@@ -2842,7 +2860,7 @@ void Scanner::set_sourceline ()
 sourceline:
        tok = cur;
 
-#line 2846 "src/parse/lex.cc"
+#line 2864 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2882,23 +2900,23 @@ sourceline:
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '!') {
-               if (yych == '\n') goto yy442;
+               if (yych == '\n') goto yy456;
        } else {
-               if (yych <= '"') goto yy444;
-               if (yych <= '0') goto yy440;
-               if (yych <= '9') goto yy445;
+               if (yych <= '"') goto yy458;
+               if (yych <= '0') goto yy454;
+               if (yych <= '9') goto yy459;
        }
-yy440:
+yy454:
        ++YYCURSOR;
-yy441:
-#line 717 "../src/parse/lex.re"
+yy455:
+#line 702 "../src/parse/lex.re"
        {
                                        goto sourceline;
                                }
-#line 2899 "src/parse/lex.cc"
-yy442:
+#line 2917 "src/parse/lex.cc"
+yy456:
        ++YYCURSOR;
-#line 705 "../src/parse/lex.re"
+#line 690 "../src/parse/lex.re"
        {
                                        if (cur == eof)
                                        {
@@ -2911,19 +2929,19 @@ yy442:
                                        tok = cur;
                                        return; 
                                }
-#line 2915 "src/parse/lex.cc"
-yy444:
+#line 2933 "src/parse/lex.cc"
+yy458:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '\n') goto yy441;
-       goto yy449;
-yy445:
+       if (yych == '\n') goto yy455;
+       goto yy463;
+yy459:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 64) {
-               goto yy445;
+               goto yy459;
        }
-#line 694 "../src/parse/lex.re"
+#line 679 "../src/parse/lex.re"
        {
                                        if (!s_to_u32_unsafe (tok, cur, cline))
                                        {
@@ -2931,37 +2949,37 @@ yy445:
                                        }
                                        goto sourceline; 
                                }
-#line 2935 "src/parse/lex.cc"
-yy448:
+#line 2953 "src/parse/lex.cc"
+yy462:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy449:
+yy463:
        if (yybm[0+yych] & 128) {
-               goto yy448;
+               goto yy462;
        }
-       if (yych <= '\n') goto yy450;
-       if (yych <= '"') goto yy451;
-       goto yy453;
-yy450:
+       if (yych <= '\n') goto yy464;
+       if (yych <= '"') goto yy465;
+       goto yy467;
+yy464:
        YYCURSOR = YYMARKER;
-       goto yy441;
-yy451:
+       goto yy455;
+yy465:
        ++YYCURSOR;
-#line 701 "../src/parse/lex.re"
+#line 686 "../src/parse/lex.re"
        {
                                        escape (in.file_name, std::string (tok + 1, tok_len () - 2)); // -2 to omit quotes
                                        goto sourceline; 
                                }
-#line 2957 "src/parse/lex.cc"
-yy453:
+#line 2975 "src/parse/lex.cc"
+yy467:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy450;
-       goto yy448;
+       if (yych == '\n') goto yy464;
+       goto yy462;
 }
-#line 720 "../src/parse/lex.re"
+#line 705 "../src/parse/lex.re"
 
 }
 
index 408e65a5569209ec74413b5624586934e86bca50..851a4ddad10e9ad21fe074d9de13b5eb71379b86 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 on Fri Apr  1 21:34:44 2016 */
+/* Generated by re2c 0.16 on Sat Apr  2 11:23:34 2016 */
 #line 1 "../src/parse/lex_conf.re"
 #include "src/util/c99_stdint.h"
 #include <string>
@@ -14,7 +14,7 @@ namespace re2c
 {
 
 // global re2c config (affects the whole file)
-#line 37 "../src/parse/lex_conf.re"
+#line 38 "../src/parse/lex_conf.re"
 
 
 void Scanner::lex_conf ()
@@ -75,7 +75,7 @@ void Scanner::lex_conf ()
 yy2:
        ++cur;
 yy3:
-#line 43 "../src/parse/lex_conf.re"
+#line 44 "../src/parse/lex_conf.re"
        { fatal ((tok - pos) - tchar, "unrecognized configuration"); }
 #line 81 "src/parse/lex_conf.cc"
 yy4:
@@ -489,7 +489,7 @@ yy85:
        goto yy13;
 yy86:
        ++cur;
-#line 46 "../src/parse/lex_conf.re"
+#line 47 "../src/parse/lex_conf.re"
        {
                Enc::type_t enc = Enc::ASCII;
                switch (cur[-1])
@@ -629,7 +629,7 @@ yy113:
        goto yy13;
 yy114:
        ++cur;
-#line 96 "../src/parse/lex_conf.re"
+#line 97 "../src/parse/lex_conf.re"
        { opts.set_yybmHexTable (lex_conf_number () != 0); return; }
 #line 635 "src/parse/lex_conf.cc"
 yy116:
@@ -665,7 +665,7 @@ yy123:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych == '@') goto yy146;
 yy124:
-#line 80 "../src/parse/lex_conf.re"
+#line 81 "../src/parse/lex_conf.re"
        { opts.set_condGoto         (lex_conf_string ()); return; }
 #line 671 "src/parse/lex_conf.cc"
 yy125:
@@ -738,7 +738,7 @@ yy138:
        goto yy13;
 yy139:
        ++cur;
-#line 144 "../src/parse/lex_conf.re"
+#line 145 "../src/parse/lex_conf.re"
        { opts.set_bEmitYYCh      (lex_conf_number () != 0); return; }
 #line 744 "src/parse/lex_conf.cc"
 yy141:
@@ -771,7 +771,7 @@ yy147:
        goto yy13;
 yy148:
        ++cur;
-#line 76 "../src/parse/lex_conf.re"
+#line 77 "../src/parse/lex_conf.re"
        { opts.set_condPrefix       (lex_conf_string ()); return; }
 #line 777 "src/parse/lex_conf.cc"
 yy150:
@@ -837,7 +837,7 @@ yy162:
        goto yy13;
 yy163:
        ++cur;
-#line 129 "../src/parse/lex_conf.re"
+#line 130 "../src/parse/lex_conf.re"
        {
                const int32_t n = lex_conf_number ();
                if (n < 0)
@@ -869,7 +869,7 @@ yy168:
        }
        if (yych == '=') goto yy205;
 yy169:
-#line 157 "../src/parse/lex_conf.re"
+#line 158 "../src/parse/lex_conf.re"
        { out.set_user_start_label (lex_conf_string ()); return; }
 #line 875 "src/parse/lex_conf.cc"
 yy170:
@@ -1000,7 +1000,7 @@ yy200:
        goto yy13;
 yy201:
        ++cur;
-#line 153 "../src/parse/lex_conf.re"
+#line 154 "../src/parse/lex_conf.re"
        { opts.set_labelPrefix (lex_conf_string ()); return; }
 #line 1006 "src/parse/lex_conf.cc"
 yy203:
@@ -1035,7 +1035,7 @@ yy205:
        }
 yy207:
        ++cur;
-#line 91 "../src/parse/lex_conf.re"
+#line 92 "../src/parse/lex_conf.re"
        { opts.set_bUseStateAbort  (lex_conf_number () != 0); return; }
 #line 1041 "src/parse/lex_conf.cc"
 yy209:
@@ -1080,7 +1080,7 @@ yy216:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych == '@') goto yy260;
 yy217:
-#line 78 "../src/parse/lex_conf.re"
+#line 79 "../src/parse/lex_conf.re"
        { opts.set_condDivider      (lex_conf_string ()); return; }
 #line 1086 "src/parse/lex_conf.cc"
 yy218:
@@ -1112,7 +1112,7 @@ yy224:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych == 'M') goto yy268;
 yy225:
-#line 121 "../src/parse/lex_conf.re"
+#line 122 "../src/parse/lex_conf.re"
        { opts.set_yyctx        (lex_conf_string ()); return; }
 #line 1118 "src/parse/lex_conf.cc"
 yy226:
@@ -1179,7 +1179,7 @@ yy240:
        goto yy13;
 yy241:
        ++cur;
-#line 90 "../src/parse/lex_conf.re"
+#line 91 "../src/parse/lex_conf.re"
        { opts.set_yynext          (lex_conf_string ()); return; }
 #line 1185 "src/parse/lex_conf.cc"
 yy243:
@@ -1191,7 +1191,7 @@ yy244:
        ++cur;
 yy245:
        cur = ctx;
-#line 156 "../src/parse/lex_conf.re"
+#line 157 "../src/parse/lex_conf.re"
        { out.set_force_start_label (lex_conf_number () != 0); return; }
 #line 1197 "src/parse/lex_conf.cc"
 yy246:
@@ -1233,7 +1233,7 @@ yy254:
        goto yy13;
 yy255:
        ++cur;
-#line 151 "../src/parse/lex_conf.re"
+#line 152 "../src/parse/lex_conf.re"
        { opts.set_fill_check   (lex_conf_number () != 0); return; }
 #line 1239 "src/parse/lex_conf.cc"
 yy257:
@@ -1262,7 +1262,7 @@ yy262:
        goto yy13;
 yy263:
        ++cur;
-#line 125 "../src/parse/lex_conf.re"
+#line 126 "../src/parse/lex_conf.re"
        { opts.set_contexts_expr  (lex_conf_string ()); return; }
 #line 1268 "src/parse/lex_conf.cc"
 yy265:
@@ -1295,7 +1295,7 @@ yy271:
        goto yy13;
 yy272:
        ++cur;
-#line 122 "../src/parse/lex_conf.re"
+#line 123 "../src/parse/lex_conf.re"
        { opts.set_yydist       (lex_conf_string ()); return; }
 #line 1301 "src/parse/lex_conf.cc"
 yy274:
@@ -1304,7 +1304,7 @@ yy274:
        if (yych == ':') goto yy319;
        if (yych == '@') goto yy320;
 yy275:
-#line 146 "../src/parse/lex_conf.re"
+#line 147 "../src/parse/lex_conf.re"
        { opts.set_fill         (lex_conf_string ()); return; }
 #line 1310 "src/parse/lex_conf.cc"
 yy276:
@@ -1329,7 +1329,7 @@ yy280:
        goto yy13;
 yy281:
        ++cur;
-#line 114 "../src/parse/lex_conf.re"
+#line 115 "../src/parse/lex_conf.re"
        { opts.set_yypeek       (lex_conf_string ()); return; }
 #line 1335 "src/parse/lex_conf.cc"
 yy283:
@@ -1346,12 +1346,12 @@ yy285:
        goto yy13;
 yy286:
        ++cur;
-#line 115 "../src/parse/lex_conf.re"
+#line 116 "../src/parse/lex_conf.re"
        { opts.set_yyskip       (lex_conf_string ()); return; }
 #line 1352 "src/parse/lex_conf.cc"
 yy288:
        ++cur;
-#line 127 "../src/parse/lex_conf.re"
+#line 128 "../src/parse/lex_conf.re"
        { opts.set_indString (lex_conf_string ()); return; }
 #line 1357 "src/parse/lex_conf.cc"
 yy290:
@@ -1368,12 +1368,12 @@ yy292:
        goto yy13;
 yy293:
        ++cur;
-#line 95 "../src/parse/lex_conf.re"
+#line 96 "../src/parse/lex_conf.re"
        { opts.set_yybm         (lex_conf_string ()); return; }
 #line 1374 "src/parse/lex_conf.cc"
 yy295:
        ++cur;
-#line 142 "../src/parse/lex_conf.re"
+#line 143 "../src/parse/lex_conf.re"
        { opts.set_yych           (lex_conf_string ()); return; }
 #line 1379 "src/parse/lex_conf.cc"
 yy297:
@@ -1394,7 +1394,7 @@ yy300:
        goto yy13;
 yy301:
        ++cur;
-#line 147 "../src/parse/lex_conf.re"
+#line 148 "../src/parse/lex_conf.re"
        { opts.set_fill_use     (lex_conf_number () != 0); return; }
 #line 1400 "src/parse/lex_conf.cc"
 yy303:
@@ -1411,12 +1411,12 @@ yy305:
        goto yy13;
 yy306:
        ++cur;
-#line 81 "../src/parse/lex_conf.re"
+#line 82 "../src/parse/lex_conf.re"
        { opts.set_condGotoParam    (lex_conf_string ()); return; }
 #line 1417 "src/parse/lex_conf.cc"
 yy308:
        ++cur;
-#line 77 "../src/parse/lex_conf.re"
+#line 78 "../src/parse/lex_conf.re"
        { opts.set_condEnumPrefix   (lex_conf_string ()); return; }
 #line 1422 "src/parse/lex_conf.cc"
 yy310:
@@ -1437,7 +1437,7 @@ yy313:
        goto yy13;
 yy314:
        ++cur;
-#line 141 "../src/parse/lex_conf.re"
+#line 142 "../src/parse/lex_conf.re"
        { opts.set_yyctype        (lex_conf_string ()); return; }
 #line 1443 "src/parse/lex_conf.cc"
 yy316:
@@ -1446,7 +1446,7 @@ yy316:
        goto yy13;
 yy317:
        ++cur;
-#line 139 "../src/parse/lex_conf.re"
+#line 140 "../src/parse/lex_conf.re"
        { opts.set_yydebug (lex_conf_string ()); return; }
 #line 1452 "src/parse/lex_conf.cc"
 yy319:
@@ -1471,7 +1471,7 @@ yy323:
        goto yy13;
 yy324:
        ++cur;
-#line 112 "../src/parse/lex_conf.re"
+#line 113 "../src/parse/lex_conf.re"
        { opts.set_yylimit     (lex_conf_string ()); return; }
 #line 1477 "src/parse/lex_conf.cc"
 yy326:
@@ -1524,7 +1524,7 @@ yy337:
        goto yy13;
 yy338:
        ++cur;
-#line 98 "../src/parse/lex_conf.re"
+#line 99 "../src/parse/lex_conf.re"
        {
                const int32_t n = lex_conf_number ();
                if (n < 0)
@@ -1541,7 +1541,7 @@ yy340:
        goto yy13;
 yy341:
        ++cur;
-#line 124 "../src/parse/lex_conf.re"
+#line 125 "../src/parse/lex_conf.re"
        { opts.set_contexts_prefix(lex_conf_string ()); return; }
 #line 1547 "src/parse/lex_conf.cc"
 yy343:
@@ -1549,7 +1549,7 @@ yy343:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych == 'C') goto yy370;
 yy344:
-#line 116 "../src/parse/lex_conf.re"
+#line 117 "../src/parse/lex_conf.re"
        { opts.set_yybackup     (lex_conf_string ()); return; }
 #line 1555 "src/parse/lex_conf.cc"
 yy345:
@@ -1562,7 +1562,7 @@ yy346:
        goto yy13;
 yy347:
        ++cur;
-#line 109 "../src/parse/lex_conf.re"
+#line 110 "../src/parse/lex_conf.re"
        { opts.set_yycursor    (lex_conf_string ()); return; }
 #line 1568 "src/parse/lex_conf.cc"
 yy349:
@@ -1587,7 +1587,7 @@ yy353:
        goto yy13;
 yy354:
        ++cur;
-#line 110 "../src/parse/lex_conf.re"
+#line 111 "../src/parse/lex_conf.re"
        { opts.set_yymarker    (lex_conf_string ()); return; }
 #line 1593 "src/parse/lex_conf.cc"
 yy356:
@@ -1608,7 +1608,7 @@ yy359:
        goto yy13;
 yy360:
        ++cur;
-#line 92 "../src/parse/lex_conf.re"
+#line 93 "../src/parse/lex_conf.re"
        { opts.set_bUseStateNext   (lex_conf_number () != 0); return; }
 #line 1614 "src/parse/lex_conf.cc"
 yy362:
@@ -1629,7 +1629,7 @@ yy365:
        goto yy13;
 yy366:
        ++cur;
-#line 143 "../src/parse/lex_conf.re"
+#line 144 "../src/parse/lex_conf.re"
        { opts.set_yychConversion (lex_conf_number () != 0); return; }
 #line 1635 "src/parse/lex_conf.cc"
 yy368:
@@ -1677,7 +1677,7 @@ yy378:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych == 'C') goto yy403;
 yy379:
-#line 118 "../src/parse/lex_conf.re"
+#line 119 "../src/parse/lex_conf.re"
        { opts.set_yyrestore    (lex_conf_string ()); return; }
 #line 1683 "src/parse/lex_conf.cc"
 yy380:
@@ -1710,12 +1710,12 @@ yy386:
        goto yy13;
 yy387:
        ++cur;
-#line 149 "../src/parse/lex_conf.re"
+#line 150 "../src/parse/lex_conf.re"
        { opts.set_fill_arg_use (lex_conf_number () != 0); return; }
 #line 1716 "src/parse/lex_conf.cc"
 yy389:
        ++cur;
-#line 79 "../src/parse/lex_conf.re"
+#line 80 "../src/parse/lex_conf.re"
        { opts.set_condDividerParam (lex_conf_string ()); return; }
 #line 1721 "src/parse/lex_conf.cc"
 yy391:
@@ -1724,7 +1724,7 @@ yy391:
        goto yy13;
 yy392:
        ++cur;
-#line 70 "../src/parse/lex_conf.re"
+#line 71 "../src/parse/lex_conf.re"
        { opts.set_yycondtype       (lex_conf_string ()); return; }
 #line 1730 "src/parse/lex_conf.cc"
 yy394:
@@ -1737,7 +1737,7 @@ yy395:
        goto yy13;
 yy396:
        ++cur;
-#line 148 "../src/parse/lex_conf.re"
+#line 149 "../src/parse/lex_conf.re"
        { opts.set_fill_arg     (lex_conf_string ()); return; }
 #line 1743 "src/parse/lex_conf.cc"
 yy398:
@@ -1749,12 +1749,12 @@ yy399:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych == ':') goto yy423;
 yy400:
-#line 84 "../src/parse/lex_conf.re"
+#line 85 "../src/parse/lex_conf.re"
        { opts.set_state_get       (lex_conf_string ()); return; }
 #line 1755 "src/parse/lex_conf.cc"
 yy401:
        ++cur;
-#line 120 "../src/parse/lex_conf.re"
+#line 121 "../src/parse/lex_conf.re"
        { opts.set_yylessthan   (lex_conf_string ()); return; }
 #line 1760 "src/parse/lex_conf.cc"
 yy403:
@@ -1771,42 +1771,42 @@ yy405:
        if (yych == ':') goto yy426;
        if (yych == '@') goto yy427;
 yy406:
-#line 86 "../src/parse/lex_conf.re"
+#line 87 "../src/parse/lex_conf.re"
        { opts.set_state_set       (lex_conf_string ()); return; }
 #line 1777 "src/parse/lex_conf.cc"
 yy407:
        ++cur;
-#line 89 "../src/parse/lex_conf.re"
+#line 90 "../src/parse/lex_conf.re"
        { opts.set_yyfilllabel     (lex_conf_string ()); return; }
 #line 1782 "src/parse/lex_conf.cc"
 yy409:
        ++cur;
-#line 93 "../src/parse/lex_conf.re"
+#line 94 "../src/parse/lex_conf.re"
        { opts.set_yyaccept        (lex_conf_string ()); return; }
 #line 1787 "src/parse/lex_conf.cc"
 yy411:
        ++cur;
-#line 82 "../src/parse/lex_conf.re"
+#line 83 "../src/parse/lex_conf.re"
        { opts.set_yyctable         (lex_conf_string ()); return; }
 #line 1792 "src/parse/lex_conf.cc"
 yy413:
        ++cur;
-#line 160 "../src/parse/lex_conf.re"
+#line 161 "../src/parse/lex_conf.re"
        { lex_conf_string (); return; }
 #line 1797 "src/parse/lex_conf.cc"
 yy415:
        ++cur;
-#line 107 "../src/parse/lex_conf.re"
+#line 108 "../src/parse/lex_conf.re"
        { opts.set_yytarget (lex_conf_string ()); return; }
 #line 1802 "src/parse/lex_conf.cc"
 yy417:
        ++cur;
-#line 117 "../src/parse/lex_conf.re"
+#line 118 "../src/parse/lex_conf.re"
        { opts.set_yybackupctx  (lex_conf_string ()); return; }
 #line 1807 "src/parse/lex_conf.cc"
 yy419:
        ++cur;
-#line 111 "../src/parse/lex_conf.re"
+#line 112 "../src/parse/lex_conf.re"
        { opts.set_yyctxmarker (lex_conf_string ()); return; }
 #line 1812 "src/parse/lex_conf.cc"
 yy421:
@@ -1839,7 +1839,7 @@ yy427:
        goto yy13;
 yy428:
        ++cur;
-#line 150 "../src/parse/lex_conf.re"
+#line 151 "../src/parse/lex_conf.re"
        { opts.set_fill_naked   (lex_conf_number () != 0); return; }
 #line 1845 "src/parse/lex_conf.cc"
 yy430:
@@ -1852,7 +1852,7 @@ yy431:
        goto yy13;
 yy432:
        ++cur;
-#line 119 "../src/parse/lex_conf.re"
+#line 120 "../src/parse/lex_conf.re"
        { opts.set_yyrestorectx (lex_conf_string ()); return; }
 #line 1858 "src/parse/lex_conf.cc"
 yy434:
@@ -1892,7 +1892,7 @@ yy442:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych == ':') goto yy449;
 yy443:
-#line 71 "../src/parse/lex_conf.re"
+#line 72 "../src/parse/lex_conf.re"
        { opts.set_cond_get         (lex_conf_string ()); return; }
 #line 1898 "src/parse/lex_conf.cc"
 yy444:
@@ -1905,7 +1905,7 @@ yy445:
        if (yych == ':') goto yy451;
        if (yych == '@') goto yy452;
 yy446:
-#line 73 "../src/parse/lex_conf.re"
+#line 74 "../src/parse/lex_conf.re"
        { opts.set_cond_set         (lex_conf_string ()); return; }
 #line 1911 "src/parse/lex_conf.cc"
 yy447:
@@ -1946,7 +1946,7 @@ yy455:
        goto yy13;
 yy456:
        ++cur;
-#line 85 "../src/parse/lex_conf.re"
+#line 86 "../src/parse/lex_conf.re"
        { opts.set_state_get_naked (lex_conf_number () != 0); return; }
 #line 1952 "src/parse/lex_conf.cc"
 yy458:
@@ -1959,12 +1959,12 @@ yy459:
        goto yy13;
 yy460:
        ++cur;
-#line 87 "../src/parse/lex_conf.re"
+#line 88 "../src/parse/lex_conf.re"
        { opts.set_state_set_naked (lex_conf_number () != 0); return; }
 #line 1965 "src/parse/lex_conf.cc"
 yy462:
        ++cur;
-#line 88 "../src/parse/lex_conf.re"
+#line 89 "../src/parse/lex_conf.re"
        { opts.set_state_set_arg   (lex_conf_string ()); return; }
 #line 1970 "src/parse/lex_conf.cc"
 yy464:
@@ -2001,21 +2001,21 @@ yy471:
        goto yy13;
 yy472:
        ++cur;
-#line 74 "../src/parse/lex_conf.re"
+#line 75 "../src/parse/lex_conf.re"
        { opts.set_cond_set_arg     (lex_conf_string ()); return; }
 #line 2007 "src/parse/lex_conf.cc"
 yy474:
        ++cur;
-#line 72 "../src/parse/lex_conf.re"
+#line 73 "../src/parse/lex_conf.re"
        { opts.set_cond_get_naked   (lex_conf_number () != 0); return; }
 #line 2012 "src/parse/lex_conf.cc"
 yy476:
        ++cur;
-#line 75 "../src/parse/lex_conf.re"
+#line 76 "../src/parse/lex_conf.re"
        { opts.set_cond_set_naked   (lex_conf_number () != 0); return; }
 #line 2017 "src/parse/lex_conf.cc"
 }
-#line 161 "../src/parse/lex_conf.re"
+#line 162 "../src/parse/lex_conf.re"
 
 }
 
@@ -2063,76 +2063,69 @@ void Scanner::lex_conf_contexts(ConfContexts &conf)
        if ((lim - cur) < 4) fill(4);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy483;
+               goto yy482;
        }
        if (yych <= ')') {
                if (yych <= '\n') {
-                       if (yych <= 0x08) goto yy481;
-                       goto yy485;
+                       if (yych >= '\t') goto yy485;
                } else {
                        if (yych == '\r') goto yy487;
-                       goto yy481;
                }
        } else {
                if (yych <= 'l') {
                        if (yych <= '*') goto yy488;
-                       if (yych <= 'k') goto yy481;
-                       goto yy489;
+                       if (yych >= 'l') goto yy489;
                } else {
                        if (yych == 's') goto yy490;
-                       goto yy481;
                }
        }
-yy480:
-#line 170 "../src/parse/lex_conf.re"
-       { continue; }
-#line 2090 "src/parse/lex_conf.cc"
-yy481:
        ++cur;
-yy482:
-#line 168 "../src/parse/lex_conf.re"
+yy481:
+#line 169 "../src/parse/lex_conf.re"
        { fatal("unrecognized configuration"); }
-#line 2096 "src/parse/lex_conf.cc"
-yy483:
+#line 2087 "src/parse/lex_conf.cc"
+yy482:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy483;
+               goto yy482;
        }
-       goto yy480;
+#line 171 "../src/parse/lex_conf.re"
+       { continue; }
+#line 2097 "src/parse/lex_conf.cc"
 yy485:
        ++cur;
-#line 171 "../src/parse/lex_conf.re"
+#line 172 "../src/parse/lex_conf.re"
        { ++cline; continue; }
-#line 2109 "src/parse/lex_conf.cc"
+#line 2102 "src/parse/lex_conf.cc"
 yy487:
        yych = (unsigned char)*++cur;
        if (yych == '\n') goto yy485;
-       goto yy482;
+       goto yy481;
 yy488:
        yych = (unsigned char)*++cur;
        if (yych == '/') goto yy491;
-       goto yy482;
+       goto yy481;
 yy489:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych == 'i') goto yy493;
-       goto yy482;
+       goto yy481;
 yy490:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych == 'e') goto yy495;
-       goto yy482;
+       goto yy481;
 yy491:
        ++cur;
-#line 172 "../src/parse/lex_conf.re"
+#line 173 "../src/parse/lex_conf.re"
        { return; }
-#line 2130 "src/parse/lex_conf.cc"
+#line 2123 "src/parse/lex_conf.cc"
 yy493:
        yych = (unsigned char)*++cur;
        if (yych == 'n') goto yy496;
 yy494:
        cur = ptr;
-       goto yy482;
+       goto yy481;
 yy495:
        yych = (unsigned char)*++cur;
        if (yych == 'p') goto yy497;
@@ -2143,16 +2136,16 @@ yy496:
        goto yy494;
 yy497:
        ++cur;
-#line 175 "../src/parse/lex_conf.re"
+#line 176 "../src/parse/lex_conf.re"
        { conf.sep  = lex_conf_string(); continue; }
-#line 2149 "src/parse/lex_conf.cc"
+#line 2142 "src/parse/lex_conf.cc"
 yy499:
        ++cur;
-#line 174 "../src/parse/lex_conf.re"
+#line 175 "../src/parse/lex_conf.re"
        { conf.line = lex_conf_string(); continue; }
-#line 2154 "src/parse/lex_conf.cc"
+#line 2147 "src/parse/lex_conf.cc"
 }
-#line 176 "../src/parse/lex_conf.re"
+#line 177 "../src/parse/lex_conf.re"
 
        }
 }
@@ -2160,7 +2153,7 @@ yy499:
 void Scanner::lex_conf_assign ()
 {
 
-#line 2164 "src/parse/lex_conf.cc"
+#line 2157 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -2207,9 +2200,9 @@ void Scanner::lex_conf_assign ()
        }
        ++cur;
 yy504:
-#line 183 "../src/parse/lex_conf.re"
+#line 184 "../src/parse/lex_conf.re"
        { fatal ("missing '=' in configuration"); }
-#line 2213 "src/parse/lex_conf.cc"
+#line 2206 "src/parse/lex_conf.cc"
 yy505:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych <= 0x1F) {
@@ -2226,9 +2219,9 @@ yy506:
        if (yybm[0+yych] & 128) {
                goto yy506;
        }
-#line 184 "../src/parse/lex_conf.re"
+#line 185 "../src/parse/lex_conf.re"
        { return; }
-#line 2232 "src/parse/lex_conf.cc"
+#line 2225 "src/parse/lex_conf.cc"
 yy509:
        ++cur;
        if (lim <= cur) fill(1);
@@ -2242,14 +2235,14 @@ yy509:
        cur = ptr;
        goto yy504;
 }
-#line 185 "../src/parse/lex_conf.re"
+#line 186 "../src/parse/lex_conf.re"
 
 }
 
 void Scanner::lex_conf_semicolon ()
 {
 
-#line 2253 "src/parse/lex_conf.cc"
+#line 2246 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -2296,9 +2289,9 @@ void Scanner::lex_conf_semicolon ()
        }
        ++cur;
 yy515:
-#line 191 "../src/parse/lex_conf.re"
+#line 192 "../src/parse/lex_conf.re"
        { fatal ("missing ending ';' in configuration"); }
-#line 2302 "src/parse/lex_conf.cc"
+#line 2295 "src/parse/lex_conf.cc"
 yy516:
        yych = (unsigned char)*(ptr = ++cur);
        if (yybm[0+yych] & 128) {
@@ -2307,9 +2300,9 @@ yy516:
        if (yych != ';') goto yy515;
 yy517:
        ++cur;
-#line 192 "../src/parse/lex_conf.re"
+#line 193 "../src/parse/lex_conf.re"
        { return; }
-#line 2313 "src/parse/lex_conf.cc"
+#line 2306 "src/parse/lex_conf.cc"
 yy519:
        ++cur;
        if (lim <= cur) fill(1);
@@ -2321,7 +2314,7 @@ yy519:
        cur = ptr;
        goto yy515;
 }
-#line 193 "../src/parse/lex_conf.re"
+#line 194 "../src/parse/lex_conf.re"
 
 }
 
@@ -2330,7 +2323,7 @@ int32_t Scanner::lex_conf_number ()
        lex_conf_assign ();
        tok = cur;
 
-#line 2334 "src/parse/lex_conf.cc"
+#line 2327 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -2384,7 +2377,7 @@ yy525:
 yy526:
        ++cur;
 yy527:
-#line 202 "../src/parse/lex_conf.re"
+#line 203 "../src/parse/lex_conf.re"
        {
                int32_t n = 0;
                if (!s_to_i32_unsafe (tok, cur, n))
@@ -2394,7 +2387,7 @@ yy527:
                lex_conf_semicolon ();
                return n;
        }
-#line 2398 "src/parse/lex_conf.cc"
+#line 2391 "src/parse/lex_conf.cc"
 yy528:
        ++cur;
        if (lim <= cur) fill(1);
@@ -2404,7 +2397,7 @@ yy528:
        }
        goto yy527;
 }
-#line 211 "../src/parse/lex_conf.re"
+#line 212 "../src/parse/lex_conf.re"
 
 }
 
@@ -2414,7 +2407,7 @@ std::string Scanner::lex_conf_string ()
        std::string s;
        tok = cur;
 
-#line 2418 "src/parse/lex_conf.cc"
+#line 2411 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -2468,9 +2461,9 @@ std::string Scanner::lex_conf_string ()
                        if (yych != ';') goto yy533;
                }
        }
-#line 238 "../src/parse/lex_conf.re"
+#line 239 "../src/parse/lex_conf.re"
        { goto end; }
-#line 2474 "src/parse/lex_conf.cc"
+#line 2467 "src/parse/lex_conf.cc"
 yy533:
        ++cur;
        if (lim <= cur) fill(1);
@@ -2478,15 +2471,15 @@ yy533:
        if (yybm[0+yych] & 128) {
                goto yy533;
        }
-#line 234 "../src/parse/lex_conf.re"
+#line 235 "../src/parse/lex_conf.re"
        {
                s = std::string(tok, tok_len());
                goto end;
        }
-#line 2487 "src/parse/lex_conf.cc"
+#line 2480 "src/parse/lex_conf.cc"
 yy536:
        ++cur;
-#line 220 "../src/parse/lex_conf.re"
+#line 221 "../src/parse/lex_conf.re"
        {
                const char quote = tok[0];
                for (bool end;;) {
@@ -2501,9 +2494,9 @@ yy536:
                        }
                }
        }
-#line 2505 "src/parse/lex_conf.cc"
+#line 2498 "src/parse/lex_conf.cc"
 }
-#line 239 "../src/parse/lex_conf.re"
+#line 240 "../src/parse/lex_conf.re"
 
 end:
        lex_conf_semicolon ();
index b9f2ed8c0259ed20d07caf0dd306941770fc1a27..f0e64bab11b3d33d62925f74278eef0c4a42660c 100644 (file)
@@ -50,7 +50,8 @@ lineno  = [1-9] digit*;
 name    = (letter|digit|"_")+;
 space   = [ \t];
 ws      = (space | [\r\n]);
-eol     = ("\r\n" | "\n");
+eol     = "\r"? "\n";
+eoc     = "*" "/";
 lineinf = lineno (space+ dstring)? eol;
 
        esc = "\\";
@@ -62,8 +63,7 @@ lineinf = lineno (space+ dstring)? eol;
 
 Scanner::ParseMode Scanner::echo()
 {
-       bool ignore_eoc = false;
-       int  ignore_cnt = 0;
+       uint32_t ignored = 0;
 
        if (eof && cur == eof) // Catch EOF
        {
@@ -115,120 +115,105 @@ echo:
                                        tok = cur;
                                        return Reuse;
                                }
+
+       "/*!ignore:re2c" { goto eoc; }
+
        "/*!max:re2c" {
-                                       if (opts->target != opt_t::DOT)
-                                       {
-                                               out.wdelay_yymaxfill ();
-                                       }
-                                       tok = pos = cur;
-                                       ignore_eoc = true;
-                                       goto echo;
-                               }
+               if (opts->target == opt_t::CODE) {
+                       out.wdelay_yymaxfill();
+               }
+               goto eoc;
+       }
+
        "/*!getstate:re2c" {
-                                       tok = pos = cur;
-                                       out.wdelay_state_goto (opts->topIndent);
-                                       ignore_eoc = true;
-                                       goto echo;
-                               }
-       "/*!ignore:re2c" {
-                                       tok = pos = cur;
-                                       ignore_eoc = true;
-                                       goto echo;
-                               }
+               if (opts->target == opt_t::CODE) {
+                       out.wdelay_state_goto(opts->topIndent);
+               }
+               goto eoc;
+       }
+
        "/*!types:re2c" {
-                                       tok = pos = cur;
-                                       ignore_eoc = true;
-                                       if (opts->target != opt_t::DOT)
-                                       {
-                                               out.wdelay_line_info ().ws("\n")
-                                                       .wdelay_types ().ws("\n")
-                                                       .wline_info (cline, get_fname ().c_str ());
-                                       }
-                                       goto echo;
-                               }
+               if (opts->target == opt_t::CODE) {
+                       out.wdelay_line_info().ws("\n")
+                               .wdelay_types().ws("\n")
+                               .wline_info(cline, get_fname().c_str());
+               }
+               goto eoc;
+       }
 
        "/*!contexts:re2c" {
                if (opts->target == opt_t::CODE) {
                        const size_t len = sizeof("/*!contexts:re2c") - 1;
                        out.wraw(tok, tok_len() - len);
                }
-
                ConfContexts *conf = new ConfContexts;
                lex_conf_contexts(*conf);
                if (opts->target == opt_t::CODE) {
                        out.wdelay_contexts(opts->topIndent, conf);
                }
+               tok = pos = cur;
+               goto echo;
+       }
 
+       eoc {
+               if (opts->target == opt_t::CODE) {
+                       out.wraw(tok, tok_len ());
+               }
                tok = pos = cur;
                goto echo;
        }
 
-       "*" "/" "\r"? "\n"      {
-                                       cline++;
-                                       if (ignore_eoc)
-                                       {
-                                               if (ignore_cnt)
-                                               {
-                                                       out.wline_info (cline, get_fname ().c_str ());
-                                               }
-                                               ignore_eoc = false;
-                                               ignore_cnt = 0;
-                                       }
-                                       else if (opts->target == opt_t::CODE)
-                                       {
-                                               out.wraw(tok, tok_len ());
-                                       }
-                                       tok = pos = cur;
-                                       goto echo;
-                               }
-       "*" "/"         {
-                                       if (ignore_eoc)
-                                       {
-                                               if (ignore_cnt)
-                                               {
-                                                       out.ws("\n").wline_info (cline, get_fname ().c_str ());
-                                               }
-                                               ignore_eoc = false;
-                                               ignore_cnt = 0;
-                                       }
-                                       else if (opts->target == opt_t::CODE)
-                                       {
-                                               out.wraw(tok, tok_len ());
-                                       }
-                                       tok = pos = cur;
-                                       goto echo;
-                               }
-       "\n" space* "#" space* "line" space+ / lineinf {
-                                       set_sourceline ();
-                                       goto echo;
-                               }
-       "\n"            {
-                                       if (ignore_eoc)
-                                       {
-                                               ignore_cnt++;
-                                       }
-                                       else if (opts->target == opt_t::CODE)
-                                       {
-                                               out.wraw(tok, tok_len ());
-                                       }
-                                       tok = pos = cur;
-                                       cline++;
-                                       goto echo;
-                               }
-       zero            {
-                                       if (!ignore_eoc && opts->target == opt_t::CODE)
-                                       {
-                                               out.wraw(tok, tok_len () - 1);
-                                               // -1 so we don't write out the \0
-                                       }
-                                       if(cur == eof)
-                                       {
-                                               return Stop;
-                                       }
-                               }
-       *                       {
-                                       goto echo;
-                               }
+       eol space* "#" space* "line" space+ / lineinf {
+               set_sourceline();
+               goto echo;
+       }
+
+       eol {
+               if (opts->target == opt_t::CODE) {
+                       out.wraw(tok, tok_len ());
+               }
+               cline++;
+               tok = pos = cur;
+               goto echo;
+       }
+
+       zero {
+               if (opts->target == opt_t::CODE) {
+                       out.wraw(tok, tok_len () - 1);
+                       // -1 so we don't write out the \0
+               }
+               if (cur == eof) {
+                       return Stop;
+               }
+       }
+
+       * { goto echo; }
+*/
+
+eoc:
+/*!re2c
+       zero { fatal("expected end of block"); }
+       *    { goto eoc; }
+       eol  { ++ignored; goto eoc; }
+       eoc  {
+               if (ignored > 0) {
+                       cline += ignored;
+                       ignored = 0;
+                       out.ws("\n").wline_info(cline, get_fname().c_str());
+               }
+               tok = pos = cur;
+               goto echo;
+       }
+       eoc eol {
+               ++cline;
+               if (ignored > 0) {
+                       cline += ignored;
+                       ignored = 0;
+                       out.wline_info(cline, get_fname().c_str());
+               }
+               tok = pos = cur;
+               goto echo;
+       }
 */
 }
 
index e93db55bcd067f2d8025889db1833df21879db2c..27b0df43c0337c576f354134e483fe66df1cdff1 100644 (file)
@@ -27,6 +27,7 @@ namespace re2c
 
        space = [ \t];
        eol   = "\r"? "\n";
+       eoc   = "*" "/";
 
        conf_assign = space* "=" space*;
 
@@ -167,9 +168,9 @@ void Scanner::lex_conf_contexts(ConfContexts &conf)
        /*!re2c
                * { fatal("unrecognized configuration"); }
 
-               space { continue; }
-               eol     { ++cline; continue; }
-               "*" "/" { return; }
+               space+ { continue; }
+               eol    { ++cline; continue; }
+               eoc    { return; }
 
                "line" { conf.line = lex_conf_string(); continue; }
                "sep"  { conf.sep  = lex_conf_string(); continue; }
index c0122fec78e7cabd4490f660ef81fd58b4451219..ed5b5ec6d198f127b7b03cd0878f7ede20fa9248 100644 (file)
@@ -538,7 +538,6 @@ end:
 #undef YYRESTORE
 #undef YYLESSTHAN
 #undef YYFILL
-#define YYMAXFILL 45
 
 int main()
 {
index 529c9be999c0cdc3a031462092e4d56ca14c55d4..a1a7fa278d48168d943b093d90fb0e7546a706ba 100644 (file)
@@ -48,14 +48,6 @@ error:
     return NULL;
 }
 
-enum YYCONDTYPE {
-    yycNormal,
-    yycComment,
-    yycSkiptoeol,
-    yycString,
-};
-
-
 #define YYCTYPE unsigned char
 #define YYKEYTYPE unsigned char
 #define YYPEEK() *cursor
index a3c9b74b7e52edeee5357eb4ba446e636c7287bb..e5e45dffaf191898e84e3e8f4ccbe9c3d6c92bb4 100644 (file)
Binary files a/re2c/test/ctx.--skeleton.c and b/re2c/test/ctx.--skeleton.c differ
index c11bcec6e2206d23f3f40febf3c78649ac72c99e..8b8c44c241b04c12c8085d62000bacbc78bb19e9 100644 (file)
@@ -963,7 +963,6 @@ end:
 #undef YYRESTORE
 #undef YYLESSTHAN
 #undef YYFILL
-#define YYMAXFILL 20
 
 int main()
 {
index c4e07257cf5805a420983a79c67f9e64a8e27c58..f0ffca9913b6bf05fefea09b51fee1d7192ad508 100644 (file)
@@ -47,7 +47,6 @@ error:
     }
     return NULL;
 }
-#define YYMAXFILL 6
 
 #define YYCTYPE unsigned char
 #define YYKEYTYPE unsigned char
index 3874ea8253597a85cc570c58ffa41c21dd0cf88b..27a286c2df5827eff88f01dd31b6faaf18e02c71 100644 (file)
@@ -47,7 +47,6 @@ error:
     }
     return NULL;
 }
-#define YYMAXFILL 16
 
 #define YYCTYPE unsigned char
 #define YYKEYTYPE unsigned char
index c447301b7ca43fb89c63183955ee506ded9ddaa9..c84f2b4eb8813b3964805ab06ef7097c1a856c7a 100644 (file)
@@ -48,12 +48,6 @@ error:
     return NULL;
 }
 
-enum YYCONDTYPE {
-    yycr1,
-    yycr2,
-};
-
-
 #define YYCTYPE unsigned char
 #define YYKEYTYPE unsigned char
 #define YYPEEK() *cursor
index b63465aa5a237808facfd21584a1a63c29180585..67689e696f23ddb6d97ad69102a2ec340896d0e6 100644 (file)
@@ -48,12 +48,6 @@ error:
     return NULL;
 }
 
-enum YYCONDTYPE {
-    yycr1,
-    yycr2,
-};
-
-
 #define YYCTYPE unsigned char
 #define YYKEYTYPE unsigned char
 #define YYPEEK() *cursor
index 92d4e58befec3e0a90feaaf2d050ab3b8266da8a..c2e836b293a0f274f627444890f4d620c68ae428 100644 (file)
@@ -48,12 +48,6 @@ error:
     return NULL;
 }
 
-enum YYCONDTYPE {
-    yycr1,
-    yycr2,
-};
-
-
 #define YYCTYPE unsigned char
 #define YYKEYTYPE unsigned char
 #define YYPEEK() *cursor
index c01b57cbab1385cfc100e2e6e59e3670b651ec22..7b7b9010217033e15674cad02213d254fa5b2a9e 100644 (file)
@@ -48,11 +48,6 @@ error:
     return NULL;
 }
 
-enum YYCONDTYPE {
-    yycr2,
-};
-
-
 #define YYCTYPE unsigned char
 #define YYKEYTYPE unsigned char
 #define YYPEEK() *cursor
index a0050f04c51a02dcc213940c8a974f200dfe6877..f08920f9ee4e1c657c6a0e375d8116bc40645b06 100644 (file)
@@ -47,7 +47,6 @@ error:
     }
     return NULL;
 }
-#define YYMAXFILL 4
 
 #define YYCTYPE unsigned char
 #define YYKEYTYPE unsigned char