]> granicus.if.org Git - re2c/commitdiff
Changed generic API for tags.
authorUlya Trofimovich <skvadrik@gmail.com>
Thu, 6 Apr 2017 16:45:42 +0000 (17:45 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Thu, 6 Apr 2017 16:45:42 +0000 (17:45 +0100)
    - removed 'YYCOPYTAG', use simple assignment insted
      (it is hard to think of any other definition)
    - renamed 'YYBACKUPTAG' to 'YYTAGP'
    - added 'YYTAGN', 'YYTAGLISTP', 'YYTAGLISTN'
    - removed 're2c:tags:default' configuration

26 files changed:
re2c/bootstrap/src/ast/lex_conf.cc
re2c/src/ast/lex_conf.re
re2c/src/code/emit_action.cc
re2c/src/conf/opt.cc
re2c/src/conf/opt.h
re2c/src/skeleton/generate_code.cc
re2c/test/tags/ambiguity/cat3.i.c
re2c/test/tags/bug121_fix_multiple.i--tags--input(custom).c
re2c/test/tags/bug121_var_multiple.i--tags--eager-skip--input(custom).c
re2c/test/tags/bug121_var_multiple.i--tags--input(custom).c
re2c/test/tags/conf1.i--tags--input(custom).c
re2c/test/tags/conf1.i--tags--input(custom).re
re2c/test/tags/conf2.i--tags--input(custom).c
re2c/test/tags/conf2.i--tags--input(custom).re
re2c/test/tags/conf3.i--tags--input(custom).c
re2c/test/tags/conf3.i--tags--input(custom).re
re2c/test/tags/fix2_trail.i--tags--input(custom).c
re2c/test/tags/fix2_trail.i--tags--input(custom).re
re2c/test/tags/fix3_trail.i--tags--input(custom).c
re2c/test/tags/fix3_trail.i--tags--input(custom).re
re2c/test/tags/fix4_trail.i--tags--input(custom).c
re2c/test/tags/fix4_trail.i--tags--input(custom).re
re2c/test/tags/fix5_trail.i--tags--input(custom).c
re2c/test/tags/fix5_trail.i--tags--input(custom).re
re2c/test/tags/lost_tag.i--tags--no-lookahead--input(custom).c [moved from re2c/test/tags/lost_yybackuptag.i--tags--no-lookahead--input(custom).c with 68% similarity]
re2c/test/tags/lost_tag.i--tags--no-lookahead--input(custom).re [moved from re2c/test/tags/lost_yybackuptag.i--tags--no-lookahead--input(custom).re with 100% similarity]

index 2c15bb3b52ddd638c91e1be76e336ffbb7ddc9c9..568a7ca55d6d2a97525e37c3a6098bbeab2e6a52 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 on Thu Apr  6 15:15:40 2017 */
+/* Generated by re2c 0.16 on Thu Apr  6 16:25:33 2017 */
 #line 1 "../src/ast/lex_conf.re"
 #include "src/util/c99_stdint.h"
 #include <string>
@@ -101,7 +101,7 @@ void Scanner::lex_conf(Opt &opts)
                }
        }
 yy2:
-#line 160 "../src/ast/lex_conf.re"
+#line 159 "../src/ast/lex_conf.re"
        {
                fatal_error(cline, get_column(),
                        "unrecognized configuration '%.*s'",
@@ -351,169 +351,160 @@ yy58:
        goto yy4;
 yy59:
        yych = (unsigned char)*++cur;
-       if (yych <= 'e') {
-               if (yych <= 'c') goto yy4;
-               if (yych <= 'd') goto yy76;
-               goto yy77;
-       } else {
-               if (yych == 'p') goto yy78;
-               goto yy4;
-       }
+       if (yych == 'e') goto yy76;
+       if (yych == 'p') goto yy77;
+       goto yy4;
 yy60:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy79;
+       if (yych == 'b') goto yy78;
        goto yy4;
 yy61:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy80;
+       if (yych == 'h') goto yy79;
        goto yy4;
 yy62:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy81;
-       if (yych == 'e') goto yy82;
+       if (yych == 'c') goto yy80;
+       if (yych == 'e') goto yy81;
        goto yy4;
 yy63:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy83;
+       if (yych == 'l') goto yy82;
        goto yy4;
 yy64:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy84;
+       if (yych == 't') goto yy83;
        goto yy4;
 yy65:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy85;
+       if (yych == 'i') goto yy84;
        goto yy4;
 yy66:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy86;
+       if (yych == 'o') goto yy85;
        goto yy4;
 yy67:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy87;
+       if (yych == 'u') goto yy86;
        goto yy4;
 yy68:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy88;
+       if (yych == 'e') goto yy87;
        goto yy4;
 yy69:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy89;
+       if (yych == ':') goto yy88;
        goto yy4;
 yy70:
        yych = (unsigned char)*++cur;
        switch (yych) {
-       case '8':       goto yy90;
-       case 'T':       goto yy92;
-       case 'b':       goto yy94;
-       case 'c':       goto yy96;
-       case 'd':       goto yy97;
-       case 'e':       goto yy99;
-       case 'g':       goto yy101;
-       case 'i':       goto yy103;
-       case 'n':       goto yy105;
-       case 'p':       goto yy106;
-       case 's':       goto yy107;
-       case 't':       goto yy109;
-       case 'u':       goto yy110;
-       case 'w':       goto yy112;
-       case 'x':       goto yy114;
+       case '8':       goto yy89;
+       case 'T':       goto yy91;
+       case 'b':       goto yy93;
+       case 'c':       goto yy95;
+       case 'd':       goto yy96;
+       case 'e':       goto yy98;
+       case 'g':       goto yy100;
+       case 'i':       goto yy102;
+       case 'n':       goto yy104;
+       case 'p':       goto yy105;
+       case 's':       goto yy106;
+       case 't':       goto yy108;
+       case 'u':       goto yy109;
+       case 'w':       goto yy111;
+       case 'x':       goto yy113;
        default:        goto yy4;
        }
 yy71:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy116;
+       if (yych == ':') goto yy115;
        goto yy4;
 yy72:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy117;
+       if (yych == 'y') goto yy116;
        goto yy4;
 yy73:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy118;
+       if (yych == 'r') goto yy117;
        goto yy4;
 yy74:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy119;
+       if (yych == 'a') goto yy118;
        goto yy4;
 yy75:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy120;
-       if (yych == 'n') goto yy121;
+       if (yych == 'a') goto yy119;
+       if (yych == 'n') goto yy120;
        goto yy4;
 yy76:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy122;
+       if (yych == 'x') goto yy121;
        goto yy4;
 yy77:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy123;
+       if (yych == 'r') goto yy122;
        goto yy4;
 yy78:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy124;
+       if (yych == 'l') goto yy123;
        goto yy4;
 yy79:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy125;
+       if (yych == 'e') goto yy124;
        goto yy4;
 yy80:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy126;
+       if (yych == 'o') goto yy125;
        goto yy4;
 yy81:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy127;
+       if (yych == 'm') goto yy126;
        goto yy4;
 yy82:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy128;
+       if (yych == ':') goto yy127;
        goto yy4;
 yy83:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy129;
+       if (yych == 'h') goto yy128;
        goto yy4;
 yy84:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy130;
+       if (yych == 'v') goto yy129;
        goto yy4;
 yy85:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy131;
+       if (yych == 't') goto yy130;
        goto yy4;
 yy86:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy132;
+       if (yych == 'm') goto yy131;
        goto yy4;
 yy87:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy133;
+       if (yych == 'f') goto yy132;
        goto yy4;
 yy88:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy134;
+       if (yych == 'Y') goto yy133;
        goto yy4;
 yy89:
-       yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy135;
-       goto yy4;
-yy90:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 57 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UTF8, opts);   return; }
-#line 508 "src/ast/lex_conf.cc"
-yy92:
+#line 499 "src/ast/lex_conf.cc"
+yy91:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 46 "../src/ast/lex_conf.re"
        { opts.set_tags(lex_conf_bool());               return; }
-#line 516 "src/ast/lex_conf.cc"
-yy94:
+#line 507 "src/ast/lex_conf.cc"
+yy93:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -526,82 +517,82 @@ yy94:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'i') goto yy136;
+                       if (yych == 'i') goto yy134;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy95:
+yy94:
 #line 41 "../src/ast/lex_conf.re"
        { opts.set_bFlag(lex_conf_bool());              return; }
-#line 537 "src/ast/lex_conf.cc"
-yy96:
+#line 528 "src/ast/lex_conf.cc"
+yy95:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy137;
-       if (yych == 'o') goto yy138;
+       if (yych == 'a') goto yy135;
+       if (yych == 'o') goto yy136;
        goto yy4;
-yy97:
+yy96:
        yych = (unsigned char)*++cur;
        if (yych <= '^') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy98;
+                       if (yych <= '@') goto yy97;
                        if (yych <= 'Z') goto yy3;
                }
        } else {
                if (yych <= 'd') {
                        if (yych != '`') goto yy3;
                } else {
-                       if (yych <= 'e') goto yy139;
-                       if (yych <= 'f') goto yy140;
+                       if (yych <= 'e') goto yy137;
+                       if (yych <= 'f') goto yy138;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy98:
+yy97:
 #line 42 "../src/ast/lex_conf.re"
        { opts.set_dFlag(lex_conf_bool());              return; }
-#line 565 "src/ast/lex_conf.cc"
-yy99:
+#line 556 "src/ast/lex_conf.cc"
+yy98:
        yych = (unsigned char)*++cur;
        if (yych <= '_') {
                if (yych <= ':') {
                        if (yych == '-') goto yy3;
                        if (yych >= '0') goto yy3;
                } else {
-                       if (yych <= '@') goto yy100;
+                       if (yych <= '@') goto yy99;
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                }
        } else {
                if (yych <= 'c') {
-                       if (yych <= '`') goto yy100;
-                       if (yych <= 'a') goto yy141;
+                       if (yych <= '`') goto yy99;
+                       if (yych <= 'a') goto yy139;
                        if (yych <= 'b') goto yy3;
-                       goto yy142;
+                       goto yy140;
                } else {
                        if (yych <= 'm') {
                                if (yych <= 'l') goto yy3;
-                               goto yy143;
+                               goto yy141;
                        } else {
-                               if (yych <= 'n') goto yy144;
+                               if (yych <= 'n') goto yy142;
                                if (yych <= 'z') goto yy3;
                        }
                }
        }
-yy100:
+yy99:
 #line 53 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::EBCDIC, opts); return; }
-#line 596 "src/ast/lex_conf.cc"
-yy101:
+#line 587 "src/ast/lex_conf.cc"
+yy100:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 43 "../src/ast/lex_conf.re"
        { opts.set_gFlag(lex_conf_bool());              return; }
-#line 604 "src/ast/lex_conf.cc"
-yy103:
+#line 595 "src/ast/lex_conf.cc"
+yy102:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -614,60 +605,60 @@ yy103:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'n') goto yy145;
+                       if (yych == 'n') goto yy143;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy104:
+yy103:
 #line 44 "../src/ast/lex_conf.re"
        { opts.set_iFlag(lex_conf_bool());              return; }
-#line 625 "src/ast/lex_conf.cc"
-yy105:
+#line 616 "src/ast/lex_conf.cc"
+yy104:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy146;
-       if (yych == 'o') goto yy147;
+       if (yych == 'e') goto yy144;
+       if (yych == 'o') goto yy145;
        goto yy4;
-yy106:
+yy105:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy148;
+       if (yych == 'o') goto yy146;
        goto yy4;
-yy107:
+yy106:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 45 "../src/ast/lex_conf.re"
        { opts.set_sFlag(lex_conf_bool());              return; }
-#line 642 "src/ast/lex_conf.cc"
-yy109:
+#line 633 "src/ast/lex_conf.cc"
+yy108:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy149;
+       if (yych == 'a') goto yy147;
        goto yy4;
-yy110:
+yy109:
        yych = (unsigned char)*++cur;
        if (yych <= '^') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy111;
+                       if (yych <= '@') goto yy110;
                        if (yych <= 'Z') goto yy3;
                }
        } else {
                if (yych <= 'n') {
-                       if (yych == '`') goto yy111;
+                       if (yych == '`') goto yy110;
                        if (yych <= 'm') goto yy3;
-                       goto yy150;
+                       goto yy148;
                } else {
-                       if (yych == 't') goto yy151;
+                       if (yych == 't') goto yy149;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy111:
+yy110:
 #line 54 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UTF32, opts);  return; }
-#line 670 "src/ast/lex_conf.cc"
-yy112:
+#line 661 "src/ast/lex_conf.cc"
+yy111:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -680,606 +671,598 @@ yy112:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'i') goto yy152;
+                       if (yych == 'i') goto yy150;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy113:
+yy112:
 #line 55 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UCS2, opts);   return; }
-#line 691 "src/ast/lex_conf.cc"
-yy114:
+#line 682 "src/ast/lex_conf.cc"
+yy113:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 56 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UTF16, opts);  return; }
-#line 699 "src/ast/lex_conf.cc"
-yy116:
+#line 690 "src/ast/lex_conf.cc"
+yy115:
        yych = (unsigned char)*++cur;
        if (yych <= 'r') goto yy4;
-       if (yych <= 's') goto yy153;
-       if (yych <= 't') goto yy154;
+       if (yych <= 's') goto yy151;
+       if (yych <= 't') goto yy152;
+       goto yy4;
+yy116:
+       yych = (unsigned char)*++cur;
+       if (yych == 'y') goto yy153;
        goto yy4;
 yy117:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy155;
+       if (yych == 'e') goto yy154;
        goto yy4;
 yy118:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy156;
+       if (yych == 'b') goto yy155;
        goto yy4;
 yy119:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy157;
+       if (yych == 'b') goto yy156;
        goto yy4;
 yy120:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy158;
+       if (yych == 'e') goto yy157;
        goto yy4;
 yy121:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy159;
+       if (yych == 'p') goto yy158;
        goto yy4;
 yy122:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy160;
+       if (yych == 'e') goto yy159;
        goto yy4;
 yy123:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy161;
+       if (yych == 'e') goto yy160;
        goto yy4;
 yy124:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy162;
+       if (yych == 'x') goto yy161;
        goto yy4;
 yy125:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy163;
+       if (yych == 'n') goto yy163;
        goto yy4;
 yy126:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy164;
+       if (yych == 'i') goto yy164;
        goto yy4;
 yy127:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy166;
-       goto yy4;
-yy128:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy167;
-       goto yy4;
-yy129:
        yych = (unsigned char)*++cur;
        if (yych <= 'd') {
-               if (yych == 'c') goto yy168;
+               if (yych == 'c') goto yy165;
                goto yy4;
        } else {
-               if (yych <= 'e') goto yy169;
-               if (yych == 'p') goto yy170;
+               if (yych <= 'e') goto yy166;
+               if (yych == 'p') goto yy167;
                goto yy4;
        }
+yy128:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy168;
+       goto yy4;
+yy129:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy169;
+       goto yy4;
 yy130:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy171;
+       if (yych == 'o') goto yy170;
        goto yy4;
 yy131:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy172;
+       if (yych == 'p') goto yy172;
        goto yy4;
 yy132:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy173;
+       if (yych == 'i') goto yy173;
        goto yy4;
 yy133:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy175;
+       if (yych == 'Y') goto yy174;
        goto yy4;
 yy134:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy176;
+       if (yych == 't') goto yy175;
        goto yy4;
 yy135:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy177;
+       if (yych == 's') goto yy176;
        goto yy4;
 yy136:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy178;
+       if (yych == 'm') goto yy177;
        goto yy4;
 yy137:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy179;
+       if (yych == 'b') goto yy178;
        goto yy4;
 yy138:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy180;
+       if (yych == 'a') goto yy179;
        goto yy4;
 yy139:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy181;
+       if (yych == 'g') goto yy180;
        goto yy4;
 yy140:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy182;
+       if (yych == 'b') goto yy181;
        goto yy4;
 yy141:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy183;
+       if (yych == 'p') goto yy182;
        goto yy4;
 yy142:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy184;
+       if (yych == 'c') goto yy183;
        goto yy4;
 yy143:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy185;
+       if (yych == 'p') goto yy184;
        goto yy4;
 yy144:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy186;
+       if (yych == 's') goto yy185;
        goto yy4;
 yy145:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy187;
+       if (yych == '-') goto yy186;
        goto yy4;
 yy146:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy188;
+       if (yych == 's') goto yy187;
        goto yy4;
 yy147:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy189;
+       if (yych == 'g') goto yy188;
        goto yy4;
 yy148:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy190;
+       if (yych == 'i') goto yy189;
        goto yy4;
 yy149:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy191;
+       if (yych == 'f') goto yy190;
        goto yy4;
 yy150:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy192;
+       if (yych == 'd') goto yy191;
        goto yy4;
 yy151:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy193;
+       if (yych == 't') goto yy192;
        goto yy4;
 yy152:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy194;
+       if (yych == 'o') goto yy193;
        goto yy4;
 yy153:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy195;
+       if (yych == 'F') goto yy194;
+       if (yych == 'N') goto yy195;
        goto yy4;
 yy154:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy196;
+       if (yych == 'f') goto yy196;
        goto yy4;
 yy155:
        yych = (unsigned char)*++cur;
-       if (yych == 'F') goto yy197;
-       if (yych == 'N') goto yy198;
+       if (yych == 'e') goto yy197;
        goto yy4;
 yy156:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy199;
+       if (yych == 'o') goto yy198;
        goto yy4;
 yy157:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy200;
+       if (yych == 'x') goto yy199;
        goto yy4;
 yy158:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy201;
+       if (yych == 'r') goto yy200;
        goto yy4;
 yy159:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy202;
+       if (yych == 'f') goto yy201;
        goto yy4;
 yy160:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy203;
+       if (yych == ':') goto yy202;
        goto yy4;
 yy161:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy204;
-       goto yy4;
-yy162:
-       yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy205;
-       goto yy4;
-yy163:
-       yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy206;
-       goto yy4;
-yy164:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 90 "../src/ast/lex_conf.re"
        { opts.set_yybmHexTable (lex_conf_bool()); return; }
-#line 908 "src/ast/lex_conf.cc"
-yy166:
+#line 891 "src/ast/lex_conf.cc"
+yy163:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy207;
+       if (yych == 'v') goto yy203;
        goto yy4;
