]> granicus.if.org Git - re2c/commitdiff
Added option '--no-optimize-tags' (switches off tag optimizations).
authorUlya Trofimovich <skvadrik@gmail.com>
Mon, 17 Jul 2017 22:03:53 +0000 (23:03 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Mon, 17 Jul 2017 22:03:53 +0000 (23:03 +0100)
re2c/bootstrap/src/ast/lex_conf.cc
re2c/bootstrap/src/conf/parse_opts.cc
re2c/src/ast/lex_conf.re
re2c/src/compile.cc
re2c/src/conf/opt.cc
re2c/src/conf/opt.h
re2c/src/conf/parse_opts.re
re2c/src/dfa/cfg/optimize.cc
re2c/src/dfa/dfa.h

index 568a7ca55d6d2a97525e37c3a6098bbeab2e6a52..a1be33d41b9cadb4cd0365189b2c324d1b8c7de7 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 on Thu Apr  6 16:25:33 2017 */
+/* Generated by re2c 0.16 on Mon Jul 17 22:55:04 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 159 "../src/ast/lex_conf.re"
+#line 160 "../src/ast/lex_conf.re"
        {
                fatal_error(cline, get_column(),
                        "unrecognized configuration '%.*s'",
@@ -407,95 +407,96 @@ yy70:
        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;
+       case 'o':       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;
        default:        goto yy4;
        }
 yy71:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy115;
+       if (yych == ':') goto yy116;
        goto yy4;
 yy72:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy116;
+       if (yych == 'y') goto yy117;
        goto yy4;
 yy73:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy117;
+       if (yych == 'r') goto yy118;
        goto yy4;
 yy74:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy118;
+       if (yych == 'a') goto yy119;
        goto yy4;
 yy75:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy119;
-       if (yych == 'n') goto yy120;
+       if (yych == 'a') goto yy120;
+       if (yych == 'n') goto yy121;
        goto yy4;
 yy76:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy121;
+       if (yych == 'x') goto yy122;
        goto yy4;
 yy77:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy122;
+       if (yych == 'r') goto yy123;
        goto yy4;
 yy78:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy123;
+       if (yych == 'l') goto yy124;
        goto yy4;
 yy79:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy124;
+       if (yych == 'e') goto yy125;
        goto yy4;
 yy80:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy125;
+       if (yych == 'o') goto yy126;
        goto yy4;
 yy81:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy126;
+       if (yych == 'm') goto yy127;
        goto yy4;
 yy82:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy127;
+       if (yych == ':') goto yy128;
        goto yy4;
 yy83:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy128;
+       if (yych == 'h') goto yy129;
        goto yy4;
 yy84:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy129;
+       if (yych == 'v') goto yy130;
        goto yy4;
 yy85:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy130;
+       if (yych == 't') goto yy131;
        goto yy4;
 yy86:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy131;
+       if (yych == 'm') goto yy132;
        goto yy4;
 yy87:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy132;
+       if (yych == 'f') goto yy133;
        goto yy4;
 yy88:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy133;
+       if (yych == 'Y') goto yy134;
        goto yy4;
 yy89:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 57 "../src/ast/lex_conf.re"
+#line 58 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UTF8, opts);   return; }
-#line 499 "src/ast/lex_conf.cc"
+#line 500 "src/ast/lex_conf.cc"
 yy91:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
@@ -503,7 +504,7 @@ yy91:
        }
 #line 46 "../src/ast/lex_conf.re"
        { opts.set_tags(lex_conf_bool());               return; }
-#line 507 "src/ast/lex_conf.cc"
+#line 508 "src/ast/lex_conf.cc"
 yy93:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
@@ -517,18 +518,18 @@ yy93:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'i') goto yy134;
+                       if (yych == 'i') goto yy135;
                        if (yych <= 'z') goto yy3;
                }
        }
 yy94:
 #line 41 "../src/ast/lex_conf.re"
        { opts.set_bFlag(lex_conf_bool());              return; }
-#line 528 "src/ast/lex_conf.cc"
+#line 529 "src/ast/lex_conf.cc"
 yy95:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy135;
-       if (yych == 'o') goto yy136;
+       if (yych == 'a') goto yy136;
+       if (yych == 'o') goto yy137;
        goto yy4;
 yy96:
        yych = (unsigned char)*++cur;
@@ -544,15 +545,15 @@ yy96:
                if (yych <= 'd') {
                        if (yych != '`') goto yy3;
                } else {
-                       if (yych <= 'e') goto yy137;
-                       if (yych <= 'f') goto yy138;
+                       if (yych <= 'e') goto yy138;
+                       if (yych <= 'f') goto yy139;
                        if (yych <= 'z') goto yy3;
                }
        }
 yy97:
 #line 42 "../src/ast/lex_conf.re"
        { opts.set_dFlag(lex_conf_bool());              return; }
-#line 556 "src/ast/lex_conf.cc"
+#line 557 "src/ast/lex_conf.cc"
 yy98:
        yych = (unsigned char)*++cur;
        if (yych <= '_') {
@@ -567,23 +568,23 @@ yy98:
        } else {
                if (yych <= 'c') {
                        if (yych <= '`') goto yy99;
-                       if (yych <= 'a') goto yy139;
+                       if (yych <= 'a') goto yy140;
                        if (yych <= 'b') goto yy3;
-                       goto yy140;
+                       goto yy141;
                } else {
                        if (yych <= 'm') {
                                if (yych <= 'l') goto yy3;
-                               goto yy141;
+                               goto yy142;
                        } else {
-                               if (yych <= 'n') goto yy142;
+                               if (yych <= 'n') goto yy143;
                                if (yych <= 'z') goto yy3;
                        }
                }
        }
 yy99:
-#line 53 "../src/ast/lex_conf.re"
+#line 54 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::EBCDIC, opts); return; }
-#line 587 "src/ast/lex_conf.cc"
+#line 588 "src/ast/lex_conf.cc"
 yy100:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
@@ -591,7 +592,7 @@ yy100:
        }
 #line 43 "../src/ast/lex_conf.re"
        { opts.set_gFlag(lex_conf_bool());              return; }
-#line 595 "src/ast/lex_conf.cc"
+#line 596 "src/ast/lex_conf.cc"
 yy102:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
@@ -605,60 +606,64 @@ yy102:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'n') goto yy143;
+                       if (yych == 'n') goto yy144;
                        if (yych <= 'z') goto yy3;
                }
        }
 yy103:
 #line 44 "../src/ast/lex_conf.re"
        { opts.set_iFlag(lex_conf_bool());              return; }
-#line 616 "src/ast/lex_conf.cc"
+#line 617 "src/ast/lex_conf.cc"
 yy104:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy144;
-       if (yych == 'o') goto yy145;
+       if (yych == 'e') goto yy145;
+       if (yych == 'o') goto yy146;
        goto yy4;
 yy105:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy146;
+       if (yych == 'p') goto yy147;
        goto yy4;
 yy106:
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy148;
+       goto yy4;
+yy107:
        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 633 "src/ast/lex_conf.cc"
-yy108:
+#line 638 "src/ast/lex_conf.cc"
+yy109:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy147;
+       if (yych == 'a') goto yy149;
        goto yy4;
-yy109:
+yy110:
        yych = (unsigned char)*++cur;
        if (yych <= '^') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy110;
+                       if (yych <= '@') goto yy111;
                        if (yych <= 'Z') goto yy3;
                }
        } else {
                if (yych <= 'n') {
-                       if (yych == '`') goto yy110;
+                       if (yych == '`') goto yy111;
                        if (yych <= 'm') goto yy3;
-                       goto yy148;
+                       goto yy150;
                } else {
-                       if (yych == 't') goto yy149;
+                       if (yych == 't') goto yy151;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy110:
-#line 54 "../src/ast/lex_conf.re"
-       { lex_conf_enc(Enc::UTF32, opts);  return; }
-#line 661 "src/ast/lex_conf.cc"
 yy111:
+#line 55 "../src/ast/lex_conf.re"
+       { lex_conf_enc(Enc::UTF32, opts);  return; }
+#line 666 "src/ast/lex_conf.cc"
+yy112:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -671,505 +676,500 @@ yy111:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'i') goto yy150;
+                       if (yych == 'i') goto yy152;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy112:
-#line 55 "../src/ast/lex_conf.re"
-       { lex_conf_enc(Enc::UCS2, opts);   return; }
-#line 682 "src/ast/lex_conf.cc"
 yy113:
+#line 56 "../src/ast/lex_conf.re"
+       { lex_conf_enc(Enc::UCS2, opts);   return; }
+#line 687 "src/ast/lex_conf.cc"
+yy114:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 56 "../src/ast/lex_conf.re"
+#line 57 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UTF16, opts);  return; }
-#line 690 "src/ast/lex_conf.cc"
-yy115:
-       yych = (unsigned char)*++cur;
-       if (yych <= 'r') goto yy4;
-       if (yych <= 's') goto yy151;
-       if (yych <= 't') goto yy152;
-       goto yy4;
+#line 695 "src/ast/lex_conf.cc"
 yy116:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy153;
+       if (yych <= 'r') goto yy4;
+       if (yych <= 's') goto yy153;
+       if (yych <= 't') goto yy154;
        goto yy4;
 yy117:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy154;
+       if (yych == 'y') goto yy155;
        goto yy4;
 yy118:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy155;
+       if (yych == 'e') goto yy156;
        goto yy4;
 yy119:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy156;
+       if (yych == 'b') goto yy157;
        goto yy4;
 yy120:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy157;
+       if (yych == 'b') goto yy158;
        goto yy4;
 yy121:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy158;
+       if (yych == 'e') goto yy159;
        goto yy4;
 yy122:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy159;
+       if (yych == 'p') goto yy160;
        goto yy4;
 yy123:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy160;
+       if (yych == 'e') goto yy161;
        goto yy4;
 yy124:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy161;
+       if (yych == 'e') goto yy162;
        goto yy4;
 yy125:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy163;
+       if (yych == 'x') goto yy163;
        goto yy4;
 yy126:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy164;
+       if (yych == 'n') goto yy165;
        goto yy4;
 yy127:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy166;
+       goto yy4;
+yy128:
        yych = (unsigned char)*++cur;
        if (yych <= 'd') {
-               if (yych == 'c') goto yy165;
+               if (yych == 'c') goto yy167;
                goto yy4;
        } else {
-               if (yych <= 'e') goto yy166;
-               if (yych == 'p') goto yy167;
+               if (yych <= 'e') goto yy168;
+               if (yych == 'p') goto yy169;
                goto yy4;
        }
-yy128:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy168;
-       goto yy4;
 yy129:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy169;
+       if (yych == 'r') goto yy170;
        goto yy4;
 yy130:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy170;
+       if (yych == 'i') goto yy171;
        goto yy4;
 yy131:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy172;
+       if (yych == 'o') goto yy172;
        goto yy4;
 yy132:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy173;
+       if (yych == 'p') goto yy174;
        goto yy4;
 yy133:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy174;
+       if (yych == 'i') goto yy175;
        goto yy4;
 yy134:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy175;
+       if (yych == 'Y') goto yy176;
        goto yy4;
 yy135:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy176;
+       if (yych == 't') goto yy177;
        goto yy4;
 yy136:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy177;
+       if (yych == 's') goto yy178;
        goto yy4;
 yy137:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy178;
+       if (yych == 'm') goto yy179;
        goto yy4;
 yy138:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy179;
+       if (yych == 'b') goto yy180;
        goto yy4;
 yy139:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy180;
+       if (yych == 'a') goto yy181;
        goto yy4;
 yy140:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy181;
+       if (yych == 'g') goto yy182;
        goto yy4;
 yy141:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy182;
+       if (yych == 'b') goto yy183;
        goto yy4;
 yy142:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy183;
+       if (yych == 'p') goto yy184;
        goto yy4;
 yy143:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy184;
+       if (yych == 'c') goto yy185;
        goto yy4;
 yy144:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy185;
+       if (yych == 'p') goto yy186;
        goto yy4;
 yy145:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy186;
+       if (yych == 's') goto yy187;
        goto yy4;
 yy146:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy187;
+       if (yych == '-') goto yy188;
        goto yy4;
 yy147:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy188;
+       if (yych == 't') goto yy189;
        goto yy4;
 yy148:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy189;
+       if (yych == 's') goto yy190;
        goto yy4;
 yy149:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy190;
+       if (yych == 'g') goto yy191;
        goto yy4;
 yy150:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy191;
+       if (yych == 'i') goto yy192;
        goto yy4;
 yy151:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy192;
+       if (yych == 'f') goto yy193;
        goto yy4;
 yy152:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy193;
+       if (yych == 'd') goto yy194;
        goto yy4;
 yy153:
        yych = (unsigned char)*++cur;
-       if (yych == 'F') goto yy194;
-       if (yych == 'N') goto yy195;
+       if (yych == 't') goto yy195;
        goto yy4;
 yy154:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy196;
+       if (yych == 'o') goto yy196;
        goto yy4;
 yy155:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy197;
+       if (yych == 'F') goto yy197;
+       if (yych == 'N') goto yy198;
        goto yy4;
 yy156:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy198;
+       if (yych == 'f') goto yy199;
        goto yy4;
 yy157:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy199;
+       if (yych == 'e') goto yy200;
        goto yy4;
 yy158:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy200;
+       if (yych == 'o') goto yy201;
        goto yy4;
 yy159:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy201;
+       if (yych == 'x') goto yy202;
        goto yy4;
 yy160:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy202;
+       if (yych == 'r') goto yy203;
        goto yy4;
 yy161:
+       yych = (unsigned char)*++cur;
+       if (yych == 'f') goto yy204;
+       goto yy4;
+yy162:
+       yych = (unsigned char)*++cur;
+       if (yych == ':') goto yy205;
+       goto yy4;
+yy163:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 90 "../src/ast/lex_conf.re"
+#line 91 "../src/ast/lex_conf.re"
        { opts.set_yybmHexTable (lex_conf_bool()); return; }
-#line 891 "src/ast/lex_conf.cc"
-yy163:
-       yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy203;
-       goto yy4;
-yy164:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy204;
-       goto yy4;
+#line 900 "src/ast/lex_conf.cc"
 yy165:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy206;
+       if (yych == 'v') goto yy206;
        goto yy4;
 yy166:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy207;
+       if (yych == 't') goto yy207;
        goto yy4;
 yy167:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy208;
+       if (yych == 'h') goto yy209;
        goto yy4;
 yy168:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy209;
+       if (yych == 'n') goto yy210;
        goto yy4;
 yy169:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy210;
+       if (yych == 'a') goto yy211;
        goto yy4;
 yy170:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy212;
+       goto yy4;
+yy171:
+       yych = (unsigned char)*++cur;
+       if (yych == 'd') goto yy213;
+       goto yy4;
+yy172:
        yyaccept = 0;
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       if (yych == '@') goto yy211;
-yy171:
-#line 74 "../src/ast/lex_conf.re"
+       if (yych == '@') goto yy214;
+yy173:
+#line 75 "../src/ast/lex_conf.re"
        { opts.set_condGoto         (lex_conf_string ()); return; }
-#line 930 "src/ast/lex_conf.cc"
-yy172:
+#line 939 "src/ast/lex_conf.cc"
+yy174:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy213;
+       if (yych == 'r') goto yy216;
        goto yy4;
-yy173:
+yy175:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy214;
+       if (yych == 'x') goto yy217;
        goto yy4;
-yy174:
+yy176:
        yych = (unsigned char)*++cur;
        switch (yych) {
-       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;
+       case 'B':       goto yy219;
+       case 'C':       goto yy220;
+       case 'D':       goto yy221;
+       case 'F':       goto yy222;
+       case 'G':       goto yy223;
+       case 'L':       goto yy224;
+       case 'M':       goto yy225;
+       case 'P':       goto yy226;
+       case 'R':       goto yy227;
+       case 'S':       goto yy228;
+       case 'T':       goto yy229;
        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;
+       if (yych == '-') goto yy230;
        goto yy4;
 yy178:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy230;
+       if (yych == 'e') goto yy231;
        goto yy4;
 yy179:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy231;
+       if (yych == 'p') goto yy232;
        goto yy4;
 yy180:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy232;
+       if (yych == 'u') goto yy233;
        goto yy4;
 yy181:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-       goto yy99;
+       if (yych == '-') goto yy234;
+       goto yy4;
 yy182:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy233;
+       if (yych == 'e') goto yy235;
        goto yy4;
 yy183:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy234;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy99;
 yy184:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy235;
+       if (yych == 't') goto yy236;
        goto yy4;
 yy185:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy236;
+       if (yych == 'o') goto yy237;
        goto yy4;
 yy186:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy237;
-       if (yych == 'l') goto yy238;
+       if (yych == 'u') goto yy238;
        goto yy4;
 yy187:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy239;
+       if (yych == 't') goto yy239;
        goto yy4;
 yy188:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy91;
+       if (yych == 'd') goto yy240;
+       if (yych == 'l') goto yy241;
        goto yy4;
 yy189:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy240;
+       if (yych == 'i') goto yy242;
        goto yy4;
 yy190:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy241;
+       if (yych == 'i') goto yy243;
        goto yy4;
 yy191:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy242;
+       if (yych == 's') goto yy91;
        goto yy4;
 yy192:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy243;
+       if (yych == 'c') goto yy244;
        goto yy4;
 yy193:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy244;
+       if (yych == '-') goto yy245;
        goto yy4;
 yy194:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy246;
+       if (yych == 'e') goto yy246;
        goto yy4;
 yy195:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy247;
+       if (yych == 'r') goto yy247;
        goto yy4;
 yy196:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy248;
+       if (yych == 'p') goto yy248;
        goto yy4;
 yy197:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy249;
+       if (yych == 'i') goto yy250;
        goto yy4;
 yy198:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy251;
+       if (yych == 'e') goto yy251;
        goto yy4;
 yy199:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy252;
+       if (yych == 'i') goto yy252;
        goto yy4;
 yy200:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy253;
+       if (yych == 'l') goto yy253;
        goto yy4;
 yy201:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy254;
+       if (yych == 'r') goto yy255;
        goto yy4;
 yy202:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy255;
+       if (yych == 't') goto yy256;
        goto yy4;
 yy203:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy256;
+       if (yych == 'e') goto yy257;
        goto yy4;
 yy204:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy258;
+       goto yy4;
+yy205:
+       yych = (unsigned char)*++cur;
+       if (yych == 'y') goto yy259;
+       goto yy4;
+yy206:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy260;
+       goto yy4;
+yy207:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 141 "../src/ast/lex_conf.re"
+#line 142 "../src/ast/lex_conf.re"
        { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
-#line 1081 "src/ast/lex_conf.cc"
-yy206:
+#line 1094 "src/ast/lex_conf.cc"
+yy209:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy257;
+       if (yych == 'e') goto yy261;
        goto yy4;
-yy207:
+yy210:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy258;
+       if (yych == 'a') goto yy262;
        goto yy4;
-yy208:
+yy211:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy259;
+       if (yych == 'r') goto yy263;
        goto yy4;
-yy209:
+yy212:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy260;
+       if (yych == 's') goto yy264;
        goto yy4;
-yy210:
+yy213:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy261;
+       if (yych == 'e') goto yy265;
        goto yy4;
-yy211:
+yy214:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy262;
-yy212:
+       if (yych == 'c') goto yy266;
+yy215:
        cur = mar;
        if (yyaccept <= 2) {
                if (yyaccept <= 1) {
                        if (yyaccept == 0) {
-                               goto yy171;
+                               goto yy173;
                        } else {
-                               goto yy250;
+                               goto yy254;
                        }
                } else {
-                       goto yy318;
+                       goto yy323;
                }
        } else {
                if (yyaccept <= 4) {
                        if (yyaccept == 3) {
-                               goto yy383;
+                               goto yy389;
                        } else {
-                               goto yy580;
+                               goto yy590;
                        }
                } else {
-                       goto yy662;
+                       goto yy676;
                }
        }
-yy213:
+yy216:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy263;
+       if (yych == 'e') goto yy267;
        goto yy4;
-yy214:
+yy217:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 70 "../src/ast/lex_conf.re"
+#line 71 "../src/ast/lex_conf.re"
        { opts.set_condPrefix       (lex_conf_string ()); return; }
-#line 1139 "src/ast/lex_conf.cc"
-yy216:
+#line 1152 "src/ast/lex_conf.cc"
+yy219:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy264;
+       if (yych == 'A') goto yy268;
        goto yy4;
-yy217:
+yy220:
        yych = (unsigned char)*++cur;
        if (yych <= 'S') {
-               if (yych == 'O') goto yy265;
+               if (yych == 'O') goto yy269;
                goto yy4;
        } else {
-               if (yych <= 'T') goto yy266;
-               if (yych <= 'U') goto yy267;
+               if (yych <= 'T') goto yy270;
+               if (yych <= 'U') goto yy271;
                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;
+       if (yych == 'E') goto yy272;
        goto yy4;
 yy222:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy273;
+       if (yych == 'I') goto yy273;
        goto yy4;
 yy223:
        yych = (unsigned char)*++cur;
@@ -1178,91 +1178,108 @@ yy223:
 yy224:
        yych = (unsigned char)*++cur;
        if (yych == 'E') goto yy275;
+       if (yych == 'I') goto yy276;
        goto yy4;
 yy225:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy276;
-       if (yych == 'K') goto yy277;
+       if (yych == 'A') goto yy277;
        goto yy4;
 yy226:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy278;
+       if (yych == 'E') goto yy278;
        goto yy4;
 yy227:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy279;
+       if (yych == 'E') goto yy279;
        goto yy4;
 yy228:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy280;
+       if (yych == 'E') goto yy280;
+       if (yych == 'K') goto yy281;
        goto yy4;
 yy229:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy281;
+       if (yych == 'A') goto yy282;
        goto yy4;
 yy230:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy282;
+       if (yych == 'v') goto yy283;
        goto yy4;
 yy231:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy283;
+       if (yych == '-') goto yy284;
        goto yy4;
 yy232:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy284;
+       if (yych == 'u') goto yy285;
        goto yy4;
 yy233:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy285;
+       if (yych == 'g') goto yy286;
        goto yy4;
 yy234:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy286;
+       if (yych == 'm') goto yy287;
        goto yy4;
 yy235:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy287;
+       if (yych == 'r') goto yy288;
        goto yy4;
 yy236:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy289;
+       if (yych == 'y') goto yy289;
        goto yy4;
 yy237:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy290;
+       if (yych == 'd') goto yy290;
        goto yy4;
 yy238:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy291;
+       if (yych == 't') goto yy291;
        goto yy4;
 yy239:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy292;
+       if (yych == 'e') goto yy293;
        goto yy4;
 yy240:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy293;
+       if (yych == 'e') goto yy294;
        goto yy4;
 yy241:
        yych = (unsigned char)*++cur;
-       if (yych == '1') goto yy294;
-       if (yych == '8') goto yy89;
+       if (yych == 'o') goto yy295;
        goto yy4;
 yy242:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy295;
+       if (yych == 'm') goto yy296;
        goto yy4;
 yy243:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy296;
+       if (yych == 'x') goto yy297;
        goto yy4;
 yy244:
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy298;
+       goto yy4;
+yy245:
+       yych = (unsigned char)*++cur;
+       if (yych == '1') goto yy299;
+       if (yych == '8') goto yy89;
+       goto yy4;
+yy246:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy300;
+       goto yy4;
+yy247:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy301;
+       goto yy4;
+yy248:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 126 "../src/ast/lex_conf.re"
+#line 127 "../src/ast/lex_conf.re"
        {
                const int32_t n = lex_conf_number ();
                if (n < 0)
@@ -1272,20 +1289,20 @@ yy244:
                opts.set_topIndent (static_cast<uint32_t> (n));
                return;
        }
-#line 1276 "src/ast/lex_conf.cc"
-yy246:
+#line 1293 "src/ast/lex_conf.cc"
+yy250:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy297;
+       if (yych == 'l') goto yy302;
        goto yy4;
-yy247:
+yy251:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy298;
+       if (yych == 'x') goto yy303;
        goto yy4;
-yy248:
+yy252:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy299;
+       if (yych == 'x') goto yy304;
        goto yy4;
-yy249:
+yy253:
        yyaccept = 1;
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
@@ -1294,584 +1311,592 @@ yy249:
        if (yych <= 0x1F) {
                if (yych == '\t') {
                        ctx = cur;
-                       goto yy301;
+                       goto yy306;
                }
        } else {
                if (yych <= ' ') {
                        ctx = cur;
-                       goto yy301;
+                       goto yy306;
                }
                if (yych == '=') {
                        ctx = cur;
-                       goto yy303;
+                       goto yy308;
                }
        }
-yy250:
-#line 154 "../src/ast/lex_conf.re"
-       { opts.set_startlabel       (lex_conf_string()); return; }
-#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 == 'x') goto yy309;
-       goto yy4;
+#line 155 "../src/ast/lex_conf.re"
+       { opts.set_startlabel       (lex_conf_string()); return; }
+#line 1330 "src/ast/lex_conf.cc"
 yy255:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy311;
+       if (yych == 't') goto yy310;
        goto yy4;
 yy256:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy312;
+       if (yych == 'l') goto yy312;
        goto yy4;
 yy257:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy313;
+       if (yych == 's') goto yy313;
        goto yy4;
 yy258:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy314;
+       if (yych == 'x') goto yy314;
        goto yy4;
 yy259:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy315;
+       if (yych == 'y') goto yy316;
        goto yy4;
 yy260:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy316;
+       if (yych == 'r') goto yy317;
        goto yy4;
 yy261:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy317;
+       if (yych == 'c') goto yy318;
        goto yy4;
 yy262:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy319;
-       goto yy212;
+       if (yych == 'b') goto yy319;
+       goto yy4;
 yy263:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy320;
+       if (yych == 'a') goto yy320;
        goto yy4;
 yy264:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy321;
+       if (yych == 'h') goto yy321;
        goto yy4;
 yy265:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy322;
+       if (yych == 'r') goto yy322;
        goto yy4;
 yy266:
        yych = (unsigned char)*++cur;
-       if (yych <= 'W') goto yy4;
-       if (yych <= 'X') goto yy323;
-       if (yych <= 'Y') goto yy324;
-       goto yy4;
+       if (yych == 'o') goto yy324;
+       goto yy215;
 yy267:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy325;
+       if (yych == 'f') goto yy325;
        goto yy4;
 yy268:
        yych = (unsigned char)*++cur;
-       if (yych == 'B') goto yy326;
+       if (yych == 'C') goto yy326;
        goto yy4;
 yy269:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy327;
+       if (yych == 'N') goto yy327;
        goto yy4;
 yy270:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy328;
+       if (yych <= 'W') goto yy4;
+       if (yych <= 'X') goto yy328;
+       if (yych <= 'Y') goto yy329;
        goto yy4;
 yy271:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy329;
+       if (yych == 'R') goto yy330;
        goto yy4;
 yy272:
        yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy330;
+       if (yych == 'B') goto yy331;
        goto yy4;
 yy273:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy331;
+       if (yych == 'L') goto yy332;
        goto yy4;
 yy274:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy332;
+       if (yych == 'T') goto yy333;
        goto yy4;
 yy275:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy333;
+       if (yych == 'S') goto yy334;
        goto yy4;
 yy276:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy334;
+       if (yych == 'M') goto yy335;
        goto yy4;
 yy277:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy335;
+       if (yych == 'R') goto yy336;
        goto yy4;
 yy278:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy336;
+       if (yych == 'E') goto yy337;
        goto yy4;
 yy279:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy337;
+       if (yych == 'S') goto yy338;
        goto yy4;
 yy280:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy338;
+       if (yych == 'T') goto yy339;
        goto yy4;
 yy281:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy339;
+       if (yych == 'I') goto yy340;
        goto yy4;
 yy282:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy340;
+       if (yych == 'G') goto yy341;
        goto yy4;
 yy283:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy341;
+       if (yych == 'e') goto yy342;
        goto yy4;
 yy284:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy342;
+       if (yych == 'i') goto yy343;
        goto yy4;
 yy285:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy343;
+       if (yych == 't') goto yy344;
        goto yy4;
 yy286:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy344;
+       if (yych == '-') goto yy345;
        goto yy4;
 yy287:
        yych = (unsigned char)*++cur;
-       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"
+       if (yych == 'i') goto yy346;
+       goto yy4;
+yy288:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy347;
+       goto yy4;
 yy289:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy345;
+       if (yych == '-') goto yy348;
        goto yy4;
 yy290:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy346;
+       if (yych == 'i') goto yy349;
        goto yy4;
 yy291:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy347;
-       goto yy4;
-yy292:
-       yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy348;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 61 "../src/ast/lex_conf.re"
+       { lex_conf_input(opts);            return; }
+#line 1484 "src/ast/lex_conf.cc"
 yy293:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy349;
+       if (yych == 'd') goto yy350;
        goto yy4;
 yy294:
        yych = (unsigned char)*++cur;
-       if (yych == '6') goto yy113;
+       if (yych == 'b') goto yy351;
        goto yy4;
 yy295:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy350;
+       if (yych == 'o') goto yy352;
        goto yy4;
 yy296:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy351;
+       if (yych == 'i') goto yy353;
        goto yy4;
 yy297:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy352;
+       if (yych == '-') goto yy354;
        goto yy4;
 yy298:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy353;
+       if (yych == 'd') goto yy355;
        goto yy4;
 yy299:
+       yych = (unsigned char)*++cur;
+       if (yych == '6') goto yy114;
+       goto yy4;
+yy300:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy356;
+       goto yy4;
+yy301:
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy357;
+       goto yy4;
+yy302:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy358;
+       goto yy4;
+yy303:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy359;
+       goto yy4;
+yy304:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 150 "../src/ast/lex_conf.re"
+#line 151 "../src/ast/lex_conf.re"
        { opts.set_labelPrefix (lex_conf_string ()); return; }
-#line 1515 "src/ast/lex_conf.cc"
-yy301:
+#line 1536 "src/ast/lex_conf.cc"
+yy306:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 64) {
-               goto yy301;
+               goto yy306;
        }
-       if (yych != '=') goto yy212;
-yy303:
+       if (yych != '=') goto yy215;
+yy308:
        ++cur;
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy212;
-                       goto yy303;
+                       if (yych <= 0x08) goto yy215;
+                       goto yy308;
                } else {
-                       if (yych == ' ') goto yy303;
-                       goto yy212;
+                       if (yych == ' ') goto yy308;
+                       goto yy215;
                }
        } else {
                if (yych <= '/') {
-                       if (yych <= '-') goto yy355;
-                       goto yy212;
+                       if (yych <= '-') goto yy361;
+                       goto yy215;
                } else {
-                       if (yych <= '0') goto yy356;
-                       if (yych <= '9') goto yy358;
-                       goto yy212;
+                       if (yych <= '0') goto yy362;
+                       if (yych <= '9') goto yy364;
+                       goto yy215;
                }
        }
-yy305:
+yy310:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 85 "../src/ast/lex_conf.re"
+#line 86 "../src/ast/lex_conf.re"
        { opts.set_bUseStateAbort  (lex_conf_bool()); return; }
-#line 1553 "src/ast/lex_conf.cc"
-yy307:
+#line 1574 "src/ast/lex_conf.cc"
+yy312:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy360;
+       if (yych == 'a') goto yy366;
        goto yy4;
-yy308:
+yy313:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy361;
+       if (yych == 's') goto yy367;
        goto yy4;
-yy309:
+yy314:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 121 "../src/ast/lex_conf.re"
+#line 122 "../src/ast/lex_conf.re"
        { opts.set_tags_prefix    (lex_conf_string ()); return; }
-#line 1569 "src/ast/lex_conf.cc"
-yy311:
+#line 1590 "src/ast/lex_conf.cc"
+yy316:
        yych = (unsigned char)*++cur;
        if (yych <= 'c') {
                if (yych <= '`') goto yy4;
-               if (yych <= 'a') goto yy362;
-               if (yych <= 'b') goto yy363;
-               goto yy364;
+               if (yych <= 'a') goto yy368;
+               if (yych <= 'b') goto yy369;
+               goto yy370;
        } else {
                if (yych <= 'r') goto yy4;
-               if (yych <= 's') goto yy365;
-               if (yych <= 't') goto yy366;
+               if (yych <= 's') goto yy371;
+               if (yych <= 't') goto yy372;
                goto yy4;
        }
-yy312:
+yy317:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy367;
+       if (yych == 's') goto yy373;
        goto yy4;
-yy313:
+yy318:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy368;
+       if (yych == 'k') goto yy374;
        goto yy4;
-yy314:
+yy319:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy370;
+       if (yych == 'l') goto yy376;
        goto yy4;
-yy315:
+yy320:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy371;
+       if (yych == 'm') goto yy377;
        goto yy4;
-yy316:
+yy321:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy372;
+       if (yych == 'o') goto yy378;
        goto yy4;
-yy317:
+yy322:
        yyaccept = 2;
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       if (yych == '@') goto yy373;
-yy318:
-#line 72 "../src/ast/lex_conf.re"
-       { opts.set_condDivider      (lex_conf_string ()); return; }
-#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;
+       if (yych == '@') goto yy379;
 yy323:
-       yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy378;
-       goto yy4;
+#line 73 "../src/ast/lex_conf.re"
+       { opts.set_condDivider      (lex_conf_string ()); return; }
+#line 1634 "src/ast/lex_conf.cc"
 yy324:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy379;
-       goto yy4;
+       if (yych == 'n') goto yy380;
+       goto yy215;
 yy325:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy380;
+       if (yych == 'i') goto yy381;
        goto yy4;
 yy326:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy381;
+       if (yych == 'K') goto yy382;
        goto yy4;
 yy327:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy382;
+       if (yych == 'D') goto yy383;
        goto yy4;
 yy328:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy384;
-       if (yych == 'S') goto yy385;
+       if (yych == 'M') goto yy384;
        goto yy4;
 yy329:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy386;
+       if (yych == 'P') goto yy385;
        goto yy4;
 yy330:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy387;
+       if (yych == 'S') goto yy386;
        goto yy4;
 yy331:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy388;
+       if (yych == 'U') goto yy387;
        goto yy4;
 yy332:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy389;
+       if (yych == 'L') goto yy388;
        goto yy4;
 yy333:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy391;
+       if (yych == 'C') goto yy390;
+       if (yych == 'S') goto yy391;
        goto yy4;
 yy334:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy392;
-       if (yych == 'S') goto yy393;
+       if (yych == 'S') goto yy392;
        goto yy4;
 yy335:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy394;
+       if (yych == 'I') goto yy393;
        goto yy4;
 yy336:
        yych = (unsigned char)*++cur;
-       if (yych <= 'M') {
-               if (yych == 'L') goto yy396;
-               goto yy4;
-       } else {
-               if (yych <= 'N') goto yy397;
-               if (yych == 'P') goto yy399;
-               goto yy4;
-       }
+       if (yych == 'K') goto yy394;
+       goto yy4;
 yy337:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy401;
+       if (yych == 'K') goto yy395;
        goto yy4;
 yy338:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy402;
+       if (yych == 'T') goto yy397;
        goto yy4;
 yy339:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy403;
+       if (yych == 'C') goto yy398;
+       if (yych == 'S') goto yy399;
        goto yy4;
 yy340:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy404;
+       if (yych == 'P') goto yy400;
        goto yy4;
 yy341:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy405;
-       goto yy4;
-yy342:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy406;
+       if (yych <= 'M') {
+               if (yych == 'L') goto yy402;
+               goto yy4;
+       } else {
+               if (yych <= 'N') goto yy403;
+               if (yych == 'P') goto yy405;
+               goto yy4;
+       }
+yy342:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy407;
        goto yy4;
 yy343:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy407;
+       if (yych == 'n') goto yy408;
        goto yy4;
 yy344:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy408;
+       if (yych == 'e') goto yy409;
        goto yy4;
 yy345:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy409;
+       if (yych == 'o') goto yy410;
        goto yy4;
 yy346:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy410;
+       if (yych == 'n') goto yy411;
        goto yy4;
 yy347:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy411;
+       if (yych == 's') goto yy412;
        goto yy4;
 yy348:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy412;
+       if (yych == 'c') goto yy413;
        goto yy4;
 yy349:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy413;
+       if (yych == 'n') goto yy414;
        goto yy4;
 yy350:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy414;
+       if (yych == '-') goto yy415;
        goto yy4;
 yy351:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy415;
+       if (yych == 'u') goto yy416;
        goto yy4;
 yy352:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy417;
+       if (yych == 'k') goto yy417;
        goto yy4;
 yy353:
+       yych = (unsigned char)*++cur;
+       if (yych == 'z') goto yy418;
+       goto yy4;
+yy354:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy419;
+       goto yy4;
+yy355:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy420;
+       goto yy4;
+yy356:
+       yych = (unsigned char)*++cur;
+       if (yych == 'h') goto yy421;
+       goto yy4;
+yy357:
+       yych = (unsigned char)*++cur;
+       if (yych == 'g') goto yy422;
+       goto yy4;
+yy358:
+       yych = (unsigned char)*++cur;
+       if (yych == 'L') goto yy424;
+       goto yy4;
+yy359:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 84 "../src/ast/lex_conf.re"
+#line 85 "../src/ast/lex_conf.re"
        { opts.set_yynext          (lex_conf_string ()); return; }
-#line 1765 "src/ast/lex_conf.cc"
-yy355:
+#line 1790 "src/ast/lex_conf.cc"
+yy361:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy212;
-       if (yych <= '9') goto yy358;
-       goto yy212;
-yy356:
+       if (yych <= '0') goto yy215;
+       if (yych <= '9') goto yy364;
+       goto yy215;
+yy362:
        ++cur;
-yy357:
+yy363:
        cur = ctx;
-#line 153 "../src/ast/lex_conf.re"
+#line 154 "../src/ast/lex_conf.re"
        { opts.set_startlabel_force (lex_conf_bool());   return; }
-#line 1777 "src/ast/lex_conf.cc"
-yy358:
+#line 1802 "src/ast/lex_conf.cc"
+yy364:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy358;
+               goto yy364;
        }
-       goto yy357;
-yy360:
+       goto yy363;
+yy366:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy418;
+       if (yych == 'b') goto yy425;
        goto yy4;
-yy361:
+yy367:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy419;
+       if (yych == 'i') goto yy426;
        goto yy4;
-yy362:
+yy368:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy420;
+       if (yych == 'c') goto yy427;
        goto yy4;
-yy363:
+yy369:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy421;
+       if (yych == 'm') goto yy428;
        goto yy4;
-yy364:
+yy370:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy423;
-       if (yych == 't') goto yy425;
+       if (yych == 'h') goto yy430;
+       if (yych == 't') goto yy432;
        goto yy4;
-yy365:
+yy371:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy426;
+       if (yych == 't') goto yy433;
        goto yy4;
-yy366:
+yy372:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy427;
+       if (yych == 'a') goto yy434;
        goto yy4;
-yy367:
+yy373:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy428;
+       if (yych == 'i') goto yy435;
        goto yy4;
-yy368:
+yy374:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 148 "../src/ast/lex_conf.re"
+#line 149 "../src/ast/lex_conf.re"
        { opts.set_fill_check   (lex_conf_bool()); return; }
-#line 1826 "src/ast/lex_conf.cc"
-yy370:
+#line 1851 "src/ast/lex_conf.cc"
+yy376:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy429;
+       if (yych == 'e') goto yy436;
        goto yy4;
-yy371:
+yy377:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy431;
+       if (yych == 'e') goto yy438;
        goto yy4;
-yy372:
+yy378:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy432;
+       if (yych == 'l') goto yy439;
        goto yy4;
-yy373:
+yy379:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy433;
-       goto yy212;
-yy374:
+       if (yych == 'c') goto yy440;
+       goto yy215;
+yy380:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy434;
-       goto yy212;
-yy375:
+       if (yych == 'd') goto yy441;
+       goto yy215;
+yy381:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy436;
+       if (yych == 'x') goto yy443;
        goto yy4;
-yy376:
+yy382:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy438;
+       if (yych == 'U') goto yy445;
        goto yy4;
-yy377:
+yy383:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy439;
+       if (yych == 'T') goto yy446;
        goto yy4;
-yy378:
+yy384:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy440;
+       if (yych == 'A') goto yy447;
        goto yy4;
-yy379:
+yy385:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy441;
+       if (yych == 'E') goto yy448;
        goto yy4;
-yy380:
+yy386:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy443;
+       if (yych == 'O') goto yy450;
        goto yy4;
-yy381:
+yy387:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy444;
+       if (yych == 'G') goto yy451;
        goto yy4;
-yy382:
+yy388:
        yyaccept = 3;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -1879,415 +1904,423 @@ yy382:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy446;
+                       if (yych <= ':') goto yy453;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy447;
+                       if (yych <= '@') goto yy454;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy383;
+                       if (yych == '`') goto yy389;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy383:
-#line 143 "../src/ast/lex_conf.re"
+yy389:
+#line 144 "../src/ast/lex_conf.re"
        { opts.set_fill         (lex_conf_string ()); return; }
-#line 1897 "src/ast/lex_conf.cc"
-yy384:
+#line 1922 "src/ast/lex_conf.cc"
+yy390:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy448;
+       if (yych == 'O') goto yy455;
        goto yy4;
-yy385:
+yy391:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy449;
+       if (yych == 'T') goto yy456;
        goto yy4;
-yy386:
+yy392:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy450;
+       if (yych == 'T') goto yy457;
        goto yy4;
-yy387:
+yy393:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy451;
+       if (yych == 'T') goto yy458;
        goto yy4;
-yy388:
+yy394:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy453;
+       if (yych == 'E') goto yy460;
        goto yy4;
-yy389:
+yy395:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 108 "../src/ast/lex_conf.re"
+#line 109 "../src/ast/lex_conf.re"
        { opts.set_yypeek       (lex_conf_string ()); return; }
-#line 1925 "src/ast/lex_conf.cc"
-yy391:
+#line 1950 "src/ast/lex_conf.cc"
+yy397:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy454;
+       if (yych == 'O') goto yy461;
        goto yy4;
-yy392:
+yy398:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy455;
+       if (yych == 'O') goto yy462;
        goto yy4;
-yy393:
+yy399:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy456;
+       if (yych == 'T') goto yy463;
        goto yy4;
-yy394:
+yy400:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 109 "../src/ast/lex_conf.re"
+#line 110 "../src/ast/lex_conf.re"
        { opts.set_yyskip       (lex_conf_string ()); return; }
-#line 1945 "src/ast/lex_conf.cc"
-yy396:
+#line 1970 "src/ast/lex_conf.cc"
+yy402:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy457;
+       if (yych == 'I') goto yy464;
        goto yy4;
-yy397:
+yy403:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 116 "../src/ast/lex_conf.re"
+#line 117 "../src/ast/lex_conf.re"
        { opts.set_yytagn       (lex_conf_string ()); return; }
-#line 1957 "src/ast/lex_conf.cc"
-yy399:
+#line 1982 "src/ast/lex_conf.cc"
+yy405:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 117 "../src/ast/lex_conf.re"
+#line 118 "../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 == 't') goto yy458;
-       goto yy4;
-yy402:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy459;
-       if (yych == 'v') goto yy460;
-       goto yy4;
-yy403:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy461;
-       goto yy4;
-yy404:
-       yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy462;
-       goto yy4;
-yy405:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy463;
-       goto yy4;
-yy406:
-       yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy464;
-       goto yy4;
+#line 1990 "src/ast/lex_conf.cc"
 yy407:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy465;
+       if (yych == 't') goto yy465;
        goto yy4;
 yy408:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy466;
+       if (yych == 's') goto yy466;
+       if (yych == 'v') goto yy467;
        goto yy4;
 yy409:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy467;
+       if (yych == 'd') goto yy468;
        goto yy4;
 yy410:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy468;
+       if (yych == 'u') goto yy469;
        goto yy4;
 yy411:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy469;
+       if (yych == 'i') goto yy470;
        goto yy4;
 yy412:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy470;
+       if (yych == 'k') goto yy471;
        goto yy4;
 yy413:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-       goto yy110;
+       if (yych == 'l') goto yy472;
+       goto yy4;
 yy414:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy471;
+       if (yych == 'g') goto yy473;
        goto yy4;
 yy415:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 124 "../src/ast/lex_conf.re"
-       { opts.set_indString (lex_conf_string ()); return; }
-#line 2032 "src/ast/lex_conf.cc"
+       if (yych == 'i') goto yy474;
+       goto yy4;
+yy416:
+       yych = (unsigned char)*++cur;
+       if (yych == 'g') goto yy475;
+       goto yy4;
 yy417:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy472;
+       if (yych == 'a') goto yy476;
        goto yy4;
 yy418:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy473;
+       if (yych == 'e') goto yy477;
        goto yy4;
 yy419:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy474;
+       if (yych == 'a') goto yy478;
        goto yy4;
 yy420:
-       yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy475;
-       goto yy4;
-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 2056 "src/ast/lex_conf.cc"
-yy423:
+       goto yy111;
+yy421:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy479;
+       goto yy4;
+yy422:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 139 "../src/ast/lex_conf.re"
-       { opts.set_yych           (lex_conf_string ()); return; }
-#line 2064 "src/ast/lex_conf.cc"
+#line 125 "../src/ast/lex_conf.re"
+       { opts.set_indString (lex_conf_string ()); return; }
+#line 2061 "src/ast/lex_conf.cc"
+yy424:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy480;
+       goto yy4;
 yy425:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy476;
+       if (yych == 'e') goto yy481;
        goto yy4;
 yy426:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy477;
+       if (yych == 'o') goto yy482;
        goto yy4;
 yy427:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy478;
+       if (yych == 'c') goto yy483;
        goto yy4;
 yy428:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy479;
-       goto yy4;
-yy429:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 144 "../src/ast/lex_conf.re"
-       { opts.set_fill_use     (lex_conf_bool()); return; }
-#line 2088 "src/ast/lex_conf.cc"
-yy431:
+#line 90 "../src/ast/lex_conf.re"
+       { opts.set_yybm         (lex_conf_string ()); return; }
+#line 2085 "src/ast/lex_conf.cc"
+yy430:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy480;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 140 "../src/ast/lex_conf.re"
+       { opts.set_yych           (lex_conf_string ()); return; }
+#line 2093 "src/ast/lex_conf.cc"
 yy432:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy481;
+       if (yych == 'a') goto yy484;
        goto yy4;
 yy433:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy483;
-       goto yy212;
+       if (yych == 'a') goto yy485;
+       goto yy4;
 yy434:
-       ++cur;
-#line 75 "../src/ast/lex_conf.re"
-       { opts.set_condGotoParam    (lex_conf_string ()); return; }
-#line 2105 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy486;
+       goto yy4;
+yy435:
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy487;
+       goto yy4;
 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 2113 "src/ast/lex_conf.cc"
+#line 145 "../src/ast/lex_conf.re"
+       { opts.set_fill_use     (lex_conf_bool()); return; }
+#line 2117 "src/ast/lex_conf.cc"
 yy438:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy484;
+       if (yych == 't') goto yy488;
        goto yy4;
 yy439:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy486;
+       if (yych == 'd') goto yy489;
        goto yy4;
 yy440:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy487;
-       goto yy4;
+       if (yych == 'o') goto yy491;
+       goto yy215;
 yy441:
+       ++cur;
+#line 76 "../src/ast/lex_conf.re"
+       { opts.set_condGotoParam    (lex_conf_string ()); return; }
+#line 2134 "src/ast/lex_conf.cc"
+yy443:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 138 "../src/ast/lex_conf.re"
-       { opts.set_yyctype        (lex_conf_string ()); return; }
-#line 2133 "src/ast/lex_conf.cc"
-yy443:
+#line 72 "../src/ast/lex_conf.re"
+       { opts.set_condEnumPrefix   (lex_conf_string ()); return; }
+#line 2142 "src/ast/lex_conf.cc"
+yy445:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy488;
+       if (yych == 'P') goto yy492;
        goto yy4;
-yy444:
-       yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 136 "../src/ast/lex_conf.re"
-       { opts.set_yydebug (lex_conf_string ()); return; }
-#line 2145 "src/ast/lex_conf.cc"
 yy446:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy490;
+       if (yych == 'Y') goto yy494;
        goto yy4;
 yy447:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy491;
-       goto yy212;
-yy448:
-       yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy492;
+       if (yych == 'R') goto yy495;
        goto yy4;
-yy449:
+yy448:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy493;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 139 "../src/ast/lex_conf.re"
+       { opts.set_yyctype        (lex_conf_string ()); return; }
+#line 2162 "src/ast/lex_conf.cc"
 yy450:
        yych = (unsigned char)*++cur;
-       if (yych == 'H') goto yy494;
+       if (yych == 'R') goto yy496;
        goto yy4;
 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 2173 "src/ast/lex_conf.cc"
+#line 137 "../src/ast/lex_conf.re"
+       { opts.set_yydebug (lex_conf_string ()); return; }
+#line 2174 "src/ast/lex_conf.cc"
 yy453:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy495;
+       if (yych == 'n') goto yy498;
        goto yy4;
 yy454:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy497;
-       goto yy4;
+       if (yych == 'l') goto yy499;
+       goto yy215;
 yy455:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy498;
+       if (yych == 'N') goto yy500;
        goto yy4;
 yy456:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy499;
+       if (yych == 'A') goto yy501;
        goto yy4;
 yy457:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy500;
+       if (yych == 'H') goto yy502;
        goto yy4;
 yy458:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy501;
-       goto yy4;
-yy459:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy502;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 107 "../src/ast/lex_conf.re"
+       { opts.set_yylimit     (lex_conf_string ()); return; }
+#line 2202 "src/ast/lex_conf.cc"
 yy460:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy503;
+       if (yych == 'R') goto yy503;
        goto yy4;
 yy461:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy504;
+       if (yych == 'R') goto yy505;
        goto yy4;
 yy462:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy505;
+       if (yych == 'N') goto yy506;
        goto yy4;
 yy463:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy506;
+       if (yych == 'A') goto yy507;
        goto yy4;
 yy464:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy507;
+       if (yych == 'S') goto yy508;
        goto yy4;
 yy465:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy508;
+       if (yych == 'o') goto yy509;
        goto yy4;
 yy466:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy509;
+       if (yych == 'e') goto yy510;
        goto yy4;
 yy467:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy510;
+       if (yych == 'e') goto yy511;
        goto yy4;
 yy468:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy511;
+       if (yych == '-') goto yy512;
        goto yy4;
 yy469:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy512;
+       if (yych == 't') goto yy513;
        goto yy4;
 yy470:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy513;
+       if (yych == 'm') goto yy514;
        goto yy4;
 yy471:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy514;
+       if (yych == 'i') goto yy515;
        goto yy4;
 yy472:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy515;
+       if (yych == 'a') goto yy516;
        goto yy4;
 yy473:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy516;
+       if (yych == '-') goto yy517;
        goto yy4;
 yy474:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy518;
+       if (yych == 'f') goto yy518;
        goto yy4;
 yy475:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy520;
+       if (yych == '-') goto yy519;
        goto yy4;
 yy476:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy521;
+       if (yych == 'h') goto yy520;
        goto yy4;
 yy477:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy522;
+       if (yych == '-') goto yy521;
        goto yy4;
 yy478:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy523;
+       if (yych == 'p') goto yy522;
        goto yy4;
 yy479:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy524;
+       if (yych == 'r') goto yy523;
        goto yy4;
 yy480:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy526;
+       if (yych == 'b') goto yy524;
        goto yy4;
 yy481:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy525;
+       goto yy4;
+yy482:
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy527;
+       goto yy4;
+yy483:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy529;
+       goto yy4;
+yy484:
+       yych = (unsigned char)*++cur;
+       if (yych == 'b') goto yy530;
+       goto yy4;
+yy485:
+       yych = (unsigned char)*++cur;
+       if (yych == 'b') goto yy531;
+       goto yy4;
+yy486:
+       yych = (unsigned char)*++cur;
+       if (yych == 'g') goto yy532;
+       goto yy4;
+yy487:
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy533;
+       goto yy4;
+yy488:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy535;
+       goto yy4;
+yy489:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 92 "../src/ast/lex_conf.re"
+#line 93 "../src/ast/lex_conf.re"
        {
                const int32_t n = lex_conf_number ();
                if (n < 0)
@@ -2297,12 +2330,12 @@ yy481:
                opts.set_cGotoThreshold (static_cast<uint32_t> (n));
                return;
        }
-#line 2301 "src/ast/lex_conf.cc"
-yy483:
+#line 2334 "src/ast/lex_conf.cc"
+yy491:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy527;
-       goto yy212;
-yy484:
+       if (yych == 'n') goto yy536;
+       goto yy215;
+yy492:
        yych = (unsigned char)*++cur;
        if (yych <= 'B') {
                if (yych <= '/') {
@@ -2313,417 +2346,425 @@ yy484:
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= 'C') goto yy528;
+                       if (yych <= 'C') goto yy537;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy485;
+                       if (yych == '`') goto yy493;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy485:
-#line 110 "../src/ast/lex_conf.re"
+yy493:
+#line 111 "../src/ast/lex_conf.re"
        { opts.set_yybackup     (lex_conf_string ()); return; }
-#line 2327 "src/ast/lex_conf.cc"
-yy486:
+#line 2360 "src/ast/lex_conf.cc"
+yy494:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy529;
+       if (yych == 'P') goto yy538;
        goto yy4;
-yy487:
+yy495:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy530;
+       if (yych == 'K') goto yy539;
        goto yy4;
-yy488:
+yy496:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 103 "../src/ast/lex_conf.re"
+#line 104 "../src/ast/lex_conf.re"
        { opts.set_yycursor    (lex_conf_string ()); return; }
-#line 2343 "src/ast/lex_conf.cc"
-yy490:
+#line 2376 "src/ast/lex_conf.cc"
+yy498:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy531;
+       if (yych == 'a') goto yy540;
        goto yy4;
-yy491:
+yy499:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy532;
-       goto yy212;
-yy492:
+       if (yych == 'e') goto yy541;
+       goto yy215;
+yy500:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy533;
+       if (yych == 'D') goto yy542;
        goto yy4;
-yy493:
+yy501:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy534;
+       if (yych == 'T') goto yy543;
        goto yy4;
-yy494:
+yy502:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy535;
+       if (yych == 'A') goto yy544;
        goto yy4;
-yy495:
+yy503:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 104 "../src/ast/lex_conf.re"
+#line 105 "../src/ast/lex_conf.re"
        { opts.set_yymarker    (lex_conf_string ()); return; }
-#line 2371 "src/ast/lex_conf.cc"
-yy497:
+#line 2404 "src/ast/lex_conf.cc"
+yy505:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy536;
+       if (yych == 'E') goto yy545;
        goto yy4;
-yy498:
+yy506:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy538;
+       if (yych == 'D') goto yy547;
        goto yy4;
-yy499:
+yy507:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy539;
+       if (yych == 'T') goto yy548;
        goto yy4;
-yy500:
+yy508:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy540;
+       if (yych == 'T') goto yy549;
        goto yy4;
-yy501:
+yy509:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy541;
+       if (yych == 'r') goto yy550;
        goto yy4;
-yy502:
+yy510:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy542;
+       if (yych == 'n') goto yy551;
        goto yy4;
-yy503:
+yy511:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy543;
+       if (yych == 'r') goto yy552;
        goto yy4;
-yy504:
+yy512:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy544;
+       if (yych == 'g') goto yy553;
        goto yy4;
-yy505:
+yy513:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy545;
+       if (yych == 'p') goto yy554;
        goto yy4;
-yy506:
+yy514:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy546;
+       if (yych == 'i') goto yy555;
        goto yy4;
-yy507:
+yy515:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy547;
+       if (yych == 'p') goto yy556;
        goto yy4;
-yy508:
+yy516:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy549;
+       if (yych == 's') goto yy558;
        goto yy4;
-yy509:
+yy517:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy550;
+       if (yych == 'p') goto yy559;
        goto yy4;
-yy510:
+yy518:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy106;
+       if (yych == 's') goto yy107;
        goto yy4;
-yy511:
+yy519:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy551;
+       if (yych == 'i') goto yy560;
        goto yy4;
-yy512:
+yy520:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy552;
+       if (yych == 'e') goto yy561;
        goto yy4;
-yy513:
+yy521:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy553;
+       if (yych == 't') goto yy562;
        goto yy4;
-yy514:
+yy522:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy554;
+       if (yych == 't') goto yy563;
        goto yy4;
-yy515:
+yy523:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy555;
+       if (yych == 's') goto yy564;
        goto yy4;
-yy516:
+yy524:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy565;
+       goto yy4;
+yy525:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 86 "../src/ast/lex_conf.re"
+#line 87 "../src/ast/lex_conf.re"
        { opts.set_bUseStateNext   (lex_conf_bool()); return; }
-#line 2455 "src/ast/lex_conf.cc"
-yy518:
+#line 2492 "src/ast/lex_conf.cc"
+yy527:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 122 "../src/ast/lex_conf.re"
+#line 123 "../src/ast/lex_conf.re"
        { opts.set_tags_expression(lex_conf_string ()); return; }
-#line 2463 "src/ast/lex_conf.cc"
-yy520:
+#line 2500 "src/ast/lex_conf.cc"
+yy529:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy556;
+       if (yych == 'p') goto yy566;
        goto yy4;
-yy521:
+yy530:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy557;
+       if (yych == 'l') goto yy567;
        goto yy4;
-yy522:
+yy531:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy558;
+       if (yych == 'l') goto yy568;
        goto yy4;
-yy523:
+yy532:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy559;
+       if (yych == 'e') goto yy569;
        goto yy4;
-yy524:
+yy533:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 140 "../src/ast/lex_conf.re"
+#line 141 "../src/ast/lex_conf.re"
        { opts.set_yychConversion (lex_conf_bool()); return; }
-#line 2487 "src/ast/lex_conf.cc"
-yy526:
+#line 2524 "src/ast/lex_conf.cc"
+yy535:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy560;
+       if (yych == 'r') goto yy570;
        goto yy4;
-yy527:
+yy536:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy562;
-       goto yy212;
-yy528:
+       if (yych == 'd') goto yy572;
+       goto yy215;
+yy537:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy564;
+       if (yych == 'T') goto yy574;
        goto yy4;
-yy529:
+yy538:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy565;
+       if (yych == 'E') goto yy575;
        goto yy4;
-yy530:
+yy539:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy567;
+       if (yych == 'E') goto yy577;
        goto yy4;
-yy531:
+yy540:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy568;
+       if (yych == 'k') goto yy578;
        goto yy4;
-yy532:
+yy541:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy569;
-       goto yy212;
-yy533:
+       if (yych == 'n') goto yy579;
+       goto yy215;
+yy542:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy571;
+       if (yych == 'I') goto yy581;
        goto yy4;
-yy534:
+yy543:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy572;
+       if (yych == 'E') goto yy582;
        goto yy4;
-yy535:
+yy544:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy574;
+       if (yych == 'N') goto yy584;
        goto yy4;
-yy536:
+yy545:
        yych = (unsigned char)*++cur;
        if (yych <= 'C') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy537;
+                       if (yych <= '@') goto yy546;
                        if (yych <= 'B') goto yy3;
-                       goto yy576;
+                       goto yy586;
                }
        } else {
                if (yych <= '^') {
-                       if (yych == 'T') goto yy577;
+                       if (yych == 'T') goto yy587;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy537;
+                       if (yych == '`') goto yy546;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy537:
-#line 112 "../src/ast/lex_conf.re"
+yy546:
+#line 113 "../src/ast/lex_conf.re"
        { opts.set_yyrestore    (lex_conf_string ()); return; }
-#line 2551 "src/ast/lex_conf.cc"
-yy538:
+#line 2588 "src/ast/lex_conf.cc"
+yy547:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy578;
+       if (yych == 'I') goto yy588;
        goto yy4;
-yy539:
+yy548:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy579;
+       if (yych == 'E') goto yy589;
        goto yy4;
-yy540:
+yy549:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy581;
-       if (yych == 'P') goto yy583;
+       if (yych == 'N') goto yy591;
+       if (yych == 'P') goto yy593;
        goto yy4;
-yy541:
+yy550:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy585;
+       if (yych == 's') goto yy595;
        goto yy4;
-yy542:
+yy551:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy586;
+       if (yych == 's') goto yy596;
        goto yy4;
-yy543:
+yy552:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy587;
+       if (yych == 't') goto yy597;
        goto yy4;
-yy544:
+yy553:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy588;
+       if (yych == 'o') goto yy598;
        goto yy4;
-yy545:
+yy554:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy589;
+       if (yych == 'u') goto yy599;
        goto yy4;
-yy546:
+yy555:
        yych = (unsigned char)*++cur;
-       if (yych == 'z') goto yy590;
+       if (yych == 'z') goto yy600;
        goto yy4;
-yy547:
+yy556:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 51 "../src/ast/lex_conf.re"
+#line 52 "../src/ast/lex_conf.re"
        { opts.set_eager_skip(lex_conf_bool());         return; }
-#line 2596 "src/ast/lex_conf.cc"
-yy549:
+#line 2633 "src/ast/lex_conf.cc"
+yy558:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy591;
+       if (yych == 's') goto yy601;
        goto yy4;
-yy550:
+yy559:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy593;
+       if (yych == 'o') goto yy603;
        goto yy4;
-yy551:
+yy560:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy594;
+       if (yych == 'n') goto yy604;
        goto yy4;
-yy552:
+yy561:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy595;
+       if (yych == 'a') goto yy605;
        goto yy4;
-yy553:
+yy562:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy596;
+       if (yych == 'a') goto yy606;
        goto yy4;
-yy554:
+yy563:
+       yych = (unsigned char)*++cur;
+       if (yych == 'u') goto yy607;
+       goto yy4;
+yy564:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy112;
-yy555:
+       goto yy113;
+yy565:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy597;
+       if (yych == 'l') goto yy608;
        goto yy4;
-yy556:
+yy566:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy599;
+       if (yych == 't') goto yy610;
        goto yy4;
-yy557:
+yy567:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy601;
+       if (yych == 'e') goto yy612;
        goto yy4;
-yy558:
+yy568:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy603;
+       if (yych == 'e') goto yy614;
        goto yy4;
-yy559:
+yy569:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy605;
+       if (yych == 't') goto yy616;
        goto yy4;
-yy560:
+yy570:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 146 "../src/ast/lex_conf.re"
+#line 147 "../src/ast/lex_conf.re"
        { opts.set_fill_arg_use (lex_conf_bool()); return; }
-#line 2650 "src/ast/lex_conf.cc"
-yy562:
+#line 2691 "src/ast/lex_conf.cc"
+yy572:
        ++cur;
-#line 73 "../src/ast/lex_conf.re"
+#line 74 "../src/ast/lex_conf.re"
        { opts.set_condDividerParam (lex_conf_string ()); return; }
-#line 2655 "src/ast/lex_conf.cc"
-yy564:
+#line 2696 "src/ast/lex_conf.cc"
+yy574:
        yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy607;
+       if (yych == 'X') goto yy618;
        goto yy4;
-yy565:
+yy575:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 64 "../src/ast/lex_conf.re"
+#line 65 "../src/ast/lex_conf.re"
        { opts.set_yycondtype       (lex_conf_string ()); return; }
-#line 2667 "src/ast/lex_conf.cc"
-yy567:
+#line 2708 "src/ast/lex_conf.cc"
+yy577:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy609;
+       if (yych == 'R') goto yy620;
        goto yy4;
-yy568:
+yy578:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy611;
+       if (yych == 'e') goto yy622;
        goto yy4;
-yy569:
+yy579:
        ++cur;
-#line 145 "../src/ast/lex_conf.re"
+#line 146 "../src/ast/lex_conf.re"
        { opts.set_fill_arg     (lex_conf_string ()); return; }
-#line 2680 "src/ast/lex_conf.cc"
-yy571:
+#line 2721 "src/ast/lex_conf.cc"
+yy581:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy612;
+       if (yych == 'T') goto yy623;
        goto yy4;
-yy572:
+yy582:
        yych = (unsigned char)*++cur;
        if (yych <= '@') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy613;
+                       if (yych <= ':') goto yy624;
                }
        } else {
                if (yych <= '_') {
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                } else {
-                       if (yych <= '`') goto yy573;
+                       if (yych <= '`') goto yy583;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy573:
-#line 78 "../src/ast/lex_conf.re"
+yy583:
+#line 79 "../src/ast/lex_conf.re"
        { opts.set_state_get       (lex_conf_string ()); return; }
-#line 2706 "src/ast/lex_conf.cc"
-yy574:
+#line 2747 "src/ast/lex_conf.cc"
+yy584:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 115 "../src/ast/lex_conf.re"
+#line 116 "../src/ast/lex_conf.re"
        { opts.set_yylessthan   (lex_conf_string ()); return; }
-#line 2714 "src/ast/lex_conf.cc"
-yy576:
+#line 2755 "src/ast/lex_conf.cc"
+yy586:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy614;
+       if (yych == 'T') goto yy625;
        goto yy4;
-yy577:
+yy587:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy615;
+       if (yych == 'A') goto yy626;
        goto yy4;
-yy578:
+yy588:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy616;
+       if (yych == 'T') goto yy627;
        goto yy4;
-yy579:
+yy589:
        yyaccept = 4;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -2731,362 +2772,378 @@ yy579:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy617;
+                       if (yych <= ':') goto yy628;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy618;
+                       if (yych <= '@') goto yy629;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy580;
+                       if (yych == '`') goto yy590;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy580:
-#line 80 "../src/ast/lex_conf.re"
+yy590:
+#line 81 "../src/ast/lex_conf.re"
        { opts.set_state_set       (lex_conf_string ()); return; }
-#line 2749 "src/ast/lex_conf.cc"
-yy581:
+#line 2790 "src/ast/lex_conf.cc"
+yy591:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 118 "../src/ast/lex_conf.re"
+#line 119 "../src/ast/lex_conf.re"
        { opts.set_yytaglistn   (lex_conf_string ()); return; }
-#line 2757 "src/ast/lex_conf.cc"
-yy583:
+#line 2798 "src/ast/lex_conf.cc"
+yy593:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 119 "../src/ast/lex_conf.re"
+#line 120 "../src/ast/lex_conf.re"
        { opts.set_yytaglistp   (lex_conf_string ()); return; }
-#line 2765 "src/ast/lex_conf.cc"
-yy585:
+#line 2806 "src/ast/lex_conf.cc"
+yy595:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
        goto yy94;
-yy586:
+yy596:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy619;
+       if (yych == 'i') goto yy630;
        goto yy4;
-yy587:
+yy597:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy620;
+       if (yych == 'e') goto yy631;
        goto yy4;
-yy588:
+yy598:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy621;
+       if (yych == 't') goto yy632;
        goto yy4;
-yy589:
+yy599:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy622;
+       if (yych == 't') goto yy633;
        goto yy4;
-yy590:
+yy600:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy623;
+       if (yych == 'a') goto yy634;
        goto yy4;
-yy591:
+yy601:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 61 "../src/ast/lex_conf.re"
+#line 62 "../src/ast/lex_conf.re"
        { lex_conf_empty_class(opts);      return; }
-#line 2799 "src/ast/lex_conf.cc"
-yy593:
+#line 2840 "src/ast/lex_conf.cc"
+yy603:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy624;
+       if (yych == 'l') goto yy635;
        goto yy4;
-yy594:
+yy604:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy625;
+       if (yych == 'f') goto yy636;
        goto yy4;
-yy595:
+yy605:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy626;
+       if (yych == 'd') goto yy637;
        goto yy4;
-yy596:
+yy606:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy628;
+       if (yych == 'g') goto yy639;
        goto yy4;
-yy597:
+yy607:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy640;
+       goto yy4;
+yy608:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 83 "../src/ast/lex_conf.re"
+#line 84 "../src/ast/lex_conf.re"
        { opts.set_yyfilllabel     (lex_conf_string ()); return; }
-#line 2823 "src/ast/lex_conf.cc"
-yy599:
+#line 2868 "src/ast/lex_conf.cc"
+yy610:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 87 "../src/ast/lex_conf.re"
+#line 88 "../src/ast/lex_conf.re"
        { opts.set_yyaccept        (lex_conf_string ()); return; }
-#line 2831 "src/ast/lex_conf.cc"
-yy601:
+#line 2876 "src/ast/lex_conf.cc"
+yy612:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 76 "../src/ast/lex_conf.re"
+#line 77 "../src/ast/lex_conf.re"
        { opts.set_yyctable         (lex_conf_string ()); return; }
-#line 2839 "src/ast/lex_conf.cc"
-yy603:
+#line 2884 "src/ast/lex_conf.cc"
+yy614:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 157 "../src/ast/lex_conf.re"
+#line 158 "../src/ast/lex_conf.re"
        { lex_conf_string (); return; }
-#line 2847 "src/ast/lex_conf.cc"
-yy605:
+#line 2892 "src/ast/lex_conf.cc"
+yy616:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 101 "../src/ast/lex_conf.re"
+#line 102 "../src/ast/lex_conf.re"
        { opts.set_yytarget (lex_conf_string ()); return; }
-#line 2855 "src/ast/lex_conf.cc"
-yy607:
+#line 2900 "src/ast/lex_conf.cc"
+yy618:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 111 "../src/ast/lex_conf.re"
+#line 112 "../src/ast/lex_conf.re"
        { opts.set_yybackupctx  (lex_conf_string ()); return; }
-#line 2863 "src/ast/lex_conf.cc"
-yy609:
+#line 2908 "src/ast/lex_conf.cc"
+yy620:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 105 "../src/ast/lex_conf.re"
+#line 106 "../src/ast/lex_conf.re"
        { opts.set_yyctxmarker (lex_conf_string ()); return; }
-#line 2871 "src/ast/lex_conf.cc"
-yy611:
+#line 2916 "src/ast/lex_conf.cc"
+yy622:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy629;
+       if (yych == 'd') goto yy641;
        goto yy4;
-yy612:
+yy623:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy631;
+       if (yych == 'I') goto yy643;
        goto yy4;
-yy613:
+yy624:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy632;
+       if (yych == 'n') goto yy644;
        goto yy4;
-yy614:
+yy625:
        yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy633;
+       if (yych == 'X') goto yy645;
        goto yy4;
-yy615:
+yy626:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy635;
+       if (yych == 'G') goto yy647;
        goto yy4;
-yy616:
+yy627:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy637;
+       if (yych == 'I') goto yy649;
        goto yy4;
-yy617:
+yy628:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy638;
+       if (yych == 'n') goto yy650;
        goto yy4;
-yy618:
+yy629:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy639;
-       goto yy212;
-yy619:
+       if (yych == 's') goto yy651;
+       goto yy215;
+yy630:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy640;
+       if (yych == 't') goto yy652;
        goto yy4;
-yy620:
+yy631:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy641;
+       if (yych == 'd') goto yy653;
        goto yy4;
-yy621:
+yy632:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy643;
+       if (yych == 'o') goto yy655;
        goto yy4;
-yy622:
+yy633:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
        goto yy97;
-yy623:
+yy634:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy644;
+       if (yych == 't') goto yy656;
        goto yy4;
-yy624:
+yy635:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy645;
+       if (yych == 'i') goto yy657;
        goto yy4;
-yy625:
+yy636:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy646;
+       if (yych == 'o') goto yy658;
        goto yy4;
-yy626:
+yy637:
        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 2941 "src/ast/lex_conf.cc"
-yy628:
+#line 2986 "src/ast/lex_conf.cc"
+yy639:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy647;
+       if (yych == 's') goto yy659;
        goto yy4;
-yy629:
+yy640:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy661;
+       goto yy4;
+yy641:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 147 "../src/ast/lex_conf.re"
+#line 148 "../src/ast/lex_conf.re"
        { opts.set_fill_naked   (lex_conf_bool()); return; }
-#line 2953 "src/ast/lex_conf.cc"
-yy631:
+#line 3002 "src/ast/lex_conf.cc"
+yy643:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy648;
+       if (yych == 'O') goto yy662;
        goto yy4;
-yy632:
+yy644:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy649;
+       if (yych == 'a') goto yy663;
        goto yy4;
-yy633:
+yy645:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 113 "../src/ast/lex_conf.re"
+#line 114 "../src/ast/lex_conf.re"
        { opts.set_yyrestorectx (lex_conf_string ()); return; }
-#line 2969 "src/ast/lex_conf.cc"
-yy635:
+#line 3018 "src/ast/lex_conf.cc"
+yy647:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 114 "../src/ast/lex_conf.re"
+#line 115 "../src/ast/lex_conf.re"
        { opts.set_yyrestoretag (lex_conf_string ()); return; }
-#line 2977 "src/ast/lex_conf.cc"
-yy637:
+#line 3026 "src/ast/lex_conf.cc"
+yy649:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy650;
+       if (yych == 'O') goto yy664;
        goto yy4;
-yy638:
+yy650:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy651;
+       if (yych == 'a') goto yy665;
        goto yy4;
-yy639:
+yy651:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy652;
-       goto yy212;
-yy640:
+       if (yych == 't') goto yy666;
+       goto yy215;
+yy652:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy653;
+       if (yych == 'i') goto yy667;
        goto yy4;
-yy641:
+yy653:
        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 3001 "src/ast/lex_conf.cc"
-yy643:
+#line 3050 "src/ast/lex_conf.cc"
+yy655:
        yych = (unsigned char)*++cur;
        if (yych == 's') goto yy100;
        goto yy4;
-yy644:
+yy656:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy654;
+       if (yych == 'i') goto yy668;
        goto yy4;
-yy645:
+yy657:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy655;
+       if (yych == 'c') goto yy669;
        goto yy4;
-yy646:
+yy658:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
        goto yy103;
-yy647:
+yy659:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 51 "../src/ast/lex_conf.re"
+       { opts.set_optimize_tags(lex_conf_bool());      return; }
+#line 3076 "src/ast/lex_conf.cc"
+yy661:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy656;
+       if (yych == 's') goto yy670;
        goto yy4;
-yy648:
+yy662:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy658;
+       if (yych == 'N') goto yy672;
        goto yy4;
-yy649:
+yy663:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy660;
+       if (yych == 'k') goto yy674;
        goto yy4;
-yy650:
+yy664:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy661;
+       if (yych == 'N') goto yy675;
        goto yy4;
-yy651:
+yy665:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy663;
+       if (yych == 'k') goto yy677;
        goto yy4;
-yy652:
+yy666:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy664;
-       goto yy212;
-yy653:
+       if (yych == 'a') goto yy678;
+       goto yy215;
+yy667:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy665;
+       if (yych == 'v') goto yy679;
        goto yy4;
-yy654:
+yy668:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy666;
+       if (yych == 'o') goto yy680;
        goto yy4;
-yy655:
+yy669:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy667;
+       if (yych == 'y') goto yy681;
        goto yy4;
-yy656:
+yy670:
        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 3063 "src/ast/lex_conf.cc"
-yy658:
+#line 3120 "src/ast/lex_conf.cc"
+yy672:
        yych = (unsigned char)*++cur;
        if (yych <= '@') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy669;
+                       if (yych <= ':') goto yy683;
                }
        } else {
                if (yych <= '_') {
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                } else {
-                       if (yych <= '`') goto yy659;
+                       if (yych <= '`') goto yy673;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy659:
-#line 65 "../src/ast/lex_conf.re"
+yy673:
+#line 66 "../src/ast/lex_conf.re"
        { opts.set_cond_get         (lex_conf_string ()); return; }
-#line 3085 "src/ast/lex_conf.cc"
-yy660:
+#line 3142 "src/ast/lex_conf.cc"
+yy674:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy670;
+       if (yych == 'e') goto yy684;
        goto yy4;
-yy661:
+yy675:
        yyaccept = 5;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -3094,173 +3151,173 @@ yy661:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy671;
+                       if (yych <= ':') goto yy685;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy672;
+                       if (yych <= '@') goto yy686;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy662;
+                       if (yych == '`') goto yy676;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy662:
-#line 67 "../src/ast/lex_conf.re"
+yy676:
+#line 68 "../src/ast/lex_conf.re"
        { opts.set_cond_set         (lex_conf_string ()); return; }
-#line 3112 "src/ast/lex_conf.cc"
-yy663:
+#line 3169 "src/ast/lex_conf.cc"
+yy677:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy673;
+       if (yych == 'e') goto yy687;
        goto yy4;
-yy664:
+yy678:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy674;
-       goto yy212;
-yy665:
+       if (yych == 't') goto yy688;
+       goto yy215;
+yy679:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy675;
+       if (yych == 'e') goto yy689;
        goto yy4;
-yy666:
+yy680:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy677;
+       if (yych == 'n') goto yy691;
        goto yy4;
-yy667:
+yy681:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 59 "../src/ast/lex_conf.re"
+#line 60 "../src/ast/lex_conf.re"
        { lex_conf_encoding_policy(opts);  return; }
-#line 3136 "src/ast/lex_conf.cc"
-yy669:
+#line 3193 "src/ast/lex_conf.cc"
+yy683:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy679;
+       if (yych == 'n') goto yy693;
        goto yy4;
-yy670:
+yy684:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy680;
+       if (yych == 'd') goto yy694;
        goto yy4;
-yy671:
+yy685:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy682;
+       if (yych == 'n') goto yy696;
        goto yy4;
-yy672:
+yy686:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy683;
-       goto yy212;
-yy673:
+       if (yych == 'c') goto yy697;
+       goto yy215;
+yy687:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy684;
+       if (yych == 'd') goto yy698;
        goto yy4;
-yy674:
+yy688:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy686;
-       goto yy212;
-yy675:
+       if (yych == 'e') goto yy700;
+       goto yy215;
+yy689:
        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 3168 "src/ast/lex_conf.cc"
-yy677:
+#line 3225 "src/ast/lex_conf.cc"
+yy691:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 62 "../src/ast/lex_conf.re"
+#line 63 "../src/ast/lex_conf.re"
        { lex_conf_dfa_minimization(opts); return; }
-#line 3176 "src/ast/lex_conf.cc"
-yy679:
+#line 3233 "src/ast/lex_conf.cc"
+yy693:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy688;
+       if (yych == 'a') goto yy702;
        goto yy4;
-yy680:
+yy694:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 79 "../src/ast/lex_conf.re"
+#line 80 "../src/ast/lex_conf.re"
        { opts.set_state_get_naked (lex_conf_bool()); return; }
-#line 3188 "src/ast/lex_conf.cc"
-yy682:
+#line 3245 "src/ast/lex_conf.cc"
+yy696:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy689;
+       if (yych == 'a') goto yy703;
        goto yy4;
-yy683:
+yy697:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy690;
-       goto yy212;
-yy684:
+       if (yych == 'o') goto yy704;
+       goto yy215;
+yy698:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 81 "../src/ast/lex_conf.re"
+#line 82 "../src/ast/lex_conf.re"
        { opts.set_state_set_naked (lex_conf_bool()); return; }
-#line 3204 "src/ast/lex_conf.cc"
-yy686:
+#line 3261 "src/ast/lex_conf.cc"
+yy700:
        ++cur;
-#line 82 "../src/ast/lex_conf.re"
+#line 83 "../src/ast/lex_conf.re"
        { opts.set_state_set_arg   (lex_conf_string ()); return; }
-#line 3209 "src/ast/lex_conf.cc"
-yy688:
+#line 3266 "src/ast/lex_conf.cc"
+yy702:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy691;
+       if (yych == 'k') goto yy705;
        goto yy4;
-yy689:
+yy703:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy692;
+       if (yych == 'k') goto yy706;
        goto yy4;
-yy690:
+yy704:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy693;
-       goto yy212;
-yy691:
+       if (yych == 'n') goto yy707;
+       goto yy215;
+yy705:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy694;
+       if (yych == 'e') goto yy708;
        goto yy4;
-yy692:
+yy706:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy695;
+       if (yych == 'e') goto yy709;
        goto yy4;
-yy693:
+yy707:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy696;
-       goto yy212;
-yy694:
+       if (yych == 'd') goto yy710;
+       goto yy215;
+yy708:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy698;
+       if (yych == 'd') goto yy712;
        goto yy4;
-yy695:
+yy709:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy700;
+       if (yych == 'd') goto yy714;
        goto yy4;
-yy696:
+yy710:
        ++cur;
-#line 68 "../src/ast/lex_conf.re"
+#line 69 "../src/ast/lex_conf.re"
        { opts.set_cond_set_arg     (lex_conf_string ()); return; }
-#line 3246 "src/ast/lex_conf.cc"
-yy698:
+#line 3303 "src/ast/lex_conf.cc"
+yy712:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 66 "../src/ast/lex_conf.re"
+#line 67 "../src/ast/lex_conf.re"
        { opts.set_cond_get_naked   (lex_conf_bool()); return; }
-#line 3254 "src/ast/lex_conf.cc"
-yy700:
+#line 3311 "src/ast/lex_conf.cc"
+yy714:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 69 "../src/ast/lex_conf.re"
+#line 70 "../src/ast/lex_conf.re"
        { opts.set_cond_set_naked   (lex_conf_bool()); return; }
-#line 3262 "src/ast/lex_conf.cc"
+#line 3319 "src/ast/lex_conf.cc"
 }
-#line 164 "../src/ast/lex_conf.re"
+#line 165 "../src/ast/lex_conf.re"
 
 }
 
@@ -3268,102 +3325,102 @@ void Scanner::lex_conf_encoding_policy(Opt &opts)
 {
        lex_conf_assign ();
 
-#line 3272 "src/ast/lex_conf.cc"
+#line 3329 "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 yy706;
+               if (yych == 'f') goto yy720;
        } else {
-               if (yych <= 'i') goto yy707;
-               if (yych == 's') goto yy708;
+               if (yych <= 'i') goto yy721;
+               if (yych == 's') goto yy722;
        }
        ++cur;
-yy705:
-#line 171 "../src/ast/lex_conf.re"
+yy719:
+#line 172 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'ignore', 'substitute', 'fail')"); }
-#line 3288 "src/ast/lex_conf.cc"
-yy706:
+#line 3345 "src/ast/lex_conf.cc"
+yy720:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy709;
-       goto yy705;
-yy707:
+       if (yych == 'a') goto yy723;
+       goto yy719;
+yy721:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'g') goto yy711;
-       goto yy705;
-yy708:
+       if (yych == 'g') goto yy725;
+       goto yy719;
+yy722:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy712;
-       goto yy705;
-yy709:
+       if (yych == 'u') goto yy726;
+       goto yy719;
+yy723:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy713;
-yy710:
+       if (yych == 'i') goto yy727;
+yy724:
        cur = mar;
-       goto yy705;
-yy711:
+       goto yy719;
+yy725:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy714;
-       goto yy710;
-yy712:
+       if (yych == 'n') goto yy728;
+       goto yy724;
+yy726:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy715;
-       goto yy710;
-yy713:
+       if (yych == 'b') goto yy729;
+       goto yy724;
+yy727:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy716;
-       goto yy710;
-yy714:
+       if (yych == 'l') goto yy730;
+       goto yy724;
+yy728:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy718;
-       goto yy710;
-yy715:
+       if (yych == 'o') goto yy732;
+       goto yy724;
+yy729:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy719;
-       goto yy710;
-yy716:
+       if (yych == 's') goto yy733;
+       goto yy724;
+yy730:
        ++cur;
-#line 175 "../src/ast/lex_conf.re"
+#line 176 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_FAIL);       goto end; }
-#line 3331 "src/ast/lex_conf.cc"
-yy718:
+#line 3388 "src/ast/lex_conf.cc"
+yy732:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy720;
-       goto yy710;
-yy719:
+       if (yych == 'r') goto yy734;
+       goto yy724;
+yy733:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy721;
-       goto yy710;
-yy720:
+       if (yych == 't') goto yy735;
+       goto yy724;
+yy734:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy722;
-       goto yy710;
-yy721:
+       if (yych == 'e') goto yy736;
+       goto yy724;
+yy735:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy724;
-       goto yy710;
-yy722:
+       if (yych == 'i') goto yy738;
+       goto yy724;
+yy736:
        ++cur;
-#line 173 "../src/ast/lex_conf.re"
+#line 174 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_IGNORE);     goto end; }
-#line 3352 "src/ast/lex_conf.cc"
-yy724:
+#line 3409 "src/ast/lex_conf.cc"
+yy738:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy710;
+       if (yych != 't') goto yy724;
        yych = (unsigned char)*++cur;
-       if (yych != 'u') goto yy710;
+       if (yych != 'u') goto yy724;
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy710;
+       if (yych != 't') goto yy724;
        yych = (unsigned char)*++cur;
-       if (yych != 'e') goto yy710;
+       if (yych != 'e') goto yy724;
        ++cur;
-#line 174 "../src/ast/lex_conf.re"
+#line 175 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); goto end; }
-#line 3365 "src/ast/lex_conf.cc"
+#line 3422 "src/ast/lex_conf.cc"
 }
-#line 176 "../src/ast/lex_conf.re"
+#line 177 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3373,77 +3430,77 @@ void Scanner::lex_conf_input(Opt &opts)
 {
        lex_conf_assign ();
 
-#line 3377 "src/ast/lex_conf.cc"
+#line 3434 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 7) fill(7);
        yych = (unsigned char)*cur;
-       if (yych <= 'b') goto yy732;
-       if (yych <= 'c') goto yy734;
-       if (yych <= 'd') goto yy735;
-yy732:
+       if (yych <= 'b') goto yy746;
+       if (yych <= 'c') goto yy748;
+       if (yych <= 'd') goto yy749;
+yy746:
        ++cur;
-yy733:
-#line 185 "../src/ast/lex_conf.re"
+yy747:
+#line 186 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'default', 'custom')"); }
-#line 3391 "src/ast/lex_conf.cc"
-yy734:
+#line 3448 "src/ast/lex_conf.cc"
+yy748:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy736;
-       goto yy733;
-yy735:
+       if (yych == 'u') goto yy750;
+       goto yy747;
+yy749:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'e') goto yy738;
-       goto yy733;
-yy736:
+       if (yych == 'e') goto yy752;
+       goto yy747;
+yy750:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy739;
-yy737:
+       if (yych == 's') goto yy753;
+yy751:
        cur = mar;
-       goto yy733;
-yy738:
+       goto yy747;
+yy752:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy740;
-       goto yy737;
-yy739:
+       if (yych == 'f') goto yy754;
+       goto yy751;
+yy753:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy741;
-       goto yy737;
-yy740:
+       if (yych == 't') goto yy755;
+       goto yy751;
+yy754:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy742;
-       goto yy737;
-yy741:
+       if (yych == 'a') goto yy756;
+       goto yy751;
+yy755:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy743;
-       goto yy737;
-yy742:
+       if (yych == 'o') goto yy757;
+       goto yy751;
+yy756:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy744;
-       goto yy737;
-yy743:
+       if (yych == 'u') goto yy758;
+       goto yy751;
+yy757:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy745;
-       goto yy737;
-yy744:
+       if (yych == 'm') goto yy759;
+       goto yy751;
+yy758:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy747;
-       goto yy737;
-yy745:
+       if (yych == 'l') goto yy761;
+       goto yy751;
+yy759:
        ++cur;
-#line 188 "../src/ast/lex_conf.re"
+#line 189 "../src/ast/lex_conf.re"
        { opts.set_input_api(INPUT_CUSTOM);  goto end; }
-#line 3438 "src/ast/lex_conf.cc"
-yy747:
+#line 3495 "src/ast/lex_conf.cc"
+yy761:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy737;
+       if (yych != 't') goto yy751;
        ++cur;
-#line 187 "../src/ast/lex_conf.re"
+#line 188 "../src/ast/lex_conf.re"
        { opts.set_input_api(INPUT_DEFAULT); goto end; }
-#line 3445 "src/ast/lex_conf.cc"
+#line 3502 "src/ast/lex_conf.cc"
 }
-#line 189 "../src/ast/lex_conf.re"
+#line 190 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3453,105 +3510,105 @@ void Scanner::lex_conf_empty_class(Opt &opts)
 {
        lex_conf_assign ();
 
-#line 3457 "src/ast/lex_conf.cc"
+#line 3514 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 11) fill(11);
        yych = (unsigned char)*cur;
-       if (yych == 'e') goto yy754;
-       if (yych == 'm') goto yy755;
+       if (yych == 'e') goto yy768;
+       if (yych == 'm') goto yy769;
        ++cur;
-yy753:
-#line 198 "../src/ast/lex_conf.re"
+yy767:
+#line 199 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'match-empty', 'match-none', 'error')"); }
-#line 3469 "src/ast/lex_conf.cc"
-yy754:
+#line 3526 "src/ast/lex_conf.cc"
+yy768:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'r') goto yy756;
-       goto yy753;
-yy755:
+       if (yych == 'r') goto yy770;
+       goto yy767;
+yy769:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy758;
-       goto yy753;
-yy756:
+       if (yych == 'a') goto yy772;
+       goto yy767;
+yy770:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy759;
-yy757:
+       if (yych == 'r') goto yy773;
+yy771:
        cur = mar;
-       goto yy753;
-yy758:
+       goto yy767;
+yy772:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy760;
-       goto yy757;
-yy759:
+       if (yych == 't') goto yy774;
+       goto yy771;
+yy773:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy761;
-       goto yy757;
-yy760:
+       if (yych == 'o') goto yy775;
+       goto yy771;
+yy774:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy762;
-       goto yy757;
-yy761:
+       if (yych == 'c') goto yy776;
+       goto yy771;
+yy775:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy763;
-       goto yy757;
-yy762:
+       if (yych == 'r') goto yy777;
+       goto yy771;
+yy776:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy765;
-       goto yy757;
-yy763:
+       if (yych == 'h') goto yy779;
+       goto yy771;
+yy777:
        ++cur;
-#line 202 "../src/ast/lex_conf.re"
+#line 203 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_ERROR);       goto end; }
-#line 3508 "src/ast/lex_conf.cc"
-yy765:
+#line 3565 "src/ast/lex_conf.cc"
+yy779:
        yych = (unsigned char)*++cur;
-       if (yych != '-') goto yy757;
+       if (yych != '-') goto yy771;
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy767;
-       if (yych == 'n') goto yy768;
-       goto yy757;
-yy767:
+       if (yych == 'e') goto yy781;
+       if (yych == 'n') goto yy782;
+       goto yy771;
+yy781:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy769;
-       goto yy757;
-yy768:
+       if (yych == 'm') goto yy783;
+       goto yy771;
+yy782:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy770;
-       goto yy757;
-yy769:
+       if (yych == 'o') goto yy784;
+       goto yy771;
+yy783:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy771;
-       goto yy757;
-yy770:
+       if (yych == 'p') goto yy785;
+       goto yy771;
+yy784:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy772;
-       goto yy757;
-yy771:
+       if (yych == 'n') goto yy786;
+       goto yy771;
+yy785:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy773;
-       goto yy757;
-yy772:
+       if (yych == 't') goto yy787;
+       goto yy771;
+yy786:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy774;
-       goto yy757;
-yy773:
+       if (yych == 'e') goto yy788;
+       goto yy771;
+yy787:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy776;
-       goto yy757;
-yy774:
+       if (yych == 'y') goto yy790;
+       goto yy771;
+yy788:
        ++cur;
-#line 201 "../src/ast/lex_conf.re"
+#line 202 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE);  goto end; }
-#line 3548 "src/ast/lex_conf.cc"
-yy776:
+#line 3605 "src/ast/lex_conf.cc"
+yy790:
        ++cur;
-#line 200 "../src/ast/lex_conf.re"
+#line 201 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); goto end; }
-#line 3553 "src/ast/lex_conf.cc"
+#line 3610 "src/ast/lex_conf.cc"
 }
-#line 203 "../src/ast/lex_conf.re"
+#line 204 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3561,65 +3618,65 @@ void Scanner::lex_conf_dfa_minimization(Opt &opts)
 {
        lex_conf_assign ();
 
-#line 3565 "src/ast/lex_conf.cc"
+#line 3622 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 5) fill(5);
        yych = (unsigned char)*cur;
-       if (yych == 'm') goto yy782;
-       if (yych == 't') goto yy783;
+       if (yych == 'm') goto yy796;
+       if (yych == 't') goto yy797;
        ++cur;
-yy781:
-#line 212 "../src/ast/lex_conf.re"
+yy795:
+#line 213 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'table', 'moore')"); }
-#line 3577 "src/ast/lex_conf.cc"
-yy782:
+#line 3634 "src/ast/lex_conf.cc"
+yy796:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'o') goto yy784;
-       goto yy781;
-yy783:
+       if (yych == 'o') goto yy798;
+       goto yy795;
+yy797:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy786;
-       goto yy781;
-yy784:
+       if (yych == 'a') goto yy800;
+       goto yy795;
+yy798:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy787;
-yy785:
+       if (yych == 'o') goto yy801;
+yy799:
        cur = mar;
-       goto yy781;
-yy786:
+       goto yy795;
+yy800:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy788;
-       goto yy785;
-yy787:
+       if (yych == 'b') goto yy802;
+       goto yy799;
+yy801:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy789;
-       goto yy785;
-yy788:
+       if (yych == 'r') goto yy803;
+       goto yy799;
+yy802:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy790;
-       goto yy785;
-yy789:
+       if (yych == 'l') goto yy804;
+       goto yy799;
+yy803:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy791;
-       goto yy785;
-yy790:
+       if (yych == 'e') goto yy805;
+       goto yy799;
+yy804:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy793;
-       goto yy785;
-yy791:
+       if (yych == 'e') goto yy807;
+       goto yy799;
+yy805:
        ++cur;
-#line 215 "../src/ast/lex_conf.re"
+#line 216 "../src/ast/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_MOORE); goto end; }
-#line 3616 "src/ast/lex_conf.cc"
-yy793:
+#line 3673 "src/ast/lex_conf.cc"
+yy807:
        ++cur;
-#line 214 "../src/ast/lex_conf.re"
+#line 215 "../src/ast/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_TABLE); goto end; }
-#line 3621 "src/ast/lex_conf.cc"
+#line 3678 "src/ast/lex_conf.cc"
 }
-#line 216 "../src/ast/lex_conf.re"
+#line 217 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3637,7 +3694,7 @@ void Scanner::lex_conf_enc(Enc::type_t enc, Opt &opts)
 void Scanner::lex_conf_assign ()
 {
 
-#line 3641 "src/ast/lex_conf.cc"
+#line 3698 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3677,56 +3734,56 @@ void Scanner::lex_conf_assign ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy799;
+               if (yych == '\t') goto yy813;
        } else {
-               if (yych <= ' ') goto yy799;
-               if (yych == '=') goto yy800;
+               if (yych <= ' ') goto yy813;
+               if (yych == '=') goto yy814;
        }
        ++cur;
-yy798:
-#line 233 "../src/ast/lex_conf.re"
+yy812:
+#line 234 "../src/ast/lex_conf.re"
        { fatal ("missing '=' in configuration"); }
-#line 3690 "src/ast/lex_conf.cc"
-yy799:
+#line 3747 "src/ast/lex_conf.cc"
+yy813:
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy803;
-               goto yy798;
+               if (yych == '\t') goto yy817;
+               goto yy812;
        } else {
-               if (yych <= ' ') goto yy803;
-               if (yych != '=') goto yy798;
+               if (yych <= ' ') goto yy817;
+               if (yych != '=') goto yy812;
        }
-yy800:
+yy814:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy800;
+               goto yy814;
        }
-#line 234 "../src/ast/lex_conf.re"
+#line 235 "../src/ast/lex_conf.re"
        { return; }
-#line 3709 "src/ast/lex_conf.cc"
-yy803:
+#line 3766 "src/ast/lex_conf.cc"
+yy817:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy803;
+               if (yych == '\t') goto yy817;
        } else {
-               if (yych <= ' ') goto yy803;
-               if (yych == '=') goto yy800;
+               if (yych <= ' ') goto yy817;
+               if (yych == '=') goto yy814;
        }
        cur = mar;
-       goto yy798;
+       goto yy812;
 }
-#line 235 "../src/ast/lex_conf.re"
+#line 236 "../src/ast/lex_conf.re"
 
 }
 
 void Scanner::lex_conf_semicolon ()
 {
 
-#line 3730 "src/ast/lex_conf.cc"
+#line 3787 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3766,39 +3823,39 @@ void Scanner::lex_conf_semicolon ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy810;
+               if (yych == '\t') goto yy824;
        } else {
-               if (yych <= ' ') goto yy810;
-               if (yych == ';') goto yy811;
+               if (yych <= ' ') goto yy824;
+               if (yych == ';') goto yy825;
        }
        ++cur;
-yy809:
-#line 241 "../src/ast/lex_conf.re"
+yy823:
+#line 242 "../src/ast/lex_conf.re"
        { fatal ("missing ending ';' in configuration"); }
-#line 3779 "src/ast/lex_conf.cc"
-yy810:
+#line 3836 "src/ast/lex_conf.cc"
+yy824:
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 128) {
-               goto yy813;
+               goto yy827;
        }
-       if (yych != ';') goto yy809;
-yy811:
+       if (yych != ';') goto yy823;
+yy825:
        ++cur;
-#line 242 "../src/ast/lex_conf.re"
+#line 243 "../src/ast/lex_conf.re"
        { return; }
-#line 3790 "src/ast/lex_conf.cc"
-yy813:
+#line 3847 "src/ast/lex_conf.cc"
+yy827:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy813;
+               goto yy827;
        }
-       if (yych == ';') goto yy811;
+       if (yych == ';') goto yy825;
        cur = mar;
-       goto yy809;
+       goto yy823;
 }
-#line 243 "../src/ast/lex_conf.re"
+#line 244 "../src/ast/lex_conf.re"
 
 }
 
@@ -3812,7 +3869,7 @@ int32_t Scanner::lex_conf_number ()
        lex_conf_assign ();
        tok = cur;
 
-#line 3816 "src/ast/lex_conf.cc"
+#line 3873 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3852,21 +3909,21 @@ int32_t Scanner::lex_conf_number ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= '/') {
-               if (yych == '-') goto yy819;
+               if (yych == '-') goto yy833;
        } else {
-               if (yych <= '0') goto yy820;
-               if (yych <= '9') goto yy822;
+               if (yych <= '0') goto yy834;
+               if (yych <= '9') goto yy836;
        }
-yy818:
-yy819:
+yy832:
+yy833:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy818;
-       if (yych <= '9') goto yy822;
-       goto yy818;
-yy820:
+       if (yych <= '0') goto yy832;
+       if (yych <= '9') goto yy836;
+       goto yy832;
+yy834:
        ++cur;
-yy821:
-#line 257 "../src/ast/lex_conf.re"
+yy835:
+#line 258 "../src/ast/lex_conf.re"
        {
                int32_t n = 0;
                if (!s_to_i32_unsafe (tok, cur, n))
@@ -3876,17 +3933,17 @@ yy821:
                lex_conf_semicolon ();
                return n;
        }
-#line 3880 "src/ast/lex_conf.cc"
-yy822:
+#line 3937 "src/ast/lex_conf.cc"
+yy836:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy822;
+               goto yy836;
        }
-       goto yy821;
+       goto yy835;
 }
-#line 266 "../src/ast/lex_conf.re"
+#line 267 "../src/ast/lex_conf.re"
 
 }
 
@@ -3896,7 +3953,7 @@ std::string Scanner::lex_conf_string ()
        std::string s;
        tok = cur;
 
-#line 3900 "src/ast/lex_conf.cc"
+#line 3957 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3937,38 +3994,38 @@ std::string Scanner::lex_conf_string ()
        yych = (unsigned char)*cur;
        if (yych <= '!') {
                if (yych <= '\n') {
-                       if (yych <= 0x08) goto yy827;
+                       if (yych <= 0x08) goto yy841;
                } else {
-                       if (yych != ' ') goto yy827;
+                       if (yych != ' ') goto yy841;
                }
        } else {
                if (yych <= '\'') {
-                       if (yych <= '"') goto yy830;
-                       if (yych <= '&') goto yy827;
-                       goto yy830;
+                       if (yych <= '"') goto yy844;
+                       if (yych <= '&') goto yy841;
+                       goto yy844;
                } else {
-                       if (yych != ';') goto yy827;
+                       if (yych != ';') goto yy841;
                }
        }
-#line 293 "../src/ast/lex_conf.re"
+#line 294 "../src/ast/lex_conf.re"
        { goto end; }
-#line 3956 "src/ast/lex_conf.cc"
-yy827:
+#line 4013 "src/ast/lex_conf.cc"
+yy841:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy827;
+               goto yy841;
        }
-#line 289 "../src/ast/lex_conf.re"
+#line 290 "../src/ast/lex_conf.re"
        {
                s = std::string(tok, tok_len());
                goto end;
        }
-#line 3969 "src/ast/lex_conf.cc"
-yy830:
+#line 4026 "src/ast/lex_conf.cc"
+yy844:
        ++cur;
-#line 275 "../src/ast/lex_conf.re"
+#line 276 "../src/ast/lex_conf.re"
        {
                const char quote = tok[0];
                for (bool end;;) {
@@ -3983,9 +4040,9 @@ yy830:
                        }
                }
        }
-#line 3987 "src/ast/lex_conf.cc"
+#line 4044 "src/ast/lex_conf.cc"
 }
-#line 294 "../src/ast/lex_conf.re"
+#line 295 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon ();
index b390735c424e15dd083177786d70cff45b603d87..20261d9b69733e493c9cde883d9d704991762f0a 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 on Tue Mar  7 21:26:57 2017 */
+/* Generated by re2c 0.16 on Mon Jul 17 22:49:04 2017 */
 #line 1 "../src/conf/parse_opts.re"
 #include "src/code/input_api.h"
 #include "src/conf/msg.h"
@@ -1364,1344 +1364,1402 @@ yy319:
        case 'd':       goto yy349;
        case 'g':       goto yy350;
        case 'l':       goto yy351;
-       case 'v':       goto yy352;
+       case 'o':       goto yy352;
+       case 'v':       goto yy353;
        default:        goto yy277;
        }
 yy320:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy353;
