From: Ulya Trofimovich <skvadrik@gmail.com>
Date: Fri, 16 Nov 2018 23:43:41 +0000 (+0000)
Subject: Added configurations for -o, --output and -t, --type-header options.
X-Git-Tag: 1.2~300
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=553d228f99e3505c9a2c59c5cc57fe4c5dcad856;p=re2c

Added configurations for -o, --output and -t, --type-header options.
---

diff --git a/re2c/bootstrap/src/ast/lex_conf.cc b/re2c/bootstrap/src/ast/lex_conf.cc
index 0764f6ec..7b69b9a9 100644
--- a/re2c/bootstrap/src/ast/lex_conf.cc
+++ b/re2c/bootstrap/src/ast/lex_conf.cc
@@ -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 ();
diff --git a/re2c/bootstrap/src/conf/parse_opts.cc b/re2c/bootstrap/src/conf/parse_opts.cc
index 02bc2be9..9c5a8ebd 100644
--- a/re2c/bootstrap/src/conf/parse_opts.cc
+++ b/re2c/bootstrap/src/conf/parse_opts.cc
@@ -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"
diff --git a/re2c/src/ast/lex_conf.re b/re2c/src/ast/lex_conf.re
index 5a6cec35..ceeb18d5 100644
--- a/re2c/src/ast/lex_conf.re
+++ b/re2c/src/ast/lex_conf.re
@@ -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; }
diff --git a/re2c/src/conf/opt.cc b/re2c/src/conf/opt.cc
index 47324f8a..24f1dcaa 100644
--- a/re2c/src/conf/opt.cc
+++ b/re2c/src/conf/opt.cc
@@ -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
diff --git a/re2c/src/conf/opt.h b/re2c/src/conf/opt.h
index ebc51b8d..5cd8b5d5 100644
--- a/re2c/src/conf/opt.h
+++ b/re2c/src/conf/opt.h
@@ -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) \
diff --git a/re2c/src/conf/parse_opts.re b/re2c/src/conf/parse_opts.re
index 2f12f7a2..d6348c5e 100644
--- a/re2c/src/conf/parse_opts.re
+++ b/re2c/src/conf/parse_opts.re
@@ -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: