]> granicus.if.org Git - re2c/commitdiff
Added configurations for -o, --output and -t, --type-header options.
authorUlya Trofimovich <skvadrik@gmail.com>
Fri, 16 Nov 2018 23:43:41 +0000 (23:43 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Wed, 21 Nov 2018 22:03:50 +0000 (22:03 +0000)
re2c/bootstrap/src/ast/lex_conf.cc
re2c/bootstrap/src/conf/parse_opts.cc
re2c/src/ast/lex_conf.re
re2c/src/conf/opt.cc
re2c/src/conf/opt.h
re2c/src/conf/parse_opts.re

index 0764f6ecebf6481044299a1e90c03b0c158489ae..7b69b9a9a9c15528b400d94c67fe4f64d63b1fbe 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.1.1 on Sun Nov  4 22:33:41 2018 */
+/* Generated by re2c 1.1.1 on Sun Nov 18 21:40:25 2018 */
 #line 1 "../src/ast/lex_conf.re"
 #include "src/util/c99_stdint.h"
 #include <string>
@@ -102,7 +102,7 @@ void Scanner::lex_conf(Opt &opts)
                }
        }
 yy2:
-#line 161 "../src/ast/lex_conf.re"
+#line 163 "../src/ast/lex_conf.re"
        {
         fatal_lc(l, c, "unrecognized configuration '%.*s'",
             static_cast<int>(cur - tok), tok);
@@ -410,93 +410,93 @@ yy70:
        case 'l':       goto yy106;
        case 'n':       goto yy107;
        case 'o':       goto yy108;
-       case 'p':       goto yy109;
-       case 's':       goto yy110;
-       case 't':       goto yy112;
-       case 'u':       goto yy113;
-       case 'w':       goto yy115;
-       case 'x':       goto yy117;
+       case 'p':       goto yy110;
+       case 's':       goto yy111;
+       case 't':       goto yy113;
+       case 'u':       goto yy115;
+       case 'w':       goto yy117;
+       case 'x':       goto yy119;
        default:        goto yy4;
        }
 yy71:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy119;
+       if (yych == ':') goto yy121;
        goto yy4;
 yy72:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy120;
+       if (yych == 'y') goto yy122;
        goto yy4;
 yy73:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy121;
+       if (yych == 'r') goto yy123;
        goto yy4;
 yy74:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy122;
+       if (yych == 'a') goto yy124;
        goto yy4;
 yy75:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy123;
-       if (yych == 'n') goto yy124;
+       if (yych == 'a') goto yy125;
+       if (yych == 'n') goto yy126;
        goto yy4;
 yy76:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy125;
+       if (yych == 'x') goto yy127;
        goto yy4;
 yy77:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy126;
+       if (yych == 'r') goto yy128;
        goto yy4;
 yy78:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy127;
+       if (yych == 'l') goto yy129;
        goto yy4;
 yy79:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy128;
+       if (yych == 'e') goto yy130;
        goto yy4;
 yy80:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy129;
+       if (yych == 'o') goto yy131;
        goto yy4;
 yy81:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy130;
+       if (yych == 'm') goto yy132;
        goto yy4;
 yy82:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy131;
+       if (yych == ':') goto yy133;
        goto yy4;
 yy83:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy132;
+       if (yych == 'h') goto yy134;
        goto yy4;
 yy84:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy133;
+       if (yych == 'v') goto yy135;
        goto yy4;
 yy85:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy134;
+       if (yych == 't') goto yy136;
        goto yy4;
 yy86:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy135;
+       if (yych == 'm') goto yy137;
        goto yy4;
 yy87:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy136;
+       if (yych == 'f') goto yy138;
        goto yy4;
 yy88:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy137;
+       if (yych == 'Y') goto yy139;
        goto yy4;
 yy89:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 59 "../src/ast/lex_conf.re"
+#line 61 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UTF8, opts);   return; }
 #line 502 "src/ast/lex_conf.cc"
 yy91:
@@ -505,7 +505,7 @@ yy91:
                goto yy3;
        }
 #line 48 "../src/ast/lex_conf.re"
-       { opts.set_posix_captures(lex_conf_bool());     return; }
+       { opts.set_posix_captures   (lex_conf_bool());   return; }
 #line 510 "src/ast/lex_conf.cc"
 yy93:
        yych = (unsigned char)*++cur;
@@ -513,7 +513,7 @@ yy93:
                goto yy3;
        }
 #line 47 "../src/ast/lex_conf.re"
-       { opts.set_tags(lex_conf_bool());               return; }
+       { opts.set_tags             (lex_conf_bool());   return; }
 #line 518 "src/ast/lex_conf.cc"
 yy95:
        yych = (unsigned char)*++cur;
@@ -528,18 +528,18 @@ yy95:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'i') goto yy138;
+                       if (yych == 'i') goto yy140;
                        if (yych <= 'z') goto yy3;
                }
        }
 yy96:
 #line 42 "../src/ast/lex_conf.re"
-       { opts.set_bFlag(lex_conf_bool());              return; }
+       { opts.set_bFlag            (lex_conf_bool());   return; }
 #line 539 "src/ast/lex_conf.cc"
 yy97:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy139;
-       if (yych == 'o') goto yy140;
+       if (yych == 'a') goto yy141;
+       if (yych == 'o') goto yy142;
        goto yy4;
 yy98:
        yych = (unsigned char)*++cur;
@@ -555,14 +555,14 @@ yy98:
                if (yych <= 'd') {
                        if (yych != '`') goto yy3;
                } else {
-                       if (yych <= 'e') goto yy141;
-                       if (yych <= 'f') goto yy142;
+                       if (yych <= 'e') goto yy143;
+                       if (yych <= 'f') goto yy144;
                        if (yych <= 'z') goto yy3;
                }
        }
 yy99:
 #line 43 "../src/ast/lex_conf.re"
-       { opts.set_dFlag(lex_conf_bool());              return; }
+       { opts.set_dFlag            (lex_conf_bool());   return; }
 #line 567 "src/ast/lex_conf.cc"
 yy100:
        yych = (unsigned char)*++cur;
@@ -578,21 +578,21 @@ yy100:
        } else {
                if (yych <= 'c') {
                        if (yych <= '`') goto yy101;
-                       if (yych <= 'a') goto yy143;
+                       if (yych <= 'a') goto yy145;
                        if (yych <= 'b') goto yy3;
-                       goto yy144;
+                       goto yy146;
                } else {
                        if (yych <= 'm') {
                                if (yych <= 'l') goto yy3;
-                               goto yy145;
+                               goto yy147;
                        } else {
-                               if (yych <= 'n') goto yy146;
+                               if (yych <= 'n') goto yy148;
                                if (yych <= 'z') goto yy3;
                        }
                }
        }
 yy101:
-#line 55 "../src/ast/lex_conf.re"
+#line 57 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::EBCDIC, opts); return; }
 #line 598 "src/ast/lex_conf.cc"
 yy102:
@@ -601,7 +601,7 @@ yy102:
                goto yy3;
        }
 #line 44 "../src/ast/lex_conf.re"
-       { opts.set_gFlag(lex_conf_bool());              return; }
+       { opts.set_gFlag            (lex_conf_bool());   return; }
 #line 606 "src/ast/lex_conf.cc"
 yy104:
        yych = (unsigned char)*++cur;
@@ -616,43 +616,59 @@ yy104:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'n') goto yy147;
+                       if (yych == 'n') goto yy149;
                        if (yych <= 'z') goto yy3;
                }
        }
 yy105:
 #line 45 "../src/ast/lex_conf.re"
-       { opts.set_iFlag(lex_conf_bool());              return; }
+       { opts.set_iFlag            (lex_conf_bool());   return; }
 #line 627 "src/ast/lex_conf.cc"
 yy106:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy148;
+       if (yych == 'o') goto yy150;
        goto yy4;
 yy107:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy149;
-       if (yych == 'o') goto yy150;
+       if (yych == 'e') goto yy151;
+       if (yych == 'o') goto yy152;
        goto yy4;
 yy108:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy151;