+       if (yych == 'p') goto yy354;
        goto yy277;
 yy321:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy354;
+       if (yych == 'i') goto yy355;
        goto yy277;
 yy322:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy355;
+       if (yych == 's') goto yy356;
        goto yy277;
 yy323:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy356;
+       if (yych == 'g') goto yy357;
        goto yy277;
 yy324:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy357;
+       if (yych == 'l') goto yy358;
        goto yy277;
 yy325:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy358;
+       if (yych == 'r') goto yy359;
        goto yy277;
 yy326:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy359;
+       if (yych == 'r') goto yy360;
        goto yy277;
 yy327:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy360;
+       if (yych == 's') goto yy361;
        goto yy277;
 yy328:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy361;
+       if (yych == 'e') goto yy362;
        goto yy277;
 yy329:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy362;
+       if (yych == 'c') goto yy363;
        goto yy277;
 yy330:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy363;
+       if (yych == '-') goto yy364;
        goto yy277;
 yy331:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy364;
-       if (yych == 's') goto yy365;
+       if (yych == 'n') goto yy365;
+       if (yych == 's') goto yy366;
        goto yy277;
 yy332:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy366;
+       if (yych == 'e') goto yy367;
        goto yy277;
 yy333:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy367;
+       if (yych == 'v') goto yy368;
        goto yy277;
 yy334:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy368;