-yy167:
+yy164:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy208;
+       if (yych == 't') goto yy204;
        goto yy4;
-yy168:
+yy165:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy210;
+       if (yych == 'h') goto yy206;
        goto yy4;
-yy169:
+yy166:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy211;
+       if (yych == 'n') goto yy207;
        goto yy4;
-yy170:
+yy167:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy212;
+       if (yych == 'a') goto yy208;
        goto yy4;
-yy171:
+yy168:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy213;
+       if (yych == 'e') goto yy209;
        goto yy4;
-yy172:
+yy169:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy214;
+       if (yych == 'd') goto yy210;
        goto yy4;
-yy173:
+yy170:
        yyaccept = 0;
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       if (yych == '@') goto yy215;
-yy174:
+       if (yych == '@') goto yy211;
+yy171:
 #line 74 "../src/ast/lex_conf.re"
        { opts.set_condGoto         (lex_conf_string ()); return; }
-#line 947 "src/ast/lex_conf.cc"
-yy175:
+#line 930 "src/ast/lex_conf.cc"
+yy172:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy217;
+       if (yych == 'r') goto yy213;
        goto yy4;
-yy176:
+yy173:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy218;
+       if (yych == 'x') goto yy214;
        goto yy4;
-yy177:
+yy174:
        yych = (unsigned char)*++cur;
        switch (yych) {
-       case 'B':       goto yy220;
-       case 'C':       goto yy221;
-       case 'D':       goto yy222;
-       case 'F':       goto yy223;
-       case 'G':       goto yy224;
-       case 'L':       goto yy225;
-       case 'M':       goto yy226;
-       case 'P':       goto yy227;
-       case 'R':       goto yy228;
-       case 'S':       goto yy229;
+       case 'B':       goto yy216;
+       case 'C':       goto yy217;
+       case 'D':       goto yy218;
+       case 'F':       goto yy219;
+       case 'G':       goto yy220;
+       case 'L':       goto yy221;
+       case 'M':       goto yy222;
+       case 'P':       goto yy223;
+       case 'R':       goto yy224;
+       case 'S':       goto yy225;
+       case 'T':       goto yy226;
        default:        goto yy4;
        }
+yy175:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy227;
+       goto yy4;
+yy176:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy228;
+       goto yy4;
+yy177:
+       yych = (unsigned char)*++cur;
+       if (yych == 'p') goto yy229;
+       goto yy4;
 yy178:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy230;
+       if (yych == 'u') goto yy230;
        goto yy4;
 yy179:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy231;
+       if (yych == '-') goto yy231;
        goto yy4;
 yy180:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy232;
+       if (yych == 'e') goto yy232;
        goto yy4;
 yy181:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy233;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy99;
 yy182:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy234;
+       if (yych == 't') goto yy233;
        goto yy4;
 yy183:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy235;
+       if (yych == 'o') goto yy234;
        goto yy4;
 yy184:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-       goto yy100;
+       if (yych == 'u') goto yy235;
+       goto yy4;
 yy185:
        yych = (unsigned char)*++cur;
        if (yych == 't') goto yy236;
        goto yy4;
 yy186:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy237;
+       if (yych == 'd') goto yy237;
+       if (yych == 'l') goto yy238;
        goto yy4;
 yy187:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy238;
+       if (yych == 'i') goto yy239;
        goto yy4;
 yy188:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy239;
+       if (yych == 's') goto yy91;
        goto yy4;
 yy189:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy240;
-       if (yych == 'l') goto yy241;
+       if (yych == 'c') goto yy240;
        goto yy4;
 yy190:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy242;
+       if (yych == '-') goto yy241;
        goto yy4;
 yy191:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy92;
+       if (yych == 'e') goto yy242;
        goto yy4;
 yy192:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy243;
+       if (yych == 'r') goto yy243;
        goto yy4;
 yy193:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy244;
+       if (yych == 'p') goto yy244;
        goto yy4;
 yy194:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy245;
+       if (yych == 'i') goto yy246;
        goto yy4;
 yy195:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy246;
+       if (yych == 'e') goto yy247;
        goto yy4;
 yy196:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy247;
+       if (yych == 'i') goto yy248;
        goto yy4;
 yy197:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy249;
+       if (yych == 'l') goto yy249;
        goto yy4;
 yy198:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy250;
+       if (yych == 'r') goto yy251;
        goto yy4;
 yy199:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy251;
+       if (yych == 't') goto yy252;
        goto yy4;
 yy200:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy252;
+       if (yych == 'e') goto yy253;
        goto yy4;
 yy201:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy254;
+       if (yych == 'i') goto yy254;
        goto yy4;
 yy202:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy255;
+       if (yych == 'y') goto yy255;
        goto yy4;
 yy203:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy256;
+       if (yych == 'e') goto yy256;
        goto yy4;
 yy204:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy257;
-       goto yy4;
-yy205:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy258;
-       goto yy4;
-yy206:
-       yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy259;
-       goto yy4;
-yy207:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy260;
-       goto yy4;
-yy208:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 142 "../src/ast/lex_conf.re"
+#line 141 "../src/ast/lex_conf.re"
        { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
-#line 1101 "src/ast/lex_conf.cc"
-yy210:
+#line 1081 "src/ast/lex_conf.cc"
+yy206:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy261;
+       if (yych == 'e') goto yy257;
        goto yy4;
-yy211:
+yy207:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy262;
+       if (yych == 'a') goto yy258;
        goto yy4;
-yy212:
+yy208:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy263;
+       if (yych == 'r') goto yy259;
        goto yy4;
-yy213:
+yy209:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy264;
+       if (yych == 's') goto yy260;
        goto yy4;
-yy214:
+yy210:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy265;
+       if (yych == 'e') goto yy261;
        goto yy4;
-yy215:
+yy211:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy266;
-yy216:
+       if (yych == 'c') goto yy262;
+yy212:
        cur = mar;
        if (yyaccept <= 2) {
                if (yyaccept <= 1) {
                        if (yyaccept == 0) {
-                               goto yy174;
+                               goto yy171;
                        } else {
-                               goto yy253;
+                               goto yy250;
                        }
                } else {
-                       goto yy323;
+                       goto yy318;
                }
        } else {
                if (yyaccept <= 4) {
                        if (yyaccept == 3) {
-                               goto yy392;
+                               goto yy383;
                        } else {
-                               goto yy598;
+                               goto yy580;
                        }
                } else {
-                       goto yy678;
+                       goto yy662;
                }
        }
-yy217:
+yy213:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy267;
+       if (yych == 'e') goto yy263;
        goto yy4;
-yy218:
+yy214:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 70 "../src/ast/lex_conf.re"
        { opts.set_condPrefix       (lex_conf_string ()); return; }
-#line 1159 "src/ast/lex_conf.cc"
-yy220:
+#line 1139 "src/ast/lex_conf.cc"
+yy216:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy268;
+       if (yych == 'A') goto yy264;
        goto yy4;
-yy221:
+yy217:
        yych = (unsigned char)*++cur;
        if (yych <= 'S') {
-               if (yych == 'O') goto yy269;
+               if (yych == 'O') goto yy265;
                goto yy4;
        } else {
-               if (yych <= 'T') goto yy270;
-               if (yych <= 'U') goto yy271;
+               if (yych <= 'T') goto yy266;
+               if (yych <= 'U') goto yy267;
                goto yy4;
        }
+yy218:
+       yych = (unsigned char)*++cur;
+       if (yych == 'E') goto yy268;
+       goto yy4;
+yy219:
+       yych = (unsigned char)*++cur;
+       if (yych == 'I') goto yy269;
+       goto yy4;
+yy220:
+       yych = (unsigned char)*++cur;
+       if (yych == 'E') goto yy270;
+       goto yy4;
+yy221:
+       yych = (unsigned char)*++cur;
+       if (yych == 'E') goto yy271;
+       if (yych == 'I') goto yy272;
+       goto yy4;
 yy222:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy272;
+       if (yych == 'A') goto yy273;
        goto yy4;
 yy223:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy273;
+       if (yych == 'E') goto yy274;
        goto yy4;
 yy224:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy274;
+       if (yych == 'E') goto yy275;
        goto yy4;
 yy225:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy275;
-       if (yych == 'I') goto yy276;
+       if (yych == 'E') goto yy276;
+       if (yych == 'K') goto yy277;
        goto yy4;
 yy226:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy277;
+       if (yych == 'A') goto yy278;
        goto yy4;
 yy227:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy278;
-       if (yych == 'U') goto yy279;
+       if (yych == 'v') goto yy279;
        goto yy4;
 yy228:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy280;
+       if (yych == '-') goto yy280;
        goto yy4;
 yy229:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy281;
-       if (yych == 'K') goto yy282;
+       if (yych == 'u') goto yy281;
        goto yy4;
 yy230:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy283;
+       if (yych == 'g') goto yy282;
        goto yy4;
 yy231:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy284;
+       if (yych == 'm') goto yy283;
        goto yy4;
 yy232:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy285;
+       if (yych == 'r') goto yy284;
        goto yy4;
 yy233:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy286;
+       if (yych == 'y') goto yy285;
        goto yy4;
 yy234:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy287;
+       if (yych == 'd') goto yy286;
        goto yy4;
 yy235:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy288;
+       if (yych == 't') goto yy287;
        goto yy4;
 yy236:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy289;
+       if (yych == 'e') goto yy289;
        goto yy4;
 yy237:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy290;
+       if (yych == 'e') goto yy290;
        goto yy4;
 yy238:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy291;
+       if (yych == 'o') goto yy291;
        goto yy4;
 yy239:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy293;
+       if (yych == 'x') goto yy292;
        goto yy4;
 yy240:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy294;
+       if (yych == 'o') goto yy293;
        goto yy4;
 yy241:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy295;
+       if (yych == '1') goto yy294;
+       if (yych == '8') goto yy89;
        goto yy4;
 yy242:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy296;
+       if (yych == '-') goto yy295;
        goto yy4;
 yy243:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy297;
+       if (yych == 'i') goto yy296;
        goto yy4;
 yy244:
-       yych = (unsigned char)*++cur;
-       if (yych == '1') goto yy298;
-       if (yych == '8') goto yy90;
-       goto yy4;
-yy245:
-       yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy299;
-       goto yy4;
-yy246:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy300;
-       goto yy4;
-yy247:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 127 "../src/ast/lex_conf.re"
+#line 126 "../src/ast/lex_conf.re"
        {
                const int32_t n = lex_conf_number ();
                if (n < 0)
@@ -1289,20 +1272,20 @@ yy247:
                opts.set_topIndent (static_cast<uint32_t> (n));
                return;
        }
-#line 1293 "src/ast/lex_conf.cc"
-yy249:
+#line 1276 "src/ast/lex_conf.cc"
+yy246:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy301;
+       if (yych == 'l') goto yy297;
        goto yy4;
-yy250:
+yy247:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy302;
+       if (yych == 'x') goto yy298;
        goto yy4;
-yy251:
+yy248:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy303;
+       if (yych == 'x') goto yy299;
        goto yy4;
-yy252:
+yy249:
        yyaccept = 1;
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
@@ -1311,603 +1294,584 @@ yy252:
        if (yych <= 0x1F) {
                if (yych == '\t') {
                        ctx = cur;
-                       goto yy305;
+                       goto yy301;
                }
        } else {
                if (yych <= ' ') {
                        ctx = cur;
-                       goto yy305;
+                       goto yy301;
                }
                if (yych == '=') {
                        ctx = cur;
-                       goto yy307;
+                       goto yy303;
                }
        }
-yy253:
-#line 155 "../src/ast/lex_conf.re"
+yy250:
+#line 154 "../src/ast/lex_conf.re"
        { opts.set_startlabel       (lex_conf_string()); return; }
-#line 1330 "src/ast/lex_conf.cc"
+#line 1313 "src/ast/lex_conf.cc"
+yy251:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy305;
+       goto yy4;
+yy252:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy307;
+       goto yy4;
+yy253:
+       yych = (unsigned char)*++cur;
+       if (yych == 's') goto yy308;
+       goto yy4;
 yy254:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy309;
+       if (yych == 'x') goto yy309;
        goto yy4;
 yy255:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy311;
+       if (yych == 'y') goto yy311;
        goto yy4;
 yy256:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy312;
+       if (yych == 'r') goto yy312;
        goto yy4;
 yy257:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy313;
+       if (yych == 'c') goto yy313;
        goto yy4;
 yy258:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy314;
+       if (yych == 'b') goto yy314;
        goto yy4;
 yy259:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy316;
+       if (yych == 'a') goto yy315;
        goto yy4;
 yy260:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy317;
+       if (yych == 'h') goto yy316;
        goto yy4;
 yy261:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy318;
+       if (yych == 'r') goto yy317;
        goto yy4;
 yy262:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy319;
-       goto yy4;
+       if (yych == 'o') goto yy319;
+       goto yy212;
 yy263:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy320;
+       if (yych == 'f') goto yy320;
        goto yy4;
 yy264:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy321;
+       if (yych == 'C') goto yy321;
        goto yy4;
 yy265:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy322;
+       if (yych == 'N') goto yy322;
        goto yy4;
 yy266:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy324;
-       goto yy216;
+       if (yych <= 'W') goto yy4;
+       if (yych <= 'X') goto yy323;
+       if (yych <= 'Y') goto yy324;
+       goto yy4;
 yy267:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy325;
+       if (yych == 'R') goto yy325;
        goto yy4;
 yy268:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy326;
+       if (yych == 'B') goto yy326;
        goto yy4;
 yy269:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy327;
-       if (yych == 'P') goto yy328;
+       if (yych == 'L') goto yy327;
        goto yy4;
 yy270:
        yych = (unsigned char)*++cur;
-       if (yych <= 'W') goto yy4;
-       if (yych <= 'X') goto yy329;
-       if (yych <= 'Y') goto yy330;
+       if (yych == 'T') goto yy328;
        goto yy4;
 yy271:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy331;
+       if (yych == 'S') goto yy329;
        goto yy4;
 yy272:
        yych = (unsigned char)*++cur;
-       if (yych == 'B') goto yy332;
+       if (yych == 'M') goto yy330;
        goto yy4;
 yy273:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy333;
+       if (yych == 'R') goto yy331;
        goto yy4;
 yy274:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy334;
+       if (yych == 'E') goto yy332;
        goto yy4;
 yy275:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy335;
+       if (yych == 'S') goto yy333;
        goto yy4;
 yy276:
        yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy336;
+       if (yych == 'T') goto yy334;
        goto yy4;
 yy277:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy337;
+       if (yych == 'I') goto yy335;
        goto yy4;
 yy278:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy338;
+       if (yych == 'G') goto yy336;
        goto yy4;
 yy279:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy339;
+       if (yych == 'e') goto yy337;
        goto yy4;
 yy280:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy340;
+       if (yych == 'i') goto yy338;
        goto yy4;
 yy281:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy341;
+       if (yych == 't') goto yy339;
        goto yy4;
 yy282:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy342;
+       if (yych == '-') goto yy340;
        goto yy4;
 yy283:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy343;
+       if (yych == 'i') goto yy341;
        goto yy4;
 yy284:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy344;
+       if (yych == '-') goto yy342;
        goto yy4;
 yy285:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy345;
+       if (yych == '-') goto yy343;
        goto yy4;
 yy286:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy346;
+       if (yych == 'i') goto yy344;
        goto yy4;
 yy287:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy347;
-       goto yy4;
-yy288:
-       yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy348;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 60 "../src/ast/lex_conf.re"
+       { lex_conf_input(opts);            return; }
+#line 1467 "src/ast/lex_conf.cc"
 yy289:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy349;
+       if (yych == 'd') goto yy345;
        goto yy4;
 yy290:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy350;
+       if (yych == 'b') goto yy346;
        goto yy4;
 yy291:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 60 "../src/ast/lex_conf.re"
-       { lex_conf_input(opts);            return; }
-#line 1489 "src/ast/lex_conf.cc"
+       if (yych == 'o') goto yy347;
+       goto yy4;
+yy292:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy348;
+       goto yy4;
 yy293:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy351;
+       if (yych == 'd') goto yy349;
        goto yy4;
 yy294:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy352;
+       if (yych == '6') goto yy113;
        goto yy4;
 yy295:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy353;
+       if (yych == 'c') goto yy350;
        goto yy4;
 yy296:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy354;
+       if (yych == 'n') goto yy351;
        goto yy4;
 yy297:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy355;
+       if (yych == 'l') goto yy352;
        goto yy4;
 yy298:
        yych = (unsigned char)*++cur;
-       if (yych == '6') goto yy114;
+       if (yych == 't') goto yy353;
        goto yy4;
 yy299:
-       yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy356;
-       goto yy4;
-yy300:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy357;
-       goto yy4;
-yy301:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy358;
-       goto yy4;
-yy302:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy359;
-       goto yy4;
-yy303:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 151 "../src/ast/lex_conf.re"
+#line 150 "../src/ast/lex_conf.re"
        { opts.set_labelPrefix (lex_conf_string ()); return; }
-#line 1537 "src/ast/lex_conf.cc"
-yy305:
+#line 1515 "src/ast/lex_conf.cc"
+yy301:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 64) {
-               goto yy305;
+               goto yy301;
        }
-       if (yych != '=') goto yy216;
-yy307:
+       if (yych != '=') goto yy212;
+yy303:
        ++cur;
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy216;
-                       goto yy307;
+                       if (yych <= 0x08) goto yy212;
+                       goto yy303;
                } else {
-                       if (yych == ' ') goto yy307;
-                       goto yy216;
+                       if (yych == ' ') goto yy303;
+                       goto yy212;
                }
        } else {
                if (yych <= '/') {
-                       if (yych <= '-') goto yy361;
-                       goto yy216;
+                       if (yych <= '-') goto yy355;
+                       goto yy212;
                } else {
-                       if (yych <= '0') goto yy362;
-                       if (yych <= '9') goto yy364;
-                       goto yy216;
+                       if (yych <= '0') goto yy356;
+                       if (yych <= '9') goto yy358;
+                       goto yy212;
                }
        }
-yy309:
+yy305:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 85 "../src/ast/lex_conf.re"
        { opts.set_bUseStateAbort  (lex_conf_bool()); return; }