-       goto yy4;
+       if (yych <= '^') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= ':') goto yy3;
+                       if (yych <= '@') goto yy109;
+                       if (yych <= 'Z') goto yy3;
+               }
+       } else {
+               if (yych <= 'p') {
+                       if (yych == '`') goto yy109;
+                       if (yych <= 'o') goto yy3;
+                       goto yy153;
+               } else {
+                       if (yych == 'u') goto yy154;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
 yy109:
+#line 54 "../src/ast/lex_conf.re"
+       { opts.set_output_file      (lex_conf_string()); return; }
+#line 660 "src/ast/lex_conf.cc"
+yy110:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy152;
+       if (yych == 'o') goto yy155;
        goto yy4;
-yy110:
+yy111:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 46 "../src/ast/lex_conf.re"
-       { opts.set_sFlag(lex_conf_bool());              return; }
-#line 652 "src/ast/lex_conf.cc"
-yy112:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy153;
-       goto yy4;
+       { opts.set_sFlag            (lex_conf_bool());   return; }
+#line 672 "src/ast/lex_conf.cc"
 yy113:
        yych = (unsigned char)*++cur;
        if (yych <= '^') {
@@ -663,21 +679,44 @@ yy113:
                        if (yych <= '@') goto yy114;
                        if (yych <= 'Z') goto yy3;
                }
+       } else {
+               if (yych <= 'a') {
+                       if (yych <= '_') goto yy3;
+                       if (yych >= 'a') goto yy156;
+               } else {
+                       if (yych == 'y') goto yy157;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
+yy114:
+#line 55 "../src/ast/lex_conf.re"
+       { opts.set_header_file      (lex_conf_string()); return; }
+#line 695 "src/ast/lex_conf.cc"
+yy115:
+       yych = (unsigned char)*++cur;
+       if (yych <= '^') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= ':') goto yy3;
+                       if (yych <= '@') goto yy116;
+                       if (yych <= 'Z') goto yy3;
+               }
        } else {
                if (yych <= 'n') {
-                       if (yych == '`') goto yy114;
+                       if (yych == '`') goto yy116;
                        if (yych <= 'm') goto yy3;
-                       goto yy154;
+                       goto yy158;
                } else {
-                       if (yych == 't') goto yy155;
+                       if (yych == 't') goto yy159;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy114:
-#line 56 "../src/ast/lex_conf.re"
+yy116:
+#line 58 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UTF32, opts);  return; }
-#line 680 "src/ast/lex_conf.cc"
-yy115:
+#line 719 "src/ast/lex_conf.cc"
+yy117:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -690,394 +729,386 @@ yy115:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'i') goto yy156;
+                       if (yych == 'i') goto yy160;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy116:
-#line 57 "../src/ast/lex_conf.re"
+yy118:
+#line 59 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UCS2, opts);   return; }
-#line 701 "src/ast/lex_conf.cc"
-yy117:
+#line 740 "src/ast/lex_conf.cc"
+yy119:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 58 "../src/ast/lex_conf.re"
+#line 60 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UTF16, opts);  return; }
-#line 709 "src/ast/lex_conf.cc"
-yy119:
-       yych = (unsigned char)*++cur;
-       if (yych <= 'r') goto yy4;
-       if (yych <= 's') goto yy157;
-       if (yych <= 't') goto yy158;
-       goto yy4;
-yy120:
-       yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy159;
-       goto yy4;
+#line 748 "src/ast/lex_conf.cc"
 yy121:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy160;
+       if (yych <= 'r') goto yy4;
+       if (yych <= 's') goto yy161;
+       if (yych <= 't') goto yy162;
        goto yy4;
 yy122:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy161;
+       if (yych == 'y') goto yy163;
        goto yy4;
 yy123:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy162;
+       if (yych == 'e') goto yy164;
        goto yy4;
 yy124:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy163;
+       if (yych == 'b') goto yy165;
        goto yy4;
 yy125:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy164;
+       if (yych == 'b') goto yy166;
        goto yy4;
 yy126:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy165;
+       if (yych == 'e') goto yy167;
        goto yy4;
 yy127:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy166;
+       if (yych == 'p') goto yy168;
        goto yy4;
 yy128:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy167;
+       if (yych == 'e') goto yy169;
        goto yy4;
 yy129:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy169;
+       if (yych == 'e') goto yy170;
        goto yy4;
 yy130:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy170;
+       if (yych == 'x') goto yy171;
        goto yy4;
 yy131:
        yych = (unsigned char)*++cur;
-       if (yych <= 'd') {
-               if (yych == 'c') goto yy171;
-               goto yy4;
-       } else {
-               if (yych <= 'e') goto yy172;
-               if (yych == 'p') goto yy173;
-               goto yy4;
-       }
+       if (yych == 'n') goto yy173;
+       goto yy4;
 yy132:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy174;
+       if (yych == 'i') goto yy174;
        goto yy4;
 yy133:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy175;
-       goto yy4;
+       if (yych <= 'd') {
+               if (yych == 'c') goto yy175;
+               goto yy4;
+       } else {
+               if (yych <= 'e') goto yy176;
+               if (yych == 'p') goto yy177;
+               goto yy4;
+       }
 yy134:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy176;
+       if (yych == 'r') goto yy178;
        goto yy4;
 yy135:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy178;
+       if (yych == 'i') goto yy179;
        goto yy4;
 yy136:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy179;
+       if (yych == 'o') goto yy180;
        goto yy4;
 yy137:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy180;
+       if (yych == 'p') goto yy182;
        goto yy4;
 yy138:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy181;
+       if (yych == 'i') goto yy183;
        goto yy4;
 yy139:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy182;
+       if (yych == 'Y') goto yy184;
        goto yy4;
 yy140:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy183;
+       if (yych == 't') goto yy185;
        goto yy4;
 yy141:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy184;
+       if (yych == 's') goto yy186;
        goto yy4;
 yy142:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy185;
+       if (yych == 'm') goto yy187;
        goto yy4;
 yy143:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy186;
+       if (yych == 'b') goto yy188;
        goto yy4;
 yy144:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy187;
+       if (yych == 'a') goto yy189;
        goto yy4;
 yy145:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy188;
+       if (yych == 'g') goto yy190;
        goto yy4;
 yy146:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy189;
+       if (yych == 'b') goto yy191;
        goto yy4;
 yy147:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy190;
+       if (yych == 'p') goto yy192;
        goto yy4;
 yy148:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy191;
+       if (yych == 'c') goto yy193;
        goto yy4;
 yy149:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy192;
+       if (yych == 'p') goto yy194;
        goto yy4;
 yy150:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy193;
+       if (yych == 'o') goto yy195;
        goto yy4;
 yy151:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy194;
+       if (yych == 's') goto yy196;
        goto yy4;
 yy152:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy195;
+       if (yych == '-') goto yy197;
        goto yy4;
 yy153:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy196;
+       if (yych == 't') goto yy198;
        goto yy4;
 yy154:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy197;
+       if (yych == 't') goto yy199;
        goto yy4;
 yy155:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy198;
+       if (yych == 's') goto yy200;
        goto yy4;
 yy156:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy199;
+       if (yych == 'g') goto yy201;
        goto yy4;
 yy157:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy200;
+       if (yych == 'p') goto yy202;
        goto yy4;
 yy158:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy201;
+       if (yych == 'i') goto yy203;
        goto yy4;
 yy159:
        yych = (unsigned char)*++cur;
-       if (yych == 'F') goto yy202;
-       if (yych == 'N') goto yy203;
+       if (yych == 'f') goto yy204;
        goto yy4;
 yy160:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy204;
+       if (yych == 'd') goto yy205;
        goto yy4;
 yy161:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy205;
+       if (yych == 't') goto yy206;
        goto yy4;
 yy162:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy206;
+       if (yych == 'o') goto yy207;
        goto yy4;
 yy163:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy207;
+       if (yych == 'F') goto yy208;
+       if (yych == 'N') goto yy209;
        goto yy4;
 yy164:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy208;
+       if (yych == 'f') goto yy210;
        goto yy4;
 yy165:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy209;
+       if (yych == 'e') goto yy211;
        goto yy4;
 yy166:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy210;
+       if (yych == 'o') goto yy212;
        goto yy4;
 yy167:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 92 "../src/ast/lex_conf.re"
-       { opts.set_yybmHexTable (lex_conf_bool()); return; }
-#line 918 "src/ast/lex_conf.cc"
+       if (yych == 'x') goto yy213;
+       goto yy4;
+yy168:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy214;
+       goto yy4;
 yy169:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy211;
+       if (yych == 'f') goto yy215;
        goto yy4;
 yy170:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy212;
+       if (yych == ':') goto yy216;
        goto yy4;
 yy171:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy214;
-       goto yy4;
-yy172:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy215;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 94 "../src/ast/lex_conf.re"
+       { opts.set_yybmHexTable (lex_conf_bool()); return; }
+#line 965 "src/ast/lex_conf.cc"
 yy173:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy216;
+       if (yych == 'v') goto yy217;
        goto yy4;
 yy174:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy217;
+       if (yych == 't') goto yy218;
        goto yy4;
 yy175:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy218;
+       if (yych == 'h') goto yy220;
        goto yy4;
 yy176:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-       if (yych == '@') goto yy219;
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy221;
+       goto yy4;
 yy177:
-#line 76 "../src/ast/lex_conf.re"
-       { opts.set_condGoto         (lex_conf_string ()); return; }
-#line 957 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy222;
+       goto yy4;
 yy178:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy221;
+       if (yych == 'e') goto yy223;
        goto yy4;
 yy179:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy222;
+       if (yych == 'd') goto yy224;
        goto yy4;
 yy180:
-       yych = (unsigned char)*++cur;
-       switch (yych) {
-       case 'B':       goto yy224;
-       case 'C':       goto yy225;
-       case 'D':       goto yy226;
-       case 'F':       goto yy227;
-       case 'G':       goto yy228;
-       case 'L':       goto yy229;
-       case 'M':       goto yy230;
-       case 'P':       goto yy231;
-       case 'R':       goto yy232;
-       case 'S':       goto yy233;
-       default:        goto yy4;
+       yyaccept = 0;
+       yych = (unsigned char)*(mar = ++cur);
+       if (yybm[0+yych] & 32) {
+               goto yy3;
        }
+       if (yych == '@') goto yy225;
 yy181:
-       yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy234;
-       goto yy4;
+#line 78 "../src/ast/lex_conf.re"
+       { opts.set_condGoto         (lex_conf_string ()); return; }
+#line 1004 "src/ast/lex_conf.cc"
 yy182:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy235;
+       if (yych == 'r') goto yy227;
        goto yy4;
 yy183:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy236;
+       if (yych == 'x') goto yy228;
        goto yy4;
 yy184:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy237;
-       goto yy4;
+       switch (yych) {
+       case 'B':       goto yy230;
+       case 'C':       goto yy231;
+       case 'D':       goto yy232;
+       case 'F':       goto yy233;
+       case 'G':       goto yy234;
+       case 'L':       goto yy235;
+       case 'M':       goto yy236;
+       case 'P':       goto yy237;
+       case 'R':       goto yy238;
+       case 'S':       goto yy239;
+       default:        goto yy4;
+       }
 yy185:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy238;
+       if (yych == '-') goto yy240;
        goto yy4;
 yy186:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy239;
+       if (yych == 'e') goto yy241;
        goto yy4;
 yy187:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-       goto yy101;
+       if (yych == 'p') goto yy242;
+       goto yy4;
 yy188:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy240;
+       if (yych == 'u') goto yy243;
        goto yy4;
 yy189:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy241;
+       if (yych == '-') goto yy244;
        goto yy4;
 yy190:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy242;
+       if (yych == 'e') goto yy245;
        goto yy4;
 yy191:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy243;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy101;
 yy192:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy244;
+       if (yych == 't') goto yy246;
        goto yy4;
 yy193:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy245;
+       if (yych == 'o') goto yy247;
        goto yy4;
 yy194:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy246;
+       if (yych == 'u') goto yy248;
        goto yy4;
 yy195:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy247;
+       if (yych == 'k') goto yy249;
        goto yy4;
 yy196:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy93;
+       if (yych == 't') goto yy250;
        goto yy4;
 yy197:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy248;
+       if (yych == 'd') goto yy251;
        goto yy4;
 yy198:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy249;
+       if (yych == 'i') goto yy252;
        goto yy4;
 yy199:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy250;
+       if (yych == 'p') goto yy253;
        goto yy4;
 yy200:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy251;
+       if (yych == 'i') goto yy254;
        goto yy4;
 yy201:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy252;
+       if (yych == 's') goto yy93;
        goto yy4;
 yy202:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy254;
+       if (yych == 'e') goto yy255;
        goto yy4;
 yy203:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy255;
+       if (yych == 'c') goto yy256;
        goto yy4;
 yy204:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy256;
+       if (yych == '-') goto yy257;
        goto yy4;
 yy205:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy257;
+       if (yych == 'e') goto yy258;
        goto yy4;
 yy206:
        yych = (unsigned char)*++cur;
@@ -1085,223 +1116,255 @@ yy206:
        goto yy4;
 yy207:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy260;
+       if (yych == 'p') goto yy260;
        goto yy4;
 yy208:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy261;
+       if (yych == 'i') goto yy262;
        goto yy4;
 yy209:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy262;
+       if (yych == 'e') goto yy263;
        goto yy4;
 yy210:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy263;
+       if (yych == 'i') goto yy264;
        goto yy4;
 yy211:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy264;
+       if (yych == 'l') goto yy265;
        goto yy4;
 yy212:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 143 "../src/ast/lex_conf.re"
-       { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
-#line 1114 "src/ast/lex_conf.cc"
+       if (yych == 'r') goto yy267;
+       goto yy4;
+yy213:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy268;
+       goto yy4;
 yy214:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy265;
+       if (yych == 'e') goto yy269;
        goto yy4;
 yy215:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy266;
+       if (yych == 'i') goto yy270;
        goto yy4;
 yy216:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy267;
+       if (yych == 'y') goto yy271;
        goto yy4;
 yy217:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy268;
+       if (yych == 'e') goto yy272;
        goto yy4;
 yy218:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy269;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 145 "../src/ast/lex_conf.re"
+       { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
+#line 1169 "src/ast/lex_conf.cc"
+yy220:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy273;
        goto yy4;
-yy219:
+yy221:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy270;
-yy220:
+       if (yych == 'a') goto yy274;
+       goto yy4;
+yy222:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy275;
+       goto yy4;
+yy223:
+       yych = (unsigned char)*++cur;
+       if (yych == 's') goto yy276;
+       goto yy4;
+yy224:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy277;
+       goto yy4;
+yy225:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy278;
+yy226:
        cur = mar;
        if (yyaccept <= 2) {
                if (yyaccept <= 1) {
                        if (yyaccept == 0) {
-                               goto yy177;
+                               goto yy181;
                        } else {
-                               goto yy258;
+                               goto yy266;
                        }
                } else {
-                       goto yy328;
+                       goto yy338;
                }
        } else {
                if (yyaccept <= 4) {
                        if (yyaccept == 3) {
-                               goto yy395;
+                               goto yy407;
                        } else {
-                               goto yy598;
+                               goto yy614;
                        }
                } else {
-                       goto yy675;
+                       goto yy692;
                }
        }
-yy221:
+yy227:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy271;
+       if (yych == 'e') goto yy279;
        goto yy4;
-yy222:
+yy228:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 72 "../src/ast/lex_conf.re"
+#line 74 "../src/ast/lex_conf.re"
        { opts.set_condPrefix       (lex_conf_string ()); return; }
-#line 1172 "src/ast/lex_conf.cc"
-yy224:
+#line 1227 "src/ast/lex_conf.cc"
+yy230:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy272;
+       if (yych == 'A') goto yy280;
        goto yy4;
-yy225:
+yy231:
        yych = (unsigned char)*++cur;
        if (yych <= 'S') {
-               if (yych == 'O') goto yy273;
+               if (yych == 'O') goto yy281;
                goto yy4;
        } else {
-               if (yych <= 'T') goto yy274;
-               if (yych <= 'U') goto yy275;
+               if (yych <= 'T') goto yy282;
+               if (yych <= 'U') goto yy283;
                goto yy4;
        }
-yy226:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy276;
-       goto yy4;
-yy227:
-       yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy277;
-       goto yy4;
-yy228:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy278;
-       goto yy4;
-yy229:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy279;
-       if (yych == 'I') goto yy280;
-       goto yy4;
-yy230:
-       yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy281;
-       if (yych == 'T') goto yy282;
-       goto yy4;
-yy231:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy283;
-       goto yy4;
 yy232:
        yych = (unsigned char)*++cur;
        if (yych == 'E') goto yy284;
        goto yy4;
 yy233:
        yych = (unsigned char)*++cur;
-       if (yych <= 'J') {
-               if (yych == 'E') goto yy285;
-               goto yy4;
-       } else {
-               if (yych <= 'K') goto yy286;
-               if (yych == 'T') goto yy287;
-               goto yy4;
-       }
+       if (yych == 'I') goto yy285;
+       goto yy4;
 yy234:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy288;
+       if (yych == 'E') goto yy286;
        goto yy4;
 yy235:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy289;
+       if (yych == 'E') goto yy287;
+       if (yych == 'I') goto yy288;
        goto yy4;
 yy236:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy290;
+       if (yych == 'A') goto yy289;
+       if (yych == 'T') goto yy290;
        goto yy4;
 yy237:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy291;
+       if (yych == 'E') goto yy291;
        goto yy4;
 yy238:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy292;
+       if (yych == 'E') goto yy292;
        goto yy4;
 yy239:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy293;
-       goto yy4;
+       if (yych <= 'J') {
+               if (yych == 'E') goto yy293;
+               goto yy4;
+       } else {
+               if (yych <= 'K') goto yy294;
+               if (yych == 'T') goto yy295;
+               goto yy4;
+       }
 yy240:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy294;
+       if (yych == 'v') goto yy296;
        goto yy4;
 yy241:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy295;
+       if (yych == '-') goto yy297;
        goto yy4;
 yy242:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy296;
+       if (yych == 'u') goto yy298;
        goto yy4;
 yy243:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy298;
+       if (yych == 'g') goto yy299;
        goto yy4;
 yy244:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy299;
+       if (yych == 'm') goto yy300;
        goto yy4;
 yy245:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy300;
+       if (yych == 'r') goto yy301;
        goto yy4;
 yy246:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy301;
+       if (yych == 'y') goto yy302;
        goto yy4;
 yy247:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy302;
+       if (yych == 'd') goto yy303;
        goto yy4;
 yy248:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy303;
+       if (yych == 't') goto yy304;
        goto yy4;
 yy249:
        yych = (unsigned char)*++cur;
-       if (yych == '1') goto yy304;
-       if (yych == '8') goto yy89;
+       if (yych == 'a') goto yy306;
        goto yy4;
 yy250:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy305;
+       if (yych == 'e') goto yy307;
        goto yy4;
 yy251:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy306;
+       if (yych == 'e') goto yy308;
        goto yy4;
 yy252:
+       yych = (unsigned char)*++cur;
+       if (yych == 'm') goto yy309;
+       goto yy4;
+yy253:
+       yych = (unsigned char)*++cur;
+       if (yych == 'u') goto yy310;
+       goto yy4;
+yy254:
+       yych = (unsigned char)*++cur;
+       if (yych == 'x') goto yy311;
+       goto yy4;
+yy255:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy312;
+       goto yy4;
+yy256:
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy313;
+       goto yy4;
+yy257:
+       yych = (unsigned char)*++cur;
+       if (yych == '1') goto yy314;
+       if (yych == '8') goto yy89;
+       goto yy4;
+yy258:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy315;
+       goto yy4;
+yy259:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy316;
+       goto yy4;
+yy260:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 128 "../src/ast/lex_conf.re"
+#line 130 "../src/ast/lex_conf.re"
        {
         const int32_t n = lex_conf_number ();
         if (n < 0)
@@ -1311,20 +1374,20 @@ yy252:
         opts.set_topIndent (static_cast<uint32_t> (n));
         return;
     }
-#line 1315 "src/ast/lex_conf.cc"
-yy254:
+#line 1378 "src/ast/lex_conf.cc"
+yy262:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy307;
+       if (yych == 'l') goto yy317;
        goto yy4;
-yy255:
+yy263:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy308;
+       if (yych == 'x') goto yy318;
        goto yy4;
-yy256:
+yy264:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy309;
+       if (yych == 'x') goto yy319;
        goto yy4;
-yy257:
+yy265:
        yyaccept = 1;
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
@@ -1333,378 +1396,345 @@ yy257:
        if (yych <= 0x1F) {
                if (yych == '\t') {
                        ctx = cur;
-                       goto yy311;
+                       goto yy321;
                }
        } else {
                if (yych <= ' ') {
                        ctx = cur;
-                       goto yy311;
+                       goto yy321;
                }
                if (yych == '=') {
                        ctx = cur;
-                       goto yy313;
+                       goto yy323;
                }
        }
-yy258:
-#line 156 "../src/ast/lex_conf.re"
+yy266:
+#line 158 "../src/ast/lex_conf.re"
        { opts.set_startlabel       (lex_conf_string()); return; }
-#line 1352 "src/ast/lex_conf.cc"
-yy259:
+#line 1415 "src/ast/lex_conf.cc"
+yy267:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy315;
+       if (yych == 't') goto yy325;
        goto yy4;
-yy260:
+yy268:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy317;
+       if (yych == 'l') goto yy327;
        goto yy4;
-yy261:
+yy269:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy318;
+       if (yych == 's') goto yy328;
        goto yy4;
-yy262:
+yy270:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy319;
+       if (yych == 'x') goto yy329;
        goto yy4;
-yy263:
+yy271:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy321;
-       goto yy4;
-yy264:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy322;
-       goto yy4;
-yy265:
-       yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy323;
-       goto yy4;
-yy266:
-       yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy324;
-       goto yy4;
-yy267:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy325;
-       goto yy4;
-yy268:
-       yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy326;
-       goto yy4;
-yy269:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy327;
-       goto yy4;
-yy270:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy329;
-       goto yy220;
-yy271:
-       yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy330;
+       if (yych == 'y') goto yy331;
        goto yy4;
 yy272:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy331;
+       if (yych == 'r') goto yy332;
        goto yy4;
 yy273:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy332;
+       if (yych == 'c') goto yy333;
        goto yy4;
 yy274:
        yych = (unsigned char)*++cur;
-       if (yych <= 'W') goto yy4;
-       if (yych <= 'X') goto yy333;
-       if (yych <= 'Y') goto yy334;
+       if (yych == 'b') goto yy334;
        goto yy4;
 yy275:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy335;
+       if (yych == 'a') goto yy335;
        goto yy4;
 yy276:
        yych = (unsigned char)*++cur;
-       if (yych == 'B') goto yy336;
+       if (yych == 'h') goto yy336;
        goto yy4;
 yy277:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy337;
+       if (yych == 'r') goto yy337;
        goto yy4;
 yy278:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy338;
-       goto yy4;
+       if (yych == 'o') goto yy339;
+       goto yy226;
 yy279:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy339;
+       if (yych == 'f') goto yy340;
        goto yy4;
 yy280:
        yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy340;
+       if (yych == 'C') goto yy341;
        goto yy4;
 yy281:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy341;
+       if (yych == 'N') goto yy342;
        goto yy4;
 yy282:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy342;
+       if (yych <= 'W') goto yy4;
+       if (yych <= 'X') goto yy343;
+       if (yych <= 'Y') goto yy344;
        goto yy4;
 yy283:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy343;
+       if (yych == 'R') goto yy345;
        goto yy4;
 yy284:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy344;
+       if (yych == 'B') goto yy346;
        goto yy4;
 yy285:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy345;
+       if (yych == 'L') goto yy347;
        goto yy4;
 yy286:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy346;
+       if (yych == 'T') goto yy348;
        goto yy4;
 yy287:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy347;
+       if (yych == 'S') goto yy349;
        goto yy4;
 yy288:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy348;
+       if (yych == 'M') goto yy350;
        goto yy4;
 yy289:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy349;
+       if (yych == 'R') goto yy351;
        goto yy4;
 yy290:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy350;
+       if (yych == 'A') goto yy352;
        goto yy4;
 yy291:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy351;
+       if (yych == 'E') goto yy353;
        goto yy4;
 yy292:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy352;
+       if (yych == 'S') goto yy354;
        goto yy4;
 yy293:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy353;
+       if (yych == 'T') goto yy355;
        goto yy4;
 yy294:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy354;
+       if (yych == 'I') goto yy356;
        goto yy4;
 yy295:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy355;
+       if (yych == 'A') goto yy357;
        goto yy4;
 yy296:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 62 "../src/ast/lex_conf.re"
-       { lex_conf_input(opts);            return; }
-#line 1510 "src/ast/lex_conf.cc"
+       if (yych == 'e') goto yy358;
+       goto yy4;
+yy297:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy359;
+       goto yy4;
 yy298:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy356;
+       if (yych == 't') goto yy360;
        goto yy4;
 yy299:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy357;
+       if (yych == '-') goto yy361;
        goto yy4;
 yy300:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy358;
+       if (yych == 'i') goto yy362;
        goto yy4;
 yy301:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy359;
+       if (yych == '-') goto yy363;
        goto yy4;
 yy302:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy360;
+       if (yych == '-') goto yy364;
        goto yy4;
 yy303:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy361;
+       if (yych == 'i') goto yy365;
        goto yy4;
 yy304:
        yych = (unsigned char)*++cur;
-       if (yych == '6') goto yy117;
-       goto yy4;
-yy305:
-       yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy362;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 64 "../src/ast/lex_conf.re"
+       { lex_conf_input(opts);            return; }
+#line 1573 "src/ast/lex_conf.cc"
 yy306:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy363;
+       if (yych == 'h') goto yy366;
        goto yy4;
 yy307:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy364;
+       if (yych == 'd') goto yy367;
        goto yy4;
 yy308:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy365;
+       if (yych == 'b') goto yy368;
        goto yy4;
 yy309:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy369;
+       goto yy4;
+yy310:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy370;
+       goto yy4;
+yy311:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy371;
+       goto yy4;
+yy312:
+       yych = (unsigned char)*++cur;
+       if (yych == 'h') goto yy372;
+       goto yy4;
+yy313:
+       yych = (unsigned char)*++cur;
+       if (yych == 'd') goto yy373;
+       goto yy4;
+yy314:
+       yych = (unsigned char)*++cur;
+       if (yych == '6') goto yy119;
+       goto yy4;
+yy315:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy374;
+       goto yy4;
+yy316:
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy375;
+       goto yy4;
+yy317:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy376;
+       goto yy4;
+yy318:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy377;
+       goto yy4;
+yy319:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 152 "../src/ast/lex_conf.re"
+#line 154 "../src/ast/lex_conf.re"
        { opts.set_labelPrefix (lex_conf_string ()); return; }
-#line 1562 "src/ast/lex_conf.cc"
-yy311:
+#line 1633 "src/ast/lex_conf.cc"
+yy321:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 64) {
-               goto yy311;
+               goto yy321;
        }
-       if (yych != '=') goto yy220;
-yy313:
+       if (yych != '=') goto yy226;
+yy323:
        ++cur;
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy220;
-                       goto yy313;
+                       if (yych <= 0x08) goto yy226;
+                       goto yy323;
                } else {
-                       if (yych == ' ') goto yy313;
-                       goto yy220;
+                       if (yych == ' ') goto yy323;
+                       goto yy226;
                }
        } else {
                if (yych <= '/') {
-                       if (yych <= '-') goto yy367;
-                       goto yy220;
+                       if (yych <= '-') goto yy379;
+                       goto yy226;
                } else {
-                       if (yych <= '0') goto yy368;
-                       if (yych <= '9') goto yy370;
-                       goto yy220;
+                       if (yych <= '0') goto yy380;
+                       if (yych <= '9') goto yy382;
+                       goto yy226;
                }
        }
-yy315:
+yy325:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 87 "../src/ast/lex_conf.re"
+#line 89 "../src/ast/lex_conf.re"
        { opts.set_bUseStateAbort  (lex_conf_bool()); return; }
-#line 1600 "src/ast/lex_conf.cc"
-yy317:
+#line 1671 "src/ast/lex_conf.cc"
+yy327:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy372;
+       if (yych == 'a') goto yy384;
        goto yy4;
-yy318:
+yy328:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy373;
+       if (yych == 's') goto yy385;
        goto yy4;
-yy319:
+yy329:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 123 "../src/ast/lex_conf.re"
+#line 125 "../src/ast/lex_conf.re"
        { opts.set_tags_prefix    (lex_conf_string ()); return; }
-#line 1616 "src/ast/lex_conf.cc"
-yy321:
+#line 1687 "src/ast/lex_conf.cc"
+yy331:
        yych = (unsigned char)*++cur;
        if (yych <= 'c') {
                if (yych <= '`') goto yy4;
-               if (yych <= 'a') goto yy374;
-               if (yych <= 'b') goto yy375;
-               goto yy376;
+               if (yych <= 'a') goto yy386;
+               if (yych <= 'b') goto yy387;
+               goto yy388;
        } else {
                if (yych <= 'r') goto yy4;
-               if (yych <= 's') goto yy377;
-               if (yych <= 't') goto yy378;
+               if (yych <= 's') goto yy389;
+               if (yych <= 't') goto yy390;
                goto yy4;
        }
-yy322:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy379;
-       goto yy4;
-yy323:
-       yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy380;
-       goto yy4;
-yy324:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy382;
-       goto yy4;
-yy325:
-       yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy383;
-       goto yy4;
-yy326:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy384;
-       goto yy4;
-yy327:
-       yyaccept = 2;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-       if (yych == '@') goto yy385;
-yy328:
-#line 74 "../src/ast/lex_conf.re"
-       { opts.set_condDivider      (lex_conf_string ()); return; }
-#line 1660 "src/ast/lex_conf.cc"
-yy329:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy386;
-       goto yy220;
-yy330:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy387;
-       goto yy4;
-yy331:
-       yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy388;
-       goto yy4;
 yy332:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy389;
+       if (yych == 's') goto yy391;
        goto yy4;
 yy333:
        yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy390;
+       if (yych == 'k') goto yy392;
        goto yy4;
 yy334:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy391;
+       if (yych == 'l') goto yy394;
        goto yy4;
 yy335:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy392;
+       if (yych == 'm') goto yy395;
        goto yy4;
 yy336:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy393;
+       if (yych == 'o') goto yy396;
        goto yy4;
 yy337:
-       yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy394;
-       goto yy4;
+       yyaccept = 2;
+       yych = (unsigned char)*(mar = ++cur);
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       if (yych == '@') goto yy397;
 yy338:
-       yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy396;
-       if (yych == 'S') goto yy397;
-       goto yy4;
+#line 76 "../src/ast/lex_conf.re"
+       { opts.set_condDivider      (lex_conf_string ()); return; }
+#line 1731 "src/ast/lex_conf.cc"
 yy339:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy398;
-       goto yy4;
+       if (yych == 'n') goto yy398;
+       goto yy226;
 yy340:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy399;
+       if (yych == 'i') goto yy399;
        goto yy4;
 yy341:
        yych = (unsigned char)*++cur;
@@ -1712,215 +1742,266 @@ yy341:
        goto yy4;
 yy342:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy401;
+       if (yych == 'D') goto yy401;
        goto yy4;
 yy343:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy402;
+       if (yych == 'M') goto yy402;
        goto yy4;
 yy344:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy404;
+       if (yych == 'P') goto yy403;
        goto yy4;
 yy345:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy405;
-       if (yych == 'S') goto yy406;
+       if (yych == 'S') goto yy404;
        goto yy4;
 yy346:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy407;
+       if (yych == 'U') goto yy405;
        goto yy4;
 yy347:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy409;
+       if (yych == 'L') goto yy406;
        goto yy4;
 yy348:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy410;
+       if (yych == 'C') goto yy408;
+       if (yych == 'S') goto yy409;
        goto yy4;
 yy349:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy411;
+       if (yych == 'S') goto yy410;
        goto yy4;
 yy350:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy412;
+       if (yych == 'I') goto yy411;
        goto yy4;
 yy351:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy413;
+       if (yych == 'K') goto yy412;
        goto yy4;
 yy352:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy414;
+       if (yych == 'G') goto yy413;
        goto yy4;
 yy353:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy415;
+       if (yych == 'K') goto yy414;
        goto yy4;
 yy354:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy416;
+       if (yych == 'T') goto yy416;
        goto yy4;
 yy355:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy417;
+       if (yych == 'C') goto yy417;
+       if (yych == 'S') goto yy418;
        goto yy4;
 yy356:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy418;
+       if (yych == 'P') goto yy419;
        goto yy4;
 yy357:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy419;
+       if (yych == 'G') goto yy421;
        goto yy4;
 yy358:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy420;
+       if (yych == 'c') goto yy422;
        goto yy4;
 yy359:
        yych = (unsigned char)*++cur;
-       if (yych == 'z') goto yy421;
+       if (yych == 'n') goto yy423;
        goto yy4;
 yy360:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy422;
+       if (yych == 'e') goto yy424;
        goto yy4;
 yy361:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy423;
+       if (yych == 'o') goto yy425;
        goto yy4;
 yy362:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy424;
+       if (yych == 'n') goto yy426;
        goto yy4;
 yy363:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy425;
+       if (yych == 's') goto yy427;
        goto yy4;
 yy364:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy427;
+       if (yych == 'c') goto yy428;
        goto yy4;
 yy365:
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy429;
+       goto yy4;
+yy366:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy430;
+       goto yy4;
+yy367:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy431;
+       goto yy4;
+yy368:
+       yych = (unsigned char)*++cur;
+       if (yych == 'u') goto yy432;
+       goto yy4;
+yy369:
+       yych = (unsigned char)*++cur;
+       if (yych == 'z') goto yy433;
+       goto yy4;
+yy370:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 86 "../src/ast/lex_conf.re"
+       goto yy109;
+yy371:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy434;
+       goto yy4;
+yy372:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy435;
+       goto yy4;
+yy373:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy436;
+       goto yy4;
+yy374:
+       yych = (unsigned char)*++cur;
+       if (yych == 'h') goto yy437;
+       goto yy4;
+yy375:
+       yych = (unsigned char)*++cur;
+       if (yych == 'g') goto yy438;
+       goto yy4;
+yy376:
+       yych = (unsigned char)*++cur;
+       if (yych == 'L') goto yy440;
+       goto yy4;
+yy377:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 88 "../src/ast/lex_conf.re"
        { opts.set_yynext          (lex_conf_string ()); return; }
-#line 1814 "src/ast/lex_conf.cc"
-yy367:
+#line 1895 "src/ast/lex_conf.cc"
+yy379:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy220;
-       if (yych <= '9') goto yy370;
-       goto yy220;
-yy368:
+       if (yych <= '0') goto yy226;
+       if (yych <= '9') goto yy382;
+       goto yy226;
+yy380:
        ++cur;
-yy369:
+yy381:
        cur = ctx;
-#line 155 "../src/ast/lex_conf.re"
+#line 157 "../src/ast/lex_conf.re"
        { opts.set_startlabel_force (lex_conf_bool());   return; }
-#line 1826 "src/ast/lex_conf.cc"
-yy370:
+#line 1907 "src/ast/lex_conf.cc"
+yy382:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy370;
+               goto yy382;
        }