+       if (yych == '-') goto yy369;
        goto yy277;
 yy335:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy369;
+       if (yych == 'u') goto yy370;
        goto yy277;
 yy336:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy370;
+       if (yych == 'g') goto yy371;
        goto yy277;
 yy337:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy371;
+       if (yych == 'm') goto yy372;
        goto yy277;
 yy338:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy372;
+       if (yych == '-') goto yy373;
        goto yy277;
 yy339:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy373;
+       if (yych == 'r') goto yy374;
        goto yy277;
 yy340:
        ++YYCURSOR;
-#line 157 "../src/conf/parse_opts.re"
+#line 158 "../src/conf/parse_opts.re"
        { opts.set_encoding(Enc::EBCDIC);    goto opt; }
-#line 1456 "src/conf/parse_opts.cc"
+#line 1457 "src/conf/parse_opts.cc"
 yy342:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy374;
+       if (yych == '-') goto yy375;
        goto yy277;
 yy343:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy375;
+       if (yych == 'y') goto yy376;
        goto yy277;
 yy344:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy376;
+       if (yych == 'd') goto yy377;
        goto yy277;
 yy345:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy377;
+       if (yych == '-') goto yy378;
        goto yy277;
 yy346:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy378;
+       if (yych <= 0x00) goto yy379;
        goto yy277;
 yy347:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy380;