-#line 1575 "src/ast/lex_conf.cc"
-yy311:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy366;
-       goto yy4;
-yy312:
+#line 1553 "src/ast/lex_conf.cc"
+yy307:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy367;
+       if (yych == 'a') goto yy360;
        goto yy4;
-yy313:
+yy308:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy369;
+       if (yych == 's') goto yy361;
        goto yy4;
-yy314:
+yy309:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 122 "../src/ast/lex_conf.re"
+#line 121 "../src/ast/lex_conf.re"
        { opts.set_tags_prefix    (lex_conf_string ()); return; }
-#line 1595 "src/ast/lex_conf.cc"
-yy316:
+#line 1569 "src/ast/lex_conf.cc"
+yy311:
        yych = (unsigned char)*++cur;
        if (yych <= 'c') {
                if (yych <= '`') goto yy4;
-               if (yych <= 'a') goto yy370;
-               if (yych <= 'b') goto yy371;
-               goto yy372;
+               if (yych <= 'a') goto yy362;
+               if (yych <= 'b') goto yy363;
+               goto yy364;
        } else {
                if (yych <= 'r') goto yy4;
-               if (yych <= 's') goto yy373;
-               if (yych <= 't') goto yy374;
+               if (yych <= 's') goto yy365;
+               if (yych <= 't') goto yy366;
                goto yy4;
        }
-yy317:
+yy312:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy375;
+       if (yych == 's') goto yy367;
        goto yy4;
-yy318:
+yy313:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy376;
+       if (yych == 'k') goto yy368;
        goto yy4;
-yy319:
+yy314:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy378;
+       if (yych == 'l') goto yy370;
        goto yy4;
-yy320:
+yy315:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy379;
+       if (yych == 'm') goto yy371;
        goto yy4;
-yy321:
+yy316:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy380;
+       if (yych == 'o') goto yy372;
        goto yy4;
-yy322:
+yy317:
        yyaccept = 2;
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       if (yych == '@') goto yy381;
-yy323:
+       if (yych == '@') goto yy373;
+yy318:
 #line 72 "../src/ast/lex_conf.re"
        { opts.set_condDivider      (lex_conf_string ()); return; }
-#line 1639 "src/ast/lex_conf.cc"
+#line 1613 "src/ast/lex_conf.cc"
+yy319:
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy374;
+       goto yy212;
+yy320:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy375;
+       goto yy4;
+yy321:
+       yych = (unsigned char)*++cur;
+       if (yych == 'K') goto yy376;
+       goto yy4;
+yy322:
+       yych = (unsigned char)*++cur;
+       if (yych == 'D') goto yy377;
+       goto yy4;
+yy323:
+       yych = (unsigned char)*++cur;
+       if (yych == 'M') goto yy378;
+       goto yy4;
 yy324:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy382;
-       goto yy216;
+       if (yych == 'P') goto yy379;
+       goto yy4;
 yy325:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy383;
+       if (yych == 'S') goto yy380;
        goto yy4;
 yy326:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy384;
+       if (yych == 'U') goto yy381;
        goto yy4;
 yy327:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy385;
+       if (yych == 'L') goto yy382;
        goto yy4;
 yy328:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy386;
+       if (yych == 'C') goto yy384;
+       if (yych == 'S') goto yy385;
        goto yy4;
 yy329:
        yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy387;
+       if (yych == 'S') goto yy386;
        goto yy4;
 yy330:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy388;
+       if (yych == 'I') goto yy387;
        goto yy4;
 yy331:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy389;
+       if (yych == 'K') goto yy388;
        goto yy4;
 yy332:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy390;
+       if (yych == 'K') goto yy389;
        goto yy4;
 yy333:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy391;
+       if (yych == 'T') goto yy391;
        goto yy4;
 yy334:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy393;
-       if (yych == 'S') goto yy394;
+       if (yych == 'C') goto yy392;
+       if (yych == 'S') goto yy393;
        goto yy4;
 yy335:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy395;
+       if (yych == 'P') goto yy394;
        goto yy4;
 yy336:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy396;
-       goto yy4;
+       if (yych <= 'M') {
+               if (yych == 'L') goto yy396;
+               goto yy4;
+       } else {
+               if (yych <= 'N') goto yy397;
+               if (yych == 'P') goto yy399;
+               goto yy4;
+       }
 yy337:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy397;
+       if (yych == 'c') goto yy401;
        goto yy4;
 yy338:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy398;
+       if (yych == 'n') goto yy402;
        goto yy4;
 yy339:
        yych = (unsigned char)*++cur;
-       if (yych == 'H') goto yy400;
+       if (yych == 'e') goto yy403;
        goto yy4;
 yy340:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy401;
+       if (yych == 'o') goto yy404;
        goto yy4;
 yy341:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy402;
-       if (yych == 'S') goto yy403;
+       if (yych == 'n') goto yy405;
        goto yy4;
 yy342:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy404;
+       if (yych == 's') goto yy406;
        goto yy4;
 yy343:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy406;
+       if (yych == 'c') goto yy407;
        goto yy4;
 yy344:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy407;
+       if (yych == 'n') goto yy408;
        goto yy4;
 yy345:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy408;
+       if (yych == '-') goto yy409;
        goto yy4;
 yy346:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy409;
+       if (yych == 'u') goto yy410;
        goto yy4;
 yy347:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy410;
+       if (yych == 'k') goto yy411;
        goto yy4;
 yy348:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy411;
+       if (yych == 'c') goto yy412;
        goto yy4;
 yy349:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy412;
+       if (yych == 'e') goto yy413;
        goto yy4;
 yy350:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy413;
+       if (yych == 'h') goto yy414;
        goto yy4;
 yy351:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy414;
+       if (yych == 'g') goto yy415;
        goto yy4;
 yy352:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy415;
+       if (yych == 'L') goto yy417;
        goto yy4;
 yy353:
-       yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy416;
-       goto yy4;
-yy354:
-       yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy417;
-       goto yy4;
-yy355:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy418;
-       goto yy4;
-yy356:
-       yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy419;
-       goto yy4;
-yy357:
-       yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy420;
-       goto yy4;
-yy358:
-       yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy422;
-       goto yy4;
-yy359:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 84 "../src/ast/lex_conf.re"
        { opts.set_yynext          (lex_conf_string ()); return; }
-#line 1789 "src/ast/lex_conf.cc"
-yy361:
+#line 1765 "src/ast/lex_conf.cc"
+yy355:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy216;
-       if (yych <= '9') goto yy364;
-       goto yy216;
-yy362:
+       if (yych <= '0') goto yy212;
+       if (yych <= '9') goto yy358;
+       goto yy212;
+yy356:
        ++cur;
-yy363:
+yy357:
        cur = ctx;
-#line 154 "../src/ast/lex_conf.re"
+#line 153 "../src/ast/lex_conf.re"
        { opts.set_startlabel_force (lex_conf_bool());   return; }
-#line 1801 "src/ast/lex_conf.cc"
-yy364:
+#line 1777 "src/ast/lex_conf.cc"
+yy358:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy364;
+               goto yy358;
        }
-       goto yy363;
-yy366:
+       goto yy357;
+yy360:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy423;
+       if (yych == 'b') goto yy418;
        goto yy4;
-yy367:
-       yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 121 "../src/ast/lex_conf.re"
-       { opts.set_tags_default   (lex_conf_string ()); return; }
-#line 1821 "src/ast/lex_conf.cc"
-yy369:
+yy361:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy424;
+       if (yych == 'i') goto yy419;
        goto yy4;
-yy370:
+yy362:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy425;
+       if (yych == 'c') goto yy420;
        goto yy4;
-yy371:
+yy363:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy426;
+       if (yych == 'm') goto yy421;
        goto yy4;
-yy372:
+yy364:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy428;
-       if (yych == 't') goto yy430;
+       if (yych == 'h') goto yy423;
+       if (yych == 't') goto yy425;
        goto yy4;
-yy373:
+yy365:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy431;
+       if (yych == 't') goto yy426;
        goto yy4;
-yy374:
+yy366:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy432;
+       if (yych == 'a') goto yy427;
        goto yy4;
-yy375:
+yy367:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy433;
+       if (yych == 'i') goto yy428;
        goto yy4;
-yy376:
+yy368:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 149 "../src/ast/lex_conf.re"
+#line 148 "../src/ast/lex_conf.re"
        { opts.set_fill_check   (lex_conf_bool()); return; }
-#line 1858 "src/ast/lex_conf.cc"
-yy378:
+#line 1826 "src/ast/lex_conf.cc"
+yy370:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy434;
+       if (yych == 'e') goto yy429;
        goto yy4;
-yy379:
+yy371:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy436;
+       if (yych == 'e') goto yy431;
        goto yy4;
-yy380:
+yy372:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy437;
+       if (yych == 'l') goto yy432;
        goto yy4;
-yy381:
-       yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy438;
-       goto yy216;
-yy382:
+yy373:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy439;
-       goto yy216;
-yy383:
+       if (yych == 'c') goto yy433;
+       goto yy212;
+yy374:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy441;
-       goto yy4;
-yy384:
+       if (yych == 'd') goto yy434;
+       goto yy212;
+yy375:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy443;
+       if (yych == 'x') goto yy436;
        goto yy4;
-yy385:
+yy376:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy444;
+       if (yych == 'U') goto yy438;
        goto yy4;
-yy386:
+yy377:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy445;
+       if (yych == 'T') goto yy439;
        goto yy4;
-yy387:
+yy378:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy446;
+       if (yych == 'A') goto yy440;
        goto yy4;
-yy388:
+yy379:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy447;
+       if (yych == 'E') goto yy441;
        goto yy4;
-yy389:
+yy380:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy449;
+       if (yych == 'O') goto yy443;
        goto yy4;
-yy390:
+yy381:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy450;
+       if (yych == 'G') goto yy444;
        goto yy4;
-yy391:
+yy382:
        yyaccept = 3;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -1915,403 +1879,410 @@ yy391:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy452;
+                       if (yych <= ':') goto yy446;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy453;
+                       if (yych <= '@') goto yy447;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy392;
+                       if (yych == '`') goto yy383;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy392:
-#line 144 "../src/ast/lex_conf.re"
+yy383:
+#line 143 "../src/ast/lex_conf.re"
        { opts.set_fill         (lex_conf_string ()); return; }
-#line 1933 "src/ast/lex_conf.cc"
-yy393:
+#line 1897 "src/ast/lex_conf.cc"
+yy384:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy454;
+       if (yych == 'O') goto yy448;
        goto yy4;
-yy394:
+yy385:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy455;
+       if (yych == 'T') goto yy449;
        goto yy4;
-yy395:
+yy386:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy456;
+       if (yych == 'T') goto yy450;
        goto yy4;
-yy396:
+yy387:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy457;
+       if (yych == 'T') goto yy451;
        goto yy4;
-yy397:
+yy388:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy459;
+       if (yych == 'E') goto yy453;
        goto yy4;
-yy398:
+yy389:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 108 "../src/ast/lex_conf.re"
        { opts.set_yypeek       (lex_conf_string ()); return; }
-#line 1961 "src/ast/lex_conf.cc"
-yy400:
-       yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy460;
-       if (yych == 'P') goto yy461;
-       goto yy4;
-yy401:
+#line 1925 "src/ast/lex_conf.cc"
+yy391:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy462;
+       if (yych == 'O') goto yy454;
        goto yy4;
-yy402:
+yy392:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy463;
+       if (yych == 'O') goto yy455;
        goto yy4;
-yy403:
+yy393:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy464;
+       if (yych == 'T') goto yy456;
        goto yy4;
-yy404:
+yy394:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 109 "../src/ast/lex_conf.re"
        { opts.set_yyskip       (lex_conf_string ()); return; }
-#line 1986 "src/ast/lex_conf.cc"
-yy406:
+#line 1945 "src/ast/lex_conf.cc"
+yy396:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy465;
+       if (yych == 'I') goto yy457;
        goto yy4;
-yy407:
+yy397:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 116 "../src/ast/lex_conf.re"
+       { opts.set_yytagn       (lex_conf_string ()); return; }
+#line 1957 "src/ast/lex_conf.cc"
+yy399:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 117 "../src/ast/lex_conf.re"
+       { opts.set_yytagp       (lex_conf_string ()); return; }
+#line 1965 "src/ast/lex_conf.cc"
+yy401:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy466;
-       if (yych == 'v') goto yy467;
+       if (yych == 't') goto yy458;
        goto yy4;
-yy408:
+yy402:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy468;
+       if (yych == 's') goto yy459;
+       if (yych == 'v') goto yy460;
        goto yy4;
-yy409:
+yy403:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy469;
+       if (yych == 'd') goto yy461;
        goto yy4;
-yy410:
+yy404:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy470;
+       if (yych == 'u') goto yy462;
        goto yy4;
-yy411:
+yy405:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy471;
+       if (yych == 'i') goto yy463;
        goto yy4;
-yy412:
+yy406:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy472;
+       if (yych == 'k') goto yy464;
        goto yy4;
-yy413:
+yy407:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy473;
+       if (yych == 'l') goto yy465;
        goto yy4;
-yy414:
+yy408:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy474;
+       if (yych == 'g') goto yy466;
        goto yy4;
-yy415:
+yy409:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy475;
+       if (yych == 'i') goto yy467;
        goto yy4;
-yy416:
+yy410:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy476;
+       if (yych == 'g') goto yy468;
        goto yy4;
-yy417:
+yy411:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy477;
+       if (yych == 'a') goto yy469;
        goto yy4;
-yy418:
+yy412:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy470;
+       goto yy4;
+yy413:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy111;
-yy419:
+       goto yy110;
+yy414:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy478;
+       if (yych == 'a') goto yy471;
        goto yy4;
-yy420:
+yy415:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 125 "../src/ast/lex_conf.re"
+#line 124 "../src/ast/lex_conf.re"
        { opts.set_indString (lex_conf_string ()); return; }
-#line 2053 "src/ast/lex_conf.cc"
-yy422:
+#line 2032 "src/ast/lex_conf.cc"
+yy417:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy479;
+       if (yych == 'a') goto yy472;
        goto yy4;
-yy423:
+yy418:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy480;
+       if (yych == 'e') goto yy473;
        goto yy4;
-yy424:
+yy419:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy481;
+       if (yych == 'o') goto yy474;
        goto yy4;
-yy425:
+yy420:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy482;
+       if (yych == 'c') goto yy475;
        goto yy4;
-yy426:
+yy421:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 89 "../src/ast/lex_conf.re"
        { opts.set_yybm         (lex_conf_string ()); return; }
-#line 2077 "src/ast/lex_conf.cc"
-yy428:
+#line 2056 "src/ast/lex_conf.cc"
+yy423:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 140 "../src/ast/lex_conf.re"
+#line 139 "../src/ast/lex_conf.re"
        { opts.set_yych           (lex_conf_string ()); return; }
-#line 2085 "src/ast/lex_conf.cc"
-yy430:
+#line 2064 "src/ast/lex_conf.cc"
+yy425:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy483;
+       if (yych == 'a') goto yy476;
        goto yy4;
-yy431:
+yy426:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy484;
+       if (yych == 'a') goto yy477;
        goto yy4;
-yy432:
+yy427:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy485;
+       if (yych == 'r') goto yy478;
        goto yy4;
-yy433:
+yy428:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy486;
+       if (yych == 'o') goto yy479;
        goto yy4;
-yy434:
+yy429:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 145 "../src/ast/lex_conf.re"
+#line 144 "../src/ast/lex_conf.re"
        { opts.set_fill_use     (lex_conf_bool()); return; }
-#line 2109 "src/ast/lex_conf.cc"
-yy436:
+#line 2088 "src/ast/lex_conf.cc"
+yy431:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy487;
+       if (yych == 't') goto yy480;
        goto yy4;
-yy437:
+yy432:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy488;
+       if (yych == 'd') goto yy481;
        goto yy4;
-yy438:
+yy433:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy490;
-       goto yy216;
-yy439:
+       if (yych == 'o') goto yy483;
+       goto yy212;
+yy434:
        ++cur;
 #line 75 "../src/ast/lex_conf.re"
        { opts.set_condGotoParam    (lex_conf_string ()); return; }
-#line 2126 "src/ast/lex_conf.cc"
-yy441:
+#line 2105 "src/ast/lex_conf.cc"
+yy436:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 71 "../src/ast/lex_conf.re"
        { opts.set_condEnumPrefix   (lex_conf_string ()); return; }
-#line 2134 "src/ast/lex_conf.cc"
-yy443:
-       yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy491;
-       goto yy4;
-yy444:
+#line 2113 "src/ast/lex_conf.cc"
+yy438:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy493;
+       if (yych == 'P') goto yy484;
        goto yy4;
-yy445:
+yy439:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy494;
+       if (yych == 'Y') goto yy486;
        goto yy4;
-yy446:
+yy440:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy495;
+       if (yych == 'R') goto yy487;
        goto yy4;
-yy447:
+yy441:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 139 "../src/ast/lex_conf.re"
+#line 138 "../src/ast/lex_conf.re"
        { opts.set_yyctype        (lex_conf_string ()); return; }
-#line 2158 "src/ast/lex_conf.cc"
-yy449:
+#line 2133 "src/ast/lex_conf.cc"
+yy443:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy496;
+       if (yych == 'R') goto yy488;
        goto yy4;
-yy450:
+yy444:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 137 "../src/ast/lex_conf.re"
+#line 136 "../src/ast/lex_conf.re"
        { opts.set_yydebug (lex_conf_string ()); return; }
-#line 2170 "src/ast/lex_conf.cc"
-yy452:
+#line 2145 "src/ast/lex_conf.cc"
+yy446:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy498;
+       if (yych == 'n') goto yy490;
        goto yy4;
-yy453:
+yy447:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy499;
-       goto yy216;
-yy454:
+       if (yych == 'l') goto yy491;
+       goto yy212;
+yy448:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy500;
+       if (yych == 'N') goto yy492;
        goto yy4;
-yy455:
+yy449:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy501;
+       if (yych == 'A') goto yy493;
        goto yy4;
-yy456:
+yy450:
        yych = (unsigned char)*++cur;
-       if (yych == 'H') goto yy502;
+       if (yych == 'H') goto yy494;
        goto yy4;
-yy457:
+yy451:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 106 "../src/ast/lex_conf.re"
        { opts.set_yylimit     (lex_conf_string ()); return; }