-       goto yy369;
-yy372:
+       goto yy381;
+yy384:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy428;
+       if (yych == 'b') goto yy441;
        goto yy4;
-yy373:
+yy385:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy429;
+       if (yych == 'i') goto yy442;
        goto yy4;
-yy374:
+yy386:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy430;
+       if (yych == 'c') goto yy443;
        goto yy4;
-yy375:
+yy387:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy431;
+       if (yych == 'm') goto yy444;
        goto yy4;
-yy376:
+yy388:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy433;
-       if (yych == 't') goto yy435;
+       if (yych == 'h') goto yy446;
+       if (yych == 't') goto yy448;
        goto yy4;
-yy377:
+yy389:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy436;
+       if (yych == 't') goto yy449;
        goto yy4;
-yy378:
+yy390:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy437;
+       if (yych == 'a') goto yy450;
        goto yy4;
-yy379:
+yy391:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy438;
+       if (yych == 'i') goto yy451;
        goto yy4;
-yy380:
+yy392:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 150 "../src/ast/lex_conf.re"
+#line 152 "../src/ast/lex_conf.re"
        { opts.set_fill_check   (lex_conf_bool()); return; }
-#line 1875 "src/ast/lex_conf.cc"
-yy382:
+#line 1956 "src/ast/lex_conf.cc"
+yy394:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy439;
+       if (yych == 'e') goto yy452;
        goto yy4;