+       if (yych == 't') goto yy381;
        goto yy277;
 yy348:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy381;
+       if (yych == 'e') goto yy382;
        goto yy277;
 yy349:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy382;
+       if (yych == 'e') goto yy383;
        goto yy277;
 yy350:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy383;
+       if (yych == 'e') goto yy384;
        goto yy277;
 yy351:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy384;
+       if (yych == 'o') goto yy385;
        goto yy277;
 yy352:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy385;
+       if (yych == 'p') goto yy386;
        goto yy277;
 yy353:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy386;
+       if (yych == 'e') goto yy387;
        goto yy277;
 yy354:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy387;
+       if (yych == 'u') goto yy388;
        goto yy277;
 yy355:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy388;
+       if (yych == 'x') goto yy389;
        goto yy277;
 yy356:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy389;
+       if (yych == 'a') goto yy390;
        goto yy277;
 yy357:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy390;
+       if (yych == 'l') goto yy391;
        goto yy277;
 yy358:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy391;
+       if (yych == 'e') goto yy392;
        goto yy277;
 yy359:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy392;
+       if (yych == 't') goto yy393;
        goto yy277;
 yy360:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy393;
+       if (yych == 'a') goto yy394;
        goto yy277;
 yy361:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy395;
+       if (yych <= 0x00) goto yy395;
        goto yy277;
 yy362:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy396;