-#line 2198 "src/ast/lex_conf.cc"
+#line 2173 "src/ast/lex_conf.cc"
+yy453:
+       yych = (unsigned char)*++cur;
+       if (yych == 'R') goto yy495;
+       goto yy4;
+yy454:
+       yych = (unsigned char)*++cur;
+       if (yych == 'R') goto yy497;
+       goto yy4;
+yy455:
+       yych = (unsigned char)*++cur;
+       if (yych == 'N') goto yy498;
+       goto yy4;
+yy456:
+       yych = (unsigned char)*++cur;
+       if (yych == 'A') goto yy499;
+       goto yy4;
+yy457:
+       yych = (unsigned char)*++cur;
+       if (yych == 'S') goto yy500;
+       goto yy4;
+yy458:
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy501;
+       goto yy4;
 yy459:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy503;
+       if (yych == 'e') goto yy502;
        goto yy4;
 yy460:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy505;
+       if (yych == 'e') goto yy503;
        goto yy4;
 yy461:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy506;
+       if (yych == '-') goto yy504;
        goto yy4;
 yy462:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy507;
+       if (yych == 't') goto yy505;
        goto yy4;
 yy463:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy508;
+       if (yych == 'm') goto yy506;
        goto yy4;
 yy464:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy509;
+       if (yych == 'i') goto yy507;
        goto yy4;
 yy465:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy510;
+       if (yych == 'a') goto yy508;
        goto yy4;
 yy466:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy511;
+       if (yych == '-') goto yy509;
        goto yy4;
 yy467:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy512;
+       if (yych == 'f') goto yy510;
        goto yy4;
 yy468:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy513;
+       if (yych == '-') goto yy511;
        goto yy4;
 yy469:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy514;
+       if (yych == 'h') goto yy512;
        goto yy4;
 yy470:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy515;
+       if (yych == 'p') goto yy513;
        goto yy4;
 yy471:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy516;
+       if (yych == 'r') goto yy514;
        goto yy4;
 yy472:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy517;
+       if (yych == 'b') goto yy515;
        goto yy4;
 yy473:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy518;
+       if (yych == 'l') goto yy516;
        goto yy4;
 yy474:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy519;
+       if (yych == 'n') goto yy518;
        goto yy4;
 yy475:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy520;
+       if (yych == 'e') goto yy520;
        goto yy4;
 yy476:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy521;
+       if (yych == 'b') goto yy521;
        goto yy4;
 yy477:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy522;
+       if (yych == 'b') goto yy522;
        goto yy4;
 yy478:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy523;
+       if (yych == 'g') goto yy523;
        goto yy4;
 yy479:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy524;
+       if (yych == 'n') goto yy524;
        goto yy4;
 yy480:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy525;
+       if (yych == 'e') goto yy526;
        goto yy4;
 yy481:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy527;
-       goto yy4;
-yy482:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy529;
-       goto yy4;
-yy483:
-       yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy530;
-       goto yy4;
-yy484:
-       yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy531;
-       goto yy4;
-yy485:
-       yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy532;
-       goto yy4;
-yy486:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy533;
-       goto yy4;
-yy487:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy535;
-       goto yy4;
-yy488:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
@@ -2326,478 +2297,433 @@ yy488:
                opts.set_cGotoThreshold (static_cast<uint32_t> (n));
                return;
        }
-#line 2330 "src/ast/lex_conf.cc"
-yy490:
+#line 2301 "src/ast/lex_conf.cc"
+yy483:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy536;
-       goto yy216;
-yy491:
+       if (yych == 'n') goto yy527;
+       goto yy212;
+yy484:
        yych = (unsigned char)*++cur;
-       if (yych <= 'C') {
+       if (yych <= 'B') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy492;
-                       if (yych <= 'B') goto yy3;
-                       goto yy537;
+                       if (yych >= 'A') goto yy3;
                }
        } else {
                if (yych <= '^') {
-                       if (yych == 'T') goto yy538;
+                       if (yych <= 'C') goto yy528;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy492;
+                       if (yych == '`') goto yy485;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy492:
+yy485:
 #line 110 "../src/ast/lex_conf.re"
        { opts.set_yybackup     (lex_conf_string ()); return; }
-#line 2358 "src/ast/lex_conf.cc"
-yy493:
-       yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy539;
-       goto yy4;
-yy494:
+#line 2327 "src/ast/lex_conf.cc"
+yy486:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy540;
+       if (yych == 'P') goto yy529;
        goto yy4;
-yy495:
+yy487:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy542;
+       if (yych == 'K') goto yy530;
        goto yy4;
-yy496:
+yy488:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 103 "../src/ast/lex_conf.re"
        { opts.set_yycursor    (lex_conf_string ()); return; }
-#line 2378 "src/ast/lex_conf.cc"
-yy498:
+#line 2343 "src/ast/lex_conf.cc"
+yy490:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy543;
+       if (yych == 'a') goto yy531;
        goto yy4;
-yy499:
+yy491:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy544;
-       goto yy216;
-yy500:
+       if (yych == 'e') goto yy532;
+       goto yy212;
+yy492:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy545;
+       if (yych == 'D') goto yy533;
        goto yy4;
-yy501:
+yy493:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy546;
+       if (yych == 'T') goto yy534;
        goto yy4;
-yy502:
+yy494:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy547;
+       if (yych == 'A') goto yy535;
        goto yy4;
-yy503:
+yy495:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 104 "../src/ast/lex_conf.re"
        { opts.set_yymarker    (lex_conf_string ()); return; }
-#line 2406 "src/ast/lex_conf.cc"
-yy505:
-       yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy548;
-       goto yy4;
-yy506:
+#line 2371 "src/ast/lex_conf.cc"
+yy497:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy549;
+       if (yych == 'E') goto yy536;
        goto yy4;
-yy507:
+yy498:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy550;
+       if (yych == 'D') goto yy538;
        goto yy4;
-yy508:
+yy499:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy552;
+       if (yych == 'T') goto yy539;
        goto yy4;
-yy509:
+yy500:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy553;
+       if (yych == 'T') goto yy540;
        goto yy4;
-yy510:
+yy501:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy554;
+       if (yych == 'r') goto yy541;
        goto yy4;
-yy511:
+yy502:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy555;
+       if (yych == 'n') goto yy542;
        goto yy4;
-yy512:
+yy503:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy556;
+       if (yych == 'r') goto yy543;
        goto yy4;
-yy513:
+yy504:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy557;
+       if (yych == 'g') goto yy544;
        goto yy4;
-yy514:
+yy505:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy558;
+       if (yych == 'p') goto yy545;
        goto yy4;
-yy515:
+yy506:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy559;
+       if (yych == 'i') goto yy546;
        goto yy4;
-yy516:
+yy507:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy560;
+       if (yych == 'p') goto yy547;
        goto yy4;
-yy517:
+yy508:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy562;
+       if (yych == 's') goto yy549;
        goto yy4;
-yy518:
+yy509:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy563;
+       if (yych == 'p') goto yy550;
        goto yy4;
-yy519:
+yy510:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy107;
+       if (yych == 's') goto yy106;
        goto yy4;
-yy520:
+yy511:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy564;
+       if (yych == 'i') goto yy551;
        goto yy4;
-yy521:
+yy512:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy565;
+       if (yych == 'e') goto yy552;
        goto yy4;
-yy522:
+yy513:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy566;
+       if (yych == 't') goto yy553;
        goto yy4;
-yy523:
+yy514:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy567;
+       if (yych == 's') goto yy554;
        goto yy4;
-yy524:
+yy515:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy568;
+       if (yych == 'e') goto yy555;
        goto yy4;
-yy525:
+yy516:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 86 "../src/ast/lex_conf.re"
        { opts.set_bUseStateNext   (lex_conf_bool()); return; }
-#line 2494 "src/ast/lex_conf.cc"
-yy527:
+#line 2455 "src/ast/lex_conf.cc"
+yy518:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 123 "../src/ast/lex_conf.re"
+#line 122 "../src/ast/lex_conf.re"
        { opts.set_tags_expression(lex_conf_string ()); return; }
-#line 2502 "src/ast/lex_conf.cc"
-yy529:
+#line 2463 "src/ast/lex_conf.cc"
+yy520:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy569;
+       if (yych == 'p') goto yy556;
        goto yy4;
-yy530:
+yy521:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy570;
+       if (yych == 'l') goto yy557;
        goto yy4;
-yy531:
+yy522:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy571;
+       if (yych == 'l') goto yy558;
        goto yy4;
-yy532:
+yy523:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy572;
+       if (yych == 'e') goto yy559;
        goto yy4;
-yy533:
+yy524:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 141 "../src/ast/lex_conf.re"
+#line 140 "../src/ast/lex_conf.re"
        { opts.set_yychConversion (lex_conf_bool()); return; }
-#line 2526 "src/ast/lex_conf.cc"
-yy535:
+#line 2487 "src/ast/lex_conf.cc"
+yy526:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy573;
+       if (yych == 'r') goto yy560;
        goto yy4;
-yy536:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy575;
-       goto yy216;
-yy537:
-       yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy577;
-       goto yy4;
-yy538:
+yy527:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy578;
-       goto yy4;
-yy539:
+       if (yych == 'd') goto yy562;
+       goto yy212;
+yy528:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy579;
+       if (yych == 'T') goto yy564;
        goto yy4;
-yy540:
-       yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 116 "../src/ast/lex_conf.re"
-       { opts.set_yycopytag    (lex_conf_string ()); return; }
-#line 2554 "src/ast/lex_conf.cc"
-yy542:
+yy529:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy581;
+       if (yych == 'E') goto yy565;
        goto yy4;
-yy543:
+yy530:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy582;
+       if (yych == 'E') goto yy567;
        goto yy4;
-yy544:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy583;
-       goto yy216;
-yy545:
+yy531:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy585;
+       if (yych == 'k') goto yy568;
        goto yy4;
-yy546:
+yy532:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy586;
-       goto yy4;
-yy547:
+       if (yych == 'n') goto yy569;
+       goto yy212;
+yy533:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy588;
+       if (yych == 'I') goto yy571;
        goto yy4;
-yy548:
+yy534:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy590;
+       if (yych == 'E') goto yy572;
        goto yy4;
-yy549:
+yy535:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy592;
+       if (yych == 'N') goto yy574;
        goto yy4;
-yy550:
+yy536:
        yych = (unsigned char)*++cur;
        if (yych <= 'C') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy551;
+                       if (yych <= '@') goto yy537;
                        if (yych <= 'B') goto yy3;
-                       goto yy594;
+                       goto yy576;
                }
        } else {
                if (yych <= '^') {
-                       if (yych == 'T') goto yy595;
+                       if (yych == 'T') goto yy577;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy551;
+                       if (yych == '`') goto yy537;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy551:
-#line 113 "../src/ast/lex_conf.re"
+yy537:
+#line 112 "../src/ast/lex_conf.re"
        { opts.set_yyrestore    (lex_conf_string ()); return; }
-#line 2610 "src/ast/lex_conf.cc"
-yy552:
+#line 2551 "src/ast/lex_conf.cc"
+yy538:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy596;
+       if (yych == 'I') goto yy578;
        goto yy4;
-yy553:
+yy539:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy597;
+       if (yych == 'E') goto yy579;
        goto yy4;
-yy554:
+yy540:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy599;
+       if (yych == 'N') goto yy581;
+       if (yych == 'P') goto yy583;
        goto yy4;
-yy555:
+yy541:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy600;
+       if (yych == 's') goto yy585;
        goto yy4;
-yy556:
+yy542:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy601;
+       if (yych == 's') goto yy586;
        goto yy4;
-yy557:
+yy543:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy602;
+       if (yych == 't') goto yy587;
        goto yy4;
-yy558:
+yy544:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy603;
+       if (yych == 'o') goto yy588;
        goto yy4;
-yy559:
+yy545:
        yych = (unsigned char)*++cur;
-       if (yych == 'z') goto yy604;
+       if (yych == 'u') goto yy589;
        goto yy4;
-yy560:
+yy546:
+       yych = (unsigned char)*++cur;
+       if (yych == 'z') goto yy590;
+       goto yy4;
+yy547:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 51 "../src/ast/lex_conf.re"
        { opts.set_eager_skip(lex_conf_bool());         return; }
-#line 2650 "src/ast/lex_conf.cc"
-yy562:
+#line 2596 "src/ast/lex_conf.cc"
+yy549:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy605;
+       if (yych == 's') goto yy591;
        goto yy4;
-yy563:
+yy550:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy607;
+       if (yych == 'o') goto yy593;
        goto yy4;
-yy564:
+yy551:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy608;
+       if (yych == 'n') goto yy594;
        goto yy4;
-yy565:
+yy552:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy609;
+       if (yych == 'a') goto yy595;
        goto yy4;
-yy566:
+yy553:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy610;
+       if (yych == 'u') goto yy596;
        goto yy4;
-yy567:
+yy554:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy113;
-yy568:
+       goto yy112;
+yy555:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy611;
+       if (yych == 'l') goto yy597;
        goto yy4;
-yy569:
+yy556:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy613;
+       if (yych == 't') goto yy599;
        goto yy4;
-yy570:
+yy557:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy615;
+       if (yych == 'e') goto yy601;
        goto yy4;
-yy571:
+yy558:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy617;
+       if (yych == 'e') goto yy603;
        goto yy4;
-yy572:
+yy559:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy619;
+       if (yych == 't') goto yy605;
        goto yy4;
-yy573:
+yy560:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 147 "../src/ast/lex_conf.re"
+#line 146 "../src/ast/lex_conf.re"
        { opts.set_fill_arg_use (lex_conf_bool()); return; }
-#line 2704 "src/ast/lex_conf.cc"
-yy575:
+#line 2650 "src/ast/lex_conf.cc"
+yy562:
        ++cur;
 #line 73 "../src/ast/lex_conf.re"
        { opts.set_condDividerParam (lex_conf_string ()); return; }
-#line 2709 "src/ast/lex_conf.cc"
-yy577:
-       yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy621;
-       goto yy4;
-yy578:
+#line 2655 "src/ast/lex_conf.cc"
+yy564:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy623;
+       if (yych == 'X') goto yy607;
        goto yy4;
-yy579:
+yy565:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 64 "../src/ast/lex_conf.re"
        { opts.set_yycondtype       (lex_conf_string ()); return; }
-#line 2725 "src/ast/lex_conf.cc"
-yy581:
+#line 2667 "src/ast/lex_conf.cc"
+yy567:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy625;
+       if (yych == 'R') goto yy609;
        goto yy4;
-yy582:
+yy568:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy627;
+       if (yych == 'e') goto yy611;
        goto yy4;
-yy583:
+yy569:
        ++cur;
-#line 146 "../src/ast/lex_conf.re"
+#line 145 "../src/ast/lex_conf.re"
        { opts.set_fill_arg     (lex_conf_string ()); return; }
-#line 2738 "src/ast/lex_conf.cc"
-yy585:
+#line 2680 "src/ast/lex_conf.cc"
+yy571:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy628;
+       if (yych == 'T') goto yy612;
        goto yy4;
-yy586:
+yy572:
        yych = (unsigned char)*++cur;
        if (yych <= '@') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy629;
+                       if (yych <= ':') goto yy613;
                }
        } else {
                if (yych <= '_') {
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                } else {
-                       if (yych <= '`') goto yy587;
+                       if (yych <= '`') goto yy573;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy587:
+yy573:
 #line 78 "../src/ast/lex_conf.re"
        { opts.set_state_get       (lex_conf_string ()); return; }
-#line 2764 "src/ast/lex_conf.cc"
-yy588:
+#line 2706 "src/ast/lex_conf.cc"
+yy574:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 119 "../src/ast/lex_conf.re"
+#line 115 "../src/ast/lex_conf.re"
        { opts.set_yylessthan   (lex_conf_string ()); return; }
-#line 2772 "src/ast/lex_conf.cc"
-yy590:
-       yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 117 "../src/ast/lex_conf.re"
-       { opts.set_yypushntag   (lex_conf_string ()); return; }
-#line 2780 "src/ast/lex_conf.cc"
-yy592:
-       yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 118 "../src/ast/lex_conf.re"
-       { opts.set_yypushptag   (lex_conf_string ()); return; }
-#line 2788 "src/ast/lex_conf.cc"
-yy594:
+#line 2714 "src/ast/lex_conf.cc"
+yy576:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy630;
+       if (yych == 'T') goto yy614;
        goto yy4;
-yy595:
+yy577:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy631;
+       if (yych == 'A') goto yy615;
        goto yy4;
-yy596:
+yy578:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy632;
+       if (yych == 'T') goto yy616;
        goto yy4;
-yy597:
+yy579:
        yyaccept = 4;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -2805,354 +2731,362 @@ yy597:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy633;
+                       if (yych <= ':') goto yy617;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy634;
+                       if (yych <= '@') goto yy618;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy598;
+                       if (yych == '`') goto yy580;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy598:
+yy580:
 #line 80 "../src/ast/lex_conf.re"
        { opts.set_state_set       (lex_conf_string ()); return; }
-#line 2823 "src/ast/lex_conf.cc"
-yy599:
+#line 2749 "src/ast/lex_conf.cc"
+yy581:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 118 "../src/ast/lex_conf.re"
+       { opts.set_yytaglistn   (lex_conf_string ()); return; }
+#line 2757 "src/ast/lex_conf.cc"
+yy583:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy95;
-yy600:
+#line 119 "../src/ast/lex_conf.re"
+       { opts.set_yytaglistp   (lex_conf_string ()); return; }
+#line 2765 "src/ast/lex_conf.cc"
+yy585:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy635;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy94;
+yy586:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy619;
        goto yy4;
-yy601:
+yy587:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy636;
+       if (yych == 'e') goto yy620;
        goto yy4;
-yy602:
+yy588:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy637;
+       if (yych == 't') goto yy621;
        goto yy4;
-yy603:
+yy589:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy638;
+       if (yych == 't') goto yy622;
        goto yy4;
-yy604:
+yy590:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy639;
+       if (yych == 'a') goto yy623;
        goto yy4;
-yy605:
+yy591:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 61 "../src/ast/lex_conf.re"
        { lex_conf_empty_class(opts);      return; }
-#line 2857 "src/ast/lex_conf.cc"
-yy607:
+#line 2799 "src/ast/lex_conf.cc"
+yy593:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy640;
+       if (yych == 'l') goto yy624;
        goto yy4;
-yy608:
+yy594:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy641;
+       if (yych == 'f') goto yy625;
        goto yy4;
-yy609:
+yy595:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy642;
+       if (yych == 'd') goto yy626;
        goto yy4;
-yy610:
+yy596:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy644;
+       if (yych == 'r') goto yy628;
        goto yy4;
-yy611:
+yy597:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 83 "../src/ast/lex_conf.re"
        { opts.set_yyfilllabel     (lex_conf_string ()); return; }
-#line 2881 "src/ast/lex_conf.cc"
-yy613:
+#line 2823 "src/ast/lex_conf.cc"
+yy599:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 87 "../src/ast/lex_conf.re"
        { opts.set_yyaccept        (lex_conf_string ()); return; }
-#line 2889 "src/ast/lex_conf.cc"
-yy615:
+#line 2831 "src/ast/lex_conf.cc"
+yy601:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 76 "../src/ast/lex_conf.re"
        { opts.set_yyctable         (lex_conf_string ()); return; }
-#line 2897 "src/ast/lex_conf.cc"
-yy617:
+#line 2839 "src/ast/lex_conf.cc"
+yy603:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 158 "../src/ast/lex_conf.re"
+#line 157 "../src/ast/lex_conf.re"
        { lex_conf_string (); return; }
-#line 2905 "src/ast/lex_conf.cc"
-yy619:
+#line 2847 "src/ast/lex_conf.cc"
+yy605:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 101 "../src/ast/lex_conf.re"
        { opts.set_yytarget (lex_conf_string ()); return; }
-#line 2913 "src/ast/lex_conf.cc"
-yy621:
+#line 2855 "src/ast/lex_conf.cc"
+yy607:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 111 "../src/ast/lex_conf.re"
        { opts.set_yybackupctx  (lex_conf_string ()); return; }
-#line 2921 "src/ast/lex_conf.cc"
-yy623:
-       yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 112 "../src/ast/lex_conf.re"
-       { opts.set_yybackuptag  (lex_conf_string ()); return; }
-#line 2929 "src/ast/lex_conf.cc"
-yy625:
+#line 2863 "src/ast/lex_conf.cc"
+yy609:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 105 "../src/ast/lex_conf.re"
        { opts.set_yyctxmarker (lex_conf_string ()); return; }
-#line 2937 "src/ast/lex_conf.cc"
-yy627:
+#line 2871 "src/ast/lex_conf.cc"
+yy611:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy645;
+       if (yych == 'd') goto yy629;
        goto yy4;
-yy628:
+yy612:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy647;
+       if (yych == 'I') goto yy631;
        goto yy4;
-yy629:
+yy613:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy648;
+       if (yych == 'n') goto yy632;
        goto yy4;
-yy630:
+yy614:
        yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy649;
+       if (yych == 'X') goto yy633;
        goto yy4;
-yy631:
+yy615:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy651;
+       if (yych == 'G') goto yy635;
        goto yy4;
-yy632:
+yy616:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy653;
+       if (yych == 'I') goto yy637;
        goto yy4;
-yy633:
+yy617:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy654;
+       if (yych == 'n') goto yy638;
        goto yy4;
-yy634:
+yy618:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy655;
-       goto yy216;
-yy635:
+       if (yych == 's') goto yy639;
+       goto yy212;
+yy619:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy656;
+       if (yych == 't') goto yy640;
        goto yy4;
-yy636:
+yy620:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy657;
+       if (yych == 'd') goto yy641;
        goto yy4;
-yy637:
+yy621:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy659;
+       if (yych == 'o') goto yy643;
        goto yy4;
-yy638:
+yy622:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy98;
-yy639:
+       goto yy97;
+yy623:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy660;
+       if (yych == 't') goto yy644;
        goto yy4;
-yy640:
+yy624:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy661;
+       if (yych == 'i') goto yy645;
        goto yy4;
-yy641:
+yy625:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy662;
+       if (yych == 'o') goto yy646;
        goto yy4;
-yy642:
+yy626:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 50 "../src/ast/lex_conf.re"
        { opts.set_lookahead(!lex_conf_bool());         return; }
-#line 3007 "src/ast/lex_conf.cc"
-yy644:
+#line 2941 "src/ast/lex_conf.cc"
+yy628:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy663;
+       if (yych == 'e') goto yy647;
        goto yy4;
-yy645:
+yy629:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 148 "../src/ast/lex_conf.re"
+#line 147 "../src/ast/lex_conf.re"
        { opts.set_fill_naked   (lex_conf_bool()); return; }
-#line 3019 "src/ast/lex_conf.cc"
-yy647:
+#line 2953 "src/ast/lex_conf.cc"
+yy631:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy664;
+       if (yych == 'O') goto yy648;
        goto yy4;
-yy648:
+yy632:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy665;
+       if (yych == 'a') goto yy649;
        goto yy4;
-yy649:
+yy633:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 114 "../src/ast/lex_conf.re"
+#line 113 "../src/ast/lex_conf.re"
        { opts.set_yyrestorectx (lex_conf_string ()); return; }
-#line 3035 "src/ast/lex_conf.cc"
-yy651:
+#line 2969 "src/ast/lex_conf.cc"
+yy635:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 115 "../src/ast/lex_conf.re"
+#line 114 "../src/ast/lex_conf.re"
        { opts.set_yyrestoretag (lex_conf_string ()); return; }
-#line 3043 "src/ast/lex_conf.cc"
-yy653:
+#line 2977 "src/ast/lex_conf.cc"
+yy637:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy666;
+       if (yych == 'O') goto yy650;
        goto yy4;
-yy654:
+yy638:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy667;
+       if (yych == 'a') goto yy651;
        goto yy4;
-yy655:
+yy639:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy668;
-       goto yy216;
-yy656:
+       if (yych == 't') goto yy652;
+       goto yy212;
+yy640:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy669;
+       if (yych == 'i') goto yy653;
        goto yy4;
-yy657:
+yy641:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 49 "../src/ast/lex_conf.re"
        { opts.set_bCaseInverted(lex_conf_bool());      return; }
-#line 3067 "src/ast/lex_conf.cc"
-yy659:
+#line 3001 "src/ast/lex_conf.cc"
+yy643:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy101;
+       if (yych == 's') goto yy100;
        goto yy4;
-yy660:
+yy644:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy670;
+       if (yych == 'i') goto yy654;
        goto yy4;
-yy661:
+yy645:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy671;
+       if (yych == 'c') goto yy655;
        goto yy4;
-yy662:
+yy646:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy104;
-yy663:
+       goto yy103;
+yy647:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy672;
+       if (yych == 's') goto yy656;
        goto yy4;
-yy664:
+yy648:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy674;
+       if (yych == 'N') goto yy658;
        goto yy4;
-yy665:
+yy649:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy676;
+       if (yych == 'k') goto yy660;
        goto yy4;
-yy666:
+yy650:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy677;
+       if (yych == 'N') goto yy661;
        goto yy4;
-yy667:
+yy651:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy679;
+       if (yych == 'k') goto yy663;
        goto yy4;
-yy668:
+yy652:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy680;
-       goto yy216;
-yy669:
+       if (yych == 'a') goto yy664;
+       goto yy212;
+yy653:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy681;
+       if (yych == 'v') goto yy665;
        goto yy4;
-yy670:
+yy654:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy682;
+       if (yych == 'o') goto yy666;
        goto yy4;
-yy671:
+yy655:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy683;
+       if (yych == 'y') goto yy667;
        goto yy4;
-yy672:
+yy656:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 47 "../src/ast/lex_conf.re"
        { opts.set_posix_captures(lex_conf_bool());     return; }
-#line 3129 "src/ast/lex_conf.cc"
-yy674:
+#line 3063 "src/ast/lex_conf.cc"
+yy658:
        yych = (unsigned char)*++cur;
        if (yych <= '@') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy685;
+                       if (yych <= ':') goto yy669;
                }
        } else {
                if (yych <= '_') {
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                } else {
-                       if (yych <= '`') goto yy675;
+                       if (yych <= '`') goto yy659;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy675:
+yy659:
 #line 65 "../src/ast/lex_conf.re"
        { opts.set_cond_get         (lex_conf_string ()); return; }
-#line 3151 "src/ast/lex_conf.cc"
-yy676:
+#line 3085 "src/ast/lex_conf.cc"
+yy660:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy686;
+       if (yych == 'e') goto yy670;
        goto yy4;
-yy677:
+yy661:
        yyaccept = 5;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -3160,173 +3094,173 @@ yy677:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy687;
+                       if (yych <= ':') goto yy671;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy688;
+                       if (yych <= '@') goto yy672;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy678;
+                       if (yych == '`') goto yy662;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy678:
+yy662:
 #line 67 "../src/ast/lex_conf.re"
        { opts.set_cond_set         (lex_conf_string ()); return; }
-#line 3178 "src/ast/lex_conf.cc"
-yy679:
+#line 3112 "src/ast/lex_conf.cc"
+yy663:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy689;
+       if (yych == 'e') goto yy673;
        goto yy4;
-yy680:
+yy664:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy690;
-       goto yy216;
-yy681:
+       if (yych == 't') goto yy674;
+       goto yy212;
+yy665:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy691;
+       if (yych == 'e') goto yy675;
        goto yy4;
-yy682:
+yy666:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy693;
+       if (yych == 'n') goto yy677;
        goto yy4;
-yy683:
+yy667:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 59 "../src/ast/lex_conf.re"
        { lex_conf_encoding_policy(opts);  return; }
-#line 3202 "src/ast/lex_conf.cc"
-yy685:
+#line 3136 "src/ast/lex_conf.cc"
+yy669:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy695;
+       if (yych == 'n') goto yy679;
        goto yy4;
-yy686:
+yy670:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy696;
+       if (yych == 'd') goto yy680;
        goto yy4;
-yy687:
+yy671:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy698;
+       if (yych == 'n') goto yy682;
        goto yy4;
-yy688:
+yy672:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy699;
-       goto yy216;
-yy689:
+       if (yych == 'c') goto yy683;
+       goto yy212;
+yy673:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy700;
+       if (yych == 'd') goto yy684;
        goto yy4;
-yy690:
+yy674:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy702;
-       goto yy216;
-yy691:
+       if (yych == 'e') goto yy686;
+       goto yy212;
+yy675:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 48 "../src/ast/lex_conf.re"
        { opts.set_bCaseInsensitive(lex_conf_bool());   return; }
-#line 3234 "src/ast/lex_conf.cc"
-yy693:
+#line 3168 "src/ast/lex_conf.cc"
+yy677:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 62 "../src/ast/lex_conf.re"
        { lex_conf_dfa_minimization(opts); return; }
-#line 3242 "src/ast/lex_conf.cc"
-yy695:
+#line 3176 "src/ast/lex_conf.cc"
+yy679:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy704;
+       if (yych == 'a') goto yy688;
        goto yy4;
-yy696:
+yy680:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 79 "../src/ast/lex_conf.re"
        { opts.set_state_get_naked (lex_conf_bool()); return; }
-#line 3254 "src/ast/lex_conf.cc"
-yy698:
+#line 3188 "src/ast/lex_conf.cc"
+yy682:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy705;
+       if (yych == 'a') goto yy689;
        goto yy4;
-yy699:
+yy683:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy706;
-       goto yy216;
-yy700:
+       if (yych == 'o') goto yy690;
+       goto yy212;
+yy684:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 81 "../src/ast/lex_conf.re"
        { opts.set_state_set_naked (lex_conf_bool()); return; }
-#line 3270 "src/ast/lex_conf.cc"
-yy702:
+#line 3204 "src/ast/lex_conf.cc"
+yy686:
        ++cur;
 #line 82 "../src/ast/lex_conf.re"
        { opts.set_state_set_arg   (lex_conf_string ()); return; }
-#line 3275 "src/ast/lex_conf.cc"
-yy704:
+#line 3209 "src/ast/lex_conf.cc"
+yy688:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy707;
+       if (yych == 'k') goto yy691;
        goto yy4;
-yy705:
+yy689:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy708;
+       if (yych == 'k') goto yy692;
        goto yy4;
-yy706:
+yy690:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy709;
-       goto yy216;
-yy707:
+       if (yych == 'n') goto yy693;
+       goto yy212;
+yy691:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy710;
+       if (yych == 'e') goto yy694;
        goto yy4;
-yy708:
+yy692:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy711;
+       if (yych == 'e') goto yy695;
        goto yy4;
-yy709:
+yy693:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy712;
-       goto yy216;
-yy710:
+       if (yych == 'd') goto yy696;
+       goto yy212;
+yy694:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy714;
+       if (yych == 'd') goto yy698;
        goto yy4;
-yy711:
+yy695:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy716;
+       if (yych == 'd') goto yy700;
        goto yy4;
-yy712:
+yy696:
        ++cur;
 #line 68 "../src/ast/lex_conf.re"
        { opts.set_cond_set_arg     (lex_conf_string ()); return; }
-#line 3312 "src/ast/lex_conf.cc"
-yy714:
+#line 3246 "src/ast/lex_conf.cc"
+yy698:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 66 "../src/ast/lex_conf.re"
        { opts.set_cond_get_naked   (lex_conf_bool()); return; }
-#line 3320 "src/ast/lex_conf.cc"
-yy716:
+#line 3254 "src/ast/lex_conf.cc"
+yy700:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 69 "../src/ast/lex_conf.re"
        { opts.set_cond_set_naked   (lex_conf_bool()); return; }
-#line 3328 "src/ast/lex_conf.cc"
+#line 3262 "src/ast/lex_conf.cc"
 }
-#line 165 "../src/ast/lex_conf.re"
+#line 164 "../src/ast/lex_conf.re"
 
 }
 