-yy383:
+yy395:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy441;
+       if (yych == 'e') goto yy454;
        goto yy4;
-yy384:
+yy396:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy442;
+       if (yych == 'l') goto yy455;
        goto yy4;
-yy385:
+yy397:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy443;
-       goto yy220;
-yy386:
+       if (yych == 'c') goto yy456;
+       goto yy226;
+yy398:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy444;
-       goto yy220;
-yy387:
+       if (yych == 'd') goto yy457;
+       goto yy226;
+yy399:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy446;
+       if (yych == 'x') goto yy459;
        goto yy4;
-yy388:
+yy400:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy448;
+       if (yych == 'U') goto yy461;
        goto yy4;
-yy389:
+yy401:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy449;
+       if (yych == 'T') goto yy462;
        goto yy4;
-yy390:
+yy402:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy450;
+       if (yych == 'A') goto yy463;
        goto yy4;
-yy391:
+yy403:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy451;
+       if (yych == 'E') goto yy464;
        goto yy4;
-yy392:
+yy404:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy453;
+       if (yych == 'O') goto yy466;
        goto yy4;
-yy393:
+yy405:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy454;
+       if (yych == 'G') goto yy467;
        goto yy4;
-yy394:
+yy406:
        yyaccept = 3;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -1928,441 +2009,449 @@ yy394:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy456;
+                       if (yych <= ':') goto yy469;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy457;
+                       if (yych <= '@') goto yy470;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy395;
+                       if (yych == '`') goto yy407;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy395:
-#line 145 "../src/ast/lex_conf.re"
+yy407:
+#line 147 "../src/ast/lex_conf.re"
        { opts.set_fill         (lex_conf_string ()); return; }
-#line 1946 "src/ast/lex_conf.cc"
-yy396:
+#line 2027 "src/ast/lex_conf.cc"
+yy408:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy458;
+       if (yych == 'O') goto yy471;
        goto yy4;
-yy397:
+yy409:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy459;
+       if (yych == 'T') goto yy472;
        goto yy4;
-yy398:
+yy410:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy460;
+       if (yych == 'T') goto yy473;
        goto yy4;
-yy399:
+yy411:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy461;
+       if (yych == 'T') goto yy474;
        goto yy4;
-yy400:
+yy412:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy463;
+       if (yych == 'E') goto yy476;
        goto yy4;
-yy401:
+yy413:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy464;
-       if (yych == 'P') goto yy466;
+       if (yych == 'N') goto yy477;
+       if (yych == 'P') goto yy479;
        goto yy4;
-yy402:
+yy414:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 110 "../src/ast/lex_conf.re"
+#line 112 "../src/ast/lex_conf.re"
        { opts.set_yypeek       (lex_conf_string ()); return; }
-#line 1979 "src/ast/lex_conf.cc"
-yy404:
+#line 2060 "src/ast/lex_conf.cc"
+yy416:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy468;
+       if (yych == 'O') goto yy481;
        goto yy4;
-yy405:
+yy417:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy469;
+       if (yych == 'O') goto yy482;
        goto yy4;
-yy406:
+yy418:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy470;
+       if (yych == 'T') goto yy483;
        goto yy4;
-yy407:
+yy419:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 111 "../src/ast/lex_conf.re"
+#line 113 "../src/ast/lex_conf.re"
        { opts.set_yyskip       (lex_conf_string ()); return; }
-#line 1999 "src/ast/lex_conf.cc"
-yy409:
+#line 2080 "src/ast/lex_conf.cc"
+yy421:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy471;
-       if (yych == 'P') goto yy473;
+       if (yych == 'N') goto yy484;
+       if (yych == 'P') goto yy486;
        goto yy4;
-yy410:
+yy422:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy475;
+       if (yych == 't') goto yy488;
        goto yy4;
-yy411:
+yy423:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy476;
-       if (yych == 'v') goto yy477;
+       if (yych == 's') goto yy489;
+       if (yych == 'v') goto yy490;
        goto yy4;
-yy412:
+yy424:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy478;
+       if (yych == 'd') goto yy491;
        goto yy4;
-yy413:
+yy425:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy479;
+       if (yych == 'u') goto yy492;
        goto yy4;
-yy414:
+yy426:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy480;
+       if (yych == 'i') goto yy493;
        goto yy4;
-yy415:
+yy427:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy481;
+       if (yych == 'k') goto yy494;
        goto yy4;
-yy416:
+yy428:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy482;
+       if (yych == 'l') goto yy495;
        goto yy4;
-yy417:
+yy429:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy483;
+       if (yych == 'g') goto yy496;
        goto yy4;
-yy418:
+yy430:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy484;
+       if (yych == 'a') goto yy497;
        goto yy4;
-yy419:
+yy431:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy485;
+       if (yych == 'i') goto yy498;
        goto yy4;
-yy420:
+yy432:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy486;
+       if (yych == 'g') goto yy499;
        goto yy4;
-yy421:
+yy433:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy487;
+       if (yych == 'e') goto yy500;
        goto yy4;
-yy422:
+yy434:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy488;
+       if (yych == 'a') goto yy501;
        goto yy4;
-yy423:
+yy435:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy502;
+       goto yy4;
+yy436:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy114;
-yy424:
+       goto yy116;
+yy437:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy489;
+       if (yych == 'a') goto yy503;
        goto yy4;
-yy425:
+yy438:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 126 "../src/ast/lex_conf.re"
+#line 128 "../src/ast/lex_conf.re"
        { opts.set_indString (lex_conf_string ()); return; }
-#line 2075 "src/ast/lex_conf.cc"
-yy427:
+#line 2160 "src/ast/lex_conf.cc"
+yy440:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy490;
+       if (yych == 'a') goto yy504;
        goto yy4;
-yy428:
+yy441:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy491;
+       if (yych == 'e') goto yy505;
        goto yy4;
-yy429:
+yy442:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy492;
+       if (yych == 'o') goto yy506;
        goto yy4;
-yy430:
+yy443:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy493;
+       if (yych == 'c') goto yy507;
        goto yy4;
-yy431:
+yy444:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 91 "../src/ast/lex_conf.re"
+#line 93 "../src/ast/lex_conf.re"
        { opts.set_yybm         (lex_conf_string ()); return; }
-#line 2099 "src/ast/lex_conf.cc"
-yy433:
+#line 2184 "src/ast/lex_conf.cc"
+yy446:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 141 "../src/ast/lex_conf.re"
+#line 143 "../src/ast/lex_conf.re"
        { opts.set_yych           (lex_conf_string ()); return; }
-#line 2107 "src/ast/lex_conf.cc"
-yy435:
+#line 2192 "src/ast/lex_conf.cc"
+yy448:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy494;
+       if (yych == 'a') goto yy508;
        goto yy4;
-yy436:
+yy449:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy495;
+       if (yych == 'a') goto yy509;
        goto yy4;
-yy437:
+yy450:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy496;
+       if (yych == 'r') goto yy510;
        goto yy4;
-yy438:
+yy451:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy497;
+       if (yych == 'o') goto yy511;
        goto yy4;
-yy439:
+yy452:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 146 "../src/ast/lex_conf.re"
+#line 148 "../src/ast/lex_conf.re"
        { opts.set_fill_use     (lex_conf_bool()); return; }
-#line 2131 "src/ast/lex_conf.cc"
-yy441:
+#line 2216 "src/ast/lex_conf.cc"
+yy454:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy498;
+       if (yych == 't') goto yy512;
        goto yy4;
-yy442:
+yy455:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy499;
+       if (yych == 'd') goto yy513;
        goto yy4;
-yy443:
+yy456:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy501;
-       goto yy220;
-yy444:
+       if (yych == 'o') goto yy515;
+       goto yy226;
+yy457:
        ++cur;
-#line 77 "../src/ast/lex_conf.re"
+#line 79 "../src/ast/lex_conf.re"
        { opts.set_condGotoParam    (lex_conf_string ()); return; }
-#line 2148 "src/ast/lex_conf.cc"
-yy446:
+#line 2233 "src/ast/lex_conf.cc"
+yy459:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 73 "../src/ast/lex_conf.re"
+#line 75 "../src/ast/lex_conf.re"
        { opts.set_condEnumPrefix   (lex_conf_string ()); return; }
-#line 2156 "src/ast/lex_conf.cc"
-yy448:
+#line 2241 "src/ast/lex_conf.cc"
+yy461:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy502;
+       if (yych == 'P') goto yy516;
        goto yy4;
-yy449:
+yy462:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy504;
+       if (yych == 'Y') goto yy518;
        goto yy4;
-yy450:
+yy463:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy505;
+       if (yych == 'R') goto yy519;
        goto yy4;
-yy451:
+yy464:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 140 "../src/ast/lex_conf.re"
+#line 142 "../src/ast/lex_conf.re"
        { opts.set_yyctype        (lex_conf_string ()); return; }
-#line 2176 "src/ast/lex_conf.cc"
-yy453:
+#line 2261 "src/ast/lex_conf.cc"
+yy466:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy506;
+       if (yych == 'R') goto yy520;
        goto yy4;
-yy454:
+yy467:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 138 "../src/ast/lex_conf.re"
+#line 140 "../src/ast/lex_conf.re"
        { opts.set_yydebug (lex_conf_string ()); return; }
-#line 2188 "src/ast/lex_conf.cc"
-yy456:
+#line 2273 "src/ast/lex_conf.cc"
+yy469:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy508;
+       if (yych == 'n') goto yy522;
        goto yy4;
-yy457:
+yy470:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy509;
-       goto yy220;
-yy458:
+       if (yych == 'l') goto yy523;
+       goto yy226;
+yy471:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy510;
+       if (yych == 'N') goto yy524;
        goto yy4;
-yy459:
+yy472:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy511;
+       if (yych == 'A') goto yy525;
        goto yy4;
-yy460:
+yy473:
        yych = (unsigned char)*++cur;
-       if (yych == 'H') goto yy512;
+       if (yych == 'H') goto yy526;
        goto yy4;
-yy461:
+yy474:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 108 "../src/ast/lex_conf.re"
+#line 110 "../src/ast/lex_conf.re"
        { opts.set_yylimit     (lex_conf_string ()); return; }
-#line 2216 "src/ast/lex_conf.cc"
-yy463:
+#line 2301 "src/ast/lex_conf.cc"
+yy476:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy513;
+       if (yych == 'R') goto yy527;
        goto yy4;
-yy464:
+yy477:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 120 "../src/ast/lex_conf.re"
+#line 122 "../src/ast/lex_conf.re"
        { opts.set_yymtagn      (lex_conf_string ()); return; }
-#line 2228 "src/ast/lex_conf.cc"
-yy466:
+#line 2313 "src/ast/lex_conf.cc"
+yy479:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 121 "../src/ast/lex_conf.re"
+#line 123 "../src/ast/lex_conf.re"
        { opts.set_yymtagp      (lex_conf_string ()); return; }
-#line 2236 "src/ast/lex_conf.cc"
-yy468:
+#line 2321 "src/ast/lex_conf.cc"
+yy481:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy515;
+       if (yych == 'R') goto yy529;
        goto yy4;
-yy469:
+yy482:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy516;
+       if (yych == 'N') goto yy530;
        goto yy4;
-yy470:
+yy483:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy517;
+       if (yych == 'A') goto yy531;
        goto yy4;
-yy471:
+yy484:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 118 "../src/ast/lex_conf.re"
+#line 120 "../src/ast/lex_conf.re"
        { opts.set_yystagn      (lex_conf_string ()); return; }
-#line 2256 "src/ast/lex_conf.cc"
-yy473:
+#line 2341 "src/ast/lex_conf.cc"
+yy486:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 119 "../src/ast/lex_conf.re"
+#line 121 "../src/ast/lex_conf.re"
        { opts.set_yystagp      (lex_conf_string ()); return; }
-#line 2264 "src/ast/lex_conf.cc"
-yy475:
+#line 2349 "src/ast/lex_conf.cc"
+yy488:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy518;
+       if (yych == 'o') goto yy532;
        goto yy4;
-yy476:
+yy489:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy519;
+       if (yych == 'e') goto yy533;
        goto yy4;
-yy477:
+yy490:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy520;
+       if (yych == 'e') goto yy534;
        goto yy4;
-yy478:
+yy491:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy521;
+       if (yych == '-') goto yy535;
        goto yy4;
-yy479:
+yy492:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy522;
+       if (yych == 't') goto yy536;
        goto yy4;
-yy480:
+yy493:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy523;
+       if (yych == 'm') goto yy537;
        goto yy4;
-yy481:
+yy494:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy524;
+       if (yych == 'i') goto yy538;
        goto yy4;
-yy482:
+yy495:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy525;
+       if (yych == 'a') goto yy539;
        goto yy4;
-yy483:
+yy496:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy526;
+       if (yych == '-') goto yy540;
        goto yy4;
-yy484:
+yy497:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy527;
+       if (yych == 'd') goto yy541;
        goto yy4;
-yy485:
+yy498:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy529;
+       if (yych == 'f') goto yy543;
        goto yy4;
-yy486:
+yy499:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy530;
+       if (yych == '-') goto yy544;
        goto yy4;
-yy487:
+yy500:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy531;
+       if (yych == '-') goto yy545;
        goto yy4;
-yy488:
+yy501:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy532;
+       if (yych == 'p') goto yy546;
        goto yy4;
-yy489:
+yy502:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy533;
+       if (yych == 'd') goto yy547;
        goto yy4;