+       if (yych == '-') goto yy397;
        goto yy277;
 yy363:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '1') goto yy397;
-       if (yych == '8') goto yy398;
+       if (yych == 'o') goto yy398;
        goto yy277;
 yy364:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy399;
+       if (yych == '1') goto yy399;
+       if (yych == '8') goto yy400;
        goto yy277;
 yy365:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy400;
+       if (yych == 'u') goto yy401;
        goto yy277;
 yy366:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy401;
+       if (yych == 'i') goto yy402;
        goto yy277;
 yy367:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy402;
+       if (yych == '-') goto yy403;
        goto yy277;
 yy368:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy403;
+       if (yych == 'e') goto yy404;
        goto yy277;
 yy369:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy404;
+       if (yych == 'i') goto yy405;
        goto yy277;
 yy370:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy405;
+       if (yych == 't') goto yy406;
        goto yy277;
 yy371:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy406;
+       if (yych == '-') goto yy407;
        goto yy277;
 yy372:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy408;
+       goto yy277;
+yy373:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= 'c') {
-               if (yych == 'a') goto yy407;
+               if (yych == 'a') goto yy409;
                goto yy277;
        } else {
-               if (yych <= 'd') goto yy408;
-               if (yych == 'n') goto yy409;
+               if (yych <= 'd') goto yy410;
+               if (yych == 'n') goto yy411;
                goto yy277;
        }