@@ -3334,102 +3268,102 @@ void Scanner::lex_conf_encoding_policy(Opt &opts)
 {
        lex_conf_assign ();
 
-#line 3338 "src/ast/lex_conf.cc"
+#line 3272 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 10) fill(10);
        yych = (unsigned char)*cur;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy722;
+               if (yych == 'f') goto yy706;
        } else {
-               if (yych <= 'i') goto yy723;
-               if (yych == 's') goto yy724;
+               if (yych <= 'i') goto yy707;
+               if (yych == 's') goto yy708;
        }
        ++cur;
-yy721:
-#line 172 "../src/ast/lex_conf.re"
+yy705:
+#line 171 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'ignore', 'substitute', 'fail')"); }
-#line 3354 "src/ast/lex_conf.cc"
-yy722:
+#line 3288 "src/ast/lex_conf.cc"
+yy706:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy725;
-       goto yy721;
-yy723:
+       if (yych == 'a') goto yy709;
+       goto yy705;
+yy707:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'g') goto yy727;
-       goto yy721;
-yy724:
+       if (yych == 'g') goto yy711;
+       goto yy705;
+yy708:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy728;
-       goto yy721;
-yy725:
+       if (yych == 'u') goto yy712;
+       goto yy705;
+yy709:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy729;
-yy726:
+       if (yych == 'i') goto yy713;
+yy710:
        cur = mar;
-       goto yy721;
-yy727:
+       goto yy705;
+yy711:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy730;
-       goto yy726;
-yy728:
+       if (yych == 'n') goto yy714;
+       goto yy710;
+yy712:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy731;
-       goto yy726;
-yy729:
+       if (yych == 'b') goto yy715;
+       goto yy710;
+yy713:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy732;
-       goto yy726;
-yy730:
+       if (yych == 'l') goto yy716;
+       goto yy710;
+yy714:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy734;
-       goto yy726;
-yy731:
+       if (yych == 'o') goto yy718;
+       goto yy710;
+yy715:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy735;
-       goto yy726;
-yy732:
+       if (yych == 's') goto yy719;
+       goto yy710;
+yy716:
        ++cur;
-#line 176 "../src/ast/lex_conf.re"
+#line 175 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_FAIL);       goto end; }
-#line 3397 "src/ast/lex_conf.cc"
-yy734:
+#line 3331 "src/ast/lex_conf.cc"
+yy718:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy736;
-       goto yy726;
-yy735:
+       if (yych == 'r') goto yy720;
+       goto yy710;
+yy719:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy737;
-       goto yy726;
-yy736:
+       if (yych == 't') goto yy721;
+       goto yy710;
+yy720:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy738;
-       goto yy726;
-yy737:
+       if (yych == 'e') goto yy722;
+       goto yy710;
+yy721:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy740;
-       goto yy726;
-yy738:
+       if (yych == 'i') goto yy724;
+       goto yy710;
+yy722:
        ++cur;
-#line 174 "../src/ast/lex_conf.re"
+#line 173 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_IGNORE);     goto end; }
-#line 3418 "src/ast/lex_conf.cc"
-yy740:
+#line 3352 "src/ast/lex_conf.cc"
+yy724:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy726;
+       if (yych != 't') goto yy710;
        yych = (unsigned char)*++cur;
-       if (yych != 'u') goto yy726;
+       if (yych != 'u') goto yy710;
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy726;
+       if (yych != 't') goto yy710;
        yych = (unsigned char)*++cur;
-       if (yych != 'e') goto yy726;
+       if (yych != 'e') goto yy710;
        ++cur;
-#line 175 "../src/ast/lex_conf.re"
+#line 174 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); goto end; }
-#line 3431 "src/ast/lex_conf.cc"
+#line 3365 "src/ast/lex_conf.cc"
 }
-#line 177 "../src/ast/lex_conf.re"
+#line 176 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3439,77 +3373,77 @@ void Scanner::lex_conf_input(Opt &opts)
 {
        lex_conf_assign ();
 
-#line 3443 "src/ast/lex_conf.cc"
+#line 3377 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 7) fill(7);
        yych = (unsigned char)*cur;
-       if (yych <= 'b') goto yy748;
-       if (yych <= 'c') goto yy750;
-       if (yych <= 'd') goto yy751;
-yy748:
+       if (yych <= 'b') goto yy732;
+       if (yych <= 'c') goto yy734;
+       if (yych <= 'd') goto yy735;
+yy732:
        ++cur;
-yy749:
-#line 186 "../src/ast/lex_conf.re"
+yy733:
+#line 185 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'default', 'custom')"); }
-#line 3457 "src/ast/lex_conf.cc"
-yy750:
+#line 3391 "src/ast/lex_conf.cc"
+yy734:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy752;
-       goto yy749;
-yy751:
+       if (yych == 'u') goto yy736;
+       goto yy733;
+yy735:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'e') goto yy754;
-       goto yy749;
-yy752:
+       if (yych == 'e') goto yy738;
+       goto yy733;
+yy736:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy755;
-yy753:
+       if (yych == 's') goto yy739;
+yy737:
        cur = mar;