-yy490:
+yy503:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy534;
+       if (yych == 'r') goto yy548;
        goto yy4;
-yy491:
+yy504:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy535;
+       if (yych == 'b') goto yy549;
        goto yy4;
-yy492:
+yy505:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy537;
+       if (yych == 'l') goto yy550;
        goto yy4;
-yy493:
+yy506:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy539;
+       if (yych == 'n') goto yy552;
        goto yy4;
-yy494:
+yy507:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy540;
+       if (yych == 'e') goto yy554;
        goto yy4;
-yy495:
+yy508:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy541;
+       if (yych == 'b') goto yy555;
        goto yy4;
-yy496:
+yy509:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy542;
+       if (yych == 'b') goto yy556;
        goto yy4;
-yy497:
+yy510:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy543;
+       if (yych == 'g') goto yy557;
        goto yy4;
-yy498:
+yy511:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy545;
+       if (yych == 'n') goto yy558;
        goto yy4;
-yy499:
+yy512:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy560;
+       goto yy4;
+yy513:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 94 "../src/ast/lex_conf.re"
+#line 96 "../src/ast/lex_conf.re"
        {
         const int32_t n = lex_conf_number ();
         if (n < 0)
@@ -2372,12 +2461,12 @@ yy499:
         opts.set_cGotoThreshold (static_cast<uint32_t> (n));
         return;
     }