-yy373:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy410;
-       goto yy277;
 yy374:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy411;
+       if (yych == '-') goto yy412;
        goto yy277;
 yy375:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy412;
+       if (yych == 'd') goto yy413;
        goto yy277;
 yy376:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy413;
+       if (yych == '-') goto yy414;
        goto yy277;
 yy377:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy414;
+       if (yych == 'i') goto yy415;
        goto yy277;
 yy378:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy416;
+       goto yy277;
+yy379:
        ++YYCURSOR;
 #line 133 "../src/conf/parse_opts.re"
        { usage ();   return EXIT_OK; }
-#line 1612 "src/conf/parse_opts.cc"
-yy380:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy415;
-       goto yy277;
+#line 1617 "src/conf/parse_opts.cc"
 yy381:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy417;
+       if (yych <= 0x00) goto yy417;
        goto yy277;
 yy382:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy418;
+       if (yych == 'd') goto yy419;
        goto yy277;
 yy383:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy419;
+       if (yych == 'b') goto yy420;
        goto yy277;
 yy384:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy420;
+       if (yych == 'n') goto yy421;
        goto yy277;
 yy385:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy421;
+       if (yych == 'o') goto yy422;
        goto yy277;
 yy386:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy422;
+       if (yych == 't') goto yy423;
        goto yy277;
 yy387:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy423;
+       if (yych == 'r') goto yy424;
        goto yy277;
 yy388:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy424;
+       if (yych == 't') goto yy425;
        goto yy277;
 yy389:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy425;
+       if (yych == '-') goto yy426;
        goto yy277;
 yy390:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy426;
+       if (yych == 'b') goto yy427;
        goto yy277;
 yy391:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy427;
+       if (yych == 'e') goto yy428;
        goto yy277;
 yy392:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy428;
+       if (yych == 't') goto yy429;
        goto yy277;
 yy393:
-       ++YYCURSOR;
-#line 153 "../src/conf/parse_opts.re"
-       { opts.set_tags (true);              goto opt; }
-#line 1669 "src/conf/parse_opts.cc"
-yy395:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy429;
+       if (yych == '-') goto yy430;
        goto yy277;
-yy396:
+yy394:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy430;
+       if (yych == 'b') goto yy431;
        goto yy277;
+yy395:
+       ++YYCURSOR;
+#line 153 "../src/conf/parse_opts.re"
+       { opts.set_tags (true);              goto opt; }
+#line 1678 "src/conf/parse_opts.cc"
 yy397:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '6') goto yy431;
+       if (yych == 'h') goto yy432;
        goto yy277;
 yy398:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy432;
+       if (yych == 'd') goto yy433;
        goto yy277;
 yy399:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy434;
+       if (yych == '6') goto yy434;
        goto yy277;
 yy400:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy435;
+       if (yych <= 0x00) goto yy435;
        goto yy277;
 yy401:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy436;
+       if (yych == 'm') goto yy437;
        goto yy277;
 yy402:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy437;
+       if (yych == 'o') goto yy438;
        goto yy277;
 yy403:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy438;
+       if (yych == 'c') goto yy439;
        goto yy277;
 yy404:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy439;
+       if (yych == 'c') goto yy440;
        goto yy277;
 yy405:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy440;
+       if (yych == 'n') goto yy441;
        goto yy277;
 yy406:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy441;
+       if (yych == 'e') goto yy442;
        goto yy277;
 yy407:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy442;
+       if (yych == 'o') goto yy443;
        goto yy277;
 yy408:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy443;
+       if (yych == 'n') goto yy444;
        goto yy277;
 yy409:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy444;
+       if (yych == 'd') goto yy445;
        goto yy277;
 yy410:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy445;
+       if (yych == 'f') goto yy446;
        goto yy277;
 yy411:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy446;
+       if (yych == 'f') goto yy447;
        goto yy277;
 yy412:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy447;
+       if (yych == 's') goto yy448;
        goto yy277;
 yy413:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy448;
+       if (yych == 'o') goto yy449;
        goto yy277;
 yy414:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy449;
+       if (yych == 'c') goto yy450;
        goto yy277;
 yy415:
-       ++YYCURSOR;
-#line 165 "../src/conf/parse_opts.re"
-       { goto opt_input; }
-#line 1754 "src/conf/parse_opts.cc"
-yy417:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy450;
+       if (yych == 'n') goto yy451;
        goto yy277;
-yy418:
+yy416:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy451;
+       if (yych == 'y') goto yy452;
        goto yy277;
+yy417:
+       ++YYCURSOR;
+#line 166 "../src/conf/parse_opts.re"
+       { goto opt_input; }
+#line 1763 "src/conf/parse_opts.cc"
 yy419:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy452;
+       if (yych == '-') goto yy453;
        goto yy277;
 yy420:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'k') goto yy453;
+       if (yych == 'u') goto yy454;
        goto yy277;
 yy421:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy454;
+       if (yych == 'e') goto yy455;
        goto yy277;
 yy422:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy455;
+       if (yych == 'k') goto yy456;
        goto yy277;
 yy423:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy457;
+       if (yych == 'i') goto yy457;
        goto yy277;
 yy424:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy458;
+       if (yych == 's') goto yy458;
        goto yy277;
 yy425:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy459;
+       if (yych <= 0x00) goto yy459;
        goto yy277;
 yy426:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy460;
+       if (yych == 'c') goto yy461;
        goto yy277;
 yy427:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy461;
+       if (yych == 'l') goto yy462;
        goto yy277;
 yy428:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy462;
+       if (yych == '-') goto yy463;
        goto yy277;
 yy429:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy463;
+       if (yych == 'o') goto yy464;
        goto yy277;
 yy430:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy464;
+       if (yych == 'c') goto yy465;
        goto yy277;
 yy431:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy465;
+       if (yych == 'l') goto yy466;
        goto yy277;
 yy432:
-       ++YYCURSOR;
-#line 161 "../src/conf/parse_opts.re"
-       { opts.set_encoding(Enc::UTF8);      goto opt; }
-#line 1819 "src/conf/parse_opts.cc"
-yy434:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy467;
+       if (yych == 'e') goto yy467;
        goto yy277;
-yy435:
+yy433:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy469;
+       if (yych == 'e') goto yy468;
        goto yy277;
-yy436:
+yy434:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy470;
+       if (yych <= 0x00) goto yy469;
        goto yy277;
+yy435:
+       ++YYCURSOR;
+#line 162 "../src/conf/parse_opts.re"
+       { opts.set_encoding(Enc::UTF8);      goto opt; }
+#line 1832 "src/conf/parse_opts.cc"
 yy437:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy471;
+       if (yych <= 0x00) goto yy471;
        goto yy277;
 yy438:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy472;
-       if (yych == 'v') goto yy473;
+       if (yych == 'n') goto yy473;
        goto yy277;
 yy439:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy474;
+       if (yych == 'h') goto yy474;
        goto yy277;
 yy440:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy475;
+       if (yych == 't') goto yy475;
        goto yy277;
 yy441:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy476;
+       if (yych == 's') goto yy476;
+       if (yych == 'v') goto yy477;
        goto yy277;
 yy442:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy477;
+       if (yych == 'd') goto yy478;
        goto yy277;
 yy443:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy478;
+       if (yych == 'u') goto yy479;
        goto yy277;
 yy444:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy479;
+       if (yych == 'i') goto yy480;
        goto yy277;
 yy445:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'k') goto yy480;
+       if (yych == 'f') goto yy481;
        goto yy277;
 yy446:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy481;
+       if (yych == 'a') goto yy482;
        goto yy277;
 yy447:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy482;
+       if (yych == 'a') goto yy483;
        goto yy277;
 yy448:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy483;
+       if (yych == 'k') goto yy484;
        goto yy277;
 yy449:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy484;
+       if (yych == 't') goto yy485;
        goto yy277;
 yy450:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy485;
+       if (yych == 'l') goto yy486;
        goto yy277;
 yy451:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy486;
+       if (yych == 'g') goto yy487;
        goto yy277;
 yy452:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy487;
+       if (yych == 'n') goto yy488;
        goto yy277;
 yy453:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy488;
+       if (yych == 'i') goto yy489;
        goto yy277;
 yy454:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy489;
+       if (yych == 'g') goto yy490;
        goto yy277;
 yy455:
-       ++YYCURSOR;
-#line 162 "../src/conf/parse_opts.re"
-       { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
-#line 1909 "src/conf/parse_opts.cc"
-yy457:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy490;
+       if (yych == 'r') goto yy491;
        goto yy277;
-yy458:
+yy456:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy491;
+       if (yych == 'a') goto yy492;
        goto yy277;
-yy459:
+yy457:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy492;
+       if (yych == 'm') goto yy493;
        goto yy277;
-yy460:
+yy458:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy493;
+       if (yych == 'i') goto yy494;
        goto yy277;
+yy459:
+       ++YYCURSOR;
+#line 163 "../src/conf/parse_opts.re"
+       { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
+#line 1926 "src/conf/parse_opts.cc"
 yy461:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy494;
+       if (yych == 'a') goto yy495;
        goto yy277;
 yy462:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy495;
+       if (yych == 'e') goto yy496;
        goto yy277;
 yy463:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy496;
+       if (yych == 'p') goto yy497;
        goto yy277;
 yy464:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy497;
+       if (yych == 'n') goto yy498;
        goto yy277;
 yy465:
-       ++YYCURSOR;
-#line 160 "../src/conf/parse_opts.re"
-       { opts.set_encoding(Enc::UTF16);     goto opt; }
-#line 1946 "src/conf/parse_opts.cc"
-yy467:
-       ++YYCURSOR;
-#line 135 "../src/conf/parse_opts.re"
-       { vernum ();  return EXIT_OK; }
-#line 1951 "src/conf/parse_opts.cc"
-yy469:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy499;
+       if (yych == 'o') goto yy499;
        goto yy277;
-yy470:
+yy466:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy501;
+       if (yych == 'e') goto yy500;
        goto yy277;
-yy471:
+yy467:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy502;
+       if (yych == 'a') goto yy501;
        goto yy277;
-yy472:
+yy468:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy503;
+       if (yych <= 0x00) goto yy502;
        goto yy277;
+yy469:
+       ++YYCURSOR;
+#line 161 "../src/conf/parse_opts.re"
+       { opts.set_encoding(Enc::UTF16);     goto opt; }
+#line 1963 "src/conf/parse_opts.cc"
+yy471:
+       ++YYCURSOR;
+#line 135 "../src/conf/parse_opts.re"
+       { vernum ();  return EXIT_OK; }
+#line 1968 "src/conf/parse_opts.cc"
 yy473:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy504;
+       if (yych <= 0x00) goto yy504;
        goto yy277;
 yy474:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy505;
+       if (yych == 'a') goto yy506;
        goto yy277;
 yy475:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy506;
+       if (yych == 'o') goto yy507;
        goto yy277;
 yy476:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy507;
+       if (yych == 'e') goto yy508;
        goto yy277;
 yy477:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy508;
+       if (yych == 'e') goto yy509;
        goto yy277;
 yy478:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy509;
+       if (yych == '-') goto yy510;
        goto yy277;
 yy479:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy510;
+       if (yych == 't') goto yy511;
        goto yy277;
 yy480:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy512;
+       if (yych == 'm') goto yy512;
        goto yy277;
 yy481:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy513;
+       if (yych == 'a') goto yy513;
        goto yy277;
 yy482:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy515;
+       if (yych == '-') goto yy514;
        goto yy277;
 yy483:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy516;
+       if (yych <= 0x00) goto yy515;
        goto yy277;
 yy484:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy517;
+       if (yych == 'i') goto yy517;
        goto yy277;
 yy485:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy518;
+       if (yych <= 0x00) goto yy518;
        goto yy277;
 yy486:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy519;
+       if (yych == 'a') goto yy520;
        goto yy277;
 yy487:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy520;
+       if (yych == '-') goto yy521;
        goto yy277;
 yy488:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy521;
+       if (yych == 't') goto yy522;
        goto yy277;
 yy489:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy522;
+       if (yych == 'f') goto yy523;
        goto yy277;
 yy490:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy523;
+       if (yych == '-') goto yy524;
        goto yy277;
 yy491:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy524;
+       if (yych == 'a') goto yy525;
        goto yy277;
 yy492:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy526;
+       if (yych == 'h') goto yy526;
        goto yy277;
 yy493:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy527;
+       if (yych == 'i') goto yy527;
        goto yy277;
 yy494:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy529;
+       if (yych == 'o') goto yy528;
        goto yy277;
 yy495:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy530;
+       if (yych == 'p') goto yy529;
        goto yy277;
 yy496:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy531;
+       if (yych <= 0x00) goto yy530;
        goto yy277;
 yy497:
-       ++YYCURSOR;
-#line 158 "../src/conf/parse_opts.re"
-       { opts.set_encoding(Enc::UTF32);     goto opt; }
-#line 2068 "src/conf/parse_opts.cc"
-yy499:
-       ++YYCURSOR;
-#line 134 "../src/conf/parse_opts.re"
-       { version (); return EXIT_OK; }
-#line 2073 "src/conf/parse_opts.cc"
-yy501:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy532;
+       if (yych == 'a') goto yy532;
        goto yy277;
-yy502:
+yy498:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy533;
+       if (yych <= 0x00) goto yy533;
        goto yy277;
-yy503:
+yy499:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy534;
+       if (yych == 'n') goto yy535;
        goto yy277;
-yy504:
+yy500:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy535;
+       if (yych == '-') goto yy536;
        goto yy277;
-yy505:
+yy501:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy536;
+       if (yych == 'd') goto yy537;
        goto yy277;
+yy502:
+       ++YYCURSOR;
+#line 159 "../src/conf/parse_opts.re"
+       { opts.set_encoding(Enc::UTF32);     goto opt; }
+#line 2089 "src/conf/parse_opts.cc"
+yy504:
+       ++YYCURSOR;
+#line 134 "../src/conf/parse_opts.re"
+       { version (); return EXIT_OK; }
+#line 2094 "src/conf/parse_opts.cc"
 yy506:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy537;
+       if (yych == 'r') goto yy538;
        goto yy277;
 yy507:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy538;
+       if (yych == 'r') goto yy539;
        goto yy277;
 yy508:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy539;
+       if (yych == 'n') goto yy540;
        goto yy277;
 yy509:
        yych = (YYCTYPE)*++YYCURSOR;
-       switch (yych) {
-       case 'd':       goto yy541;
-       case 'm':       goto yy542;
-       case 'r':       goto yy543;
-       case 't':       goto yy544;
-       default:        goto yy277;
-       }
+       if (yych == 'r') goto yy541;
+       goto yy277;
 yy510:
-       ++YYCURSOR;
-#line 170 "../src/conf/parse_opts.re"
-       { globopts.dump_nfa = true;        goto opt; }
-#line 2119 "src/conf/parse_opts.cc"
-yy512:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy545;
+       if (yych == 'g') goto yy542;
        goto yy277;
-yy513:
-       ++YYCURSOR;
-#line 138 "../src/conf/parse_opts.re"
-       { globopts.target = TARGET_DOT;      goto opt; }
-#line 2128 "src/conf/parse_opts.cc"
-yy515:
+yy511:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy546;
+       if (yych == 'p') goto yy543;
        goto yy277;
-yy516:
+yy512:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy547;
+       if (yych == 'i') goto yy544;
        goto yy277;
-yy517:
+yy513:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy548;
+       if (yych <= 0x00) goto yy545;
        goto yy277;
-yy518:
+yy514:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy549;
-       goto yy277;
-yy519:
+       switch (yych) {
+       case 'd':       goto yy547;
+       case 'm':       goto yy548;
+       case 'r':       goto yy549;
+       case 't':       goto yy550;
+       default:        goto yy277;
+       }
+yy515:
+       ++YYCURSOR;
+#line 171 "../src/conf/parse_opts.re"
+       { globopts.dump_nfa = true;        goto opt; }
+#line 2140 "src/conf/parse_opts.cc"
+yy517:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy550;
+       if (yych == 'p') goto yy551;
        goto yy277;
+yy518:
+       ++YYCURSOR;
+#line 138 "../src/conf/parse_opts.re"
+       { globopts.target = TARGET_DOT;      goto opt; }
+#line 2149 "src/conf/parse_opts.cc"
 yy520:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy551;
+       if (yych == 's') goto yy552;
        goto yy277;
 yy521:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy552;
+       if (yych == 'p') goto yy553;
        goto yy277;
 yy522:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy553;
+       if (yych == 'a') goto yy554;
        goto yy277;
 yy523:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy554;
+       if (yych == 's') goto yy555;
        goto yy277;
 yy524:
-       ++YYCURSOR;
-#line 141 "../src/conf/parse_opts.re"
-       { globopts.rFlag = true;             goto opt; }
-#line 2169 "src/conf/parse_opts.cc"
-yy526:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy555;
+       if (yych == 'i') goto yy556;
        goto yy277;
-yy527:
-       ++YYCURSOR;
-#line 144 "../src/conf/parse_opts.re"
-       { globopts.target = TARGET_SKELETON; goto opt; }
-#line 2178 "src/conf/parse_opts.cc"
-yy529:
+yy525:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy556;
+       if (yych == 't') goto yy557;
        goto yy277;
-yy530:
+yy526:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy557;
+       if (yych == 'e') goto yy558;
        goto yy277;
-yy531:
+yy527:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy558;
+       if (yych == 'z') goto yy559;
        goto yy277;
-yy532:
+yy528:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy559;
+       if (yych == 'n') goto yy560;
        goto yy277;
-yy533:
+yy529:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy560;
+       if (yych == 't') goto yy561;
        goto yy277;
-yy534:
+yy530:
+       ++YYCURSOR;
+#line 141 "../src/conf/parse_opts.re"
+       { globopts.rFlag = true;             goto opt; }
+#line 2194 "src/conf/parse_opts.cc"
+yy532:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy561;
+       if (yych == 's') goto yy562;
        goto yy277;
+yy533:
+       ++YYCURSOR;
+#line 144 "../src/conf/parse_opts.re"
+       { globopts.target = TARGET_SKELETON; goto opt; }
+#line 2203 "src/conf/parse_opts.cc"
 yy535:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy562;
+       if (yych == 'd') goto yy563;
        goto yy277;
 yy536:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy563;
+       if (yych == 's') goto yy564;
        goto yy277;
 yy537:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy564;
+       if (yych == 'e') goto yy565;
        goto yy277;
 yy538:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'z') goto yy565;
+       if (yych == 's') goto yy566;
        goto yy277;
 yy539:
-       ++YYCURSOR;
-#line 175 "../src/conf/parse_opts.re"
-       { globopts.dump_adfa = true;       goto opt; }
-#line 2223 "src/conf/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy567;
+       goto yy277;
+yy540:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy568;
+       goto yy277;
 yy541:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy566;
+       if (yych == 't') goto yy569;
        goto yy277;
 yy542:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy567;
+       if (yych == 'o') goto yy570;
        goto yy277;
 yy543:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy568;
+       if (yych == 'u') goto yy571;
        goto yy277;
 yy544:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy569;
+       if (yych == 'z') goto yy572;
        goto yy277;
 yy545:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy570;
-       goto yy277;
-yy546:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy572;
-       goto yy277;
+       ++YYCURSOR;
+#line 176 "../src/conf/parse_opts.re"
+       { globopts.dump_adfa = true;       goto opt; }
+#line 2248 "src/conf/parse_opts.cc"
 yy547:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy573;
+       if (yych == 'e') goto yy573;
        goto yy277;
 yy548:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy574;
+       if (yych == 'i') goto yy574;
        goto yy277;
 yy549:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy575;
+       if (yych == 'a') goto yy575;
        goto yy277;
 yy550:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy577;
+       if (yych == 'a') goto yy576;
        goto yy277;
 yy551:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy578;
+       if (yych <= 0x00) goto yy577;
        goto yy277;
 yy552:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy579;
+       if (yych == 's') goto yy579;
        goto yy277;
 yy553:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy580;
+       if (yych == 'o') goto yy580;
        goto yy277;
 yy554:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy582;
+       if (yych == 'x') goto yy581;
        goto yy277;
 yy555:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy583;
+       if (yych <= 0x00) goto yy582;
        goto yy277;
 yy556:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy584;
+       if (yych == 'n') goto yy584;
        goto yy277;
 yy557:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy585;
+       if (yych == 'i') goto yy585;
        goto yy277;
 yy558:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy586;
+       if (yych == 'a') goto yy586;
        goto yy277;
 yy559:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy587;
+       if (yych == 'e') goto yy587;
        goto yy277;
 yy560:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy589;
+       if (yych <= 0x00) goto yy588;
        goto yy277;
 yy561:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy591;
+       if (yych == 'u') goto yy590;
        goto yy277;
 yy562:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy592;
+       if (yych == 's') goto yy591;
        goto yy277;
 yy563:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy593;
+       if (yych == 'i') goto yy592;
        goto yy277;
 yy564:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy594;
+       if (yych == 't') goto yy593;
        goto yy277;
 yy565:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy595;
+       if (yych == 'r') goto yy594;
        goto yy277;
 yy566:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy596;
+       if (yych <= 0x00) goto yy595;
        goto yy277;
 yy567:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy597;
+       if (yych <= 0x00) goto yy597;
        goto yy277;
 yy568:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'w') goto yy598;