-       goto yy749;
-yy754:
+       goto yy733;
+yy738:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy756;
-       goto yy753;
-yy755:
+       if (yych == 'f') goto yy740;
+       goto yy737;
+yy739:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy757;
-       goto yy753;
-yy756:
+       if (yych == 't') goto yy741;
+       goto yy737;
+yy740:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy758;
-       goto yy753;
-yy757:
+       if (yych == 'a') goto yy742;
+       goto yy737;
+yy741:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy759;
-       goto yy753;
-yy758:
+       if (yych == 'o') goto yy743;
+       goto yy737;
+yy742:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy760;
-       goto yy753;
-yy759:
+       if (yych == 'u') goto yy744;
+       goto yy737;
+yy743:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy761;
-       goto yy753;
-yy760:
+       if (yych == 'm') goto yy745;
+       goto yy737;
+yy744:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy763;
-       goto yy753;
-yy761:
+       if (yych == 'l') goto yy747;
+       goto yy737;
+yy745:
        ++cur;
-#line 189 "../src/ast/lex_conf.re"
+#line 188 "../src/ast/lex_conf.re"
        { opts.set_input_api(INPUT_CUSTOM);  goto end; }
-#line 3504 "src/ast/lex_conf.cc"
-yy763:
+#line 3438 "src/ast/lex_conf.cc"
+yy747:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy753;
+       if (yych != 't') goto yy737;
        ++cur;
-#line 188 "../src/ast/lex_conf.re"
+#line 187 "../src/ast/lex_conf.re"
        { opts.set_input_api(INPUT_DEFAULT); goto end; }
-#line 3511 "src/ast/lex_conf.cc"
+#line 3445 "src/ast/lex_conf.cc"
 }
-#line 190 "../src/ast/lex_conf.re"
+#line 189 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3519,105 +3453,105 @@ void Scanner::lex_conf_empty_class(Opt &opts)
 {
        lex_conf_assign ();
 
-#line 3523 "src/ast/lex_conf.cc"
+#line 3457 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 11) fill(11);
        yych = (unsigned char)*cur;
-       if (yych == 'e') goto yy770;
-       if (yych == 'm') goto yy771;
+       if (yych == 'e') goto yy754;
+       if (yych == 'm') goto yy755;
        ++cur;
-yy769:
-#line 199 "../src/ast/lex_conf.re"
+yy753:
+#line 198 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'match-empty', 'match-none', 'error')"); }
-#line 3535 "src/ast/lex_conf.cc"
-yy770:
+#line 3469 "src/ast/lex_conf.cc"
+yy754:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'r') goto yy772;
-       goto yy769;
-yy771:
+       if (yych == 'r') goto yy756;
+       goto yy753;
+yy755:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy774;
-       goto yy769;
-yy772:
+       if (yych == 'a') goto yy758;
+       goto yy753;
+yy756:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy775;
-yy773:
+       if (yych == 'r') goto yy759;
+yy757:
        cur = mar;
-       goto yy769;
-yy774:
+       goto yy753;
+yy758:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy776;
-       goto yy773;
-yy775:
+       if (yych == 't') goto yy760;
+       goto yy757;
+yy759:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy777;
-       goto yy773;
-yy776:
+       if (yych == 'o') goto yy761;
+       goto yy757;
+yy760:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy778;
-       goto yy773;
-yy777:
+       if (yych == 'c') goto yy762;
+       goto yy757;
+yy761:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy779;
-       goto yy773;
-yy778:
+       if (yych == 'r') goto yy763;
+       goto yy757;
+yy762:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy781;
-       goto yy773;
-yy779:
+       if (yych == 'h') goto yy765;
+       goto yy757;
+yy763:
        ++cur;
-#line 203 "../src/ast/lex_conf.re"
+#line 202 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_ERROR);       goto end; }
-#line 3574 "src/ast/lex_conf.cc"
-yy781:
+#line 3508 "src/ast/lex_conf.cc"
+yy765:
        yych = (unsigned char)*++cur;
-       if (yych != '-') goto yy773;
+       if (yych != '-') goto yy757;
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy783;
-       if (yych == 'n') goto yy784;
-       goto yy773;
-yy783:
+       if (yych == 'e') goto yy767;
+       if (yych == 'n') goto yy768;
+       goto yy757;
+yy767:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy785;
-       goto yy773;
-yy784:
+       if (yych == 'm') goto yy769;
+       goto yy757;
+yy768:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy786;
-       goto yy773;
-yy785:
+       if (yych == 'o') goto yy770;
+       goto yy757;
+yy769:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy787;
-       goto yy773;
-yy786:
+       if (yych == 'p') goto yy771;
+       goto yy757;
+yy770:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy788;
-       goto yy773;
-yy787:
+       if (yych == 'n') goto yy772;
+       goto yy757;
+yy771:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy789;
-       goto yy773;
-yy788:
+       if (yych == 't') goto yy773;
+       goto yy757;
+yy772:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy790;
-       goto yy773;
-yy789:
+       if (yych == 'e') goto yy774;
+       goto yy757;
+yy773:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy792;
-       goto yy773;
-yy790:
+       if (yych == 'y') goto yy776;
+       goto yy757;
+yy774:
        ++cur;
-#line 202 "../src/ast/lex_conf.re"
+#line 201 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE);  goto end; }
-#line 3614 "src/ast/lex_conf.cc"
-yy792:
+#line 3548 "src/ast/lex_conf.cc"
+yy776:
        ++cur;
-#line 201 "../src/ast/lex_conf.re"
+#line 200 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); goto end; }
-#line 3619 "src/ast/lex_conf.cc"
+#line 3553 "src/ast/lex_conf.cc"
 }
-#line 204 "../src/ast/lex_conf.re"
+#line 203 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3627,65 +3561,65 @@ void Scanner::lex_conf_dfa_minimization(Opt &opts)
 {
        lex_conf_assign ();
 
-#line 3631 "src/ast/lex_conf.cc"
+#line 3565 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 5) fill(5);
        yych = (unsigned char)*cur;
-       if (yych == 'm') goto yy798;
-       if (yych == 't') goto yy799;
+       if (yych == 'm') goto yy782;
+       if (yych == 't') goto yy783;
        ++cur;
-yy797:
-#line 213 "../src/ast/lex_conf.re"
+yy781:
+#line 212 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'table', 'moore')"); }
-#line 3643 "src/ast/lex_conf.cc"
-yy798:
+#line 3577 "src/ast/lex_conf.cc"
+yy782:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'o') goto yy800;
-       goto yy797;
-yy799:
+       if (yych == 'o') goto yy784;
+       goto yy781;
+yy783:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy802;
-       goto yy797;
-yy800:
+       if (yych == 'a') goto yy786;
+       goto yy781;
+yy784:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy803;
-yy801:
+       if (yych == 'o') goto yy787;
+yy785:
        cur = mar;
-       goto yy797;
-yy802:
+       goto yy781;
+yy786:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy804;
-       goto yy801;
-yy803:
+       if (yych == 'b') goto yy788;
+       goto yy785;
+yy787:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy805;
-       goto yy801;
-yy804:
+       if (yych == 'r') goto yy789;
+       goto yy785;
+yy788:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy806;
-       goto yy801;
-yy805:
+       if (yych == 'l') goto yy790;
+       goto yy785;
+yy789:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy807;
-       goto yy801;
-yy806:
+       if (yych == 'e') goto yy791;
+       goto yy785;
+yy790:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy809;
-       goto yy801;
-yy807:
+       if (yych == 'e') goto yy793;
+       goto yy785;
+yy791:
        ++cur;
-#line 216 "../src/ast/lex_conf.re"
+#line 215 "../src/ast/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_MOORE); goto end; }
-#line 3682 "src/ast/lex_conf.cc"
-yy809:
+#line 3616 "src/ast/lex_conf.cc"
+yy793:
        ++cur;
-#line 215 "../src/ast/lex_conf.re"
+#line 214 "../src/ast/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_TABLE); goto end; }
-#line 3687 "src/ast/lex_conf.cc"
+#line 3621 "src/ast/lex_conf.cc"
 }
-#line 217 "../src/ast/lex_conf.re"
+#line 216 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3703,7 +3637,7 @@ void Scanner::lex_conf_enc(Enc::type_t enc, Opt &opts)
 void Scanner::lex_conf_assign ()
 {
 
-#line 3707 "src/ast/lex_conf.cc"
+#line 3641 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3743,56 +3677,56 @@ void Scanner::lex_conf_assign ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy815;
+               if (yych == '\t') goto yy799;
        } else {
-               if (yych <= ' ') goto yy815;
-               if (yych == '=') goto yy816;
+               if (yych <= ' ') goto yy799;
+               if (yych == '=') goto yy800;
        }
        ++cur;
-yy814:
-#line 234 "../src/ast/lex_conf.re"
+yy798:
+#line 233 "../src/ast/lex_conf.re"
        { fatal ("missing '=' in configuration"); }
-#line 3756 "src/ast/lex_conf.cc"
-yy815:
+#line 3690 "src/ast/lex_conf.cc"
+yy799:
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy819;
-               goto yy814;
+               if (yych == '\t') goto yy803;
+               goto yy798;
        } else {
-               if (yych <= ' ') goto yy819;
-               if (yych != '=') goto yy814;
+               if (yych <= ' ') goto yy803;
+               if (yych != '=') goto yy798;
        }
-yy816:
+yy800:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy816;
+               goto yy800;
        }
-#line 235 "../src/ast/lex_conf.re"
+#line 234 "../src/ast/lex_conf.re"
        { return; }
-#line 3775 "src/ast/lex_conf.cc"
-yy819:
+#line 3709 "src/ast/lex_conf.cc"
+yy803:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy819;
+               if (yych == '\t') goto yy803;
        } else {
-               if (yych <= ' ') goto yy819;
-               if (yych == '=') goto yy816;
+               if (yych <= ' ') goto yy803;
+               if (yych == '=') goto yy800;
        }
        cur = mar;
-       goto yy814;
+       goto yy798;
 }
-#line 236 "../src/ast/lex_conf.re"
+#line 235 "../src/ast/lex_conf.re"
 
 }
 
 void Scanner::lex_conf_semicolon ()
 {
 
-#line 3796 "src/ast/lex_conf.cc"
+#line 3730 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3832,39 +3766,39 @@ void Scanner::lex_conf_semicolon ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy826;
+               if (yych == '\t') goto yy810;
        } else {
-               if (yych <= ' ') goto yy826;
-               if (yych == ';') goto yy827;
+               if (yych <= ' ') goto yy810;
+               if (yych == ';') goto yy811;
        }
        ++cur;
-yy825:
-#line 242 "../src/ast/lex_conf.re"
+yy809:
+#line 241 "../src/ast/lex_conf.re"
        { fatal ("missing ending ';' in configuration"); }
-#line 3845 "src/ast/lex_conf.cc"
-yy826:
+#line 3779 "src/ast/lex_conf.cc"
+yy810:
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 128) {
-               goto yy829;
+               goto yy813;
        }
-       if (yych != ';') goto yy825;
-yy827:
+       if (yych != ';') goto yy809;
+yy811:
        ++cur;
-#line 243 "../src/ast/lex_conf.re"
+#line 242 "../src/ast/lex_conf.re"
        { return; }
-#line 3856 "src/ast/lex_conf.cc"
-yy829:
+#line 3790 "src/ast/lex_conf.cc"
+yy813:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy829;
+               goto yy813;
        }
-       if (yych == ';') goto yy827;
+       if (yych == ';') goto yy811;
        cur = mar;
-       goto yy825;
+       goto yy809;
 }
-#line 244 "../src/ast/lex_conf.re"
+#line 243 "../src/ast/lex_conf.re"
 
 }
 
@@ -3878,7 +3812,7 @@ int32_t Scanner::lex_conf_number ()
        lex_conf_assign ();
        tok = cur;
 
-#line 3882 "src/ast/lex_conf.cc"
+#line 3816 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3918,21 +3852,21 @@ int32_t Scanner::lex_conf_number ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= '/') {
-               if (yych == '-') goto yy835;
+               if (yych == '-') goto yy819;
        } else {
-               if (yych <= '0') goto yy836;
-               if (yych <= '9') goto yy838;
+               if (yych <= '0') goto yy820;
+               if (yych <= '9') goto yy822;
        }
-yy834:
-yy835:
+yy818:
+yy819:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy834;
-       if (yych <= '9') goto yy838;
-       goto yy834;
-yy836:
+       if (yych <= '0') goto yy818;
+       if (yych <= '9') goto yy822;
+       goto yy818;
+yy820:
        ++cur;
-yy837:
-#line 258 "../src/ast/lex_conf.re"
+yy821:
+#line 257 "../src/ast/lex_conf.re"
        {
                int32_t n = 0;
                if (!s_to_i32_unsafe (tok, cur, n))
@@ -3942,17 +3876,17 @@ yy837:
                lex_conf_semicolon ();
                return n;
        }
-#line 3946 "src/ast/lex_conf.cc"
-yy838:
+#line 3880 "src/ast/lex_conf.cc"
+yy822:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy838;
+               goto yy822;
        }
-       goto yy837;
+       goto yy821;
 }
-#line 267 "../src/ast/lex_conf.re"
+#line 266 "../src/ast/lex_conf.re"
 
 }
 
@@ -3962,7 +3896,7 @@ std::string Scanner::lex_conf_string ()
        std::string s;
        tok = cur;
 
-#line 3966 "src/ast/lex_conf.cc"
+#line 3900 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -4003,38 +3937,38 @@ std::string Scanner::lex_conf_string ()
        yych = (unsigned char)*cur;
        if (yych <= '!') {
                if (yych <= '\n') {
-                       if (yych <= 0x08) goto yy843;
+                       if (yych <= 0x08) goto yy827;
                } else {
-                       if (yych != ' ') goto yy843;
+                       if (yych != ' ') goto yy827;
                }
        } else {
                if (yych <= '\'') {
-                       if (yych <= '"') goto yy846;
-                       if (yych <= '&') goto yy843;
-                       goto yy846;
+                       if (yych <= '"') goto yy830;
+                       if (yych <= '&') goto yy827;
+                       goto yy830;
                } else {
-                       if (yych != ';') goto yy843;
+                       if (yych != ';') goto yy827;
                }
        }
-#line 294 "../src/ast/lex_conf.re"
+#line 293 "../src/ast/lex_conf.re"
        { goto end; }
-#line 4022 "src/ast/lex_conf.cc"
-yy843:
+#line 3956 "src/ast/lex_conf.cc"
+yy827:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy843;
+               goto yy827;
        }
-#line 290 "../src/ast/lex_conf.re"
+#line 289 "../src/ast/lex_conf.re"
        {
                s = std::string(tok, tok_len());
                goto end;
        }
-#line 4035 "src/ast/lex_conf.cc"
-yy846:
+#line 3969 "src/ast/lex_conf.cc"
+yy830:
        ++cur;
-#line 276 "../src/ast/lex_conf.re"
+#line 275 "../src/ast/lex_conf.re"
        {
                const char quote = tok[0];
                for (bool end;;) {
@@ -4049,9 +3983,9 @@ yy846:
                        }
                }
        }
-#line 4053 "src/ast/lex_conf.cc"
+#line 3987 "src/ast/lex_conf.cc"
 }
-#line 295 "../src/ast/lex_conf.re"
+#line 294 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon ();
index 4c143a8c9ca2f95618524caf1cbe06d245b502b6..e2e4fa87175294aceabc4bb3522b22afe78abf45 100644 (file)
@@ -109,16 +109,15 @@ void Scanner::lex_conf(Opt &opts)
        "define:YYSKIP"       { opts.set_yyskip       (lex_conf_string ()); return; }
        "define:YYBACKUP"     { opts.set_yybackup     (lex_conf_string ()); return; }
        "define:YYBACKUPCTX"  { opts.set_yybackupctx  (lex_conf_string ()); return; }
-       "define:YYBACKUPTAG"  { opts.set_yybackuptag  (lex_conf_string ()); return; }
        "define:YYRESTORE"    { opts.set_yyrestore    (lex_conf_string ()); return; }
        "define:YYRESTORECTX" { opts.set_yyrestorectx (lex_conf_string ()); return; }
        "define:YYRESTORETAG" { opts.set_yyrestoretag (lex_conf_string ()); return; }
-       "define:YYCOPYTAG"    { opts.set_yycopytag    (lex_conf_string ()); return; }
-       "define:YYPUSHNTAG"   { opts.set_yypushntag   (lex_conf_string ()); return; }
-       "define:YYPUSHPTAG"   { opts.set_yypushptag   (lex_conf_string ()); return; }
        "define:YYLESSTHAN"   { opts.set_yylessthan   (lex_conf_string ()); return; }
+       "define:YYTAGN"       { opts.set_yytagn       (lex_conf_string ()); return; }
+       "define:YYTAGP"       { opts.set_yytagp       (lex_conf_string ()); return; }
+       "define:YYTAGLISTN"   { opts.set_yytaglistn   (lex_conf_string ()); return; }
+       "define:YYTAGLISTP"   { opts.set_yytaglistp   (lex_conf_string ()); return; }
 
-       "tags:default"    { opts.set_tags_default   (lex_conf_string ()); return; }
        "tags:prefix"     { opts.set_tags_prefix    (lex_conf_string ()); return; }
        "tags:expression" { opts.set_tags_expression(lex_conf_string ()); return; }
 