-#line 2376 "src/ast/lex_conf.cc"
-yy501:
+#line 2465 "src/ast/lex_conf.cc"
+yy515:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy546;
-       goto yy220;
-yy502:
+       if (yych == 'n') goto yy561;
+       goto yy226;
+yy516:
        yych = (unsigned char)*++cur;
        if (yych <= 'B') {
                if (yych <= '/') {
@@ -2388,416 +2477,424 @@ yy502:
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= 'C') goto yy547;
+                       if (yych <= 'C') goto yy562;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy503;
+                       if (yych == '`') goto yy517;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy503:
-#line 112 "../src/ast/lex_conf.re"
+yy517:
+#line 114 "../src/ast/lex_conf.re"
        { opts.set_yybackup     (lex_conf_string ()); return; }
-#line 2402 "src/ast/lex_conf.cc"
-yy504:
+#line 2491 "src/ast/lex_conf.cc"
+yy518:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy548;
+       if (yych == 'P') goto yy563;
        goto yy4;
-yy505:
+yy519:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy549;
+       if (yych == 'K') goto yy564;
        goto yy4;
-yy506:
+yy520:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 105 "../src/ast/lex_conf.re"
+#line 107 "../src/ast/lex_conf.re"
        { opts.set_yycursor    (lex_conf_string ()); return; }
-#line 2418 "src/ast/lex_conf.cc"
-yy508:
+#line 2507 "src/ast/lex_conf.cc"
+yy522:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy550;
+       if (yych == 'a') goto yy565;
        goto yy4;
-yy509:
+yy523:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy551;
-       goto yy220;
-yy510:
+       if (yych == 'e') goto yy566;
+       goto yy226;
+yy524:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy552;
+       if (yych == 'D') goto yy567;
        goto yy4;
-yy511:
+yy525:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy553;
+       if (yych == 'T') goto yy568;
        goto yy4;
-yy512:
+yy526:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy554;
+       if (yych == 'A') goto yy569;
        goto yy4;
-yy513:
+yy527:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 106 "../src/ast/lex_conf.re"
+#line 108 "../src/ast/lex_conf.re"
        { opts.set_yymarker    (lex_conf_string ()); return; }
-#line 2446 "src/ast/lex_conf.cc"
-yy515:
+#line 2535 "src/ast/lex_conf.cc"
+yy529:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy555;
+       if (yych == 'E') goto yy570;
        goto yy4;
-yy516:
+yy530:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy557;
+       if (yych == 'D') goto yy572;
        goto yy4;
-yy517:
+yy531:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy558;
+       if (yych == 'T') goto yy573;
        goto yy4;
-yy518:
+yy532:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy559;
+       if (yych == 'r') goto yy574;
        goto yy4;
-yy519:
+yy533:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy560;
+       if (yych == 'n') goto yy575;
        goto yy4;
-yy520:
+yy534:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy561;
+       if (yych == 'r') goto yy576;
        goto yy4;
-yy521:
+yy535:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy562;
+       if (yych == 'g') goto yy577;
        goto yy4;
-yy522:
+yy536:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy563;
+       if (yych == 'p') goto yy578;
        goto yy4;
-yy523:
+yy537:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy564;
+       if (yych == 'i') goto yy579;
        goto yy4;
-yy524:
+yy538:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy565;
+       if (yych == 'p') goto yy580;
        goto yy4;
-yy525:
+yy539:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy567;
+       if (yych == 's') goto yy582;
        goto yy4;
-yy526:
+yy540:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy568;
+       if (yych == 'p') goto yy583;
        goto yy4;
-yy527:
+yy541:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 51 "../src/ast/lex_conf.re"
-       { opts.set_lookahead(lex_conf_bool());          return; }
-#line 2502 "src/ast/lex_conf.cc"
-yy529:
+       { opts.set_lookahead        (lex_conf_bool());   return; }
+#line 2591 "src/ast/lex_conf.cc"
+yy543:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy110;
+       if (yych == 's') goto yy111;
        goto yy4;
-yy530:
+yy544:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy569;
+       if (yych == 'i') goto yy584;
        goto yy4;
-yy531:
+yy545:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy570;
+       if (yych == 't') goto yy585;
        goto yy4;
-yy532:
+yy546:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy571;
+       if (yych == 't') goto yy586;
        goto yy4;
-yy533:
+yy547:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy572;
+       if (yych == 'e') goto yy587;
        goto yy4;
-yy534:
+yy548:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy573;
+       if (yych == 's') goto yy588;
        goto yy4;
-yy535:
+yy549:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy589;
+       goto yy4;
+yy550:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 88 "../src/ast/lex_conf.re"
+#line 90 "../src/ast/lex_conf.re"
        { opts.set_bUseStateNext   (lex_conf_bool()); return; }
-#line 2534 "src/ast/lex_conf.cc"
-yy537:
+#line 2627 "src/ast/lex_conf.cc"
+yy552:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 124 "../src/ast/lex_conf.re"
+#line 126 "../src/ast/lex_conf.re"
        { opts.set_tags_expression(lex_conf_string ()); return; }
-#line 2542 "src/ast/lex_conf.cc"
-yy539:
+#line 2635 "src/ast/lex_conf.cc"
+yy554:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy574;
+       if (yych == 'p') goto yy590;
        goto yy4;
-yy540:
+yy555:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy575;
+       if (yych == 'l') goto yy591;
        goto yy4;
-yy541:
+yy556:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy576;
+       if (yych == 'l') goto yy592;
        goto yy4;
-yy542:
+yy557:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy577;
+       if (yych == 'e') goto yy593;
        goto yy4;
-yy543:
+yy558:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 142 "../src/ast/lex_conf.re"
+#line 144 "../src/ast/lex_conf.re"
        { opts.set_yychConversion (lex_conf_bool()); return; }
-#line 2566 "src/ast/lex_conf.cc"
-yy545:
+#line 2659 "src/ast/lex_conf.cc"
+yy560:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy578;
+       if (yych == 'r') goto yy594;
        goto yy4;
-yy546:
+yy561:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy580;
-       goto yy220;
-yy547:
+       if (yych == 'd') goto yy596;
+       goto yy226;
+yy562:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy582;
+       if (yych == 'T') goto yy598;
        goto yy4;
-yy548:
+yy563:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy583;
+       if (yych == 'E') goto yy599;
        goto yy4;
-yy549:
+yy564:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy585;
+       if (yych == 'E') goto yy601;
        goto yy4;
-yy550:
+yy565:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy586;
+       if (yych == 'k') goto yy602;
        goto yy4;
-yy551:
+yy566:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy587;
-       goto yy220;
-yy552:
+       if (yych == 'n') goto yy603;
+       goto yy226;
+yy567:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy589;
+       if (yych == 'I') goto yy605;
        goto yy4;
-yy553:
+yy568:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy590;
+       if (yych == 'E') goto yy606;
        goto yy4;
-yy554:
+yy569:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy592;
+       if (yych == 'N') goto yy608;
        goto yy4;
-yy555:
+yy570:
        yych = (unsigned char)*++cur;
        if (yych <= 'C') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy556;
+                       if (yych <= '@') goto yy571;
                        if (yych <= 'B') goto yy3;
-                       goto yy594;
+                       goto yy610;
                }
        } else {
                if (yych <= '^') {
-                       if (yych == 'T') goto yy595;
+                       if (yych == 'T') goto yy611;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy556;
+                       if (yych == '`') goto yy571;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy556:
-#line 114 "../src/ast/lex_conf.re"
+yy571:
+#line 116 "../src/ast/lex_conf.re"
        { opts.set_yyrestore    (lex_conf_string ()); return; }
-#line 2630 "src/ast/lex_conf.cc"
-yy557:
+#line 2723 "src/ast/lex_conf.cc"
+yy572:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy596;
+       if (yych == 'I') goto yy612;
        goto yy4;
-yy558:
+yy573:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy597;
+       if (yych == 'E') goto yy613;
        goto yy4;
-yy559:
+yy574:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy599;
+       if (yych == 's') goto yy615;
        goto yy4;
-yy560:
+yy575:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy600;
+       if (yych == 's') goto yy616;
        goto yy4;
-yy561:
+yy576:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy601;
+       if (yych == 't') goto yy617;
        goto yy4;
-yy562:
+yy577:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy602;
+       if (yych == 'o') goto yy618;
        goto yy4;
-yy563:
+yy578:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy603;
+       if (yych == 'u') goto yy619;
        goto yy4;
-yy564:
+yy579:
        yych = (unsigned char)*++cur;
-       if (yych == 'z') goto yy604;
+       if (yych == 'z') goto yy620;
        goto yy4;
-yy565:
+yy580:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 53 "../src/ast/lex_conf.re"
-       { opts.set_eager_skip(lex_conf_bool());         return; }
-#line 2670 "src/ast/lex_conf.cc"
-yy567:
+       { opts.set_eager_skip       (lex_conf_bool());   return; }
+#line 2763 "src/ast/lex_conf.cc"
+yy582:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy605;
+       if (yych == 's') goto yy621;
        goto yy4;
-yy568:
+yy583:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy607;
+       if (yych == 'o') goto yy623;
        goto yy4;
-yy569:
+yy584:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy608;
+       if (yych == 'n') goto yy624;
        goto yy4;
-yy570:
+yy585:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy609;
+       if (yych == 'a') goto yy625;
        goto yy4;
-yy571:
+yy586:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy610;
+       if (yych == 'u') goto yy626;
        goto yy4;
-yy572:
+yy587:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy627;
+       goto yy4;
+yy588:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy116;
-yy573:
+       goto yy118;
+yy589:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy611;
+       if (yych == 'l') goto yy628;
        goto yy4;
-yy574:
+yy590:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy613;
+       if (yych == 't') goto yy630;
        goto yy4;
-yy575:
+yy591:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy615;
+       if (yych == 'e') goto yy632;
        goto yy4;
-yy576:
+yy592:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy617;
+       if (yych == 'e') goto yy634;
        goto yy4;
-yy577:
+yy593:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy619;
+       if (yych == 't') goto yy636;
        goto yy4;
-yy578:
+yy594:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 148 "../src/ast/lex_conf.re"
+#line 150 "../src/ast/lex_conf.re"
        { opts.set_fill_arg_use (lex_conf_bool()); return; }
-#line 2724 "src/ast/lex_conf.cc"
-yy580:
+#line 2821 "src/ast/lex_conf.cc"
+yy596:
        ++cur;
-#line 75 "../src/ast/lex_conf.re"
+#line 77 "../src/ast/lex_conf.re"
        { opts.set_condDividerParam (lex_conf_string ()); return; }
-#line 2729 "src/ast/lex_conf.cc"
-yy582:
+#line 2826 "src/ast/lex_conf.cc"
+yy598:
        yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy621;
+       if (yych == 'X') goto yy638;
        goto yy4;
-yy583:
+yy599:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 66 "../src/ast/lex_conf.re"
+#line 68 "../src/ast/lex_conf.re"
        { opts.set_yycondtype       (lex_conf_string ()); return; }
-#line 2741 "src/ast/lex_conf.cc"
-yy585:
+#line 2838 "src/ast/lex_conf.cc"
+yy601:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy623;
+       if (yych == 'R') goto yy640;
        goto yy4;
-yy586:
+yy602:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy625;
+       if (yych == 'e') goto yy642;
        goto yy4;
-yy587:
+yy603:
        ++cur;
-#line 147 "../src/ast/lex_conf.re"
+#line 149 "../src/ast/lex_conf.re"
        { opts.set_fill_arg     (lex_conf_string ()); return; }
-#line 2754 "src/ast/lex_conf.cc"
-yy589:
+#line 2851 "src/ast/lex_conf.cc"
+yy605:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy626;
+       if (yych == 'T') goto yy643;
        goto yy4;
-yy590:
+yy606:
        yych = (unsigned char)*++cur;
        if (yych <= '@') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy627;
+                       if (yych <= ':') goto yy644;
                }
        } else {
                if (yych <= '_') {
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                } else {
-                       if (yych <= '`') goto yy591;
+                       if (yych <= '`') goto yy607;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy591:
-#line 80 "../src/ast/lex_conf.re"
+yy607:
+#line 82 "../src/ast/lex_conf.re"
        { opts.set_state_get       (lex_conf_string ()); return; }
-#line 2780 "src/ast/lex_conf.cc"
-yy592:
+#line 2877 "src/ast/lex_conf.cc"
+yy608:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 117 "../src/ast/lex_conf.re"
+#line 119 "../src/ast/lex_conf.re"
        { opts.set_yylessthan   (lex_conf_string ()); return; }
-#line 2788 "src/ast/lex_conf.cc"
-yy594:
+#line 2885 "src/ast/lex_conf.cc"
+yy610:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy628;
+       if (yych == 'T') goto yy645;
        goto yy4;
-yy595:
+yy611:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy629;
+       if (yych == 'A') goto yy646;
        goto yy4;
-yy596:
+yy612:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy630;
+       if (yych == 'T') goto yy647;
        goto yy4;
-yy597:
+yy613:
        yyaccept = 4;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -2805,342 +2902,348 @@ yy597:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy631;
+                       if (yych <= ':') goto yy648;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy632;
+                       if (yych <= '@') goto yy649;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy598;
+                       if (yych == '`') goto yy614;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy598:
-#line 82 "../src/ast/lex_conf.re"
+yy614:
+#line 84 "../src/ast/lex_conf.re"
        { opts.set_state_set       (lex_conf_string ()); return; }
-#line 2823 "src/ast/lex_conf.cc"
-yy599:
+#line 2920 "src/ast/lex_conf.cc"
+yy615:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
        goto yy96;
-yy600:
+yy616:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy633;
+       if (yych == 'i') goto yy650;
        goto yy4;
-yy601:
+yy617:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy634;
+       if (yych == 'e') goto yy651;
        goto yy4;
-yy602:
+yy618:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy635;
+       if (yych == 't') goto yy652;
        goto yy4;
-yy603:
+yy619:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy636;
+       if (yych == 't') goto yy653;
        goto yy4;
-yy604:
+yy620:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy637;
+       if (yych == 'a') goto yy654;
        goto yy4;
-yy605:
+yy621:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 63 "../src/ast/lex_conf.re"
+#line 65 "../src/ast/lex_conf.re"
        { lex_conf_empty_class(opts);      return; }
-#line 2857 "src/ast/lex_conf.cc"
-yy607:
+#line 2954 "src/ast/lex_conf.cc"
+yy623:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy638;
+       if (yych == 'l') goto yy655;
        goto yy4;
-yy608:
+yy624:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy639;
+       if (yych == 'f') goto yy656;
        goto yy4;
-yy609:
+yy625:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy640;
+       if (yych == 'g') goto yy657;
        goto yy4;
-yy610:
+yy626:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy641;
+       if (yych == 'r') goto yy658;
        goto yy4;
-yy611:
+yy627:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 85 "../src/ast/lex_conf.re"
+       goto yy114;
+yy628:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 87 "../src/ast/lex_conf.re"
        { opts.set_yyfilllabel     (lex_conf_string ()); return; }
-#line 2881 "src/ast/lex_conf.cc"
-yy613:
+#line 2984 "src/ast/lex_conf.cc"
+yy630:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 89 "../src/ast/lex_conf.re"
+#line 91 "../src/ast/lex_conf.re"
        { opts.set_yyaccept        (lex_conf_string ()); return; }
-#line 2889 "src/ast/lex_conf.cc"
-yy615:
+#line 2992 "src/ast/lex_conf.cc"
+yy632:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 78 "../src/ast/lex_conf.re"
+#line 80 "../src/ast/lex_conf.re"
        { opts.set_yyctable         (lex_conf_string ()); return; }
-#line 2897 "src/ast/lex_conf.cc"
-yy617:
+#line 3000 "src/ast/lex_conf.cc"
+yy634:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 159 "../src/ast/lex_conf.re"
+#line 161 "../src/ast/lex_conf.re"
        { lex_conf_string (); return; }
-#line 2905 "src/ast/lex_conf.cc"
-yy619:
+#line 3008 "src/ast/lex_conf.cc"
+yy636:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 103 "../src/ast/lex_conf.re"
+#line 105 "../src/ast/lex_conf.re"
        { opts.set_yytarget (lex_conf_string ()); return; }
-#line 2913 "src/ast/lex_conf.cc"
-yy621:
+#line 3016 "src/ast/lex_conf.cc"
+yy638:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 113 "../src/ast/lex_conf.re"
+#line 115 "../src/ast/lex_conf.re"
        { opts.set_yybackupctx  (lex_conf_string ()); return; }
-#line 2921 "src/ast/lex_conf.cc"
-yy623:
+#line 3024 "src/ast/lex_conf.cc"
+yy640:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 107 "../src/ast/lex_conf.re"
+#line 109 "../src/ast/lex_conf.re"
        { opts.set_yyctxmarker (lex_conf_string ()); return; }
-#line 2929 "src/ast/lex_conf.cc"
-yy625:
+#line 3032 "src/ast/lex_conf.cc"
+yy642:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy642;
+       if (yych == 'd') goto yy659;
        goto yy4;
-yy626:
+yy643:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy644;
+       if (yych == 'I') goto yy661;
        goto yy4;
-yy627:
+yy644:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy645;
+       if (yych == 'n') goto yy662;
        goto yy4;
-yy628:
+yy645:
        yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy646;
+       if (yych == 'X') goto yy663;
        goto yy4;
-yy629:
+yy646:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy648;
+       if (yych == 'G') goto yy665;
        goto yy4;
-yy630:
+yy647:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy650;
+       if (yych == 'I') goto yy667;
        goto yy4;
-yy631:
+yy648:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy651;
+       if (yych == 'n') goto yy668;
        goto yy4;
-yy632:
+yy649:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy652;
-       goto yy220;
-yy633:
+       if (yych == 's') goto yy669;
+       goto yy226;
+yy650:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy653;
+       if (yych == 't') goto yy670;
        goto yy4;
-yy634:
+yy651:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy654;
+       if (yych == 'd') goto yy671;
        goto yy4;
-yy635:
+yy652:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy656;
+       if (yych == 'o') goto yy673;
        goto yy4;
-yy636:
+yy653:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
        goto yy99;
-yy637:
+yy654:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy657;
+       if (yych == 't') goto yy674;
        goto yy4;
-yy638:
+yy655:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy658;
+       if (yych == 'i') goto yy675;
        goto yy4;
-yy639:
+yy656:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy659;
+       if (yych == 'o') goto yy676;
        goto yy4;
-yy640:
+yy657:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy660;
+       if (yych == 's') goto yy677;
        goto yy4;
-yy641:
+yy658:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy662;
+       if (yych == 'e') goto yy679;
        goto yy4;
-yy642:
+yy659:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 149 "../src/ast/lex_conf.re"
+#line 151 "../src/ast/lex_conf.re"
        { opts.set_fill_naked   (lex_conf_bool()); return; }
-#line 3007 "src/ast/lex_conf.cc"
-yy644:
+#line 3110 "src/ast/lex_conf.cc"
+yy661:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy663;
+       if (yych == 'O') goto yy680;
        goto yy4;
-yy645:
+yy662:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy664;
+       if (yych == 'a') goto yy681;
        goto yy4;
-yy646:
+yy663:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 115 "../src/ast/lex_conf.re"
+#line 117 "../src/ast/lex_conf.re"
        { opts.set_yyrestorectx (lex_conf_string ()); return; }
-#line 3023 "src/ast/lex_conf.cc"
-yy648:
+#line 3126 "src/ast/lex_conf.cc"
+yy665:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 116 "../src/ast/lex_conf.re"
+#line 118 "../src/ast/lex_conf.re"
        { opts.set_yyrestoretag (lex_conf_string ()); return; }
-#line 3031 "src/ast/lex_conf.cc"
-yy650:
+#line 3134 "src/ast/lex_conf.cc"
+yy667:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy665;
+       if (yych == 'O') goto yy682;
        goto yy4;
-yy651:
+yy668:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy666;
+       if (yych == 'a') goto yy683;
        goto yy4;
-yy652:
+yy669:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy667;
-       goto yy220;
-yy653:
+       if (yych == 't') goto yy684;
+       goto yy226;
+yy670:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy668;
+       if (yych == 'i') goto yy685;
        goto yy4;
-yy654:
+yy671:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 50 "../src/ast/lex_conf.re"
-       { opts.set_bCaseInverted(lex_conf_bool());      return; }
-#line 3055 "src/ast/lex_conf.cc"
-yy656:
+       { opts.set_bCaseInverted    (lex_conf_bool());   return; }
+#line 3158 "src/ast/lex_conf.cc"
+yy673:
        yych = (unsigned char)*++cur;
        if (yych == 's') goto yy102;
        goto yy4;
-yy657:
+yy674:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy669;
+       if (yych == 'i') goto yy686;
        goto yy4;
-yy658:
+yy675:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy670;
+       if (yych == 'c') goto yy687;
        goto yy4;
-yy659:
+yy676:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
        goto yy105;
-yy660:
+yy677:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 52 "../src/ast/lex_conf.re"
-       { opts.set_optimize_tags(lex_conf_bool());      return; }
-#line 3081 "src/ast/lex_conf.cc"
-yy662:
+       { opts.set_optimize_tags    (lex_conf_bool());   return; }
+#line 3184 "src/ast/lex_conf.cc"
+yy679:
        yych = (unsigned char)*++cur;
        if (yych == 's') goto yy91;
        goto yy4;
-yy663:
+yy680:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy671;
+       if (yych == 'N') goto yy688;
        goto yy4;
-yy664:
+yy681:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy673;
+       if (yych == 'k') goto yy690;
        goto yy4;
-yy665:
+yy682:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy674;
+       if (yych == 'N') goto yy691;
        goto yy4;
-yy666:
+yy683:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy676;
+       if (yych == 'k') goto yy693;
        goto yy4;
-yy667:
+yy684:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy677;
-       goto yy220;
-yy668:
+       if (yych == 'a') goto yy694;
+       goto yy226;
+yy685:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy678;
+       if (yych == 'v') goto yy695;
        goto yy4;
-yy669:
+yy686:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy679;
+       if (yych == 'o') goto yy696;
        goto yy4;
-yy670:
+yy687:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy680;
+       if (yych == 'y') goto yy697;
        goto yy4;
-yy671:
+yy688:
        yych = (unsigned char)*++cur;
        if (yych <= '@') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy682;
+                       if (yych <= ':') goto yy699;
                }
        } else {
                if (yych <= '_') {
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                } else {
-                       if (yych <= '`') goto yy672;
+                       if (yych <= '`') goto yy689;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy672:
-#line 67 "../src/ast/lex_conf.re"
+yy689:
+#line 69 "../src/ast/lex_conf.re"
        { opts.set_cond_get         (lex_conf_string ()); return; }
-#line 3139 "src/ast/lex_conf.cc"
-yy673:
+#line 3242 "src/ast/lex_conf.cc"
+yy690:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy683;
+       if (yych == 'e') goto yy700;
        goto yy4;
-yy674:
+yy691:
        yyaccept = 5;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -3148,173 +3251,173 @@ yy674:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy684;
+                       if (yych <= ':') goto yy701;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy685;
+                       if (yych <= '@') goto yy702;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy675;
+                       if (yych == '`') goto yy692;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy675:
-#line 69 "../src/ast/lex_conf.re"
+yy692:
+#line 71 "../src/ast/lex_conf.re"
        { opts.set_cond_set         (lex_conf_string ()); return; }
-#line 3166 "src/ast/lex_conf.cc"
-yy676:
+#line 3269 "src/ast/lex_conf.cc"
+yy693:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy686;
+       if (yych == 'e') goto yy703;
        goto yy4;
-yy677:
+yy694:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy687;
-       goto yy220;
-yy678:
+       if (yych == 't') goto yy704;
+       goto yy226;
+yy695:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy688;
+       if (yych == 'e') goto yy705;
        goto yy4;
-yy679:
+yy696:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy690;
+       if (yych == 'n') goto yy707;
        goto yy4;
-yy680:
+yy697:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 61 "../src/ast/lex_conf.re"
+#line 63 "../src/ast/lex_conf.re"
        { lex_conf_encoding_policy(opts);  return; }
-#line 3190 "src/ast/lex_conf.cc"
-yy682:
+#line 3293 "src/ast/lex_conf.cc"
+yy699:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy692;
+       if (yych == 'n') goto yy709;
        goto yy4;
-yy683:
+yy700:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy693;
+       if (yych == 'd') goto yy710;
        goto yy4;
-yy684:
+yy701:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy695;
+       if (yych == 'n') goto yy712;
        goto yy4;
-yy685:
+yy702:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy696;
-       goto yy220;
-yy686:
+       if (yych == 'c') goto yy713;
+       goto yy226;
+yy703:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy697;
+       if (yych == 'd') goto yy714;
        goto yy4;
-yy687:
+yy704:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy699;
-       goto yy220;
-yy688:
+       if (yych == 'e') goto yy716;
+       goto yy226;
+yy705:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 49 "../src/ast/lex_conf.re"
-       { opts.set_bCaseInsensitive(lex_conf_bool());   return; }
-#line 3222 "src/ast/lex_conf.cc"
-yy690:
+       { opts.set_bCaseInsensitive (lex_conf_bool());   return; }
+#line 3325 "src/ast/lex_conf.cc"
+yy707:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 64 "../src/ast/lex_conf.re"
+#line 66 "../src/ast/lex_conf.re"
        { lex_conf_dfa_minimization(opts); return; }
-#line 3230 "src/ast/lex_conf.cc"
-yy692:
+#line 3333 "src/ast/lex_conf.cc"
+yy709:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy701;
+       if (yych == 'a') goto yy718;
        goto yy4;
-yy693:
+yy710:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 81 "../src/ast/lex_conf.re"
+#line 83 "../src/ast/lex_conf.re"
        { opts.set_state_get_naked (lex_conf_bool()); return; }
-#line 3242 "src/ast/lex_conf.cc"
-yy695:
+#line 3345 "src/ast/lex_conf.cc"
+yy712:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy702;
+       if (yych == 'a') goto yy719;
        goto yy4;
-yy696:
+yy713:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy703;
-       goto yy220;
-yy697:
+       if (yych == 'o') goto yy720;
+       goto yy226;
+yy714:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 83 "../src/ast/lex_conf.re"
+#line 85 "../src/ast/lex_conf.re"
        { opts.set_state_set_naked (lex_conf_bool()); return; }
-#line 3258 "src/ast/lex_conf.cc"
-yy699:
+#line 3361 "src/ast/lex_conf.cc"
+yy716:
        ++cur;
-#line 84 "../src/ast/lex_conf.re"
+#line 86 "../src/ast/lex_conf.re"
        { opts.set_state_set_arg   (lex_conf_string ()); return; }
-#line 3263 "src/ast/lex_conf.cc"
-yy701:
+#line 3366 "src/ast/lex_conf.cc"
+yy718:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy704;
+       if (yych == 'k') goto yy721;
        goto yy4;
-yy702:
+yy719:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy705;
+       if (yych == 'k') goto yy722;
        goto yy4;
-yy703:
+yy720:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy706;
-       goto yy220;
-yy704:
+       if (yych == 'n') goto yy723;
+       goto yy226;
+yy721:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy707;
+       if (yych == 'e') goto yy724;
        goto yy4;
-yy705:
+yy722:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy708;
+       if (yych == 'e') goto yy725;
        goto yy4;
-yy706:
+yy723:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy709;
-       goto yy220;
-yy707:
+       if (yych == 'd') goto yy726;
+       goto yy226;
+yy724:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy711;
+       if (yych == 'd') goto yy728;
        goto yy4;
-yy708:
+yy725:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy713;
+       if (yych == 'd') goto yy730;
        goto yy4;
-yy709:
+yy726:
        ++cur;
-#line 70 "../src/ast/lex_conf.re"
+#line 72 "../src/ast/lex_conf.re"
        { opts.set_cond_set_arg     (lex_conf_string ()); return; }
-#line 3300 "src/ast/lex_conf.cc"
-yy711:
+#line 3403 "src/ast/lex_conf.cc"
+yy728:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 68 "../src/ast/lex_conf.re"
+#line 70 "../src/ast/lex_conf.re"
        { opts.set_cond_get_naked   (lex_conf_bool()); return; }
-#line 3308 "src/ast/lex_conf.cc"
-yy713:
+#line 3411 "src/ast/lex_conf.cc"
+yy730:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 71 "../src/ast/lex_conf.re"
+#line 73 "../src/ast/lex_conf.re"
        { opts.set_cond_set_naked   (lex_conf_bool()); return; }
-#line 3316 "src/ast/lex_conf.cc"
+#line 3419 "src/ast/lex_conf.cc"
 }
-#line 165 "../src/ast/lex_conf.re"
+#line 167 "../src/ast/lex_conf.re"
 
 }
 