+       if (yych == 'i') goto yy599;
        goto yy277;
 yy569:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy599;
+       if (yych == 'e') goto yy600;
        goto yy277;
 yy570:
-       ++YYCURSOR;
-#line 156 "../src/conf/parse_opts.re"
-       { opts.set_eager_skip(true);         goto opt; }
-#line 2344 "src/conf/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy601;
+       goto yy277;
+yy571:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy602;
+       goto yy277;
 yy572:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy600;
+       if (yych == 'a') goto yy603;
        goto yy277;
 yy573:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy602;
+       if (yych == 't') goto yy604;
        goto yy277;
 yy574:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy603;
+       if (yych == 'n') goto yy605;
        goto yy277;
 yy575:
-       ++YYCURSOR;
-#line 150 "../src/conf/parse_opts.re"
-       { opts.set_sFlag (true);             goto opt; }
-#line 2361 "src/conf/parse_opts.cc"
-yy577:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy605;
+       if (yych == 'w') goto yy606;
        goto yy277;
-yy578:
+yy576:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy606;
+       if (yych == 'g') goto yy607;
        goto yy277;
+yy577:
+       ++YYCURSOR;
+#line 157 "../src/conf/parse_opts.re"
+       { opts.set_eager_skip(true);         goto opt; }
+#line 2373 "src/conf/parse_opts.cc"
 yy579:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy607;
+       if (yych <= 0x00) goto yy608;
        goto yy277;
 yy580:
-       ++YYCURSOR;
-#line 143 "../src/conf/parse_opts.re"
-       { globopts.version = false;          goto opt; }
-#line 2378 "src/conf/parse_opts.cc"
-yy582:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy608;
+       if (yych == 'l') goto yy610;
        goto yy277;
-yy583:
+yy581:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy609;
+       if (yych <= 0x00) goto yy611;
        goto yy277;
+yy582:
+       ++YYCURSOR;
+#line 150 "../src/conf/parse_opts.re"
+       { opts.set_sFlag (true);             goto opt; }
+#line 2390 "src/conf/parse_opts.cc"
 yy584:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy611;
+       if (yych == 'f') goto yy613;
        goto yy277;
 yy585:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy612;
+       if (yych == 'o') goto yy614;
        goto yy277;
 yy586:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy613;
+       if (yych == 'd') goto yy615;
        goto yy277;
 yy587:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy616;
+       goto yy277;
+yy588:
        ++YYCURSOR;
-#line 159 "../src/conf/parse_opts.re"
-       { opts.set_encoding(Enc::UCS2);      goto opt; }
-#line 2403 "src/conf/parse_opts.cc"
-yy589:
-       ++YYCURSOR;
-#line 146 "../src/conf/parse_opts.re"
-       { opts.set_bFlag (true);             goto opt; }
-#line 2408 "src/conf/parse_opts.cc"
+#line 143 "../src/conf/parse_opts.re"
+       { globopts.version = false;          goto opt; }
+#line 2411 "src/conf/parse_opts.cc"
+yy590:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'r') goto yy617;
+       goto yy277;
 yy591:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy615;
+       if (yych <= 0x00) goto yy618;
        goto yy277;
 yy592:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy616;
+       if (yych == 't') goto yy620;
        goto yy277;
 yy593:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy617;
+       if (yych == 'a') goto yy621;
        goto yy277;
 yy594:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy618;
+       if (yych <= 0x00) goto yy622;
        goto yy277;
 yy595:
+       ++YYCURSOR;
+#line 160 "../src/conf/parse_opts.re"
+       { opts.set_encoding(Enc::UCS2);      goto opt; }
+#line 2436 "src/conf/parse_opts.cc"
+yy597:
+       ++YYCURSOR;
+#line 146 "../src/conf/parse_opts.re"
+       { opts.set_bFlag (true);             goto opt; }
+#line 2441 "src/conf/parse_opts.cc"
+yy599:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy620;
+       if (yych == 't') goto yy624;
        goto yy277;
-yy596:
+yy600:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy621;
+       if (yych == 'd') goto yy625;
        goto yy277;
-yy597:
+yy601:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy623;
+       if (yych == 'o') goto yy626;
        goto yy277;
-yy598:
+yy602:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy625;
+       if (yych <= 0x00) goto yy627;
        goto yy277;
-yy599:
+yy603:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy627;
+       if (yych == 't') goto yy629;
        goto yy277;
-yy600:
-       ++YYCURSOR;
-#line 166 "../src/conf/parse_opts.re"
-       { goto opt_empty_class; }
-#line 2449 "src/conf/parse_opts.cc"
-yy602:
+yy604:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy628;
+       if (yych <= 0x00) goto yy630;
        goto yy277;
-yy603:
-       ++YYCURSOR;
-#line 140 "../src/conf/parse_opts.re"
-       { globopts.FFlag = true;             goto opt; }
-#line 2458 "src/conf/parse_opts.cc"
 yy605:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy629;
+       if (yych <= 0x00) goto yy632;
        goto yy277;
 yy606:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy630;
+       if (yych <= 0x00) goto yy634;
        goto yy277;
 yy607:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy631;
+       if (yych == 'o') goto yy636;
        goto yy277;
 yy608:
+       ++YYCURSOR;
+#line 167 "../src/conf/parse_opts.re"
+       { goto opt_empty_class; }
+#line 2482 "src/conf/parse_opts.cc"
+yy610:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy633;
+       if (yych == 'i') goto yy637;
        goto yy277;
-yy609:
-       ++YYCURSOR;
-#line 168 "../src/conf/parse_opts.re"
-       { goto opt; }
-#line 2479 "src/conf/parse_opts.cc"
 yy611:
+       ++YYCURSOR;
+#line 140 "../src/conf/parse_opts.re"
+       { globopts.FFlag = true;             goto opt; }
+#line 2491 "src/conf/parse_opts.cc"
+yy613:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy634;
+       if (yych == 'o') goto yy638;
        goto yy277;
-yy612:
+yy614:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy635;
+       if (yych == 'n') goto yy639;
        goto yy277;
-yy613:
-       ++YYCURSOR;
-#line 163 "../src/conf/parse_opts.re"
-       { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
-#line 2492 "src/conf/parse_opts.cc"
 yy615:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy636;
+       if (yych <= 0x00) goto yy640;
        goto yy277;
 yy616:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy637;
+       if (yych == 't') goto yy642;
        goto yy277;
 yy617:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy639;
+       if (yych == 'e') goto yy643;
        goto yy277;
 yy618:
        ++YYCURSOR;
-#line 147 "../src/conf/parse_opts.re"
-       { opts.set_dFlag (true);             goto opt; }
-#line 2509 "src/conf/parse_opts.cc"
+#line 169 "../src/conf/parse_opts.re"
+       { goto opt; }
+#line 2516 "src/conf/parse_opts.cc"
 yy620:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy640;
+       if (yych == 'i') goto yy644;
        goto yy277;
 yy621:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy645;
+       goto yy277;
+yy622:
        ++YYCURSOR;
-#line 172 "../src/conf/parse_opts.re"
+#line 164 "../src/conf/parse_opts.re"
+       { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
+#line 2529 "src/conf/parse_opts.cc"
+yy624:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy646;
+       goto yy277;
+yy625:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy647;
+       goto yy277;
+yy626:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy649;
+       goto yy277;
+yy627:
+       ++YYCURSOR;
+#line 147 "../src/conf/parse_opts.re"
+       { opts.set_dFlag (true);             goto opt; }
+#line 2546 "src/conf/parse_opts.cc"
+yy629:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy650;
+       goto yy277;
+yy630:
+       ++YYCURSOR;
+#line 173 "../src/conf/parse_opts.re"
        { globopts.dump_dfa_det = true;    goto opt; }
-#line 2518 "src/conf/parse_opts.cc"
-yy623:
+#line 2555 "src/conf/parse_opts.cc"
+yy632:
        ++YYCURSOR;
-#line 174 "../src/conf/parse_opts.re"
+#line 175 "../src/conf/parse_opts.re"
        { globopts.dump_dfa_min = true;    goto opt; }
-#line 2523 "src/conf/parse_opts.cc"
-yy625:
+#line 2560 "src/conf/parse_opts.cc"
+yy634:
        ++YYCURSOR;
-#line 171 "../src/conf/parse_opts.re"
+#line 172 "../src/conf/parse_opts.re"
        { globopts.dump_dfa_raw = true;    goto opt; }
-#line 2528 "src/conf/parse_opts.cc"
-yy627:
+#line 2565 "src/conf/parse_opts.cc"
+yy636:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy641;
+       if (yych == 'p') goto yy651;
        goto yy277;
-yy628:
+yy637:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy642;
+       if (yych == 'c') goto yy652;
        goto yy277;
-yy629:
+yy638:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy643;
+       if (yych <= 0x00) goto yy653;
        goto yy277;
-yy630:
+yy639:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy645;
+       if (yych == '-') goto yy655;
        goto yy277;
-yy631:
+yy640:
        ++YYCURSOR;
 #line 155 "../src/conf/parse_opts.re"
        { opts.set_lookahead(false);         goto opt; }
-#line 2549 "src/conf/parse_opts.cc"
-yy633:
+#line 2586 "src/conf/parse_opts.cc"
+yy642:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy646;
+       if (yych == 'a') goto yy656;
        goto yy277;
-yy634:
+yy643:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy647;
+       if (yych == 's') goto yy657;
        goto yy277;
-yy635:
+yy644:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy648;
+       if (yych == 'o') goto yy658;
        goto yy277;
-yy636:
+yy645:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy649;
+       if (yych == 'e') goto yy659;
        goto yy277;
-yy637:
+yy646:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'v') goto yy660;
+       goto yy277;
+yy647:
        ++YYCURSOR;
 #line 152 "../src/conf/parse_opts.re"
        { opts.set_bCaseInverted (true);     goto opt; }
-#line 2570 "src/conf/parse_opts.cc"
-yy639:
+#line 2611 "src/conf/parse_opts.cc"
+yy649:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy650;
+       if (yych <= 0x00) goto yy661;
        goto yy277;
-yy640:
+yy650:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy652;
+       if (yych == 'o') goto yy663;
        goto yy277;
-yy641:
+yy651:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy653;
+       if (yych == 't') goto yy664;
        goto yy277;
-yy642:
+yy652:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy654;
+       if (yych == 'y') goto yy665;
        goto yy277;
-yy643:
+yy653:
        ++YYCURSOR;
 #line 149 "../src/conf/parse_opts.re"
        { opts.set_iFlag (true);             goto opt; }
-#line 2591 "src/conf/parse_opts.cc"
-yy645:
+#line 2632 "src/conf/parse_opts.cc"
+yy655:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy655;
+       if (yych == 'd') goto yy666;
        goto yy277;
-yy646:
+yy656:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy656;
+       if (yych == 'g') goto yy667;
        goto yy277;
-yy647:
+yy657:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy658;
+       if (yych <= 0x00) goto yy668;
        goto yy277;
-yy648:
+yy658:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy659;
+       if (yych == 'n') goto yy670;
        goto yy277;
-yy649:
+yy659:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy661;
+       if (yych <= 0x00) goto yy671;
        goto yy277;
-yy650:
+yy660:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy673;
+       goto yy277;
+yy661:
        ++YYCURSOR;
 #line 148 "../src/conf/parse_opts.re"
        { opts.set_gFlag (true);             goto opt; }
-#line 2616 "src/conf/parse_opts.cc"
-yy652:
+#line 2661 "src/conf/parse_opts.cc"
+yy663:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy662;
+       if (yych == 'n') goto yy674;
        goto yy277;
-yy653:
+yy664:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy663;
+       if (yych <= 0x00) goto yy675;
        goto yy277;
-yy654:
+yy665:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy665;
+       if (yych <= 0x00) goto yy677;
        goto yy277;
-yy655:
+yy666:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy667;
+       if (yych == 'a') goto yy679;
        goto yy277;
-yy656:
+yy667:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy680;
+       goto yy277;
+yy668:
        ++YYCURSOR;
 #line 154 "../src/conf/parse_opts.re"
        { opts.set_posix_captures(true);     goto opt; }
-#line 2637 "src/conf/parse_opts.cc"
-yy658:
+#line 2686 "src/conf/parse_opts.cc"
+yy670:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy668;
+       if (yych == 's') goto yy681;
        goto yy277;
-yy659:
+yy671:
        ++YYCURSOR;
 #line 139 "../src/conf/parse_opts.re"
        { globopts.fFlag = true;             goto opt; }
-#line 2646 "src/conf/parse_opts.cc"
-yy661:
+#line 2695 "src/conf/parse_opts.cc"
+yy673:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy669;
+       if (yych <= 0x00) goto yy682;
        goto yy277;
-yy662:
+yy674:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy671;
+       if (yych <= 0x00) goto yy684;
        goto yy277;
-yy663:
+yy675:
        ++YYCURSOR;
-#line 173 "../src/conf/parse_opts.re"
+#line 174 "../src/conf/parse_opts.re"
        { globopts.dump_dfa_tagopt = true; goto opt; }
-#line 2659 "src/conf/parse_opts.cc"
-yy665:
+#line 2708 "src/conf/parse_opts.cc"
+yy677:
        ++YYCURSOR;
-#line 164 "../src/conf/parse_opts.re"
+#line 165 "../src/conf/parse_opts.re"
        { goto opt_encoding_policy; }
-#line 2664 "src/conf/parse_opts.cc"
-yy667:
+#line 2713 "src/conf/parse_opts.cc"
+yy679:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy673;
+       if (yych == 't') goto yy686;
        goto yy277;
-yy668:
+yy680:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy687;
+       goto yy277;
+yy681:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy674;
+       if (yych <= 0x00) goto yy689;
        goto yy277;
-yy669:
+yy682:
        ++YYCURSOR;
 #line 151 "../src/conf/parse_opts.re"
        { opts.set_bCaseInsensitive (true);  goto opt; }
-#line 2677 "src/conf/parse_opts.cc"
-yy671:
+#line 2730 "src/conf/parse_opts.cc"
+yy684:
        ++YYCURSOR;
-#line 167 "../src/conf/parse_opts.re"
+#line 168 "../src/conf/parse_opts.re"
        { goto opt_dfa_minimization; }
-#line 2682 "src/conf/parse_opts.cc"
-yy673:
+#line 2735 "src/conf/parse_opts.cc"
+yy686:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy676;
+       if (yych == 'e') goto yy691;
        goto yy277;
-yy674:
+yy687:
+       ++YYCURSOR;
+#line 156 "../src/conf/parse_opts.re"
+       { opts.set_optimize_tags(false);     goto opt; }
+#line 2744 "src/conf/parse_opts.cc"
+yy689:
        ++YYCURSOR;
 #line 137 "../src/conf/parse_opts.re"
        { globopts.cFlag = true;             goto opt; }
-#line 2691 "src/conf/parse_opts.cc"
-yy676:
+#line 2749 "src/conf/parse_opts.cc"
+yy691:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy277;
        ++YYCURSOR;
 #line 142 "../src/conf/parse_opts.re"
        { globopts.bNoGenerationDate = true; goto opt; }
-#line 2698 "src/conf/parse_opts.cc"
+#line 2756 "src/conf/parse_opts.cc"
 }
-#line 176 "../src/conf/parse_opts.re"
+#line 177 "../src/conf/parse_opts.re"
 
 
 opt_output:
 
-#line 2705 "src/conf/parse_opts.cc"
+#line 2763 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2739,32 +2797,32 @@ opt_output:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy681;
-       if (yych != '-') goto yy683;
-yy681:
+       if (yych <= 0x00) goto yy696;
+       if (yych != '-') goto yy698;
+yy696:
        ++YYCURSOR;
-#line 181 "../src/conf/parse_opts.re"
+#line 182 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option -o, --output: %s", *argv);
                return EXIT_FAIL;
        }
-#line 2752 "src/conf/parse_opts.cc"
-yy683:
+#line 2810 "src/conf/parse_opts.cc"
+yy698:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy683;
+               goto yy698;
        }
        ++YYCURSOR;
-#line 185 "../src/conf/parse_opts.re"
+#line 186 "../src/conf/parse_opts.re"
        { globopts.output_file = *argv; goto opt; }
-#line 2761 "src/conf/parse_opts.cc"
+#line 2819 "src/conf/parse_opts.cc"
 }
-#line 186 "../src/conf/parse_opts.re"
+#line 187 "../src/conf/parse_opts.re"
 
 
 opt_header:
 