index 08c6ddd0bc1489fba5bbed5ef7b379bc0e572ba9..49360831c7c3313143b975a29b3bda539cf3253a 100644 (file)
@@ -320,9 +320,7 @@ void gen_settags(code_lines_t &code, const DFA &dfa, tcid_t tcid, const opt_t *o
                        const std::string
                                le = vartag_expr(l, prefix, expression),
                                re = vartag_expr(r, prefix, expression),
-                               s = generic
-                                       ? opts->yycopytag + " (" + le + ", " + re + ");\n"
-                                       : le + " = " + re + ";\n";
+                               s = le + " = " + re + ";\n";
                        code.push_back(s);
 
                // save command; history
@@ -331,12 +329,12 @@ void gen_settags(code_lines_t &code, const DFA &dfa, tcid_t tcid, const opt_t *o
                                le = vartag_expr(l, prefix, expression),
                                he = vartag_expr(h, prefix, expression);
                        if (l != h) {
-                               const std::string s = opts->yycopytag + " (" + le + ", " + he + ");\n";
+                               const std::string s = le + " = " + he + ";\n";
                                code.push_back(s);
                        }
                        const std::string s = r == TAGVER_BOTTOM
-                               ? opts->yypushntag + " (" + le + ");\n"
-                               : opts->yypushptag + " (" + le + ");\n";
+                               ? opts->yytaglistn + " (" + le + ");\n"
+                               : opts->yytaglistp + " (" + le + ");\n";
                        code.push_back(s);
 
                // save command; no history; generic API
@@ -344,8 +342,8 @@ void gen_settags(code_lines_t &code, const DFA &dfa, tcid_t tcid, const opt_t *o
                        const std::string
                                v = vartag_expr(l, prefix, expression),
                                s = r == TAGVER_BOTTOM
-                                       ? opts->yycopytag + " (" + v + ", " + opts->tags_default + ");\n"
-                                       : opts->yybackuptag + " (" + v + ");\n";
+                                       ? opts->yytagn + " (" + v + ");\n"
+                                       : opts->yytagp + " (" + v + ");\n";
                        code.push_back(s);
 
                // save command; no history; default API
@@ -359,7 +357,7 @@ void gen_settags(code_lines_t &code, const DFA &dfa, tcid_t tcid, const opt_t *o
                }
        }
        if (!s1.empty()) {
-               s1 += opts->tags_default + ";\n";
+               s1 += "NULL;\n";
                code.push_back(s1);
        }
        if (!s2.empty()) {
@@ -394,19 +392,16 @@ void gen_fintags(OutputFile &o, uint32_t ind, const DFA &dfa, const Rule &rule)
                expr = vartag_expr(fins[t], prefix, expression);
 
                o.wind(ind);
-               if (generic) {
-                       if (!trailing(tag)) {
-                               o.wstring(opts->yycopytag).ws(" (").wstring(tagname(tag))
-                                       .ws(", ").wstring(expr).ws(")");
-                       } else if (dfa.oldstyle_ctxmarker) {
+               if (!trailing(tag)) {
+                       o.wstring(tagname(tag)).ws(" = ").wstring(expr);
+               } else if (generic) {
+                       if (dfa.oldstyle_ctxmarker) {
                                o.wstring(opts->yyrestorectx).ws(" ()");
                        } else {
                                o.wstring(opts->yyrestoretag).ws(" (").wstring(expr).ws(")");
                        }
                } else {
-                       if (!trailing(tag)) {
-                               o.wstring(tagname(tag)).ws(" = ").wstring(expr);
-                       } else if (dfa.oldstyle_ctxmarker) {
+                       if (dfa.oldstyle_ctxmarker) {
                                o.wstring(opts->yycursor).ws(" = ").wstring(opts->yyctxmarker);
                        } else {
                                o.wstring(opts->yycursor).ws(" = ").wstring(expr);
@@ -431,8 +426,7 @@ void gen_fintags(OutputFile &o, uint32_t ind, const DFA &dfa, const Rule &rule)
                if (generic) {
                        assert(dist == 0);
                        if (!trailing(tag)) {
-                               o.wstring(opts->yycopytag).ws(" (").wstring(tagname(tag))
-                                       .ws(", ").wstring(expr).ws(")");
+                               o.wstring(tagname(tag)).ws(" = ").wstring(expr);
                        } else if (!fixed_on_cursor) {
                                assert(!dfa.oldstyle_ctxmarker);
                                o.wstring(opts->yyrestoretag).ws(" (").wstring(expr).ws(")");
index 2297791c5bcf2a11c7c213ff2b36dfcf2925a614..ba060709bfc64a72578584f9ba6b8295f2c40bbb 100644 (file)
@@ -54,7 +54,6 @@ void mutopt_t::fix(const conopt_t *globopts)
                        state_set = Opt::baseopt.state_set;
                        state_set_arg = Opt::baseopt.state_set_arg;
                        state_set_naked = Opt::baseopt.state_set_naked;
-                       tags_default = Opt::baseopt.tags_default;
                        tags_prefix = Opt::baseopt.tags_prefix;
                        tags_expression = Opt::baseopt.tags_expression;
                        yyfilllabel = Opt::baseopt.yyfilllabel;
@@ -73,13 +72,13 @@ void mutopt_t::fix(const conopt_t *globopts)
                        yyskip = Opt::baseopt.yyskip;
                        yybackup = Opt::baseopt.yybackup;
                        yybackupctx = Opt::baseopt.yybackupctx;
-                       yybackuptag = Opt::baseopt.yybackuptag;
                        yyrestore = Opt::baseopt.yyrestore;
                        yyrestorectx = Opt::baseopt.yyrestorectx;
                        yyrestoretag = Opt::baseopt.yyrestoretag;
-                       yycopytag = Opt::baseopt.yycopytag;
-                       yypushntag = Opt::baseopt.yypushntag;
-                       yypushptag = Opt::baseopt.yypushptag;
+                       yytagn = Opt::baseopt.yytagn;
+                       yytagp = Opt::baseopt.yytagp;
+                       yytaglistn = Opt::baseopt.yytaglistn;
+                       yytaglistp = Opt::baseopt.yytaglistp;
                        yylessthan = Opt::baseopt.yylessthan;
                        dFlag = Opt::baseopt.dFlag;
                        yydebug = Opt::baseopt.yydebug;
@@ -139,7 +138,6 @@ void mutopt_t::fix(const conopt_t *globopts)
        }
        if (!tags)
        {
-               tags_default = Opt::baseopt.tags_default;
                tags_prefix = Opt::baseopt.tags_prefix;
                tags_expression = Opt::baseopt.tags_expression;
        }
@@ -166,13 +164,13 @@ void mutopt_t::fix(const conopt_t *globopts)
                yyskip = Opt::baseopt.yyskip;
                yybackup = Opt::baseopt.yybackup;
                yybackupctx = Opt::baseopt.yybackupctx;
-               yybackuptag = Opt::baseopt.yybackuptag;
                yyrestore = Opt::baseopt.yyrestore;
                yyrestorectx = Opt::baseopt.yyrestorectx;
                yyrestoretag = Opt::baseopt.yyrestoretag;
-               yycopytag = Opt::baseopt.yycopytag;
-               yypushntag = Opt::baseopt.yypushntag;
-               yypushptag = Opt::baseopt.yypushptag;
+               yytagn = Opt::baseopt.yytagn;
+               yytagp = Opt::baseopt.yytagp;
+               yytaglistn = Opt::baseopt.yytaglistn;
+               yytaglistp = Opt::baseopt.yytaglistp;
                yylessthan = Opt::baseopt.yylessthan;
        }
        if (!dFlag)
@@ -259,7 +257,6 @@ void Opt::reset_mapCodeName ()
        set_state_set(Opt::baseopt.state_set);
        set_yybackup(Opt::baseopt.yybackup);
        set_yybackupctx(Opt::baseopt.yybackupctx);
-       set_yybackuptag(Opt::baseopt.yybackuptag);
        set_yycondtype(Opt::baseopt.yycondtype);
        set_yyctxmarker(Opt::baseopt.yyctxmarker);
        set_yyctype(Opt::baseopt.yyctype);
@@ -272,9 +269,10 @@ void Opt::reset_mapCodeName ()
        set_yyrestore(Opt::baseopt.yyrestore);
        set_yyrestorectx(Opt::baseopt.yyrestorectx);
        set_yyrestoretag(Opt::baseopt.yyrestoretag);
-       set_yycopytag(Opt::baseopt.yycopytag);
-       set_yypushntag(Opt::baseopt.yypushntag);
-       set_yypushptag(Opt::baseopt.yypushptag);
+       set_yytagn(Opt::baseopt.yytagn);
+       set_yytagp(Opt::baseopt.yytagp);
+       set_yytaglistn(Opt::baseopt.yytaglistn);
+       set_yytaglistp(Opt::baseopt.yytaglistp);
        set_yyskip(Opt::baseopt.yyskip);
        set_yyfilllabel(Opt::baseopt.yyfilllabel);
        set_yynext(Opt::baseopt.yynext);
index 6a7afec9df49c0c2c41539c2d0d33612b4dd8bed..83a6b01ea7473ea702e3e9fd46d87d8462091cbf 100644 (file)
@@ -89,7 +89,6 @@ enum target_t
        MUTOPT (bool, bUseStateNext, false) \
        /* tags */ \
        MUTOPT (bool, tags, false) \
-       MUTOPT (std::string, tags_default, "NULL") \
        MUTOPT (std::string, tags_prefix, "yyt") \
        MUTOPT (std::string, tags_expression, "@@") \
        MUTOPT (bool, posix_captures, false) \
@@ -114,14 +113,14 @@ enum target_t
        MUTOPT (std::string, yyskip, "YYSKIP") \
        MUTOPT (std::string, yybackup, "YYBACKUP") \
        MUTOPT (std::string, yybackupctx, "YYBACKUPCTX") \
-       MUTOPT (std::string, yybackuptag, "YYBACKUPTAG") \
        MUTOPT (std::string, yyrestore, "YYRESTORE") \
        MUTOPT (std::string, yyrestorectx, "YYRESTORECTX") \
        MUTOPT (std::string, yyrestoretag, "YYRESTORETAG") \
-       MUTOPT (std::string, yycopytag, "YYCOPYTAG") \
-       MUTOPT (std::string, yypushntag, "YYPUSHNTAG") \
-       MUTOPT (std::string, yypushptag, "YYPUSHPTAG") \
        MUTOPT (std::string, yylessthan, "YYLESSTHAN") \
+       MUTOPT (std::string, yytagn, "YYTAGN") \
+       MUTOPT (std::string, yytagp, "YYTAGP") \
+       MUTOPT (std::string, yytaglistn, "YYTAGLISTN") \
+       MUTOPT (std::string, yytaglistp, "YYTAGLISTP") \
        /* #line directives */ \
        MUTOPT (bool, iFlag, false) \
        /* debug */ \
index 23402db53594bdf5a88c16023e96afb41248c0d3..686d670440395ef8336a31910f6213022642e488 100644 (file)
@@ -120,9 +120,9 @@ void emit_start(OutputFile &o, size_t maxfill, const std::string &name,
                o.ws("\n#define YYRESTORECTX() cursor = ctxmarker");
        }
        if (opts->tags) {
-               o.ws("\n#define YYBACKUPTAG(tag) tag = cursor");
+               o.ws("\n#define YYTAGP(tag) tag = cursor");
+               o.ws("\n#define YYTAGN(tag) tag = NULL");
                o.ws("\n#define YYRESTORETAG(tag) cursor = tag");
-               o.ws("\n#define YYCOPYTAG(tag1, tag2) tag1 = tag2");
        }
        o.ws("\n#define YYLESSTHAN(n) (limit - cursor) < n");
        o.ws("\n#define YYFILL(n) { break; }");
index 355f5553cd8f0ee8d6ef7ffd8e0aced05db9b11b..bb498ed62f3623885edd55369c0f7dda182723ce 100644 (file)
@@ -125,7 +125,7 @@ yy28:
        yych = YYPEEK ();
        switch (yych) {
        case 'a':
-               YYBACKUPTAG (yyt1);
+               YYTAGP (yyt1);
                goto yy29;
        default:        goto yy27;
        }
@@ -135,7 +135,7 @@ yy29:
        yych = YYPEEK ();
        switch (yych) {
        case 'a':
-               YYBACKUPTAG (yyt1);
+               YYTAGP (yyt1);
                goto yy29;
        default:        goto yy31;
        }
index ae3a5c8bde6329bf51922ecea550daa30f51c702..5237384be817cb1d8519a7430b9d3a4485483921 100644 (file)
@@ -25,7 +25,7 @@ yy4:
        yych = YYPEEK ();
        switch (yych) {
        case 'b':
-               YYBACKUPTAG (yyt1);
+               YYTAGP (yyt1);
                goto yy5;
        default:        goto yy3;
        }
@@ -50,7 +50,7 @@ yy7:
        yych = YYPEEK ();
        switch (yych) {
        case 'b':
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt2);
                goto yy9;
        default:        goto yy8;
        }
index a8679d68874d8acb86099de68d270ff9a9a3adeb..0237a7b50509b0906a42bf7e51af4d16c1e10a70 100644 (file)
@@ -16,7 +16,7 @@ yy2:
        { d }
 yy4:
        yych = YYPEEK ();
-       YYBACKUPTAG (yyt1);
+       YYTAGP (yyt1);
        switch (yych) {
        case 'b':
                YYSKIP ();
@@ -31,7 +31,7 @@ yy6:
        yych = YYPEEK ();
        switch (yych) {
        case 'c':
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt2);
                YYSKIP ();
                goto yy9;
        default:        goto yy8;
index e3750e04fbe45eb03409b24eb200fd17d946d8ed..86a890904caf5679102bf986c994d6da130c0402 100644 (file)
@@ -17,7 +17,7 @@ yy2:
 yy4:
        YYSKIP ();
        yych = YYPEEK ();
-       YYBACKUPTAG (yyt1);
+       YYTAGP (yyt1);
        switch (yych) {
        case 'b':       goto yy6;
        default:        goto yy5;
@@ -31,7 +31,7 @@ yy6:
        yych = YYPEEK ();
        switch (yych) {
        case 'c':
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt2);
                goto yy9;
        default:        goto yy8;
        }
index 6780a378b4102b1ac91370d2daee2c3f346a6432..91c8a8601cbc6ef55a1990911113c7a03211074a 100644 (file)
@@ -17,9 +17,9 @@ static void lex(const char *s)
 #define YYSKIP()     ++s
 #define YYBACKUP()   marker = s
 #define YYRESTORE()  s = marker
-#define ZZBT(t)      t = s
+#define ZZTP(t)      t = s
+#define ZZTN(t)      t = NULL
 #define ZZRT(t)      s = t
-#define ZZCT(t1, t2) t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     const char *zz_1;const char *zz_2;const char *zz_3;const char *zz_4;
     
@@ -37,7 +37,7 @@ static void lex(const char *s)
        case '7':
        case '8':
        case '9':
-               ZZBT (zz_1);
+               ZZTP (zz_1);
                goto yy4;
        default:        goto yy2;
        }
@@ -51,7 +51,7 @@ yy4:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               ZZBT (zz_2);
+               ZZTP (zz_2);
                goto yy5;
        case '0':
        case '1':
@@ -89,7 +89,7 @@ yy7:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               ZZBT (zz_2);
+               ZZTP (zz_2);
                goto yy5;
        case '0':
        case '1':
@@ -108,7 +108,7 @@ yy8:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               ZZBT (zz_3);
+               ZZTP (zz_3);
                goto yy10;
        case '0':
        case '1':
@@ -127,7 +127,7 @@ yy9:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               ZZBT (zz_2);
+               ZZTP (zz_2);
                goto yy5;
        default:        goto yy6;
        }
@@ -152,7 +152,7 @@ yy11:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               ZZBT (zz_3);
+               ZZTP (zz_3);
                goto yy10;
        case '0':
        case '1':
@@ -171,7 +171,7 @@ yy12:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               ZZBT (zz_4);
+               ZZTP (zz_4);
                goto yy14;
        case '0':
        case '1':
@@ -190,7 +190,7 @@ yy13:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               ZZBT (zz_3);
+               ZZTP (zz_3);
                goto yy10;
        default:        goto yy6;
        }
@@ -215,7 +215,7 @@ yy15:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               ZZBT (zz_4);
+               ZZTP (zz_4);
                goto yy14;
        case '0':
        case '1':
@@ -246,10 +246,10 @@ yy16:
        default:        goto yy17;
        }
 yy17:
-       ZZCT (p0, zz_1);
-       ZZCT (p1, zz_2);
-       ZZCT (p2, zz_3);
-       ZZCT (p3, zz_4);
+       p0 = zz_1;
+       p1 = zz_2;
+       p2 = zz_3;
+       p3 = zz_4;
        {
             printf("%u.%u.%u.%u\n",
                 parse_oct(p0, p1),
@@ -263,7 +263,7 @@ yy18:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               ZZBT (zz_4);
+               ZZTP (zz_4);
                goto yy14;
        default:        goto yy6;
        }
index a12a7f750d86fe4de255825656166143fe065af8..fe1bc27328942f2c3c73c7c8d337b5cfc35ffd61 100644 (file)
@@ -16,9 +16,9 @@ static void lex(const char *s)
 #define YYSKIP()     ++s
 #define YYBACKUP()   marker = s
 #define YYRESTORE()  s = marker
-#define ZZBT(t)      t = s
+#define ZZTP(t)      t = s
+#define ZZTN(t)      t = NULL
 #define ZZRT(t)      s = t
-#define ZZCT(t1, t2) t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     /*!tags:re2c format = "const char *@@;"; */
     /*!re2c
@@ -43,9 +43,9 @@ static void lex(const char *s)
             return;
         }
 
-        re2c:define:YYBACKUPTAG = "ZZBT";
+        re2c:define:YYTAGP = "ZZTP";
+        re2c:define:YYTAGN = "ZZTN";
         re2c:define:YYRESTORETAG = "ZZRT";
-        re2c:define:YYCOPYTAG = "ZZCT";
         re2c:tags:prefix = "zz_";
     */
 }
index 9b6c6994a9430b47b0ea2102ef40526d68fa5754..10434366e2dab217eb6e3a4cbe584c6bf3aac647 100644 (file)
@@ -68,9 +68,9 @@ static bool lex(input_t & in)
 #define YYSKIP()           ++in.cur
 #define YYBACKUP()         in.mar = in.cur
 #define YYRESTORE()        in.cur = in.mar
-#define YYBACKUPTAG(t)     t = in.cur
+#define YYTAGP(t)          t = in.cur
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    in.cur = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
 #define YYLESSTHAN(n)      in.lim - in.cur < n
 loop:
     in.tok = in.cur;
@@ -107,7 +107,7 @@ yy6:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (in.yyt1);
+               YYTAGP (in.yyt1);
                goto yy7;
        case '0':
        case '1':
@@ -145,7 +145,7 @@ yy9:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (in.yyt1);
+               YYTAGP (in.yyt1);
                goto yy7;
        case '0':
        case '1':
@@ -164,7 +164,7 @@ yy10:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (in.yyt2);
+               YYTAGP (in.yyt2);
                goto yy12;
        case '0':
        case '1':
@@ -183,7 +183,7 @@ yy11:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (in.yyt1);
+               YYTAGP (in.yyt1);
                goto yy7;
        default:        goto yy8;
        }
@@ -208,7 +208,7 @@ yy13:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (in.yyt2);
+               YYTAGP (in.yyt2);
                goto yy12;
        case '0':
        case '1':
@@ -227,7 +227,7 @@ yy14:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (in.yyt3);
+               YYTAGP (in.yyt3);
                goto yy16;
        case '0':
        case '1':
@@ -246,7 +246,7 @@ yy15:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (in.yyt2);
+               YYTAGP (in.yyt2);
                goto yy12;
        default:        goto yy8;
        }
@@ -271,7 +271,7 @@ yy17:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (in.yyt3);
+               YYTAGP (in.yyt3);
                goto yy16;
        case '0':
        case '1':
@@ -307,15 +307,15 @@ yy19:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (in.yyt3);
+               YYTAGP (in.yyt3);
                goto yy16;
        default:        goto yy8;
        }
 yy20:
        YYSKIP ();
-       YYCOPYTAG (p1, in.yyt1);
-       YYCOPYTAG (p2, in.yyt2);
-       YYCOPYTAG (p3, in.yyt3);
+       p1 = in.yyt1;
+       p2 = in.yyt2;
+       p3 = in.yyt3;
        {
             printf("> %u.%u.%u.%u\n",
                 parse_oct(in.tok, p1),
index 759610b2d257b2079c11ddd8bd799c69176cc572..70d66d2e02071a9d7bf285a7667850ade503fc48 100644 (file)
@@ -66,9 +66,9 @@ static bool lex(input_t & in)
 #define YYSKIP()           ++in.cur
 #define YYBACKUP()         in.mar = in.cur
 #define YYRESTORE()        in.cur = in.mar
-#define YYBACKUPTAG(t)     t = in.cur
+#define YYTAGP(t)          t = in.cur
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    in.cur = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
 #define YYLESSTHAN(n)      in.lim - in.cur < n
 loop:
     in.tok = in.cur;
index 96527949ba1fa5fa8b1439f406c7af4e1383e0b5..c5385a3e3dd4333c73c49098a9afcefb57d2a251 100644 (file)
@@ -26,9 +26,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     tags_t tags;
     
@@ -46,7 +46,7 @@ static void lex(const char *s)
        case '7':
        case '8':
        case '9':
-               YYBACKUPTAG (tags.yyt1);
+               YYTAGP (tags.yyt1);
                goto yy4;
        default:        goto yy2;
        }
@@ -60,7 +60,7 @@ yy4:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (tags.yyt2);
+               YYTAGP (tags.yyt2);
                goto yy5;
        case '0':
        case '1':
@@ -98,7 +98,7 @@ yy7:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (tags.yyt2);
+               YYTAGP (tags.yyt2);
                goto yy5;
        case '0':
        case '1':
@@ -117,7 +117,7 @@ yy8:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (tags.yyt3);
+               YYTAGP (tags.yyt3);
                goto yy10;
        case '0':
        case '1':
@@ -136,7 +136,7 @@ yy9:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (tags.yyt2);
+               YYTAGP (tags.yyt2);
                goto yy5;
        default:        goto yy6;
        }
@@ -161,7 +161,7 @@ yy11:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (tags.yyt3);
+               YYTAGP (tags.yyt3);
                goto yy10;
        case '0':
        case '1':
@@ -180,7 +180,7 @@ yy12:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (tags.yyt4);
+               YYTAGP (tags.yyt4);
                goto yy14;
        case '0':
        case '1':
@@ -199,7 +199,7 @@ yy13:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (tags.yyt3);
+               YYTAGP (tags.yyt3);
                goto yy10;
        default:        goto yy6;
        }