@@ -3322,102 +3425,102 @@ void Scanner::lex_conf_encoding_policy(Opt &opts)
 {
     lex_conf_assign ();
 
-#line 3326 "src/ast/lex_conf.cc"
+#line 3429 "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 yy719;
+               if (yych == 'f') goto yy736;
        } else {
-               if (yych <= 'i') goto yy720;
-               if (yych == 's') goto yy721;
+               if (yych <= 'i') goto yy737;
+               if (yych == 's') goto yy738;
        }
        ++cur;
-yy718:
-#line 172 "../src/ast/lex_conf.re"
+yy735:
+#line 174 "../src/ast/lex_conf.re"
        { fatal_lc(get_cline(), get_column(),
         "bad configuration value (expected: 'ignore', 'substitute', 'fail')"); }
-#line 3342 "src/ast/lex_conf.cc"
-yy719:
+#line 3445 "src/ast/lex_conf.cc"
+yy736:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy722;
-       goto yy718;
-yy720:
+       if (yych == 'a') goto yy739;
+       goto yy735;
+yy737:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'g') goto yy724;
-       goto yy718;
-yy721:
+       if (yych == 'g') goto yy741;
+       goto yy735;
+yy738:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy725;
-       goto yy718;
-yy722:
+       if (yych == 'u') goto yy742;
+       goto yy735;
+yy739:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy726;
-yy723:
+       if (yych == 'i') goto yy743;
+yy740:
        cur = mar;
-       goto yy718;
-yy724:
+       goto yy735;
+yy741:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy727;
-       goto yy723;
-yy725:
+       if (yych == 'n') goto yy744;
+       goto yy740;
+yy742:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy728;
-       goto yy723;
-yy726:
+       if (yych == 'b') goto yy745;
+       goto yy740;
+yy743:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy729;
-       goto yy723;
-yy727:
+       if (yych == 'l') goto yy746;
+       goto yy740;
+yy744:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy731;
-       goto yy723;
-yy728:
+       if (yych == 'o') goto yy748;
+       goto yy740;
+yy745:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy732;
-       goto yy723;
-yy729:
+       if (yych == 's') goto yy749;
+       goto yy740;
+yy746:
        ++cur;
-#line 176 "../src/ast/lex_conf.re"
+#line 178 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_FAIL);       goto end; }
-#line 3385 "src/ast/lex_conf.cc"
-yy731:
+#line 3488 "src/ast/lex_conf.cc"
+yy748:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy733;
-       goto yy723;
-yy732:
+       if (yych == 'r') goto yy750;
+       goto yy740;
+yy749:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy734;
-       goto yy723;
-yy733:
+       if (yych == 't') goto yy751;
+       goto yy740;
+yy750:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy735;
-       goto yy723;
-yy734:
+       if (yych == 'e') goto yy752;
+       goto yy740;
+yy751:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy737;
-       goto yy723;
-yy735:
+       if (yych == 'i') goto yy754;
+       goto yy740;
+yy752:
        ++cur;
-#line 174 "../src/ast/lex_conf.re"
+#line 176 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_IGNORE);     goto end; }
-#line 3406 "src/ast/lex_conf.cc"
-yy737:
+#line 3509 "src/ast/lex_conf.cc"
+yy754:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy723;
+       if (yych != 't') goto yy740;
        yych = (unsigned char)*++cur;
-       if (yych != 'u') goto yy723;
+       if (yych != 'u') goto yy740;
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy723;
+       if (yych != 't') goto yy740;
        yych = (unsigned char)*++cur;
-       if (yych != 'e') goto yy723;
+       if (yych != 'e') goto yy740;
        ++cur;
-#line 175 "../src/ast/lex_conf.re"
+#line 177 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); goto end; }
-#line 3419 "src/ast/lex_conf.cc"
+#line 3522 "src/ast/lex_conf.cc"
 }
-#line 177 "../src/ast/lex_conf.re"
+#line 179 "../src/ast/lex_conf.re"
 
 end:
     lex_conf_semicolon();
@@ -3427,77 +3530,77 @@ void Scanner::lex_conf_input(Opt &opts)
 {
     lex_conf_assign ();
 
-#line 3431 "src/ast/lex_conf.cc"
+#line 3534 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 7) fill(7);
        yych = (unsigned char)*cur;
-       if (yych <= 'b') goto yy745;
-       if (yych <= 'c') goto yy747;
-       if (yych <= 'd') goto yy748;
-yy745:
+       if (yych <= 'b') goto yy762;
+       if (yych <= 'c') goto yy764;
+       if (yych <= 'd') goto yy765;
+yy762:
        ++cur;
-yy746:
-#line 186 "../src/ast/lex_conf.re"
+yy763:
+#line 188 "../src/ast/lex_conf.re"
        { fatal_lc(get_cline(), get_column(),
         "bad configuration value (expected: 'default', 'custom')"); }
-#line 3445 "src/ast/lex_conf.cc"
-yy747:
+#line 3548 "src/ast/lex_conf.cc"
+yy764:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy749;
-       goto yy746;
-yy748:
+       if (yych == 'u') goto yy766;
+       goto yy763;
+yy765:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'e') goto yy751;
-       goto yy746;
-yy749:
+       if (yych == 'e') goto yy768;
+       goto yy763;
+yy766:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy752;
-yy750:
+       if (yych == 's') goto yy769;
+yy767:
        cur = mar;
-       goto yy746;
-yy751:
+       goto yy763;
+yy768:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy753;
-       goto yy750;
-yy752:
+       if (yych == 'f') goto yy770;
+       goto yy767;
+yy769:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy754;
-       goto yy750;
-yy753:
+       if (yych == 't') goto yy771;
+       goto yy767;
+yy770:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy755;
-       goto yy750;
-yy754:
+       if (yych == 'a') goto yy772;
+       goto yy767;
+yy771:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy756;
-       goto yy750;
-yy755:
+       if (yych == 'o') goto yy773;
+       goto yy767;
+yy772:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy757;
-       goto yy750;
-yy756:
+       if (yych == 'u') goto yy774;
+       goto yy767;
+yy773:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy758;
-       goto yy750;
-yy757:
+       if (yych == 'm') goto yy775;
+       goto yy767;
+yy774:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy760;
-       goto yy750;
-yy758:
+       if (yych == 'l') goto yy777;
+       goto yy767;
+yy775:
        ++cur;
-#line 189 "../src/ast/lex_conf.re"
+#line 191 "../src/ast/lex_conf.re"
        { opts.set_input_api(INPUT_CUSTOM);  goto end; }
-#line 3492 "src/ast/lex_conf.cc"
-yy760:
+#line 3595 "src/ast/lex_conf.cc"
+yy777:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy750;
+       if (yych != 't') goto yy767;
        ++cur;
-#line 188 "../src/ast/lex_conf.re"
+#line 190 "../src/ast/lex_conf.re"
        { opts.set_input_api(INPUT_DEFAULT); goto end; }
-#line 3499 "src/ast/lex_conf.cc"
+#line 3602 "src/ast/lex_conf.cc"
 }
-#line 190 "../src/ast/lex_conf.re"
+#line 192 "../src/ast/lex_conf.re"
 
 end:
     lex_conf_semicolon();
@@ -3507,105 +3610,105 @@ void Scanner::lex_conf_empty_class(Opt &opts)
 {
     lex_conf_assign ();
 
-#line 3511 "src/ast/lex_conf.cc"
+#line 3614 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 11) fill(11);
        yych = (unsigned char)*cur;
-       if (yych == 'e') goto yy767;
-       if (yych == 'm') goto yy768;
+       if (yych == 'e') goto yy784;
+       if (yych == 'm') goto yy785;
        ++cur;
-yy766:
-#line 199 "../src/ast/lex_conf.re"
+yy783:
+#line 201 "../src/ast/lex_conf.re"
        { fatal_lc(get_cline(), get_column(),
         "bad configuration value (expected: 'match-empty', 'match-none', 'error')"); }
-#line 3523 "src/ast/lex_conf.cc"
-yy767:
+#line 3626 "src/ast/lex_conf.cc"
+yy784:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'r') goto yy769;
-       goto yy766;
-yy768:
+       if (yych == 'r') goto yy786;
+       goto yy783;
+yy785:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy771;
-       goto yy766;
-yy769:
+       if (yych == 'a') goto yy788;
+       goto yy783;
+yy786:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy772;
-yy770:
+       if (yych == 'r') goto yy789;
+yy787:
        cur = mar;
-       goto yy766;
-yy771:
+       goto yy783;
+yy788:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy773;
-       goto yy770;
-yy772:
+       if (yych == 't') goto yy790;
+       goto yy787;
+yy789:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy774;
-       goto yy770;
-yy773:
+       if (yych == 'o') goto yy791;
+       goto yy787;
+yy790:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy775;
-       goto yy770;
-yy774:
+       if (yych == 'c') goto yy792;
+       goto yy787;
+yy791:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy776;
-       goto yy770;
-yy775:
+       if (yych == 'r') goto yy793;
+       goto yy787;
+yy792:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy778;
-       goto yy770;
-yy776:
+       if (yych == 'h') goto yy795;
+       goto yy787;
+yy793:
        ++cur;
-#line 203 "../src/ast/lex_conf.re"
+#line 205 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_ERROR);       goto end; }
-#line 3562 "src/ast/lex_conf.cc"
-yy778:
+#line 3665 "src/ast/lex_conf.cc"
+yy795:
        yych = (unsigned char)*++cur;
-       if (yych != '-') goto yy770;
+       if (yych != '-') goto yy787;
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy780;
-       if (yych == 'n') goto yy781;
-       goto yy770;
-yy780:
+       if (yych == 'e') goto yy797;
+       if (yych == 'n') goto yy798;
+       goto yy787;
+yy797:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy782;
-       goto yy770;
-yy781:
+       if (yych == 'm') goto yy799;
+       goto yy787;
+yy798:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy783;
-       goto yy770;
-yy782:
+       if (yych == 'o') goto yy800;
+       goto yy787;
+yy799:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy784;
-       goto yy770;
-yy783:
+       if (yych == 'p') goto yy801;
+       goto yy787;
+yy800:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy785;
-       goto yy770;
-yy784:
+       if (yych == 'n') goto yy802;
+       goto yy787;
+yy801:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy786;
-       goto yy770;
-yy785:
+       if (yych == 't') goto yy803;
+       goto yy787;
+yy802:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy787;
-       goto yy770;
-yy786:
+       if (yych == 'e') goto yy804;
+       goto yy787;
+yy803:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy789;
-       goto yy770;
-yy787:
+       if (yych == 'y') goto yy806;
+       goto yy787;
+yy804:
        ++cur;
-#line 202 "../src/ast/lex_conf.re"
+#line 204 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE);  goto end; }
-#line 3602 "src/ast/lex_conf.cc"
-yy789:
+#line 3705 "src/ast/lex_conf.cc"
+yy806:
        ++cur;
-#line 201 "../src/ast/lex_conf.re"
+#line 203 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); goto end; }
-#line 3607 "src/ast/lex_conf.cc"
+#line 3710 "src/ast/lex_conf.cc"
 }
-#line 204 "../src/ast/lex_conf.re"
+#line 206 "../src/ast/lex_conf.re"
 
 end:
     lex_conf_semicolon();
@@ -3615,65 +3718,65 @@ void Scanner::lex_conf_dfa_minimization(Opt &opts)
 {
     lex_conf_assign ();
 
-#line 3619 "src/ast/lex_conf.cc"
+#line 3722 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 5) fill(5);
        yych = (unsigned char)*cur;
-       if (yych == 'm') goto yy795;
-       if (yych == 't') goto yy796;
+       if (yych == 'm') goto yy812;
+       if (yych == 't') goto yy813;
        ++cur;
-yy794:
-#line 213 "../src/ast/lex_conf.re"
+yy811:
+#line 215 "../src/ast/lex_conf.re"
        { fatal_lc(get_cline(), get_column(),
         "bad configuration value (expected: 'table', 'moore')"); }
-#line 3631 "src/ast/lex_conf.cc"
-yy795:
+#line 3734 "src/ast/lex_conf.cc"
+yy812:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'o') goto yy797;
-       goto yy794;
-yy796:
+       if (yych == 'o') goto yy814;
+       goto yy811;
+yy813:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy799;
-       goto yy794;
-yy797:
+       if (yych == 'a') goto yy816;
+       goto yy811;
+yy814:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy800;
-yy798:
+       if (yych == 'o') goto yy817;
+yy815:
        cur = mar;
-       goto yy794;
-yy799:
+       goto yy811;
+yy816:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy801;
-       goto yy798;
-yy800:
+       if (yych == 'b') goto yy818;
+       goto yy815;
+yy817:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy802;
-       goto yy798;
-yy801:
+       if (yych == 'r') goto yy819;
+       goto yy815;
+yy818:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy803;
-       goto yy798;
-yy802:
+       if (yych == 'l') goto yy820;
+       goto yy815;
+yy819:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy804;
-       goto yy798;
-yy803:
+       if (yych == 'e') goto yy821;
+       goto yy815;
+yy820:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy806;
-       goto yy798;
-yy804:
+       if (yych == 'e') goto yy823;
+       goto yy815;
+yy821:
        ++cur;
-#line 216 "../src/ast/lex_conf.re"
+#line 218 "../src/ast/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_MOORE); goto end; }
-#line 3670 "src/ast/lex_conf.cc"
-yy806:
+#line 3773 "src/ast/lex_conf.cc"
+yy823:
        ++cur;