-#line 2768 "src/conf/parse_opts.cc"
+#line 2826 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2802,27 +2860,27 @@ opt_header:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy689;
-       if (yych != '-') goto yy691;
-yy689:
+       if (yych <= 0x00) goto yy704;
+       if (yych != '-') goto yy706;
+yy704:
        ++YYCURSOR;
-#line 191 "../src/conf/parse_opts.re"
+#line 192 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option -t, --type-header: %s", *argv);
                return EXIT_FAIL;
        }
-#line 2815 "src/conf/parse_opts.cc"
-yy691:
+#line 2873 "src/conf/parse_opts.cc"
+yy706:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy691;
+               goto yy706;
        }
        ++YYCURSOR;
-#line 195 "../src/conf/parse_opts.re"
+#line 196 "../src/conf/parse_opts.re"
        { globopts.header_file = *argv; goto opt; }
-#line 2824 "src/conf/parse_opts.cc"
+#line 2882 "src/conf/parse_opts.cc"
 }
-#line 196 "../src/conf/parse_opts.re"
+#line 197 "../src/conf/parse_opts.re"
 
 
 opt_encoding_policy:
@@ -2832,115 +2890,115 @@ opt_encoding_policy:
                return EXIT_FAIL;
        }
 
-#line 2836 "src/conf/parse_opts.cc"
+#line 2894 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy699;
+               if (yych == 'f') goto yy714;
        } else {
-               if (yych <= 'i') goto yy700;
-               if (yych == 's') goto yy701;
+               if (yych <= 'i') goto yy715;
+               if (yych == 's') goto yy716;
        }
        ++YYCURSOR;
-yy698:
-#line 206 "../src/conf/parse_opts.re"
+yy713:
+#line 207 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --encoding-policy (expected: ignore | substitute | fail): %s", *argv);
                return EXIT_FAIL;
        }
-#line 2853 "src/conf/parse_opts.cc"
-yy699:
+#line 2911 "src/conf/parse_opts.cc"
+yy714:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy702;
-       goto yy698;
-yy700:
+       if (yych == 'a') goto yy717;
+       goto yy713;
+yy715:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'g') goto yy704;
-       goto yy698;
-yy701:
+       if (yych == 'g') goto yy719;
+       goto yy713;
+yy716:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy705;
-       goto yy698;
-yy702:
+       if (yych == 'u') goto yy720;
+       goto yy713;
+yy717:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy706;
-yy703:
+       if (yych == 'i') goto yy721;
+yy718:
        YYCURSOR = YYMARKER;
-       goto yy698;
-yy704:
+       goto yy713;
+yy719:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy707;
-       goto yy703;
-yy705:
+       if (yych == 'n') goto yy722;
+       goto yy718;
+yy720:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy708;
-       goto yy703;
-yy706:
+       if (yych == 'b') goto yy723;
+       goto yy718;
+yy721:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy709;
-       goto yy703;
-yy707:
+       if (yych == 'l') goto yy724;
+       goto yy718;
+yy722:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy710;
-       goto yy703;
-yy708:
+       if (yych == 'o') goto yy725;
+       goto yy718;
+yy723:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy711;
-       goto yy703;
-yy709:
+       if (yych == 's') goto yy726;
+       goto yy718;
+yy724:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy712;
-       goto yy703;
-yy710:
+       if (yych <= 0x00) goto yy727;
+       goto yy718;
+yy725:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy714;
-       goto yy703;
-yy711:
+       if (yych == 'r') goto yy729;
+       goto yy718;
+yy726:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy715;
-       goto yy703;
-yy712:
+       if (yych == 't') goto yy730;
+       goto yy718;
+yy727:
        ++YYCURSOR;
-#line 212 "../src/conf/parse_opts.re"
+#line 213 "../src/conf/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_FAIL);       goto opt; }
-#line 2908 "src/conf/parse_opts.cc"
-yy714:
+#line 2966 "src/conf/parse_opts.cc"
+yy729:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy716;
-       goto yy703;
-yy715:
+       if (yych == 'e') goto yy731;
+       goto yy718;
+yy730:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy717;
-       goto yy703;
-yy716:
+       if (yych == 'i') goto yy732;
+       goto yy718;
+yy731:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy718;
-       goto yy703;
-yy717:
+       if (yych <= 0x00) goto yy733;
+       goto yy718;
+yy732:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy720;
-       goto yy703;
-yy718:
+       if (yych == 't') goto yy735;
+       goto yy718;
+yy733:
        ++YYCURSOR;
-#line 210 "../src/conf/parse_opts.re"
+#line 211 "../src/conf/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_IGNORE);     goto opt; }
-#line 2929 "src/conf/parse_opts.cc"
-yy720:
+#line 2987 "src/conf/parse_opts.cc"
+yy735:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy703;
+       if (yych != 'u') goto yy718;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy703;
+       if (yych != 't') goto yy718;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy703;
+       if (yych != 'e') goto yy718;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy703;
+       if (yych >= 0x01) goto yy718;
        ++YYCURSOR;
-#line 211 "../src/conf/parse_opts.re"
+#line 212 "../src/conf/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; }
-#line 2942 "src/conf/parse_opts.cc"
+#line 3000 "src/conf/parse_opts.cc"
 }
-#line 213 "../src/conf/parse_opts.re"
+#line 214 "../src/conf/parse_opts.re"
 
 
 opt_input:
@@ -2950,86 +3008,86 @@ opt_input:
                return EXIT_FAIL;
        }
 
-#line 2954 "src/conf/parse_opts.cc"
+#line 3012 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 'b') goto yy728;
-       if (yych <= 'c') goto yy730;
-       if (yych <= 'd') goto yy731;
-yy728:
+       if (yych <= 'b') goto yy743;
+       if (yych <= 'c') goto yy745;
+       if (yych <= 'd') goto yy746;
+yy743:
        ++YYCURSOR;
-yy729:
-#line 223 "../src/conf/parse_opts.re"
+yy744:
+#line 224 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --input (expected: default | custom): %s", *argv);
                return EXIT_FAIL;
        }
-#line 2969 "src/conf/parse_opts.cc"
-yy730:
+#line 3027 "src/conf/parse_opts.cc"
+yy745:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy732;
-       goto yy729;
-yy731:
+       if (yych == 'u') goto yy747;
+       goto yy744;
+yy746:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy734;
-       goto yy729;
-yy732:
+       if (yych == 'e') goto yy749;
+       goto yy744;
+yy747:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy735;
-yy733:
+       if (yych == 's') goto yy750;
+yy748:
        YYCURSOR = YYMARKER;
-       goto yy729;
-yy734:
+       goto yy744;
+yy749:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy736;
-       goto yy733;
-yy735:
+       if (yych == 'f') goto yy751;
+       goto yy748;
+yy750:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy737;
-       goto yy733;
-yy736:
+       if (yych == 't') goto yy752;
+       goto yy748;
+yy751:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy738;
-       goto yy733;
-yy737:
+       if (yych == 'a') goto yy753;
+       goto yy748;
+yy752:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy739;
-       goto yy733;
-yy738:
+       if (yych == 'o') goto yy754;
+       goto yy748;
+yy753:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy740;
-       goto yy733;
-yy739:
+       if (yych == 'u') goto yy755;
+       goto yy748;
+yy754:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy741;
-       goto yy733;
-yy740:
+       if (yych == 'm') goto yy756;
+       goto yy748;
+yy755:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy742;
-       goto yy733;
-yy741:
+       if (yych == 'l') goto yy757;
+       goto yy748;
+yy756:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy743;
-       goto yy733;
-yy742:
+       if (yych <= 0x00) goto yy758;
+       goto yy748;
+yy757:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy745;
-       goto yy733;
-yy743:
+       if (yych == 't') goto yy760;
+       goto yy748;
+yy758:
        ++YYCURSOR;
-#line 228 "../src/conf/parse_opts.re"
+#line 229 "../src/conf/parse_opts.re"
        { opts.set_input_api(INPUT_CUSTOM);  goto opt; }
-#line 3024 "src/conf/parse_opts.cc"
-yy745:
+#line 3082 "src/conf/parse_opts.cc"
+yy760:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy733;
+       if (yych >= 0x01) goto yy748;
        ++YYCURSOR;
-#line 227 "../src/conf/parse_opts.re"
+#line 228 "../src/conf/parse_opts.re"
        { opts.set_input_api(INPUT_DEFAULT); goto opt; }
-#line 3031 "src/conf/parse_opts.cc"
+#line 3089 "src/conf/parse_opts.cc"
 }
-#line 229 "../src/conf/parse_opts.re"
+#line 230 "../src/conf/parse_opts.re"
 
 
 opt_empty_class:
@@ -3039,120 +3097,120 @@ opt_empty_class:
                return EXIT_FAIL;
        }
 
-#line 3043 "src/conf/parse_opts.cc"
+#line 3101 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'e') goto yy752;
-       if (yych == 'm') goto yy753;
+       if (yych == 'e') goto yy767;
+       if (yych == 'm') goto yy768;
        ++YYCURSOR;
-yy751:
-#line 239 "../src/conf/parse_opts.re"
+yy766:
+#line 240 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --empty-class (expected: match-empty | match-none | error): %s", *argv);
                return EXIT_FAIL;
        }
-#line 3056 "src/conf/parse_opts.cc"
-yy752:
+#line 3114 "src/conf/parse_opts.cc"
+yy767:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'r') goto yy754;
-       goto yy751;
-yy753:
+       if (yych == 'r') goto yy769;
+       goto yy766;
+yy768:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy756;
-       goto yy751;
-yy754:
+       if (yych == 'a') goto yy771;
+       goto yy766;
+yy769:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy757;
-yy755:
+       if (yych == 'r') goto yy772;
+yy770:
        YYCURSOR = YYMARKER;
-       goto yy751;
-yy756:
+       goto yy766;
+yy771:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy758;
-       goto yy755;
-yy757:
+       if (yych == 't') goto yy773;
+       goto yy770;
+yy772:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy759;
-       goto yy755;
-yy758:
+       if (yych == 'o') goto yy774;
+       goto yy770;
+yy773:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy760;
-       goto yy755;
-yy759:
+       if (yych == 'c') goto yy775;
+       goto yy770;
+yy774:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy761;
-       goto yy755;
-yy760:
+       if (yych == 'r') goto yy776;
+       goto yy770;
+yy775:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy762;
-       goto yy755;
-yy761:
+       if (yych == 'h') goto yy777;
+       goto yy770;
+yy776:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy763;
-       goto yy755;
-yy762:
+       if (yych <= 0x00) goto yy778;
+       goto yy770;
+yy777:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy765;
-       goto yy755;
-yy763:
+       if (yych == '-') goto yy780;
+       goto yy770;
+yy778:
        ++YYCURSOR;
-#line 245 "../src/conf/parse_opts.re"
+#line 246 "../src/conf/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_ERROR);       goto opt; }
-#line 3103 "src/conf/parse_opts.cc"
-yy765:
+#line 3161 "src/conf/parse_opts.cc"
+yy780:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy766;
-       if (yych == 'n') goto yy767;
-       goto yy755;
-yy766:
+       if (yych == 'e') goto yy781;
+       if (yych == 'n') goto yy782;
+       goto yy770;
+yy781:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy768;
-       goto yy755;
-yy767:
+       if (yych == 'm') goto yy783;
+       goto yy770;
+yy782:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy769;
-       goto yy755;
-yy768:
+       if (yych == 'o') goto yy784;
+       goto yy770;
+yy783:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy770;
-       goto yy755;
-yy769:
+       if (yych == 'p') goto yy785;
+       goto yy770;
+yy784:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy771;
-       goto yy755;
-yy770:
+       if (yych == 'n') goto yy786;
+       goto yy770;
+yy785:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy772;
-       goto yy755;
-yy771:
+       if (yych == 't') goto yy787;
+       goto yy770;
+yy786:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy773;
-       goto yy755;
-yy772:
+       if (yych == 'e') goto yy788;
+       goto yy770;
+yy787:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy774;
-       goto yy755;
-yy773:
+       if (yych == 'y') goto yy789;
+       goto yy770;
+yy788:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy775;
-       goto yy755;
-yy774:
+       if (yych <= 0x00) goto yy790;
+       goto yy770;
+yy789:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy777;
-       goto yy755;
-yy775:
+       if (yych <= 0x00) goto yy792;
+       goto yy770;
+yy790:
        ++YYCURSOR;
-#line 244 "../src/conf/parse_opts.re"
+#line 245 "../src/conf/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE);  goto opt; }
-#line 3149 "src/conf/parse_opts.cc"
-yy777:
+#line 3207 "src/conf/parse_opts.cc"
+yy792:
        ++YYCURSOR;
-#line 243 "../src/conf/parse_opts.re"
+#line 244 "../src/conf/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_EMPTY); goto opt; }
-#line 3154 "src/conf/parse_opts.cc"
+#line 3212 "src/conf/parse_opts.cc"
 }
-#line 246 "../src/conf/parse_opts.re"
+#line 247 "../src/conf/parse_opts.re"
 
 
 opt_dfa_minimization:
@@ -3162,74 +3220,74 @@ opt_dfa_minimization:
                return EXIT_FAIL;
        }
 
-#line 3166 "src/conf/parse_opts.cc"
+#line 3224 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'm') goto yy783;
-       if (yych == 't') goto yy784;
+       if (yych == 'm') goto yy798;
+       if (yych == 't') goto yy799;
        ++YYCURSOR;
-yy782:
-#line 256 "../src/conf/parse_opts.re"
+yy797:
+#line 257 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --dfa-minimization (expected: table | moore): %s", *argv);
                return EXIT_FAIL;
        }
-#line 3179 "src/conf/parse_opts.cc"
-yy783:
+#line 3237 "src/conf/parse_opts.cc"
+yy798:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy785;
-       goto yy782;
-yy784:
+       if (yych == 'o') goto yy800;
+       goto yy797;
+yy799:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy787;
-       goto yy782;
-yy785:
+       if (yych == 'a') goto yy802;
+       goto yy797;
+yy800:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy788;
-yy786:
+       if (yych == 'o') goto yy803;
+yy801:
        YYCURSOR = YYMARKER;
-       goto yy782;
-yy787:
+       goto yy797;
+yy802:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy789;
-       goto yy786;
-yy788:
+       if (yych == 'b') goto yy804;
+       goto yy801;
+yy803:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy790;
-       goto yy786;
-yy789:
+       if (yych == 'r') goto yy805;
+       goto yy801;
+yy804:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy791;
-       goto yy786;
-yy790:
+       if (yych == 'l') goto yy806;
+       goto yy801;
+yy805:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy792;
-       goto yy786;
-yy791:
+       if (yych == 'e') goto yy807;
+       goto yy801;
+yy806:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy793;
-       goto yy786;
-yy792:
+       if (yych == 'e') goto yy808;
+       goto yy801;
+yy807:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy794;
-       goto yy786;
-yy793:
+       if (yych <= 0x00) goto yy809;
+       goto yy801;
+yy808:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy796;
-       goto yy786;
-yy794:
+       if (yych <= 0x00) goto yy811;
+       goto yy801;
+yy809:
        ++YYCURSOR;
-#line 261 "../src/conf/parse_opts.re"
+#line 262 "../src/conf/parse_opts.re"
        { opts.set_dfa_minimization (DFA_MINIMIZATION_MOORE); goto opt; }
-#line 3226 "src/conf/parse_opts.cc"
-yy796:
+#line 3284 "src/conf/parse_opts.cc"
+yy811:
        ++YYCURSOR;
-#line 260 "../src/conf/parse_opts.re"
+#line 261 "../src/conf/parse_opts.re"
        { opts.set_dfa_minimization (DFA_MINIMIZATION_TABLE); goto opt; }
-#line 3231 "src/conf/parse_opts.cc"
+#line 3289 "src/conf/parse_opts.cc"
 }
-#line 262 "../src/conf/parse_opts.re"
+#line 263 "../src/conf/parse_opts.re"
 
 
 end:
index e2e4fa87175294aceabc4bb3522b22afe78abf45..e8b70714831f8966b6bd0cf2f7f7c4ebc40a43a7 100644 (file)
@@ -48,6 +48,7 @@ void Scanner::lex_conf(Opt &opts)
        "flags:case-insensitive"             { opts.set_bCaseInsensitive(lex_conf_bool());   return; }
        "flags:case-inverted"                { opts.set_bCaseInverted(lex_conf_bool());      return; }
        "flags:no-lookahead"                 { opts.set_lookahead(!lex_conf_bool());         return; }
+       "flags:optimize-tags"                { opts.set_optimize_tags(lex_conf_bool());      return; }
        "flags:eager-skip"                   { opts.set_eager_skip(lex_conf_bool());         return; }
 
        "flags:" ("e" | "ecb")        { lex_conf_enc(Enc::EBCDIC, opts); return; }
index 3cfbeec7976214b8949b26311d8974fa460f27d8..c31bf4a051ddca7c8b3f01939d497089deb5e4ab 100644 (file)
@@ -70,9 +70,11 @@ static smart_ptr<DFA> ast_to_dfa(const spec_t &spec, Output &output)
        insert_fallback_tags(dfa);
 
        // try to minimize the number of tag variables
-       optimize_tags(dfa);
+       if (opts->optimize_tags) optimize_tags(dfa);
        if (opts->dump_dfa_tagopt) dump_dfa(dfa);
 
+       freeze_tags(dfa);
+
        minimization(dfa, opts->dfa_minimization);
        if (opts->dump_dfa_min) dump_dfa(dfa);
 
index ba060709bfc64a72578584f9ba6b8295f2c40bbb..d2da530c2b13a721955df0369d7d12d096ae7f9d 100644 (file)
@@ -56,6 +56,7 @@ void mutopt_t::fix(const conopt_t *globopts)
                        state_set_naked = Opt::baseopt.state_set_naked;
                        tags_prefix = Opt::baseopt.tags_prefix;
                        tags_expression = Opt::baseopt.tags_expression;
+                       optimize_tags = Opt::baseopt.optimize_tags;
                        yyfilllabel = Opt::baseopt.yyfilllabel;
                        yynext = Opt::baseopt.yynext;
                        yyaccept = Opt::baseopt.yyaccept;
@@ -140,6 +141,7 @@ void mutopt_t::fix(const conopt_t *globopts)
        {
                tags_prefix = Opt::baseopt.tags_prefix;
                tags_expression = Opt::baseopt.tags_expression;
+               optimize_tags = Opt::baseopt.optimize_tags;
        }
        if (!bFlag)
        {
index 83a6b01ea7473ea702e3e9fd46d87d8462091cbf..e6c1fce7f09d6b0eb139ae80dfcd96d8a25d0083 100644 (file)
@@ -92,6 +92,7 @@ enum target_t
        MUTOPT (std::string, tags_prefix, "yyt") \
        MUTOPT (std::string, tags_expression, "@@") \
        MUTOPT (bool, posix_captures, false) \
+       MUTOPT (bool, optimize_tags, true) \
        /* code generation */ \
        MUTOPT (bool, sFlag, false) \
        MUTOPT (bool, bFlag, false) \
index 136368d75dbd7be2feb6f4b426f7bf7a7700e03e..5f9f11f319ccbb2fd79aeea3b116fad69b300018 100644 (file)
@@ -153,6 +153,7 @@ opt_long:
        "tags"                  end { opts.set_tags (true);              goto opt; }
        "posix-captures"        end { opts.set_posix_captures(true);     goto opt; }
        "no-lookahead"          end { opts.set_lookahead(false);         goto opt; }
+       "no-optimize-tags"      end { opts.set_optimize_tags(false);     goto opt; }
        "eager-skip"            end { opts.set_eager_skip(true);         goto opt; }
        "ecb"                   end { opts.set_encoding(Enc::EBCDIC);    goto opt; }
        "unicode"               end { opts.set_encoding(Enc::UTF32);     goto opt; }
index a9f7378db06f0c8b3928f31c513a72109f19a2a7..02f76a00cad7b90d82bb985442131746557713cf 100644 (file)
@@ -4,8 +4,6 @@
 namespace re2c
 {
 
-static void freeze_tags(dfa_t &dfa);
-
 void optimize_tags(dfa_t &dfa)
 {
        tagver_t maxver = dfa.maxtagver;
@@ -39,8 +37,6 @@ void optimize_tags(dfa_t &dfa)
 
                delete[] ver2new;
        }
-
-       freeze_tags(dfa);
 }
 
 /* note [tag freezing]
index 78e04f727ef872f7c626d3df130a9c8760ca4525..e511c3983d3c19849f57d62f8303d544edd6055c 100644 (file)
@@ -79,6 +79,7 @@ void fillpoints(const dfa_t &dfa, std::vector<size_t> &fill);
 void cutoff_dead_rules(dfa_t &dfa, size_t defrule, const std::string &cond, Warn &warn);
 void insert_fallback_tags(dfa_t &dfa);
 void optimize_tags(dfa_t &dfa);
+void freeze_tags(dfa_t &dfa);
 
 } // namespace re2c