@@ -224,7 +224,7 @@ yy15:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (tags.yyt4);
+               YYTAGP (tags.yyt4);
                goto yy14;
        case '0':
        case '1':
@@ -255,10 +255,10 @@ yy16:
        default:        goto yy17;
        }
 yy17:
-       YYCOPYTAG (p0, tags.yyt1);
-       YYCOPYTAG (p1, tags.yyt2);
-       YYCOPYTAG (p2, tags.yyt3);
-       YYCOPYTAG (p3, tags.yyt4);
+       p0 = tags.yyt1;
+       p1 = tags.yyt2;
+       p2 = tags.yyt3;
+       p3 = tags.yyt4;
        {
             printf("%u.%u.%u.%u\n",
                 parse_oct(p0, p1),
@@ -272,7 +272,7 @@ yy18:
        yych = YYPEEK ();
        switch (yych) {
        case '.':
-               YYBACKUPTAG (tags.yyt4);
+               YYTAGP (tags.yyt4);
                goto yy14;
        default:        goto yy6;
        }
index 41c8efe32a7a529388f29b58cba77724858166d2..49a01fdab00daf785eb6f8ec68ac2ff33c5d0977 100644 (file)
@@ -29,9 +29,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     tags_t tags;
     /*!re2c
index 7614445b5ab73b59bcb7b3b92fd63a1894bd0e85..3ad4e069b3c4c9812b4c079a19d45b564cbabfff 100644 (file)
@@ -8,9 +8,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     const char *yyt1;const char *yyt2;const char *yyt3;const char *yyt4;const char *yyt5;
     
@@ -19,7 +19,7 @@ static void lex(const char *s)
        yych = YYPEEK ();
        switch (yych) {
        case '0':
-               YYBACKUPTAG (yyt1);
+               YYTAGP (yyt1);
                goto yy4;
        default:        goto yy2;
        }
@@ -33,7 +33,7 @@ yy4:
        yych = YYPEEK ();
        switch (yych) {
        case '1':
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt2);
                goto yy5;
        default:        goto yy3;
        }
@@ -52,7 +52,7 @@ yy7:
        yych = YYPEEK ();
        switch (yych) {
        case '2':
-               YYBACKUPTAG (yyt3);
+               YYTAGP (yyt3);
                goto yy8;
        default:        goto yy6;
        }
@@ -75,7 +75,7 @@ yy10:
        yych = YYPEEK ();
        switch (yych) {
        case '3':
-               YYBACKUPTAG (yyt4);
+               YYTAGP (yyt4);
                goto yy11;
        default:        goto yy6;
        }
@@ -105,7 +105,7 @@ yy14:
        yych = YYPEEK ();
        switch (yych) {
        case '4':
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt5);
                goto yy15;
        default:        goto yy6;
        }
@@ -139,10 +139,10 @@ yy18:
        }
 yy19:
        YYSKIP ();
-       YYCOPYTAG (p0, yyt1);
-       YYCOPYTAG (p1, yyt2);
-       YYCOPYTAG (p2, yyt3);
-       YYCOPYTAG (p3, yyt4);
+       p0 = yyt1;
+       p1 = yyt2;
+       p2 = yyt3;
+       p3 = yyt4;
        YYRESTORETAG (yyt5);
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
index 18b1846edc0391cc624cfcad95108a0b7422960e..f8b2825129ecc95350f88593c11aa8b7e9cf3a2c 100644 (file)
@@ -7,9 +7,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     /*!tags:re2c format = "const char *@@;"; */
     /*!re2c
index 28daf2229a14e1efae5b711ea168ece7bef2a47c..c1e667f8bc052fae04c12d1aae72459a5546510e 100644 (file)
@@ -8,9 +8,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     const char *yyt1;const char *yyt2;const char *yyt3;const char *yyt4;const char *yyt5;
     
@@ -19,29 +19,29 @@ static void lex(const char *s)
        yych = YYPEEK ();
        switch (yych) {
        case '0':
-               YYBACKUPTAG (yyt1);
+               YYTAGP (yyt1);
                goto yy4;
        case '1':
-               YYBACKUPTAG (yyt1);
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt1);
+               YYTAGP (yyt2);
                goto yy7;
        case '2':
-               YYBACKUPTAG (yyt1);
-               YYBACKUPTAG (yyt2);
-               YYBACKUPTAG (yyt3);
+               YYTAGP (yyt1);
+               YYTAGP (yyt2);
+               YYTAGP (yyt3);
                goto yy9;
        case '3':
-               YYBACKUPTAG (yyt1);
-               YYBACKUPTAG (yyt2);
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
+               YYTAGP (yyt1);
+               YYTAGP (yyt2);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
                goto yy11;
        case '4':
-               YYBACKUPTAG (yyt1);
-               YYBACKUPTAG (yyt2);
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt1);
+               YYTAGP (yyt2);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
+               YYTAGP (yyt5);
                goto yy13;
        default:        goto yy2;
        }
@@ -54,35 +54,35 @@ yy4:
        switch (yych) {
        case '0':       goto yy4;
        case '1':
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt2);
                goto yy7;
        case '2':
-               YYBACKUPTAG (yyt2);
-               YYBACKUPTAG (yyt3);
+               YYTAGP (yyt2);
+               YYTAGP (yyt3);
                goto yy9;
        case '3':
-               YYBACKUPTAG (yyt2);
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
+               YYTAGP (yyt2);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
                goto yy11;
        case '4':
-               YYBACKUPTAG (yyt2);
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt2);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
+               YYTAGP (yyt5);
                goto yy13;
        default:
-               YYBACKUPTAG (yyt2);
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt2);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
+               YYTAGP (yyt5);
                goto yy6;
        }
 yy6:
-       YYCOPYTAG (p0, yyt1);
-       YYCOPYTAG (p1, yyt2);
-       YYCOPYTAG (p2, yyt3);
-       YYCOPYTAG (p3, yyt4);
+       p0 = yyt1;
+       p1 = yyt2;
+       p2 = yyt3;
+       p3 = yyt4;
        YYRESTORETAG (yyt5);
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
@@ -99,21 +99,21 @@ yy7:
        switch (yych) {
        case '1':       goto yy7;
        case '2':
-               YYBACKUPTAG (yyt3);
+               YYTAGP (yyt3);
                goto yy9;
        case '3':
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
                goto yy11;
        case '4':
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
+               YYTAGP (yyt5);
                goto yy13;
        default:
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
+               YYTAGP (yyt5);
                goto yy6;
        }
 yy9:
@@ -122,15 +122,15 @@ yy9:
        switch (yych) {
        case '2':       goto yy9;
        case '3':
-               YYBACKUPTAG (yyt4);
+               YYTAGP (yyt4);
                goto yy11;
        case '4':
-               YYBACKUPTAG (yyt4);
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt4);
+               YYTAGP (yyt5);
                goto yy13;
        default:
-               YYBACKUPTAG (yyt4);
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt4);
+               YYTAGP (yyt5);
                goto yy6;
        }
 yy11:
@@ -139,10 +139,10 @@ yy11:
        switch (yych) {
        case '3':       goto yy11;
        case '4':
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt5);
                goto yy13;
        default:
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt5);
                goto yy6;
        }
 yy13:
index 1a9ae763492970d5352b6c55c8ed0ddf266c6d00..65b2f90e0e57896b3bfd4abc2b5215c95d76bfb0 100644 (file)
@@ -7,9 +7,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     /*!tags:re2c format = "const char *@@;"; */
     /*!re2c
index b5fab2542750430ae8a9b3400b3183d3c3024266..e73da6e29048d2051db4eac0337f6fd296269b2d 100644 (file)
@@ -8,9 +8,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     const char *yyt1;const char *yyt2;const char *yyt3;const char *yyt4;const char *yyt5;
     
@@ -19,7 +19,7 @@ static void lex(const char *s)
        yych = YYPEEK ();
        switch (yych) {
        case '0':
-               YYBACKUPTAG (yyt1);
+               YYTAGP (yyt1);
                goto yy4;
        default:        goto yy2;
        }
@@ -33,11 +33,11 @@ yy4:
        yych = YYPEEK ();
        switch (yych) {
        case '1':
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt2);
                goto yy5;
        case '2':
-               YYBACKUPTAG (yyt2);
-               YYBACKUPTAG (yyt3);
+               YYTAGP (yyt2);
+               YYTAGP (yyt3);
                goto yy8;
        default:        goto yy3;
        }
@@ -47,7 +47,7 @@ yy5:
        switch (yych) {
        case '1':       goto yy5;
        case '2':
-               YYBACKUPTAG (yyt3);
+               YYTAGP (yyt3);
                goto yy8;
        default:        goto yy7;
        }
@@ -59,11 +59,11 @@ yy8:
        yych = YYPEEK ();
        switch (yych) {
        case '3':
-               YYBACKUPTAG (yyt4);
+               YYTAGP (yyt4);
                goto yy9;
        case '4':
-               YYBACKUPTAG (yyt4);
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt4);
+               YYTAGP (yyt5);
                goto yy11;
        default:        goto yy7;
        }
@@ -73,16 +73,16 @@ yy9:
        switch (yych) {
        case '3':       goto yy9;
        case '4':
-               YYBACKUPTAG (yyt5);
+               YYTAGP (yyt5);
                goto yy11;
        default:        goto yy7;
        }
 yy11:
        YYSKIP ();
-       YYCOPYTAG (p0, yyt1);
-       YYCOPYTAG (p1, yyt2);
-       YYCOPYTAG (p2, yyt3);
-       YYCOPYTAG (p3, yyt4);
+       p0 = yyt1;
+       p1 = yyt2;
+       p2 = yyt3;
+       p3 = yyt4;
        YYRESTORETAG (yyt5);
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
index 7b396be10b1519ab7e86b8c5a14b83ccfa0d1e51..e2af241db902445f68130465b3e58cdad548feed 100644 (file)
@@ -7,9 +7,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     /*!tags:re2c format = "const char *@@;"; */
     /*!re2c
index c2e3316befe3780016a6b9a1555dbb2ee7962c06..230562da81a70a136599c877b8a911101f3af7a9 100644 (file)
@@ -8,9 +8,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     const char *yyt1;const char *yyt2;const char *yyt3;const char *yyt4;const char *yyt5;
     
@@ -19,11 +19,11 @@ static void lex(const char *s)
        yych = YYPEEK ();
        switch (yych) {
        case '0':
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt2);
                goto yy4;
        case '1':
-               YYBACKUPTAG (yyt1);
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt1);
+               YYTAGP (yyt2);
                goto yy5;
        default:        goto yy2;
        }
@@ -46,11 +46,11 @@ yy5:
        yych = YYPEEK ();
        switch (yych) {
        case '2':
-               YYBACKUPTAG (yyt3);
+               YYTAGP (yyt3);
                goto yy10;
        case '3':
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
                goto yy12;
        default:        goto yy3;
        }
@@ -61,7 +61,7 @@ yy7:
        switch (yych) {
        case '0':       goto yy6;
        case '1':
-               YYBACKUPTAG (yyt1);
+               YYTAGP (yyt1);
                goto yy9;
        default:        goto yy8;
        }
@@ -73,11 +73,11 @@ yy9:
        yych = YYPEEK ();
        switch (yych) {
        case '2':
-               YYBACKUPTAG (yyt3);
+               YYTAGP (yyt3);
                goto yy10;
        case '3':
-               YYBACKUPTAG (yyt3);
-               YYBACKUPTAG (yyt4);
+               YYTAGP (yyt3);
+               YYTAGP (yyt4);
                goto yy12;
        default:        goto yy8;
        }
@@ -87,20 +87,20 @@ yy10:
        switch (yych) {
        case '2':       goto yy10;
        case '3':
-               YYBACKUPTAG (yyt4);
+               YYTAGP (yyt4);
                goto yy12;
        default:        goto yy8;
        }
 yy12:
        YYSKIP ();
        yych = YYPEEK ();
-       YYBACKUPTAG (yyt5);
+       YYTAGP (yyt5);
        goto yy15;
 yy13:
-       YYCOPYTAG (p0, yyt2);
-       YYCOPYTAG (p1, yyt1);
-       YYCOPYTAG (p2, yyt3);
-       YYCOPYTAG (p3, yyt4);
+       p0 = yyt2;
+       p1 = yyt1;
+       p2 = yyt3;
+       p3 = yyt4;
        YYRESTORETAG (yyt5);
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
index 26a575fa993abcc4233b47f7bdaad57664802212..6945d924d9930aabb85e9a8137604d2ee795e5a3 100644 (file)
@@ -7,9 +7,9 @@ static void lex(const char *s)
 #define YYSKIP()           ++s
 #define YYBACKUP()         marker = s
 #define YYRESTORE()        s = marker
-#define YYBACKUPTAG(t)     t = s
+#define YYTAGP(t)          t = s
+#define YYTAGN(t)          t = NULL
 #define YYRESTORETAG(t)    s = t
-#define YYCOPYTAG(t1, t2)  t1 = t2
     const char *marker, *p0, *p1, *p2, *p3;
     /*!tags:re2c format = "const char *@@;"; */
     /*!re2c
similarity index 68%
rename from re2c/test/tags/lost_yybackuptag.i--tags--no-lookahead--input(custom).c
rename to re2c/test/tags/lost_tag.i--tags--no-lookahead--input(custom).c
index 8eda69876a7074ee81bc37f3ea685ce3863439b9..b9b503bd3d56b579ab04f00e4b88c06a89c18a3d 100644 (file)
@@ -2,22 +2,22 @@
 
 {
        YYCTYPE yych;
-       YYBACKUPTAG (yyt1);
+       YYTAGP (yyt1);
        if (YYLESSTHAN (1)) YYFILL(1);
        yych = YYPEEK ();
        YYSKIP ();
        switch (yych) {
        case 'a':
-               YYBACKUPTAG (yyt2);
+               YYTAGP (yyt2);
                goto yy2;
        default:
-               YYCOPYTAG (yyt1, NULL);
-               YYBACKUPTAG (yyt2);
+               YYTAGN (yyt1);
+               YYTAGP (yyt2);
                goto yy2;
        }
 yy2:
-       YYCOPYTAG (a, yyt1);
-       YYCOPYTAG (b, yyt2);
+       a = yyt1;
+       b = yyt2;
        {}
 }