-#line 215 "../src/ast/lex_conf.re"
+#line 217 "../src/ast/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_TABLE); goto end; }
-#line 3675 "src/ast/lex_conf.cc"
+#line 3778 "src/ast/lex_conf.cc"
 }
-#line 217 "../src/ast/lex_conf.re"
+#line 219 "../src/ast/lex_conf.re"
 
 end:
     lex_conf_semicolon();
@@ -3691,7 +3794,7 @@ void Scanner::lex_conf_enc(Enc::type_t enc, Opt &opts)
 void Scanner::lex_conf_assign ()
 {
 
-#line 3695 "src/ast/lex_conf.cc"
+#line 3798 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3731,56 +3834,56 @@ void Scanner::lex_conf_assign ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy812;
+               if (yych == '\t') goto yy829;
        } else {
-               if (yych <= ' ') goto yy812;
-               if (yych == '=') goto yy813;
+               if (yych <= ' ') goto yy829;
+               if (yych == '=') goto yy830;
        }
        ++cur;
-yy811:
-#line 234 "../src/ast/lex_conf.re"
+yy828:
+#line 236 "../src/ast/lex_conf.re"
        { fatal_lc(get_cline(), get_column(), "missing '=' in configuration"); }
-#line 3744 "src/ast/lex_conf.cc"
-yy812:
+#line 3847 "src/ast/lex_conf.cc"
+yy829:
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy816;
-               goto yy811;
+               if (yych == '\t') goto yy833;
+               goto yy828;
        } else {
-               if (yych <= ' ') goto yy816;
-               if (yych != '=') goto yy811;
+               if (yych <= ' ') goto yy833;
+               if (yych != '=') goto yy828;
        }
-yy813:
+yy830:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy813;
+               goto yy830;
        }
-#line 235 "../src/ast/lex_conf.re"
+#line 237 "../src/ast/lex_conf.re"
        { return; }
-#line 3763 "src/ast/lex_conf.cc"
-yy816:
+#line 3866 "src/ast/lex_conf.cc"
+yy833:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy816;
+               if (yych == '\t') goto yy833;
        } else {
-               if (yych <= ' ') goto yy816;
-               if (yych == '=') goto yy813;
+               if (yych <= ' ') goto yy833;
+               if (yych == '=') goto yy830;
        }
        cur = mar;
-       goto yy811;
+       goto yy828;
 }
-#line 236 "../src/ast/lex_conf.re"
+#line 238 "../src/ast/lex_conf.re"
 
 }
 
 void Scanner::lex_conf_semicolon ()
 {
 
-#line 3784 "src/ast/lex_conf.cc"
+#line 3887 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3820,39 +3923,39 @@ void Scanner::lex_conf_semicolon ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy823;
+               if (yych == '\t') goto yy840;
        } else {
-               if (yych <= ' ') goto yy823;
-               if (yych == ';') goto yy824;
+               if (yych <= ' ') goto yy840;
+               if (yych == ';') goto yy841;
        }
        ++cur;
-yy822:
-#line 242 "../src/ast/lex_conf.re"
+yy839:
+#line 244 "../src/ast/lex_conf.re"
        { fatal_lc(get_cline(), get_column(), "missing ending ';' in configuration"); }
-#line 3833 "src/ast/lex_conf.cc"
-yy823:
+#line 3936 "src/ast/lex_conf.cc"
+yy840:
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 128) {
-               goto yy826;
+               goto yy843;
        }
-       if (yych != ';') goto yy822;
-yy824:
+       if (yych != ';') goto yy839;
+yy841:
        ++cur;
-#line 243 "../src/ast/lex_conf.re"
+#line 245 "../src/ast/lex_conf.re"
        { return; }
-#line 3844 "src/ast/lex_conf.cc"
-yy826:
+#line 3947 "src/ast/lex_conf.cc"
+yy843:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy826;
+               goto yy843;
        }
-       if (yych == ';') goto yy824;
+       if (yych == ';') goto yy841;
        cur = mar;
-       goto yy822;
+       goto yy839;
 }
-#line 244 "../src/ast/lex_conf.re"
+#line 246 "../src/ast/lex_conf.re"
 
 }
 
@@ -3866,7 +3969,7 @@ int32_t Scanner::lex_conf_number ()
     lex_conf_assign ();
     tok = cur;
 
-#line 3870 "src/ast/lex_conf.cc"
+#line 3973 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3906,21 +4009,21 @@ int32_t Scanner::lex_conf_number ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= '/') {
-               if (yych == '-') goto yy832;
+               if (yych == '-') goto yy849;
        } else {
-               if (yych <= '0') goto yy833;
-               if (yych <= '9') goto yy835;
+               if (yych <= '0') goto yy850;
+               if (yych <= '9') goto yy852;
        }
-yy831:
-yy832:
+yy848:
+yy849:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy831;
-       if (yych <= '9') goto yy835;
-       goto yy831;
-yy833:
+       if (yych <= '0') goto yy848;
+       if (yych <= '9') goto yy852;
+       goto yy848;
+yy850:
        ++cur;
-yy834:
-#line 257 "../src/ast/lex_conf.re"
+yy851:
+#line 259 "../src/ast/lex_conf.re"
        {
         int32_t n = 0;
         if (!s_to_i32_unsafe (tok, cur, n)) {
@@ -3929,17 +4032,17 @@ yy834:
         lex_conf_semicolon ();
         return n;
     }
-#line 3933 "src/ast/lex_conf.cc"
-yy835:
+#line 4036 "src/ast/lex_conf.cc"
+yy852:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy835;
+               goto yy852;
        }
-       goto yy834;
+       goto yy851;
 }
-#line 265 "../src/ast/lex_conf.re"
+#line 267 "../src/ast/lex_conf.re"
 
 }
 
@@ -3949,7 +4052,7 @@ std::string Scanner::lex_conf_string ()
     std::string s;
     tok = cur;
 
-#line 3953 "src/ast/lex_conf.cc"
+#line 4056 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3990,40 +4093,40 @@ std::string Scanner::lex_conf_string ()
        yych = (unsigned char)*cur;
        if (yych <= '!') {
                if (yych <= '\n') {
-                       if (yych <= 0x00) goto yy839;
-                       if (yych <= 0x08) goto yy840;
+                       if (yych <= 0x00) goto yy856;
+                       if (yych <= 0x08) goto yy857;
                } else {
-                       if (yych != ' ') goto yy840;
+                       if (yych != ' ') goto yy857;
                }
        } else {
                if (yych <= '\'') {
-                       if (yych <= '"') goto yy843;
-                       if (yych <= '&') goto yy840;
-                       goto yy843;
+                       if (yych <= '"') goto yy860;
+                       if (yych <= '&') goto yy857;
+                       goto yy860;
                } else {
-                       if (yych != ';') goto yy840;
+                       if (yych != ';') goto yy857;
                }
        }
-yy839:
-#line 293 "../src/ast/lex_conf.re"
+yy856:
+#line 295 "../src/ast/lex_conf.re"
        { goto end; }
-#line 4011 "src/ast/lex_conf.cc"
-yy840:
+#line 4114 "src/ast/lex_conf.cc"
+yy857:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy840;
+               goto yy857;
        }
-#line 289 "../src/ast/lex_conf.re"
+#line 291 "../src/ast/lex_conf.re"
        {
         s = std::string(tok, tok_len());
         goto end;
     }
-#line 4024 "src/ast/lex_conf.cc"
-yy843:
+#line 4127 "src/ast/lex_conf.cc"
+yy860:
        ++cur;
-#line 274 "../src/ast/lex_conf.re"
+#line 276 "../src/ast/lex_conf.re"
        {
         const char quote = tok[0];
         for (bool end;;) {
@@ -4039,9 +4142,9 @@ yy843:
             }
         }
     }
-#line 4043 "src/ast/lex_conf.cc"
+#line 4146 "src/ast/lex_conf.cc"
 }
-#line 294 "../src/ast/lex_conf.re"
+#line 296 "../src/ast/lex_conf.re"
 
 end:
     lex_conf_semicolon ();
index 02bc2be93a8b3bc81c519e865138ce1cf54c3e90..9c5a8ebdd8e3b24672ac1637e2349c45cf907d68 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.1.1 on Thu Aug 30 23:14:50 2018 */
+/* Generated by re2c 1.1.1 on Sun Nov 18 21:40:25 2018 */
 #line 1 "../src/conf/parse_opts.re"
 #include "src/code/input_api.h"
 #include "src/conf/msg.h"
@@ -2828,7 +2828,7 @@ yy700:
        }
        ++YYCURSOR;
 #line 187 "../src/conf/parse_opts.re"
-       { globopts.output_file = *argv; goto opt; }
+       { opts.set_output_file (*argv); goto opt; }
 #line 2833 "src/conf/parse_opts.cc"
 }
 #line 188 "../src/conf/parse_opts.re"
@@ -2891,7 +2891,7 @@ yy708:
        }
        ++YYCURSOR;
 #line 197 "../src/conf/parse_opts.re"
-       { globopts.header_file = *argv; goto opt; }
+       { opts.set_header_file (*argv); goto opt; }
 #line 2896 "src/conf/parse_opts.cc"
 }
 #line 198 "../src/conf/parse_opts.re"
index 5a6cec35ba85f05387da43b056a6601aa9dbcc53..ceeb18d58b686a9098ba8c1d2730e18c51784fce 100644 (file)
@@ -39,18 +39,20 @@ void Scanner::lex_conf(Opt &opts)
     tok = cur;
     const uint32_t l = get_cline(), c = get_column();
 /*!re2c
-    "flags:" ("b" | "bit-vectors")       { opts.set_bFlag(lex_conf_bool());              return; }
-    "flags:" ("d" | "debug-output")      { opts.set_dFlag(lex_conf_bool());              return; }
-    "flags:" ("g" | "computed-gotos")    { opts.set_gFlag(lex_conf_bool());              return; }
-    "flags:" ("i" | "no-debug-info")     { opts.set_iFlag(lex_conf_bool());              return; }
-    "flags:" ("s" | "nested-ifs")        { opts.set_sFlag(lex_conf_bool());              return; }
-    "flags:" ("T" | "tags")              { opts.set_tags(lex_conf_bool());               return; }
-    "flags:" ("P" | "posix-captures")    { opts.set_posix_captures(lex_conf_bool());     return; }
-    "flags:case-insensitive"             { opts.set_bCaseInsensitive(lex_conf_bool());   return; }
-    "flags:case-inverted"                { opts.set_bCaseInverted(lex_conf_bool());      return; }
-    "flags: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:" ("b" | "bit-vectors")    { opts.set_bFlag            (lex_conf_bool());   return; }
+    "flags:" ("d" | "debug-output")   { opts.set_dFlag            (lex_conf_bool());   return; }
+    "flags:" ("g" | "computed-gotos") { opts.set_gFlag            (lex_conf_bool());   return; }
+    "flags:" ("i" | "no-debug-info")  { opts.set_iFlag            (lex_conf_bool());   return; }
+    "flags:" ("s" | "nested-ifs")     { opts.set_sFlag            (lex_conf_bool());   return; }
+    "flags:" ("T" | "tags")           { opts.set_tags             (lex_conf_bool());   return; }
+    "flags:" ("P" | "posix-captures") { opts.set_posix_captures   (lex_conf_bool());   return; }
+    "flags:case-insensitive"          { opts.set_bCaseInsensitive (lex_conf_bool());   return; }
+    "flags:case-inverted"             { opts.set_bCaseInverted    (lex_conf_bool());   return; }
+    "flags: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:" ("o" | "output")         { opts.set_output_file      (lex_conf_string()); return; }
+    "flags:" ("t" | "type-header")    { opts.set_header_file      (lex_conf_string()); return; }
 
     "flags:" ("e" | "ecb")        { lex_conf_enc(Enc::EBCDIC, opts); return; }
     "flags:" ("u" | "unicode")    { lex_conf_enc(Enc::UTF32, opts);  return; }
index 47324f8a35ece28eeef082e6d5694605661bf251..24f1dcaac3e09ddde3800723d61e1040489a174e 100644 (file)
@@ -8,7 +8,6 @@ void conopt_t::fix()
 {
     if (target == TARGET_SKELETON) {
         fFlag = false;
-        header_file = "";
     }
 }
 
@@ -27,6 +26,8 @@ void mutopt_t::fix(const conopt_t *globopts)
             yybmHexTable = Opt::baseopt.yybmHexTable;
             // fallthrough
         case TARGET_SKELETON:
+            // output files
+            header_file = "";
             // default line information
             iFlag = Opt::baseopt.iFlag;
             // default environment-sensitive formatting
index ebc51b8dc8525973f7193859d48f391a865d7692..5cd8b5d5485f41b6e267becb2d9524fe67c5e9f3 100644 (file)
@@ -42,8 +42,6 @@ enum target_t
 
 #define RE2C_CONSTOPTS \
     CONSTOPT1 (target_t, target, TARGET_CODE) \
-    CONSTOPT (std::string, output_file, "") \
-    CONSTOPT (std::string, header_file, "") \
     CONSTOPT (bool, bNoGenerationDate, false) \
     CONSTOPT (bool, version, true) \
     CONSTOPT (bool, cFlag, false) \
@@ -59,8 +57,11 @@ enum target_t
     CONSTOPT (bool, dump_adfa, false)
 
 #define RE2C_MUTOPTS \
+    /* output files */ \
+    MUTOPT1 (std::string, output_file, "") \
+    MUTOPT (std::string, header_file, "") \
     /* regular expressions */ \
-    MUTOPT1 (Enc, encoding, Enc ()) \
+    MUTOPT (Enc, encoding, Enc ()) \
     MUTOPT (bool, bCaseInsensitive, false) \
     MUTOPT (bool, bCaseInverted, false) \
     MUTOPT (empty_class_policy_t, empty_class_policy, EMPTY_CLASS_MATCH_EMPTY) \
index 2f12f7a209885345df01940e3cc85b38ef49c702..d6348c5ea83dae0332c8c6f8f9c01aa20e7f2d33 100644 (file)
@@ -184,7 +184,7 @@ opt_output:
         error ("bad argument to option -o, --output: %s", *argv);
         return EXIT_FAIL;
     }
-    filename end { globopts.output_file = *argv; goto opt; }
+    filename end { opts.set_output_file (*argv); goto opt; }
 */
 
 opt_header:
@@ -194,7 +194,7 @@ opt_header:
         error ("bad argument to option -t, --type-header: %s", *argv);
         return EXIT_FAIL;
     }
-    filename end { globopts.header_file = *argv; goto opt; }
+    filename end { opts.set_header_file (*argv); goto opt; }
 */
 
 opt_encoding_policy: