]> granicus.if.org Git - re2c/commitdiff
Added -Wsentinel-in-midrule warning and 're2c:sentinel' configurations.
authorUlya Trofimovich <skvadrik@gmail.com>
Sat, 24 Aug 2019 23:53:16 +0000 (00:53 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Sun, 25 Aug 2019 09:22:09 +0000 (10:22 +0100)
The new analysis is meant to detect potential reads past the end of buffer
resulting from erroneous rules that allow sentinel symbol to occur in the
middle of lexeme. The analysis is only activated in cases bounds checking
is disabled with 're2c:yyfill:enable = 0;' and EOF rule is not used.

For example:

    ['] [^']* [']   { ... }

This may be a naive way to match single-quoted strings; it would crash the
lexer on input like "'aaa\0" (without the closing single quote).

12 files changed:
bootstrap/src/options/parse_opts.cc
bootstrap/src/parse/lex_conf.cc
src/compile.cc
src/dfa/dead_rules.cc
src/dfa/dfa.h
src/msg/warn.cc
src/msg/warn.h
src/options/opt.cc
src/options/opt.h
src/options/parse_opts.re
src/parse/lex_conf.re
src/parse/scanner.h

index 1384e46967ecc612e293adab5da4844bb27c1e71..bd84af9e7af88873fe882a4542f40a2fcd943c6d 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.1.1 on Fri Aug  2 10:49:53 2019 */
+/* Generated by re2c 1.2.1 on Thu Aug 22 07:28:15 2019 */
 #line 1 "../src/options/parse_opts.re"
 #include <stddef.h>
 #include <algorithm>
@@ -276,391 +276,392 @@ yy48:
        goto yy44;
 yy49:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'w') goto yy56;
+       if (yych == 'e') goto yy56;
+       if (yych == 'w') goto yy57;
        goto yy44;
 yy50:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy57;
-       if (yych == 's') goto yy58;
+       if (yych == 'n') goto yy58;
+       if (yych == 's') goto yy59;
        goto yy44;
 yy51:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy59;
+       if (yych == 'n') goto yy60;
 yy52:
        YYCURSOR = YYMARKER;
        goto yy44;
 yy53:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy60;
+       if (yych == 'p') goto yy61;
        goto yy52;
 yy54:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy61;
+       if (yych == 't') goto yy62;
        goto yy52;
 yy55:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy62;
+       if (yych == 'n') goto yy63;
        goto yy52;
 yy56:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy63;
+       if (yych == 'n') goto yy64;
        goto yy52;
 yy57:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy64;
-       if (yych == 'r') goto yy65;
+       if (yych == 'a') goto yy65;
        goto yy52;
 yy58:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy66;
+       if (yych == 'd') goto yy66;
+       if (yych == 'r') goto yy67;
        goto yy52;
 yy59:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy67;
+       if (yych == 'e') goto yy68;
        goto yy52;
 yy60:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy68;
+       if (yych == 'd') goto yy69;
        goto yy52;
 yy61:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy69;
+       if (yych == 't') goto yy70;
        goto yy52;
 yy62:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy70;
+       if (yych == 'c') goto yy71;
        goto yy52;
 yy63:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy71;
+       if (yych == 'd') goto yy72;
        goto yy52;
 yy64:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy72;
+       if (yych == 't') goto yy73;
        goto yy52;
 yy65:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy73;
+       if (yych == 'p') goto yy74;
        goto yy52;
 yy66:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy74;
+       if (yych == 'e') goto yy75;
        goto yy52;
 yy67:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy75;
+       if (yych == 'e') goto yy76;
        goto yy52;
 yy68:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy76;
+       if (yych == 'l') goto yy77;
        goto yy52;
 yy69:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy77;
+       if (yych == 'i') goto yy78;
        goto yy52;
 yy70:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy78;
+       if (yych == 'y') goto yy79;
        goto yy52;
 yy71:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy79;
+       if (yych == 'h') goto yy80;
        goto yy52;
 yy72:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy80;
+       if (yych == 'e') goto yy81;
        goto yy52;
 yy73:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy81;
+       if (yych == 'i') goto yy82;
        goto yy52;
 yy74:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy82;
+       if (yych == 'p') goto yy83;
        goto yy52;
 yy75:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy83;
+       if (yych == 'f') goto yy84;
        goto yy52;
 yy76:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy84;
+       if (yych == 'a') goto yy85;
        goto yy52;
 yy77:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy85;
+       if (yych == 'e') goto yy86;
        goto yy52;
 yy78:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy86;
+       if (yych == 't') goto yy87;
        goto yy52;
 yy79:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy87;
+       if (yych == '-') goto yy88;
        goto yy52;
 yy80:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy88;
+       if (yych == '-') goto yy89;
        goto yy52;
 yy81:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy89;
+       if (yych == 't') goto yy90;
        goto yy52;
 yy82:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy90;
+       if (yych == 'n') goto yy91;
        goto yy52;
 yy83:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy91;
+       if (yych == 'e') goto yy92;
        goto yy52;
 yy84:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy92;
+       if (yych == 'i') goto yy93;
        goto yy52;
 yy85:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy93;
+       if (yych == 'c') goto yy94;
        goto yy52;
 yy86:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy94;
+       if (yych == 's') goto yy95;
        goto yy52;
 yy87:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy95;
+       if (yych == 'i') goto yy96;
        goto yy52;
 yy88:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy96;
+       if (yych == 'c') goto yy97;
        goto yy52;
 yy89:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy97;
+       if (yych == 'e') goto yy98;
        goto yy52;
 yy90:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy98;
+       if (yych == 'e') goto yy99;
        goto yy52;
 yy91:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy99;
+       if (yych == 'e') goto yy100;
        goto yy52;
 yy92:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy100;
+       if (yych == 'd') goto yy101;
        goto yy52;
 yy93:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy101;
+       if (yych == 'n') goto yy102;
        goto yy52;
 yy94:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy102;
+       if (yych == 'h') goto yy103;
        goto yy52;
 yy95:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy103;
+       if (yych == 's') goto yy104;
        goto yy52;
 yy96:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy104;
+       if (yych == 'o') goto yy105;
        goto yy52;
 yy97:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy105;
+       if (yych == 'h') goto yy106;
        goto yy52;
 yy98:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy106;
+       if (yych == 'm') goto yy107;
        goto yy52;
 yy99:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy107;
+       if (yych == 'r') goto yy108;
        goto yy52;
 yy100:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy108;
+       if (yych == 'l') goto yy109;
        goto yy52;
 yy101:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy109;
+       if (yych == '-') goto yy110;
        goto yy52;
 yy102:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy110;
+       if (yych == 'e') goto yy111;
        goto yy52;
 yy103:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy111;
+       if (yych == 'a') goto yy112;
        goto yy52;
 yy104:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy112;
+       if (yych == '-') goto yy113;
        goto yy52;
 yy105:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy113;
+       if (yych == 'n') goto yy114;
        goto yy52;
 yy106:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy114;
+       if (yych == 'a') goto yy115;
        goto yy52;
 yy107:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy115;
+       if (yych == 'p') goto yy116;
        goto yy52;
 yy108:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy116;
+       if (yych == 'm') goto yy117;
        goto yy52;
 yy109:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy117;
+       if (yych == '-') goto yy118;
        goto yy52;
 yy110:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy118;
+       if (yych == 'r') goto yy119;
        goto yy52;
 yy111:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy119;
+       if (yych == 'd') goto yy120;
        goto yy52;
 yy112:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy120;
+       if (yych == 'b') goto yy121;
        goto yy52;
 yy113:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy121;
+       if (yych == 'e') goto yy122;
        goto yy52;
 yy114:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy122;
+       if (yych == '-') goto yy123;
        goto yy52;
 yy115:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy123;
+       if (yych == 'r') goto yy124;
        goto yy52;
 yy116:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy124;
+       if (yych == 't') goto yy125;
        goto yy52;
 yy117:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy125;
+       if (yych == 'i') goto yy126;
        goto yy52;
 yy118:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy126;
+       if (yych == 'i') goto yy127;
        goto yy52;
 yy119:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy127;
+       if (yych == 'a') goto yy128;
        goto yy52;
 yy120:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy128;
+       if (yych == '-') goto yy129;
        goto yy52;
 yy121:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy129;
+       if (yych == 'l') goto yy130;
        goto yy52;
 yy122:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy130;
+       if (yych == 's') goto yy131;
        goto yy52;
 yy123:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy131;
+       if (yych == 'o') goto yy132;
        goto yy52;
 yy124:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy132;
+       if (yych == 'a') goto yy133;
        goto yy52;
 yy125:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy133;
+       if (yych == 'y') goto yy134;
        goto yy52;
 yy126:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy134;
+       if (yych == 'n') goto yy135;
        goto yy52;
 yy127:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy135;
+       if (yych == 'n') goto yy136;
        goto yy52;
 yy128:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy136;
+       if (yych == 'n') goto yy137;
        goto yy52;
 yy129:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy137;
+       if (yych == 'c') goto yy138;
        goto yy52;
 yy130:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy138;
+       if (yych == 'e') goto yy139;
        goto yy52;
 yy131:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy139;
+       if (yych == 'c') goto yy140;
        goto yy52;
 yy132:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy140;
+       if (yych == 'r') goto yy141;
        goto yy52;
 yy133:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy141;
+       if (yych == 'c') goto yy142;
        goto yy52;
 yy134:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy142;
+       if (yych == '-') goto yy143;
        goto yy52;
 yy135:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy143;
+       if (yych == 'i') goto yy144;
        goto yy52;
 yy136:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy144;
+       if (yych == '-') goto yy145;
        goto yy52;
 yy137:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy145;
+       if (yych == 'g') goto yy146;
        goto yy52;
 yy138:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy146;
+       if (yych == 'o') goto yy147;
        goto yy52;
 yy139:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy147;
+       if (yych == '-') goto yy148;
        goto yy52;
 yy140:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy148;
+       if (yych == 'a') goto yy149;
        goto yy52;
 yy141:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy149;
+       if (yych == 'd') goto yy150;
        goto yy52;
 yy142:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy150;
+       if (yych == 't') goto yy151;
        goto yy52;
 yy143:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy151;
+       if (yych == 's') goto yy152;
        goto yy52;
 yy144:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy153;
+       if (yych == 's') goto yy153;
        goto yy52;
 yy145:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy154;
+       if (yych == 'm') goto yy154;
        goto yy52;
 yy146:
        yych = (YYCTYPE)*++YYCURSOR;
@@ -668,7 +669,7 @@ yy146:
        goto yy52;
 yy147:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy156;
+       if (yych == 'n') goto yy156;
        goto yy52;
 yy148:
        yych = (YYCTYPE)*++YYCURSOR;
@@ -676,189 +677,266 @@ yy148:
        goto yy52;
 yy149:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy158;
+       if (yych == 'p') goto yy158;
        goto yy52;
 yy150:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy159;
+       if (yych == 'e') goto yy159;
        goto yy52;
 yy151:
-       ++YYCURSOR;
-#line 90 "../src/options/parse_opts.re"
-       { msg.warn.set (Warn::SWAPPED_RANGE,          option); goto opt; }
-#line 690 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy160;
+       goto yy52;
+yy152:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy161;
+       goto yy52;
 yy153:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy160;
+       if (yych == 't') goto yy162;
        goto yy52;
 yy154:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy161;
+       if (yych == 'i') goto yy163;
        goto yy52;
 yy155:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy162;
+       if (yych <= 0x00) goto yy164;
        goto yy52;
 yy156:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy164;
+       if (yych == 't') goto yy166;
        goto yy52;
 yy157:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy166;
+       if (yych == 'u') goto yy167;
        goto yy52;
 yy158:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy167;
+       if (yych == 'e') goto yy168;
        goto yy52;
 yy159:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy168;
+       if (yych == 'r') goto yy169;
        goto yy52;
 yy160:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy169;
+       if (yych == 'r') goto yy170;
        goto yy52;
 yy161:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy170;
+       if (yych == 'r') goto yy171;
        goto yy52;
 yy162:
-       ++YYCURSOR;
-#line 93 "../src/options/parse_opts.re"
-       { msg.warn.set (Warn::USELESS_ESCAPE,         option); goto opt; }
-#line 731 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy172;
+       goto yy52;
+yy163:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'd') goto yy173;
+       goto yy52;
 yy164:
        ++YYCURSOR;
-#line 86 "../src/options/parse_opts.re"
-       { msg.warn.set (Warn::CONDITION_ORDER,        option); goto opt; }
-#line 736 "src/options/parse_opts.cc"
+#line 90 "../src/options/parse_opts.re"
+       { msg.warn.set (Warn::SWAPPED_RANGE,          option); goto opt; }
+#line 743 "src/options/parse_opts.cc"
 yy166:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy171;
+       if (yych == 'r') goto yy174;
        goto yy52;
 yy167:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy172;
+       if (yych == 'l') goto yy175;
        goto yy52;
 yy168:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy173;
+       if (yych <= 0x00) goto yy176;
        goto yy52;
 yy169:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy174;
+       if (yych <= 0x00) goto yy178;
        goto yy52;
 yy170:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy175;
+       if (yych == '-') goto yy180;
        goto yy52;
 yy171:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy176;
+       if (yych == 'i') goto yy181;
        goto yy52;
 yy172:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy177;
+       if (yych == 'c') goto yy182;
        goto yy52;
 yy173:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy178;
+       if (yych == 'r') goto yy183;
        goto yy52;
 yy174:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy179;
+       if (yych == 'o') goto yy184;
        goto yy52;
 yy175:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy180;
+       if (yych == 'e') goto yy185;
        goto yy52;
 yy176:
+       ++YYCURSOR;
+#line 93 "../src/options/parse_opts.re"
+       { msg.warn.set (Warn::USELESS_ESCAPE,         option); goto opt; }
+#line 788 "src/options/parse_opts.cc"
+yy178:
+       ++YYCURSOR;
+#line 86 "../src/options/parse_opts.re"
+       { msg.warn.set (Warn::CONDITION_ORDER,        option); goto opt; }
+#line 793 "src/options/parse_opts.cc"
+yy180:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy182;
+       if (yych == 'c') goto yy186;
        goto yy52;
-yy177:
+yy181:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy183;
+       if (yych == 'n') goto yy187;
        goto yy52;
-yy178:
+yy182:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy185;
+       if (yych == '-') goto yy188;
        goto yy52;
-yy179:
+yy183:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy186;
+       if (yych == 'u') goto yy189;
        goto yy52;
-yy180:
-       ++YYCURSOR;
-#line 92 "../src/options/parse_opts.re"
-       { msg.warn.set (Warn::UNREACHABLE_RULES,      option); goto opt; }
-#line 797 "src/options/parse_opts.cc"
-yy182:
+yy184:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy187;
+       if (yych == 'l') goto yy190;
        goto yy52;
-yy183:
-       ++YYCURSOR;
-#line 88 "../src/options/parse_opts.re"
-       { msg.warn.set (Warn::MATCH_EMPTY_STRING,     option); goto opt; }
-#line 806 "src/options/parse_opts.cc"
 yy185:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy188;
+       if (yych == 's') goto yy191;
        goto yy52;
 yy186:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy189;
+       if (yych == 'l') goto yy192;
        goto yy52;
 yy187:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy190;
+       if (yych == 'g') goto yy193;
        goto yy52;
 yy188:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy191;
+       if (yych == 't') goto yy194;
        goto yy52;
 yy189:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy192;
+       if (yych == 'l') goto yy195;
        goto yy52;
 yy190:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy193;
+       if (yych == '-') goto yy196;
        goto yy52;
 yy191:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy195;
+       if (yych <= 0x00) goto yy197;
        goto yy52;
 yy192:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'w') goto yy197;
+       if (yych == 'a') goto yy199;
        goto yy52;
 yy193:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy200;
+       goto yy52;
+yy194:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy202;
+       goto yy52;
+yy195:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy203;
+       goto yy52;
+yy196:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'f') goto yy204;
+       goto yy52;
+yy197:
+       ++YYCURSOR;
+#line 92 "../src/options/parse_opts.re"
+       { msg.warn.set (Warn::UNREACHABLE_RULES,      option); goto opt; }
+#line 866 "src/options/parse_opts.cc"
+yy199:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy205;
+       goto yy52;
+yy200:
+       ++YYCURSOR;
+#line 88 "../src/options/parse_opts.re"
+       { msg.warn.set (Warn::MATCH_EMPTY_STRING,     option); goto opt; }
+#line 875 "src/options/parse_opts.cc"
+yy202:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'g') goto yy206;
+       goto yy52;
+yy203:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy207;
+       goto yy52;
+yy204:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'l') goto yy209;
+       goto yy52;
+yy205:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy210;
+       goto yy52;
+yy206:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy211;
+       goto yy52;
+yy207:
+       ++YYCURSOR;
+#line 94 "../src/options/parse_opts.re"
+       { msg.warn.set (Warn::SENTINEL_IN_MIDRULE,    option); goto opt; }
+#line 900 "src/options/parse_opts.cc"
+yy209:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy212;
+       goto yy52;
+yy210:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy213;
+       goto yy52;
+yy211:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy215;
+       goto yy52;
+yy212:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'w') goto yy217;
+       goto yy52;
+yy213:
        ++YYCURSOR;
 #line 87 "../src/options/parse_opts.re"
        { msg.warn.set (Warn::EMPTY_CHARACTER_CLASS,  option); goto opt; }
-#line 843 "src/options/parse_opts.cc"
-yy195:
+#line 921 "src/options/parse_opts.cc"
+yy215:
        ++YYCURSOR;
 #line 89 "../src/options/parse_opts.re"
        { msg.warn.set (Warn::NONDETERMINISTIC_TAGS,  option); goto opt; }
-#line 848 "src/options/parse_opts.cc"
-yy197:
+#line 926 "src/options/parse_opts.cc"
+yy217:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy52;
        ++YYCURSOR;
 #line 91 "../src/options/parse_opts.re"
        { msg.warn.set (Warn::UNDEFINED_CONTROL_FLOW, option); goto opt; }
-#line 855 "src/options/parse_opts.cc"
+#line 933 "src/options/parse_opts.cc"
 }
-#line 94 "../src/options/parse_opts.re"
+#line 95 "../src/options/parse_opts.re"
 
 
 opt_short:
 
-#line 862 "src/options/parse_opts.cc"
+#line 940 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
@@ -866,39 +944,39 @@ opt_short:
                if (yych <= 'E') {
                        if (yych <= '8') {
                                if (yych <= '0') {
-                                       if (yych >= 0x01) goto yy204;
+                                       if (yych >= 0x01) goto yy224;
                                } else {
-                                       if (yych <= '1') goto yy206;
-                                       if (yych <= '7') goto yy204;
-                                       goto yy208;
+                                       if (yych <= '1') goto yy226;
+                                       if (yych <= '7') goto yy224;
+                                       goto yy228;
                                }
                        } else {
                                if (yych <= '?') {
-                                       if (yych <= '>') goto yy204;
-                                       goto yy210;
+                                       if (yych <= '>') goto yy224;
+                                       goto yy230;
                                } else {
-                                       if (yych == 'D') goto yy212;
-                                       goto yy204;
+                                       if (yych == 'D') goto yy232;
+                                       goto yy224;
                                }
                        }
                } else {
                        if (yych <= 'P') {
                                if (yych <= 'H') {
-                                       if (yych <= 'F') goto yy214;
-                                       goto yy204;
+                                       if (yych <= 'F') goto yy234;
+                                       goto yy224;
                                } else {
-                                       if (yych <= 'I') goto yy216;
-                                       if (yych <= 'O') goto yy204;
-                                       goto yy218;
+                                       if (yych <= 'I') goto yy236;
+                                       if (yych <= 'O') goto yy224;
+                                       goto yy238;
                                }
                        } else {
                                if (yych <= 'S') {
-                                       if (yych <= 'R') goto yy204;
-                                       goto yy220;
+                                       if (yych <= 'R') goto yy224;
+                                       goto yy240;
                                } else {
-                                       if (yych <= 'T') goto yy222;
-                                       if (yych <= 'U') goto yy204;
-                                       goto yy224;
+                                       if (yych <= 'T') goto yy242;
+                                       if (yych <= 'U') goto yy224;
+                                       goto yy244;
                                }
                        }
                }
@@ -906,2170 +984,2170 @@ opt_short:
                if (yych <= 'n') {
                        if (yych <= 'e') {
                                if (yych <= 'b') {
-                                       if (yych <= 'a') goto yy204;
-                                       goto yy226;
+                                       if (yych <= 'a') goto yy224;
+                                       goto yy246;
                                } else {
-                                       if (yych <= 'c') goto yy228;
-                                       if (yych <= 'd') goto yy230;
-                                       goto yy232;
+                                       if (yych <= 'c') goto yy248;
+                                       if (yych <= 'd') goto yy250;
+                                       goto yy252;
                                }
                        } else {
                                if (yych <= 'g') {
-                                       if (yych <= 'f') goto yy234;
-                                       goto yy236;
+                                       if (yych <= 'f') goto yy254;
+                                       goto yy256;
                                } else {
-                                       if (yych <= 'h') goto yy210;
-                                       if (yych <= 'i') goto yy238;
-                                       goto yy204;
+                                       if (yych <= 'h') goto yy230;
+                                       if (yych <= 'i') goto yy258;
+                                       goto yy224;
                                }
                        }
                } else {
                        if (yych <= 't') {
                                if (yych <= 'q') {
-                                       if (yych <= 'o') goto yy240;
-                                       goto yy204;
+                                       if (yych <= 'o') goto yy260;
+                                       goto yy224;
                                } else {
-                                       if (yych <= 'r') goto yy242;
-                                       if (yych <= 's') goto yy244;
-                                       goto yy246;
+                                       if (yych <= 'r') goto yy262;
+                                       if (yych <= 's') goto yy264;
+                                       goto yy266;
                                }
                        } else {
                                if (yych <= 'v') {
-                                       if (yych <= 'u') goto yy248;
-                                       goto yy250;
+                                       if (yych <= 'u') goto yy268;
+                                       goto yy270;
                                } else {
-                                       if (yych <= 'w') goto yy252;
-                                       if (yych <= 'x') goto yy254;
-                                       goto yy204;
+                                       if (yych <= 'w') goto yy272;
+                                       if (yych <= 'x') goto yy274;
+                                       goto yy224;
                                }
                        }
                }
        }
        ++YYCURSOR;
-#line 100 "../src/options/parse_opts.re"
+#line 101 "../src/options/parse_opts.re"
        { goto opt; }
-#line 952 "src/options/parse_opts.cc"
-yy204:
+#line 1030 "src/options/parse_opts.cc"
+yy224:
        ++YYCURSOR;
-#line 98 "../src/options/parse_opts.re"
+#line 99 "../src/options/parse_opts.re"
        { ERROR("bad short option: %s", *argv); }
-#line 957 "src/options/parse_opts.cc"
-yy206:
+#line 1035 "src/options/parse_opts.cc"
+yy226:
        ++YYCURSOR;
-#line 139 "../src/options/parse_opts.re"
+#line 140 "../src/options/parse_opts.re"
        { goto opt_short; }
-#line 962 "src/options/parse_opts.cc"
-yy208:
+#line 1040 "src/options/parse_opts.cc"
+yy228:
        ++YYCURSOR;
-#line 122 "../src/options/parse_opts.re"
+#line 123 "../src/options/parse_opts.re"
        { opts.set_encoding(Enc::UTF8);   goto opt_short; }
-#line 967 "src/options/parse_opts.cc"
-yy210:
+#line 1045 "src/options/parse_opts.cc"
+yy230:
        ++YYCURSOR;
-#line 101 "../src/options/parse_opts.re"
+#line 102 "../src/options/parse_opts.re"
        { usage ();   return EXIT_OK; }
-#line 972 "src/options/parse_opts.cc"
-yy212:
+#line 1050 "src/options/parse_opts.cc"
+yy232:
        ++YYCURSOR;
-#line 106 "../src/options/parse_opts.re"
+#line 107 "../src/options/parse_opts.re"
        { globopts.target = TARGET_DOT;      goto opt_short; }
-#line 977 "src/options/parse_opts.cc"
-yy214:
+#line 1055 "src/options/parse_opts.cc"
+yy234:
        ++YYCURSOR;
-#line 108 "../src/options/parse_opts.re"
+#line 109 "../src/options/parse_opts.re"
        { globopts.FFlag = true;             goto opt_short; }
-#line 982 "src/options/parse_opts.cc"
-yy216:
+#line 1060 "src/options/parse_opts.cc"
+yy236:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy256;
-#line 131 "../src/options/parse_opts.re"
+       if (yych <= 0x00) goto yy276;
+#line 132 "../src/options/parse_opts.re"
        { *argv = YYCURSOR; goto opt_incpath; }
-#line 988 "src/options/parse_opts.cc"
-yy218:
+#line 1066 "src/options/parse_opts.cc"
+yy238:
        ++YYCURSOR;
-#line 124 "../src/options/parse_opts.re"
+#line 125 "../src/options/parse_opts.re"
        {
         opts.set_posix_syntax(true);
         opts.set_posix_semantics(true);
         goto opt_short;
     }
-#line 997 "src/options/parse_opts.cc"
-yy220:
+#line 1075 "src/options/parse_opts.cc"
+yy240:
        ++YYCURSOR;
-#line 110 "../src/options/parse_opts.re"
+#line 111 "../src/options/parse_opts.re"
        { globopts.target = TARGET_SKELETON; goto opt_short; }
-#line 1002 "src/options/parse_opts.cc"
-yy222:
+#line 1080 "src/options/parse_opts.cc"
+yy242:
        ++YYCURSOR;
-#line 117 "../src/options/parse_opts.re"
+#line 118 "../src/options/parse_opts.re"
        { opts.set_tags(true);            goto opt_short; }
-#line 1007 "src/options/parse_opts.cc"
-yy224:
+#line 1085 "src/options/parse_opts.cc"
+yy244:
        ++YYCURSOR;
-#line 103 "../src/options/parse_opts.re"
+#line 104 "../src/options/parse_opts.re"
        { vernum ();  return EXIT_OK; }
-#line 1012 "src/options/parse_opts.cc"
-yy226:
+#line 1090 "src/options/parse_opts.cc"
+yy246:
        ++YYCURSOR;
-#line 112 "../src/options/parse_opts.re"
+#line 113 "../src/options/parse_opts.re"
        { opts.set_bFlag(true);           goto opt_short; }
-#line 1017 "src/options/parse_opts.cc"
-yy228:
+#line 1095 "src/options/parse_opts.cc"
+yy248:
        ++YYCURSOR;
-#line 105 "../src/options/parse_opts.re"
+#line 106 "../src/options/parse_opts.re"
        { globopts.cFlag = true;             goto opt_short; }
-#line 1022 "src/options/parse_opts.cc"
-yy230:
+#line 1100 "src/options/parse_opts.cc"
+yy250:
        ++YYCURSOR;
-#line 113 "../src/options/parse_opts.re"
+#line 114 "../src/options/parse_opts.re"
        { opts.set_dFlag(true);           goto opt_short; }
-#line 1027 "src/options/parse_opts.cc"
-yy232:
+#line 1105 "src/options/parse_opts.cc"
+yy252:
        ++YYCURSOR;
-#line 118 "../src/options/parse_opts.re"
+#line 119 "../src/options/parse_opts.re"
        { opts.set_encoding(Enc::EBCDIC); goto opt_short; }
-#line 1032 "src/options/parse_opts.cc"
-yy234:
+#line 1110 "src/options/parse_opts.cc"
+yy254:
        ++YYCURSOR;
-#line 107 "../src/options/parse_opts.re"
+#line 108 "../src/options/parse_opts.re"
        { globopts.fFlag = true;             goto opt_short; }
-#line 1037 "src/options/parse_opts.cc"
-yy236:
+#line 1115 "src/options/parse_opts.cc"
+yy256:
        ++YYCURSOR;
-#line 114 "../src/options/parse_opts.re"
+#line 115 "../src/options/parse_opts.re"
        { opts.set_gFlag(true);           goto opt_short; }
-#line 1042 "src/options/parse_opts.cc"
-yy238:
+#line 1120 "src/options/parse_opts.cc"
+yy258:
        ++YYCURSOR;
-#line 115 "../src/options/parse_opts.re"
+#line 116 "../src/options/parse_opts.re"
        { opts.set_iFlag(true);           goto opt_short; }
-#line 1047 "src/options/parse_opts.cc"
-yy240:
+#line 1125 "src/options/parse_opts.cc"
+yy260:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy258;
-#line 134 "../src/options/parse_opts.re"
+       if (yych <= 0x00) goto yy278;
+#line 135 "../src/options/parse_opts.re"
        { *argv = YYCURSOR; goto opt_output; }
-#line 1053 "src/options/parse_opts.cc"
-yy242:
+#line 1131 "src/options/parse_opts.cc"
+yy262:
        ++YYCURSOR;
-#line 109 "../src/options/parse_opts.re"
+#line 110 "../src/options/parse_opts.re"
        { globopts.rFlag = true;             goto opt_short; }
-#line 1058 "src/options/parse_opts.cc"
-yy244:
+#line 1136 "src/options/parse_opts.cc"
+yy264:
        ++YYCURSOR;
-#line 116 "../src/options/parse_opts.re"
+#line 117 "../src/options/parse_opts.re"
        { opts.set_sFlag(true);           goto opt_short; }
-#line 1063 "src/options/parse_opts.cc"
-yy246:
+#line 1141 "src/options/parse_opts.cc"
+yy266:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy260;
-#line 137 "../src/options/parse_opts.re"
+       if (yych <= 0x00) goto yy280;
+#line 138 "../src/options/parse_opts.re"
        { *argv = YYCURSOR; goto opt_header; }
-#line 1069 "src/options/parse_opts.cc"
-yy248:
+#line 1147 "src/options/parse_opts.cc"
+yy268:
        ++YYCURSOR;
-#line 119 "../src/options/parse_opts.re"
+#line 120 "../src/options/parse_opts.re"
        { opts.set_encoding(Enc::UTF32);  goto opt_short; }
-#line 1074 "src/options/parse_opts.cc"
-yy250:
+#line 1152 "src/options/parse_opts.cc"
+yy270:
        ++YYCURSOR;
-#line 102 "../src/options/parse_opts.re"
+#line 103 "../src/options/parse_opts.re"
        { version (); return EXIT_OK; }
-#line 1079 "src/options/parse_opts.cc"
-yy252:
+#line 1157 "src/options/parse_opts.cc"
+yy272:
        ++YYCURSOR;
-#line 120 "../src/options/parse_opts.re"
+#line 121 "../src/options/parse_opts.re"
        { opts.set_encoding(Enc::UCS2);   goto opt_short; }
-#line 1084 "src/options/parse_opts.cc"
-yy254:
+#line 1162 "src/options/parse_opts.cc"
+yy274:
        ++YYCURSOR;
-#line 121 "../src/options/parse_opts.re"
+#line 122 "../src/options/parse_opts.re"
        { opts.set_encoding(Enc::UTF16);  goto opt_short; }
-#line 1089 "src/options/parse_opts.cc"
-yy256:
+#line 1167 "src/options/parse_opts.cc"
+yy276:
        ++YYCURSOR;
-#line 130 "../src/options/parse_opts.re"
+#line 131 "../src/options/parse_opts.re"
        { NEXT_ARG("-I", opt_incpath); }
-#line 1094 "src/options/parse_opts.cc"
-yy258:
+#line 1172 "src/options/parse_opts.cc"
+yy278:
        ++YYCURSOR;
-#line 133 "../src/options/parse_opts.re"
+#line 134 "../src/options/parse_opts.re"
        { NEXT_ARG("-o, --output", opt_output); }
-#line 1099 "src/options/parse_opts.cc"
-yy260:
+#line 1177 "src/options/parse_opts.cc"
+yy280:
        ++YYCURSOR;
-#line 136 "../src/options/parse_opts.re"
+#line 137 "../src/options/parse_opts.re"
        { NEXT_ARG("-t, --type-header", opt_header); }
-#line 1104 "src/options/parse_opts.cc"
+#line 1182 "src/options/parse_opts.cc"
 }
-#line 140 "../src/options/parse_opts.re"
+#line 141 "../src/options/parse_opts.re"
 
 
 opt_long:
 
-#line 1111 "src/options/parse_opts.cc"
+#line 1189 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        switch (yych) {
-       case 'b':       goto yy266;
-       case 'c':       goto yy267;
-       case 'd':       goto yy268;
-       case 'e':       goto yy269;
-       case 'f':       goto yy270;
-       case 'h':       goto yy271;
-       case 'i':       goto yy272;
-       case 'l':       goto yy273;
-       case 'n':       goto yy274;
-       case 'o':       goto yy275;
-       case 'p':       goto yy276;
-       case 'r':       goto yy277;
-       case 's':       goto yy278;
-       case 't':       goto yy279;
-       case 'u':       goto yy280;
-       case 'v':       goto yy281;
-       case 'w':       goto yy282;
-       default:        goto yy264;
+       case 'b':       goto yy286;
+       case 'c':       goto yy287;
+       case 'd':       goto yy288;
+       case 'e':       goto yy289;
+       case 'f':       goto yy290;
+       case 'h':       goto yy291;
+       case 'i':       goto yy292;
+       case 'l':       goto yy293;
+       case 'n':       goto yy294;
+       case 'o':       goto yy295;
+       case 'p':       goto yy296;
+       case 'r':       goto yy297;
+       case 's':       goto yy298;
+       case 't':       goto yy299;
+       case 'u':       goto yy300;
+       case 'v':       goto yy301;
+       case 'w':       goto yy302;
+       default:        goto yy284;
        }
-yy264:
+yy284:
        ++YYCURSOR;
-yy265:
-#line 144 "../src/options/parse_opts.re"
+yy285:
+#line 145 "../src/options/parse_opts.re"
        { ERROR("bad long option: %s", *argv); }
-#line 1140 "src/options/parse_opts.cc"
-yy266:
+#line 1218 "src/options/parse_opts.cc"
+yy286:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'i') goto yy283;
-       goto yy265;
-yy267:
+       if (yych == 'i') goto yy303;
+       goto yy285;
+yy287:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy285;
-       if (yych == 'o') goto yy286;
-       goto yy265;
-yy268:
+       if (yych == 'a') goto yy305;
+       if (yych == 'o') goto yy306;
+       goto yy285;
+yy288:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'f') {
-               if (yych <= 'd') goto yy265;
-               if (yych <= 'e') goto yy287;
-               goto yy288;
+               if (yych <= 'd') goto yy285;
+               if (yych <= 'e') goto yy307;
+               goto yy308;
        } else {
-               if (yych == 'u') goto yy289;
-               goto yy265;
+               if (yych == 'u') goto yy309;
+               goto yy285;
        }
-yy269:
+yy289:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'c') {
-               if (yych == 'a') goto yy290;
-               if (yych <= 'b') goto yy265;
-               goto yy291;
+               if (yych == 'a') goto yy310;
+               if (yych <= 'b') goto yy285;
+               goto yy311;
        } else {
-               if (yych <= 'l') goto yy265;
-               if (yych <= 'm') goto yy292;
-               if (yych <= 'n') goto yy293;
-               goto yy265;
+               if (yych <= 'l') goto yy285;
+               if (yych <= 'm') goto yy312;
+               if (yych <= 'n') goto yy313;
+               goto yy285;
        }
-yy270:
+yy290:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'l') goto yy294;
-       goto yy265;
-yy271:
+       if (yych == 'l') goto yy314;
+       goto yy285;
+yy291:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy295;
-       goto yy265;
-yy272:
+       if (yych == 'e') goto yy315;
+       goto yy285;
+yy292:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy296;
-       goto yy265;
-yy273:
+       if (yych == 'n') goto yy316;
+       goto yy285;
+yy293:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy297;
-       goto yy265;
-yy274:
+       if (yych == 'o') goto yy317;
+       goto yy285;
+yy294:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy298;
-       if (yych == 'o') goto yy299;
-       goto yy265;
-yy275:
+       if (yych == 'e') goto yy318;
+       if (yych == 'o') goto yy319;
+       goto yy285;
+yy295:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy300;
-       goto yy265;
-yy276:
+       if (yych == 'u') goto yy320;
+       goto yy285;
+yy296:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy301;
-       goto yy265;
-yy277:
+       if (yych == 'o') goto yy321;
+       goto yy285;
+yy297:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy302;
-       goto yy265;
-yy278:
+       if (yych == 'e') goto yy322;
+       goto yy285;
+yy298:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'j') {
-               if (yych == 'i') goto yy303;
-               goto yy265;
+               if (yych == 'i') goto yy323;
+               goto yy285;
        } else {
-               if (yych <= 'k') goto yy304;
-               if (yych == 't') goto yy305;
-               goto yy265;
+               if (yych <= 'k') goto yy324;
+               if (yych == 't') goto yy325;
+               goto yy285;
        }
-yy279:
+yy299:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy306;
-       if (yych == 'y') goto yy307;
-       goto yy265;
-yy280:
+       if (yych == 'a') goto yy326;
+       if (yych == 'y') goto yy327;
+       goto yy285;
+yy300:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy308;
-       if (yych == 't') goto yy309;
-       goto yy265;
-yy281:
+       if (yych == 'n') goto yy328;
+       if (yych == 't') goto yy329;
+       goto yy285;
+yy301:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy310;
-       goto yy265;
-yy282:
+       if (yych == 'e') goto yy330;
+       goto yy285;
+yy302:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'i') goto yy311;
-       goto yy265;
-yy283:
+       if (yych == 'i') goto yy331;
+       goto yy285;
+yy303:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy312;
-yy284:
+       if (yych == 't') goto yy332;
+yy304:
        YYCURSOR = YYMARKER;
-       goto yy265;
-yy285:
+       goto yy285;
+yy305:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy313;
-       goto yy284;
-yy286:
+       if (yych == 's') goto yy333;
+       goto yy304;
+yy306:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 'l') goto yy284;
-       if (yych <= 'm') goto yy314;
-       if (yych <= 'n') goto yy315;
-       goto yy284;
-yy287:
+       if (yych <= 'l') goto yy304;
+       if (yych <= 'm') goto yy334;
+       if (yych <= 'n') goto yy335;
+       goto yy304;
+yy307:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy316;
-       goto yy284;
-yy288:
+       if (yych == 'b') goto yy336;
+       goto yy304;
+yy308:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy317;
-       goto yy284;
-yy289:
+       if (yych == 'a') goto yy337;
+       goto yy304;
+yy309:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy318;
-       goto yy284;
-yy290:
+       if (yych == 'm') goto yy338;
+       goto yy304;
+yy310:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy319;
-       goto yy284;
-yy291:
+       if (yych == 'g') goto yy339;
+       goto yy304;
+yy311:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy320;
-       goto yy284;
-yy292:
+       if (yych == 'b') goto yy340;
+       goto yy304;
+yy312:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy321;
-       if (yych == 'p') goto yy322;
-       goto yy284;
-yy293:
+       if (yych == 'i') goto yy341;
+       if (yych == 'p') goto yy342;
+       goto yy304;
+yy313:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy323;
-       goto yy284;
-yy294:
+       if (yych == 'c') goto yy343;
+       goto yy304;
+yy314:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy324;
-       goto yy284;
-yy295:
+       if (yych == 'e') goto yy344;
+       goto yy304;
+yy315:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy325;
-       goto yy284;
-yy296:
+       if (yych == 'l') goto yy345;
+       goto yy304;
+yy316:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy326;
-       goto yy284;
-yy297:
+       if (yych == 'p') goto yy346;
+       goto yy304;
+yy317:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy327;
-       goto yy284;
-yy298:
+       if (yych == 'c') goto yy347;
+       goto yy304;
+yy318:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy328;
-       goto yy284;
-yy299:
+       if (yych == 's') goto yy348;
+       goto yy304;
+yy319:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy329;
-       goto yy284;
-yy300:
+       if (yych == '-') goto yy349;
+       goto yy304;
+yy320:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy330;
-       goto yy284;
-yy301:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy331;
-       goto yy284;
-yy302:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy332;
-       goto yy284;
-yy303:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy333;
-       goto yy284;
-yy304:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy334;
-       goto yy284;
-yy305:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy335;
-       if (yych == 'o') goto yy336;
-       goto yy284;
-yy306:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy337;
-       goto yy284;
-yy307:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy338;
-       goto yy284;
-yy308:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy339;
-       goto yy284;
-yy309:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy340;
-       goto yy284;
-yy310:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy341;
-       goto yy284;
-yy311:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy342;
-       goto yy284;
-yy312:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy343;
-       goto yy284;
-yy313:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy344;
-       goto yy284;
-yy314:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy345;
-       goto yy284;
-yy315:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy346;
-       goto yy284;
-yy316:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy347;
-       goto yy284;
-yy317:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy348;
-       goto yy284;
-yy318:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy349;
-       goto yy284;
-yy319:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy350;
-       goto yy284;
-yy320:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy351;
-       goto yy284;
+       if (yych == 't') goto yy350;
+       goto yy304;
 yy321:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy353;
-       goto yy284;
+       if (yych == 's') goto yy351;
+       goto yy304;
 yy322:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy354;
-       goto yy284;
+       if (yych == 'u') goto yy352;
+       goto yy304;
 yy323:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy355;
-       goto yy284;
+       if (yych == 'n') goto yy353;
+       goto yy304;
 yy324:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy356;
-       goto yy284;
+       if (yych == 'e') goto yy354;
+       goto yy304;
 yy325:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy357;
-       goto yy284;
+       if (yych == 'a') goto yy355;
+       if (yych == 'o') goto yy356;
+       goto yy304;
 yy326:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy358;
-       goto yy284;
+       if (yych == 'g') goto yy357;
+       goto yy304;
 yy327:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy359;
-       goto yy284;
+       if (yych == 'p') goto yy358;
+       goto yy304;
 yy328:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy360;
-       goto yy284;
+       if (yych == 'i') goto yy359;
+       goto yy304;
 yy329:
        yych = (YYCTYPE)*++YYCURSOR;
-       switch (yych) {
-       case 'd':       goto yy361;
-       case 'g':       goto yy362;
-       case 'l':       goto yy363;
-       case 'o':       goto yy364;
-       case 'v':       goto yy365;
-       default:        goto yy284;
-       }
+       if (yych == 'f') goto yy360;
+       goto yy304;
 yy330:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy366;
-       goto yy284;
+       if (yych == 'r') goto yy361;
+       goto yy304;
 yy331:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy367;
-       goto yy284;
+       if (yych == 'd') goto yy362;
+       goto yy304;
 yy332:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy368;
-       goto yy284;
+       if (yych == '-') goto yy363;
+       goto yy304;
 yy333:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy369;
-       goto yy284;
+       if (yych == 'e') goto yy364;
+       goto yy304;
 yy334:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy370;
-       goto yy284;
+       if (yych == 'p') goto yy365;
+       goto yy304;
 yy335:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy371;
-       goto yy284;
+       if (yych == 'd') goto yy366;
+       goto yy304;
 yy336:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy372;
-       goto yy284;
+       if (yych == 'u') goto yy367;
+       goto yy304;
 yy337:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy373;
-       goto yy284;
+       if (yych == '-') goto yy368;
+       goto yy304;
 yy338:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy374;
-       goto yy284;
+       if (yych == 'p') goto yy369;
+       goto yy304;
 yy339:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy375;
-       goto yy284;
+       if (yych == 'e') goto yy370;
+       goto yy304;
 yy340:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy376;
-       goto yy284;
+       if (yych <= 0x00) goto yy371;
+       goto yy304;
 yy341:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 'm') {
-               if (yych == 'b') goto yy377;
-               goto yy284;
-       } else {
-               if (yych <= 'n') goto yy378;
-               if (yych == 's') goto yy379;
-               goto yy284;
-       }
+       if (yych == 't') goto yy373;
+       goto yy304;
 yy342:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy380;
-       goto yy284;
+       if (yych == 't') goto yy374;
+       goto yy304;
 yy343:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy381;
-       goto yy284;
+       if (yych == 'o') goto yy375;
+       goto yy304;
 yy344:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy382;
-       goto yy284;
+       if (yych == 'x') goto yy376;
+       goto yy304;
 yy345:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy383;
-       goto yy284;
+       if (yych == 'p') goto yy377;
+       goto yy304;
 yy346:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy384;
-       goto yy284;
+       if (yych == 'u') goto yy378;
+       goto yy304;
 yy347:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy385;
-       goto yy284;
+       if (yych == 'a') goto yy379;
+       goto yy304;
 yy348:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy386;
-       goto yy284;
+       if (yych == 't') goto yy380;
+       goto yy304;
 yy349:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy387;
-       goto yy284;
+       switch (yych) {
+       case 'd':       goto yy381;
+       case 'g':       goto yy382;
+       case 'l':       goto yy383;
+       case 'o':       goto yy384;
+       case 'v':       goto yy385;
+       default:        goto yy304;
+       }
 yy350:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy388;
-       goto yy284;
+       if (yych == 'p') goto yy386;
+       goto yy304;
 yy351:
-       ++YYCURSOR;
-#line 168 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::EBCDIC);    goto opt; }
-#line 1523 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy387;
+       goto yy304;
+yy352:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy388;
+       goto yy304;
 yy353:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy389;
-       goto yy284;
+       if (yych == 'g') goto yy389;
+       goto yy304;
 yy354:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy390;
-       goto yy284;
+       if (yych == 'l') goto yy390;
+       goto yy304;
 yy355:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy391;
-       goto yy284;
+       if (yych == 'r') goto yy391;
+       goto yy304;
 yy356:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy392;
-       goto yy284;
+       if (yych == 'r') goto yy392;
+       goto yy304;
 yy357:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy393;
-       goto yy284;
+       if (yych == 's') goto yy393;
+       goto yy304;
 yy358:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy395;
-       goto yy284;
+       if (yych == 'e') goto yy394;
+       goto yy304;
 yy359:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy396;
-       goto yy284;
+       if (yych == 'c') goto yy395;
+       goto yy304;
 yy360:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy397;
-       goto yy284;
+       if (yych == '-') goto yy396;
+       goto yy304;
 yy361:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy398;
-       goto yy284;
+       if (yych <= 'm') {
+               if (yych == 'b') goto yy397;
+               goto yy304;
+       } else {
+               if (yych <= 'n') goto yy398;
+               if (yych == 's') goto yy399;
+               goto yy304;
+       }
 yy362:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy399;
-       goto yy284;
+       if (yych == 'e') goto yy400;
+       goto yy304;
 yy363:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy400;
-       goto yy284;
+       if (yych == 'v') goto yy401;
+       goto yy304;
 yy364:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy401;
-       goto yy284;
+       if (yych == '-') goto yy402;
+       goto yy304;
 yy365:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy402;
-       goto yy284;
+       if (yych == 'u') goto yy403;
+       goto yy304;
 yy366:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy403;
-       goto yy284;
+       if (yych == 'i') goto yy404;
+       goto yy304;
 yy367:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy404;
-       goto yy284;
+       if (yych == 'g') goto yy405;
+       goto yy304;
 yy368:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy405;
-       goto yy284;
+       if (yych == 'm') goto yy406;
+       goto yy304;
 yy369:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy406;
-       goto yy284;
+       if (yych == '-') goto yy407;
+       goto yy304;
 yy370:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy407;
-       goto yy284;
+       if (yych == 'r') goto yy408;
+       goto yy304;
 yy371:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy408;
-       goto yy284;
-yy372:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy409;
-       goto yy284;
+       ++YYCURSOR;
+#line 169 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::EBCDIC);    goto opt; }
+#line 1601 "src/options/parse_opts.cc"
 yy373:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy410;
-       goto yy284;
+       if (yych == '-') goto yy409;
+       goto yy304;
 yy374:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy412;
-       goto yy284;
+       if (yych == 'y') goto yy410;
+       goto yy304;
 yy375:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy413;
-       goto yy284;
+       if (yych == 'd') goto yy411;
+       goto yy304;
 yy376:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '1') goto yy414;
-       if (yych == '8') goto yy415;
-       goto yy284;
+       if (yych == '-') goto yy412;
+       goto yy304;
 yy377:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy416;
-       goto yy284;
+       if (yych <= 0x00) goto yy413;
+       goto yy304;
 yy378:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy417;
-       goto yy284;
+       if (yych == 't') goto yy415;
+       goto yy304;
 yy379:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy418;
-       goto yy284;
+       if (yych == 't') goto yy416;
+       goto yy304;
 yy380:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy419;
-       goto yy284;
+       if (yych == 'e') goto yy417;
+       goto yy304;
 yy381:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy420;
-       goto yy284;
+       if (yych == 'e') goto yy418;
+       goto yy304;
 yy382:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy421;
-       goto yy284;
+       if (yych == 'e') goto yy419;
+       goto yy304;
 yy383:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy422;
-       goto yy284;
+       if (yych == 'o') goto yy420;
+       goto yy304;
 yy384:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy423;
-       goto yy284;
+       if (yych == 'p') goto yy421;
+       goto yy304;
 yy385:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy424;
-       goto yy284;
+       if (yych == 'e') goto yy422;
+       goto yy304;
 yy386:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy425;
-       goto yy284;
+       if (yych == 'u') goto yy423;
+       goto yy304;
 yy387:
        yych = (YYCTYPE)*++YYCURSOR;
-       switch (yych) {
-       case 'a':       goto yy426;
-       case 'c':       goto yy427;
-       case 'd':       goto yy428;
-       case 'i':       goto yy429;
-       case 'n':       goto yy430;
-       default:        goto yy284;
-       }
+       if (yych == 'x') goto yy424;
+       goto yy304;
 yy388:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy431;
-       goto yy284;
+       if (yych == 'a') goto yy425;
+       goto yy304;
 yy389:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy432;
-       goto yy284;
+       if (yych == 'l') goto yy426;
+       goto yy304;
 yy390:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy433;
-       goto yy284;
+       if (yych == 'e') goto yy427;
+       goto yy304;
 yy391:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy434;
-       goto yy284;
+       if (yych == 't') goto yy428;
+       goto yy304;
 yy392:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy435;
-       goto yy284;
+       if (yych == 'a') goto yy429;
+       goto yy304;
 yy393:
-       ++YYCURSOR;
-#line 146 "../src/options/parse_opts.re"
-       { usage ();   return EXIT_OK; }
-#line 1695 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy430;
+       goto yy304;
+yy394:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy432;
+       goto yy304;
 yy395:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy436;
-       if (yych == '-') goto yy438;
-       goto yy284;
+       if (yych == 'o') goto yy433;
+       goto yy304;
 yy396:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy439;
-       goto yy284;
+       if (yych == '1') goto yy434;
+       if (yych == '8') goto yy435;
+       goto yy304;
 yy397:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy440;
-       goto yy284;
+       if (yych == 'o') goto yy436;
+       goto yy304;
 yy398:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy441;
-       goto yy284;
+       if (yych == 'u') goto yy437;
+       goto yy304;
 yy399:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy442;
-       goto yy284;
+       if (yych == 'i') goto yy438;
+       goto yy304;
 yy400:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy443;
-       goto yy284;
+       if (yych == '-') goto yy439;
+       goto yy304;
 yy401:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy444;
-       goto yy284;
+       if (yych == 'e') goto yy440;
+       goto yy304;
 yy402:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy445;
-       goto yy284;
+       if (yych == 'i') goto yy441;
+       goto yy304;
 yy403:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy446;
-       goto yy284;
+       if (yych == 't') goto yy442;
+       goto yy304;
 yy404:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy447;
-       goto yy284;
+       if (yych == 't') goto yy443;
+       goto yy304;
 yy405:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy448;
-       goto yy284;
+       if (yych == '-') goto yy444;
+       goto yy304;
 yy406:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy449;
-       goto yy284;
+       if (yych == 'i') goto yy445;
+       goto yy304;
 yy407:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy450;
-       goto yy284;
+       switch (yych) {
+       case 'a':       goto yy446;
+       case 'c':       goto yy447;
+       case 'd':       goto yy448;
+       case 'i':       goto yy449;
+       case 'n':       goto yy450;
+       default:        goto yy304;
+       }
 yy408:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '-') goto yy451;
-       goto yy284;
+       goto yy304;
 yy409:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy452;
-       goto yy284;
+       if (yych == 'd') goto yy452;
+       goto yy304;
 yy410:
-       ++YYCURSOR;
-#line 167 "../src/options/parse_opts.re"
-       { opts.set_tags (true);              goto opt; }
-#line 1761 "src/options/parse_opts.cc"
-yy412:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy453;
-       goto yy284;
-yy413:
+       if (yych == '-') goto yy453;
+       goto yy304;
+yy411:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy454;
-       goto yy284;
-yy414:
+       if (yych == 'i') goto yy454;
+       goto yy304;
+yy412:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '6') goto yy455;
-       goto yy284;
+       if (yych == 's') goto yy455;
+       goto yy304;
+yy413:
+       ++YYCURSOR;
+#line 147 "../src/options/parse_opts.re"
+       { usage ();   return EXIT_OK; }
+#line 1773 "src/options/parse_opts.cc"
 yy415:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= 0x00) goto yy456;
-       goto yy284;
+       if (yych == '-') goto yy458;
+       goto yy304;
 yy416:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy458;
-       goto yy284;
+       if (yych == 'i') goto yy459;
+       goto yy304;
 yy417:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy459;
-       goto yy284;
+       if (yych == 'd') goto yy460;
+       goto yy304;
 yy418:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy460;
-       goto yy284;
+       if (yych == 'b') goto yy461;
+       goto yy304;
 yy419:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy461;
-       goto yy284;
+       if (yych == 'n') goto yy462;
+       goto yy304;
 yy420:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy462;
-       goto yy284;
+       if (yych == 'o') goto yy463;
+       goto yy304;
 yy421:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy463;
-       goto yy284;
+       if (yych == 't') goto yy464;
+       goto yy304;
 yy422:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy464;
-       goto yy284;
+       if (yych == 'r') goto yy465;
+       goto yy304;
 yy423:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy465;
-       goto yy284;
+       if (yych == 't') goto yy466;
+       goto yy304;
 yy424:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy466;
-       goto yy284;
+       if (yych == '-') goto yy467;
+       goto yy304;
 yy425:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy467;
-       goto yy284;
+       if (yych == 'b') goto yy468;
+       goto yy304;
 yy426:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy468;
-       goto yy284;
+       if (yych == 'e') goto yy469;
+       goto yy304;
 yy427:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy469;
-       if (yych == 'l') goto yy470;
-       goto yy284;
+       if (yych == 't') goto yy470;
+       goto yy304;
 yy428:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy471;
-       goto yy284;
+       if (yych == '-') goto yy471;
+       goto yy304;
 yy429:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy472;
-       goto yy284;
+       if (yych == 'b') goto yy472;
+       goto yy304;
 yy430:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy473;
-       goto yy284;
-yy431:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy474;
-       goto yy284;
+       ++YYCURSOR;
+#line 168 "../src/options/parse_opts.re"
+       { opts.set_tags (true);              goto opt; }
+#line 1839 "src/options/parse_opts.cc"
 yy432:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy475;
-       goto yy284;
+       if (yych == 'h') goto yy473;
+       goto yy304;
 yy433:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy476;
-       goto yy284;
+       if (yych == 'd') goto yy474;
+       goto yy304;
 yy434:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy477;
-       goto yy284;
+       if (yych == '6') goto yy475;
+       goto yy304;
 yy435:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy478;
-       goto yy284;
+       if (yych <= 0x00) goto yy476;
+       goto yy304;
 yy436:
-       ++YYCURSOR;
-#line 183 "../src/options/parse_opts.re"
-       { NEXT_ARG("--input",            opt_input); }
-#line 1863 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy478;
+       goto yy304;
+yy437:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'm') goto yy479;
+       goto yy304;
 yy438:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy479;
-       goto yy284;
+       if (yych == 'o') goto yy480;
+       goto yy304;
 yy439:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy480;
-       goto yy284;
+       if (yych == 'c') goto yy481;
+       goto yy304;
 yy440:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy481;
-       goto yy284;
+       if (yych == 'c') goto yy482;
+       goto yy304;
 yy441:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy482;
-       goto yy284;
+       if (yych == 'n') goto yy483;
+       goto yy304;
 yy442:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy483;
-       goto yy284;
+       if (yych == 'e') goto yy484;
+       goto yy304;
 yy443:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'k') goto yy484;
-       goto yy284;
+       if (yych == 'i') goto yy485;
+       goto yy304;
 yy444:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy485;
-       goto yy284;
+       if (yych == 'o') goto yy486;
+       goto yy304;
 yy445:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy486;
-       goto yy284;
+       if (yych == 'n') goto yy487;
+       goto yy304;
 yy446:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy487;
-       goto yy284;
+       if (yych == 'd') goto yy488;
+       goto yy304;
 yy447:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy489;
-       goto yy284;
+       if (yych == 'f') goto yy489;
+       if (yych == 'l') goto yy490;
+       goto yy304;
 yy448:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy490;
-       goto yy284;
+       if (yych == 'f') goto yy491;
+       goto yy304;
 yy449:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy491;
-       goto yy284;
+       if (yych == 'n') goto yy492;
+       goto yy304;
 yy450:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy492;
-       goto yy284;
+       if (yych == 'f') goto yy493;
+       goto yy304;
 yy451:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy493;
-       goto yy284;
+       if (yych == 's') goto yy494;
+       goto yy304;
 yy452:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy494;
-       goto yy284;
+       if (yych == 'o') goto yy495;
+       goto yy304;
 yy453:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy495;
-       goto yy284;
+       if (yych == 'c') goto yy496;
+       goto yy304;
 yy454:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy496;
-       goto yy284;
+       if (yych == 'n') goto yy497;
+       goto yy304;
 yy455:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy497;
-       goto yy284;
+       if (yych == 'y') goto yy498;
+       goto yy304;
 yy456:
        ++YYCURSOR;
-#line 172 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::UTF8);      goto opt; }
-#line 1940 "src/options/parse_opts.cc"
+#line 184 "../src/options/parse_opts.re"
+       { NEXT_ARG("--input",            opt_input); }
+#line 1941 "src/options/parse_opts.cc"
 yy458:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy499;
-       goto yy284;
+       goto yy304;
 yy459:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy500;
-       goto yy284;
+       if (yych == 'o') goto yy500;
+       goto yy304;
 yy460:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy502;
-       goto yy284;
+       if (yych == '-') goto yy501;
+       goto yy304;
 yy461:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy503;
-       goto yy284;
+       if (yych == 'u') goto yy502;
+       goto yy304;
 yy462:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy504;
-       goto yy284;
+       if (yych == 'e') goto yy503;
+       goto yy304;
 yy463:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy505;
-       if (yych == 'v') goto yy506;
-       goto yy284;
+       if (yych == 'k') goto yy504;
+       goto yy304;
 yy464:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy507;
-       goto yy284;
+       if (yych == 'i') goto yy505;
+       goto yy304;
 yy465:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy508;
-       goto yy284;
+       if (yych == 's') goto yy506;
+       goto yy304;
 yy466:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy509;
-       goto yy284;
+       if (yych <= 0x00) goto yy507;
+       goto yy304;
 yy467:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy510;
-       goto yy284;
+       if (yych == 'c') goto yy509;
+       goto yy304;
 yy468:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy511;
-       goto yy284;
+       if (yych == 'l') goto yy510;
+       goto yy304;
 yy469:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy512;
-       goto yy284;
+       if (yych == '-') goto yy511;
+       goto yy304;
 yy470:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy513;
-       goto yy284;
+       if (yych == 'o') goto yy512;
+       goto yy304;
 yy471:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy514;
-       goto yy284;
+       if (yych == 'c') goto yy513;
+       goto yy304;
 yy472:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy515;
-       goto yy284;
+       if (yych == 'l') goto yy514;
+       goto yy304;
 yy473:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy516;
-       goto yy284;
+       if (yych == 'e') goto yy515;
+       goto yy304;
 yy474:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'k') goto yy517;
-       goto yy284;
+       if (yych == 'e') goto yy516;
+       goto yy304;
 yy475:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy518;
-       goto yy284;
+       if (yych <= 0x00) goto yy517;
+       goto yy304;
 yy476:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy519;
-       goto yy284;
-yy477:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy520;
-       goto yy284;
+       ++YYCURSOR;
+#line 173 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::UTF8);      goto opt; }
+#line 2018 "src/options/parse_opts.cc"
 yy478:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy521;
-       goto yy284;
+       if (yych == 'e') goto yy519;
+       goto yy304;
 yy479:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy522;
-       goto yy284;
+       if (yych <= 0x00) goto yy520;
+       goto yy304;
 yy480:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy523;
-       goto yy284;
+       if (yych == 'n') goto yy522;
+       goto yy304;
 yy481:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy524;
-       goto yy284;
+       if (yych == 'h') goto yy523;
+       goto yy304;
 yy482:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy525;
-       goto yy284;
+       if (yych == 't') goto yy524;
+       goto yy304;
 yy483:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy526;
-       goto yy284;
+       if (yych == 's') goto yy525;
+       if (yych == 'v') goto yy526;
+       goto yy304;
 yy484:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy527;
-       goto yy284;
+       if (yych == 'd') goto yy527;
+       goto yy304;
 yy485:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy528;
-       goto yy284;
+       if (yych == 'o') goto yy528;
+       goto yy304;
 yy486:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy529;
-       goto yy284;
+       if (yych == 'u') goto yy529;
+       goto yy304;
 yy487:
-       ++YYCURSOR;
-#line 180 "../src/options/parse_opts.re"
-       { NEXT_ARG("-o, --output",       opt_output); }
-#line 2062 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy530;
+       goto yy304;
+yy488:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'f') goto yy531;
+       goto yy304;
 yy489:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy530;
-       if (yych == 'l') goto yy531;
-       goto yy284;
+       if (yych == 'g') goto yy532;
+       goto yy304;
 yy490:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy532;
-       goto yy284;
+       if (yych == 'o') goto yy533;
+       goto yy304;
 yy491:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy533;
-       goto yy284;
+       if (yych == 'a') goto yy534;
+       goto yy304;
 yy492:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy534;
-       goto yy284;
+       if (yych == 't') goto yy535;
+       goto yy304;
 yy493:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy535;
-       goto yy284;
+       if (yych == 'a') goto yy536;
+       goto yy304;
 yy494:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy536;
-       goto yy284;
+       if (yych == 'k') goto yy537;
+       goto yy304;
 yy495:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy537;
-       goto yy284;
+       if (yych == 't') goto yy538;
+       goto yy304;
 yy496:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy538;
-       goto yy284;
+       if (yych == 'l') goto yy539;
+       goto yy304;
 yy497:
-       ++YYCURSOR;
-#line 171 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::UTF16);     goto opt; }
-#line 2100 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'g') goto yy540;
+       goto yy304;
+yy498:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy541;
+       goto yy304;
 yy499:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy540;
-       goto yy284;
+       if (yych == 'n') goto yy542;
+       goto yy304;
 yy500:
-       ++YYCURSOR;
-#line 148 "../src/options/parse_opts.re"
-       { vernum ();  return EXIT_OK; }
-#line 2109 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy543;
+       goto yy304;
+yy501:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy544;
+       goto yy304;
 yy502:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy542;
-       goto yy284;
+       if (yych == 'g') goto yy545;
+       goto yy304;
 yy503:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy544;
-       goto yy284;
+       if (yych == 'r') goto yy546;
+       goto yy304;
 yy504:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy545;
-       goto yy284;
+       if (yych == 'a') goto yy547;
+       goto yy304;
 yy505:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy546;
-       goto yy284;
+       if (yych == 'm') goto yy548;
+       goto yy304;
 yy506:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy547;
-       goto yy284;
+       if (yych == 'i') goto yy549;
+       goto yy304;
 yy507:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy548;
-       goto yy284;
-yy508:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy549;
-       goto yy284;
+       ++YYCURSOR;
+#line 181 "../src/options/parse_opts.re"
+       { NEXT_ARG("-o, --output",       opt_output); }
+#line 2140 "src/options/parse_opts.cc"
 yy509:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy550;
-       goto yy284;
+       if (yych == 'a') goto yy550;
+       if (yych == 'l') goto yy551;
+       goto yy304;
 yy510:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy551;
-       goto yy284;
+       if (yych == 'e') goto yy552;
+       goto yy304;
 yy511:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy552;
-       goto yy284;
+       if (yych == 'p') goto yy553;
+       goto yy304;
 yy512:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy553;
-       goto yy284;
+       if (yych == 'n') goto yy554;
+       goto yy304;
 yy513:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy555;
-       goto yy284;
+       if (yych == 'o') goto yy555;
+       goto yy304;
 yy514:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy556;
-       goto yy284;
+       if (yych == 'e') goto yy556;
+       goto yy304;
 yy515:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy557;
-       goto yy284;
+       if (yych == 'a') goto yy557;
+       goto yy304;
 yy516:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= 0x00) goto yy558;
-       goto yy284;
+       goto yy304;
 yy517:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy560;
-       goto yy284;
-yy518:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy561;
-       goto yy284;
+       ++YYCURSOR;
+#line 172 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::UTF16);     goto opt; }
+#line 2178 "src/options/parse_opts.cc"
 yy519:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy563;
-       goto yy284;
+       if (yych <= 0x00) goto yy560;
+       goto yy304;
 yy520:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy564;
-       goto yy284;
-yy521:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy565;
-       goto yy284;
+       ++YYCURSOR;
+#line 149 "../src/options/parse_opts.re"
+       { vernum ();  return EXIT_OK; }
+#line 2187 "src/options/parse_opts.cc"
 yy522:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy566;
-       goto yy284;
+       if (yych <= 0x00) goto yy562;
+       goto yy304;
 yy523:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy567;
-       goto yy284;
+       if (yych == 'a') goto yy564;
+       goto yy304;
 yy524:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy568;
-       goto yy284;
+       if (yych == 'o') goto yy565;
+       goto yy304;
 yy525:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy569;
-       goto yy284;
+       if (yych == 'e') goto yy566;
+       goto yy304;
 yy526:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy570;
-       goto yy284;
+       if (yych == 'e') goto yy567;
+       goto yy304;
 yy527:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy571;
-       goto yy284;
+       if (yych == '-') goto yy568;
+       goto yy304;
 yy528:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy572;
-       goto yy284;
+       if (yych == 'n') goto yy569;
+       goto yy304;
 yy529:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy573;
-       goto yy284;
+       if (yych == 't') goto yy570;
+       goto yy304;
 yy530:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy574;
-       goto yy284;
+       if (yych == 'm') goto yy571;
+       goto yy304;
 yy531:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy575;
-       goto yy284;
+       if (yych == 'a') goto yy572;
+       goto yy304;
 yy532:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy576;
-       goto yy284;
+       if (yych <= 0x00) goto yy573;
+       goto yy304;
 yy533:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy578;
-       goto yy284;
+       if (yych == 's') goto yy575;
+       goto yy304;
 yy534:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy579;
-       goto yy284;
+       if (yych == '-') goto yy576;
+       goto yy304;
 yy535:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy315;
-       goto yy284;
+       if (yych == 'e') goto yy577;
+       goto yy304;
 yy536:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy581;
-       goto yy284;
+       if (yych <= 0x00) goto yy578;
+       goto yy304;
 yy537:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy582;
-       goto yy284;
+       if (yych == 'i') goto yy580;
+       goto yy304;
 yy538:
-       ++YYCURSOR;
-#line 169 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::UTF32);     goto opt; }
-#line 2258 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy581;
+       goto yy304;
+yy539:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy583;
+       goto yy304;
 yy540:
-       ++YYCURSOR;
-#line 155 "../src/options/parse_opts.re"
-       { globopts.verbose = true;           goto opt; }
-#line 2263 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy584;
+       goto yy304;
+yy541:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy585;
+       goto yy304;
 yy542:
-       ++YYCURSOR;
-#line 147 "../src/options/parse_opts.re"
-       { version (); return EXIT_OK; }
-#line 2268 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'c') goto yy586;
+       goto yy304;
+yy543:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy587;
+       goto yy304;
 yy544:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy583;
-       goto yy284;
+       if (yych == 'f') goto yy588;
+       goto yy304;
 yy545:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy584;
-       goto yy284;
+       if (yych == '-') goto yy589;
+       goto yy304;
 yy546:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy585;
-       goto yy284;
+       if (yych == 'a') goto yy590;
+       goto yy304;
 yy547:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy586;
-       goto yy284;
+       if (yych == 'h') goto yy591;
+       goto yy304;
 yy548:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy587;
-       goto yy284;
+       if (yych == 'i') goto yy592;
+       goto yy304;
 yy549:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy588;
-       goto yy284;
+       if (yych == 'o') goto yy593;
+       goto yy304;
 yy550:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy589;
-       goto yy284;
+       if (yych == 'p') goto yy594;
+       goto yy304;
 yy551:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy590;
-       goto yy284;
+       if (yych == 'o') goto yy595;
+       goto yy304;
 yy552:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy591;
-       goto yy284;
+       if (yych <= 0x00) goto yy596;
+       goto yy304;
 yy553:
-       ++YYCURSOR;
-#line 204 "../src/options/parse_opts.re"
-       { globopts.dump_cfg = true;           goto opt; }
-#line 2309 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy598;
+       goto yy304;
+yy554:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy599;
+       goto yy304;
 yy555:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy593;
-       goto yy284;
+       if (yych == 'n') goto yy335;
+       goto yy304;
 yy556:
        yych = (YYCTYPE)*++YYCURSOR;
-       switch (yych) {
-       case 'd':       goto yy594;
-       case 'm':       goto yy595;
-       case 'r':       goto yy596;
-       case 't':       goto yy597;
-       default:        goto yy284;
-       }
+       if (yych == '-') goto yy601;
+       goto yy304;
 yy557:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy598;
-       goto yy284;
+       if (yych == 'd') goto yy602;
+       goto yy304;
 yy558:
        ++YYCURSOR;
-#line 198 "../src/options/parse_opts.re"
-       { globopts.dump_nfa = true;           goto opt; }
-#line 2331 "src/options/parse_opts.cc"
+#line 170 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::UTF32);     goto opt; }
+#line 2336 "src/options/parse_opts.cc"
 yy560:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy599;
-       goto yy284;
-yy561:
        ++YYCURSOR;
-#line 151 "../src/options/parse_opts.re"
-       { globopts.target = TARGET_DOT;      goto opt; }
-#line 2340 "src/options/parse_opts.cc"
-yy563:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy600;
-       goto yy284;
+#line 156 "../src/options/parse_opts.re"
+       { globopts.verbose = true;           goto opt; }
+#line 2341 "src/options/parse_opts.cc"
+yy562:
+       ++YYCURSOR;
+#line 148 "../src/options/parse_opts.re"
+       { version (); return EXIT_OK; }
+#line 2346 "src/options/parse_opts.cc"
 yy564:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy601;
-       goto yy284;
+       if (yych == 'r') goto yy603;
+       goto yy304;
 yy565:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy602;
-       goto yy284;
+       if (yych == 'r') goto yy604;
+       goto yy304;
 yy566:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy603;
-       goto yy284;
+       if (yych == 'n') goto yy605;
+       goto yy304;
 yy567:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy604;
-       goto yy284;
+       if (yych == 'r') goto yy606;
+       goto yy304;
 yy568:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy605;
-       goto yy284;
+       if (yych == 'g') goto yy607;
+       goto yy304;
 yy569:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy606;
-       goto yy284;
+       if (yych == 's') goto yy608;
+       goto yy304;
 yy570:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy607;
-       goto yy284;
+       if (yych == 'p') goto yy609;
+       goto yy304;
 yy571:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy608;
-       goto yy284;
+       if (yych == 'i') goto yy610;
+       goto yy304;
 yy572:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'z') goto yy609;
-       goto yy284;
+       if (yych <= 0x00) goto yy611;
+       goto yy304;
 yy573:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy610;
-       goto yy284;
-yy574:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy611;
-       goto yy284;
+       ++YYCURSOR;
+#line 205 "../src/options/parse_opts.re"
+       { globopts.dump_cfg = true;           goto opt; }
+#line 2387 "src/options/parse_opts.cc"
 yy575:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy612;
-       goto yy284;
+       if (yych == 'u') goto yy613;
+       goto yy304;
 yy576:
-       ++YYCURSOR;
-#line 154 "../src/options/parse_opts.re"
-       { globopts.rFlag = true;             goto opt; }
-#line 2397 "src/options/parse_opts.cc"
-yy578:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy613;
-       goto yy284;
-yy579:
-       ++YYCURSOR;
-#line 158 "../src/options/parse_opts.re"
-       { globopts.target = TARGET_SKELETON; goto opt; }
-#line 2406 "src/options/parse_opts.cc"
-yy581:
+       switch (yych) {
+       case 'd':       goto yy614;
+       case 'm':       goto yy615;
+       case 'r':       goto yy616;
+       case 't':       goto yy617;
+       default:        goto yy304;
+       }
+yy577:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy614;
-       goto yy284;
-yy582:
+       if (yych == 'r') goto yy618;
+       goto yy304;
+yy578:
+       ++YYCURSOR;
+#line 199 "../src/options/parse_opts.re"
+       { globopts.dump_nfa = true;           goto opt; }
+#line 2409 "src/options/parse_opts.cc"
+yy580:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy615;
-       goto yy284;
+       if (yych == 'p') goto yy619;
+       goto yy304;
+yy581:
+       ++YYCURSOR;
+#line 152 "../src/options/parse_opts.re"
+       { globopts.target = TARGET_DOT;      goto opt; }
+#line 2418 "src/options/parse_opts.cc"
 yy583:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy616;
-       goto yy284;
+       if (yych == 's') goto yy620;
+       goto yy304;
 yy584:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy617;
-       goto yy284;
+       if (yych == 'p') goto yy621;
+       goto yy304;
 yy585:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy618;
-       goto yy284;
+       if (yych == 'a') goto yy622;
+       goto yy304;
 yy586:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy619;
-       goto yy284;
+       if (yych == 'o') goto yy623;
+       goto yy304;
 yy587:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy620;
-       goto yy284;
+       if (yych == 'f') goto yy624;
+       goto yy304;
 yy588:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy621;
-       goto yy284;
+       if (yych == 's') goto yy625;
+       goto yy304;
 yy589:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy623;
-       goto yy284;
+       if (yych == 'i') goto yy626;
+       goto yy304;
 yy590:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'z') goto yy624;
-       goto yy284;
+       if (yych == 't') goto yy627;
+       goto yy304;
 yy591:
-       ++YYCURSOR;
-#line 203 "../src/options/parse_opts.re"
-       { globopts.dump_adfa = true;          goto opt; }
-#line 2451 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy628;
+       goto yy304;
+yy592:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'z') goto yy629;
+       goto yy304;
 yy593:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy625;
-       goto yy284;
+       if (yych == 'n') goto yy630;
+       goto yy304;
 yy594:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy626;
-       goto yy284;
+       if (yych == 't') goto yy631;
+       goto yy304;
 yy595:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy627;
-       goto yy284;
+       if (yych == 's') goto yy632;
+       goto yy304;
 yy596:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy628;
-       goto yy284;
-yy597:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy629;
-       goto yy284;
+       ++YYCURSOR;
+#line 155 "../src/options/parse_opts.re"
+       { globopts.rFlag = true;             goto opt; }
+#line 2475 "src/options/parse_opts.cc"
 yy598:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy630;
-       goto yy284;
-yy599:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy631;
-       goto yy284;
-yy600:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 's') goto yy633;
-       goto yy284;
+       goto yy304;
+yy599:
+       ++YYCURSOR;
+#line 159 "../src/options/parse_opts.re"
+       { globopts.target = TARGET_SKELETON; goto opt; }
+#line 2484 "src/options/parse_opts.cc"
 yy601:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy634;
-       goto yy284;
+       if (yych == 's') goto yy634;
+       goto yy304;
 yy602:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy635;
-       goto yy284;
+       if (yych == 'e') goto yy635;
+       goto yy304;
 yy603:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy636;
-       goto yy284;
+       if (yych == 's') goto yy636;
+       goto yy304;
 yy604:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy637;
-       goto yy284;
+       if (yych == 's') goto yy637;
+       goto yy304;
 yy605:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy638;
-       goto yy284;
+       if (yych == 's') goto yy638;
+       goto yy304;
 yy606:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy640;
-       goto yy284;
+       if (yych == 't') goto yy639;
+       goto yy304;
 yy607:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy641;
-       goto yy284;
+       if (yych == 'o') goto yy640;
+       goto yy304;
 yy608:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy642;
-       goto yy284;
+       if (yych <= 0x00) goto yy641;
+       goto yy304;
 yy609:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy643;
-       goto yy284;
+       if (yych == 'u') goto yy643;
+       goto yy304;
 yy610:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy644;
-       goto yy284;
+       if (yych == 'z') goto yy644;
+       goto yy304;
 yy611:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy646;
-       goto yy284;
-yy612:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy647;
-       goto yy284;
+       ++YYCURSOR;
+#line 204 "../src/options/parse_opts.re"
+       { globopts.dump_adfa = true;          goto opt; }
+#line 2529 "src/options/parse_opts.cc"
 yy613:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy648;
-       goto yy284;
+       if (yych == 'r') goto yy645;
+       goto yy304;
 yy614:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy649;
-       goto yy284;
+       if (yych == 'e') goto yy646;
+       goto yy304;
 yy615:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy650;
-       goto yy284;
+       if (yych == 'i') goto yy647;
+       goto yy304;
 yy616:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy651;
-       goto yy284;
+       if (yych == 'a') goto yy648;
+       goto yy304;
 yy617:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy653;
-       goto yy284;
+       if (yych == 'a') goto yy649;
+       goto yy304;
 yy618:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy655;
-       goto yy284;
+       if (yych == 'f') goto yy650;
+       goto yy304;
 yy619:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy656;
-       goto yy284;
+       if (yych <= 0x00) goto yy651;
+       goto yy304;
 yy620:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy657;
-       goto yy284;
+       if (yych == 's') goto yy653;
+       goto yy304;
 yy621:
-       ++YYCURSOR;
-#line 150 "../src/options/parse_opts.re"
-       { globopts.cFlag = true;             goto opt; }
-#line 2568 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy654;
+       goto yy304;
+yy622:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'x') goto yy655;
+       goto yy304;
 yy623:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy658;
-       goto yy284;
+       if (yych == 'd') goto yy656;
+       goto yy304;
 yy624:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy659;
-       goto yy284;
+       if (yych == 'o') goto yy657;
+       goto yy304;
 yy625:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy660;
-       goto yy284;
+       if (yych <= 0x00) goto yy658;
+       goto yy304;
 yy626:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy661;
-       goto yy284;
+       if (yych == 'n') goto yy660;
+       goto yy304;
 yy627:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy662;
-       goto yy284;
+       if (yych == 'i') goto yy661;
+       goto yy304;
 yy628:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'w') goto yy663;
-       goto yy284;
+       if (yych == 'a') goto yy662;
+       goto yy304;
 yy629:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy664;
-       goto yy284;
+       if (yych == 'e') goto yy663;
+       goto yy304;
 yy630:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy665;
-       goto yy284;
+       if (yych <= 0x00) goto yy664;
+       goto yy304;
 yy631:
-       ++YYCURSOR;
-#line 195 "../src/options/parse_opts.re"
-       { globopts.eager_skip = true;     goto opt; }
-#line 2605 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'u') goto yy666;
+       goto yy304;
+yy632:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'u') goto yy667;
+       goto yy304;
 yy633:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy667;
-       goto yy284;
+       if (yych == 's') goto yy668;
+       goto yy304;
 yy634:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy669;
-       goto yy284;
+       if (yych == 't') goto yy669;
+       goto yy304;
 yy635:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy670;
-       goto yy284;
+       if (yych == 'r') goto yy670;
+       goto yy304;
 yy636:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy672;
-       goto yy284;
+       if (yych <= 0x00) goto yy671;
+       goto yy304;
 yy637:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy673;
-       goto yy284;
+       if (yych <= 0x00) goto yy673;
+       goto yy304;
 yy638:
-       ++YYCURSOR;
-#line 164 "../src/options/parse_opts.re"
-       { opts.set_sFlag (true);             goto opt; }
-#line 2630 "src/options/parse_opts.cc"
-yy640:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy674;
-       goto yy284;
-yy641:
+       if (yych == 'i') goto yy675;
+       goto yy304;
+yy639:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy675;
-       goto yy284;
-yy642:
+       if (yych == 'e') goto yy676;
+       goto yy304;
+yy640:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy676;
-       goto yy284;
+       if (yych == 't') goto yy677;
+       goto yy304;
+yy641:
+       ++YYCURSOR;
+#line 151 "../src/options/parse_opts.re"
+       { globopts.cFlag = true;             goto opt; }
+#line 2646 "src/options/parse_opts.cc"
 yy643:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy677;
-       goto yy284;
+       if (yych == 't') goto yy678;
+       goto yy304;
 yy644:
-       ++YYCURSOR;
-#line 157 "../src/options/parse_opts.re"
-       { globopts.version = false;          goto opt; }
-#line 2651 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy679;
+       goto yy304;
+yy645:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy680;
+       goto yy304;
 yy646:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy678;
-       goto yy284;
+       if (yych == 't') goto yy681;
+       goto yy304;
 yy647:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy679;
-       goto yy284;
+       if (yych == 'n') goto yy682;
+       goto yy304;
 yy648:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy680;
-       goto yy284;
+       if (yych == 'w') goto yy683;
+       goto yy304;
 yy649:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy682;
-       goto yy284;
+       if (yych == 'g') goto yy684;
+       goto yy304;
 yy650:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy683;
-       goto yy284;
+       if (yych <= 0x00) goto yy685;
+       goto yy304;
 yy651:
        ++YYCURSOR;
-#line 170 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::UCS2);      goto opt; }
-#line 2676 "src/options/parse_opts.cc"
+#line 196 "../src/options/parse_opts.re"
+       { globopts.eager_skip = true;     goto opt; }
+#line 2683 "src/options/parse_opts.cc"
 yy653:
-       ++YYCURSOR;
-#line 160 "../src/options/parse_opts.re"
-       { opts.set_bFlag (true);             goto opt; }
-#line 2681 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy687;
+       goto yy304;
+yy654:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'l') goto yy689;
+       goto yy304;
 yy655:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy685;
-       goto yy284;
+       if (yych <= 0x00) goto yy690;
+       goto yy304;
 yy656:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy686;
-       goto yy284;
+       if (yych == 'i') goto yy692;
+       goto yy304;
 yy657:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy687;
-       goto yy284;
+       if (yych == 'r') goto yy693;
+       goto yy304;
 yy658:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy688;
-       goto yy284;
-yy659:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy690;
-       goto yy284;
+       ++YYCURSOR;
+#line 165 "../src/options/parse_opts.re"
+       { opts.set_sFlag (true);             goto opt; }
+#line 2708 "src/options/parse_opts.cc"
 yy660:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy691;
-       goto yy284;
+       if (yych == 'f') goto yy694;
+       goto yy304;
 yy661:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy692;
-       goto yy284;
+       if (yych == 'o') goto yy695;
+       goto yy304;
 yy662:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy694;
-       goto yy284;
+       if (yych == 'd') goto yy696;
+       goto yy304;
 yy663:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy696;
-       goto yy284;
+       if (yych == '-') goto yy697;
+       goto yy304;
 yy664:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy698;
-       goto yy284;
-yy665:
        ++YYCURSOR;
-#line 205 "../src/options/parse_opts.re"
-       { globopts.dump_interf = true;        goto opt; }
-#line 2726 "src/options/parse_opts.cc"
+#line 158 "../src/options/parse_opts.re"
+       { globopts.version = false;          goto opt; }
+#line 2729 "src/options/parse_opts.cc"
+yy666:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'r') goto yy698;
+       goto yy304;
 yy667:
-       ++YYCURSOR;
-#line 184 "../src/options/parse_opts.re"
-       { NEXT_ARG("--empty-class",      opt_empty_class); }
-#line 2731 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'r') goto yy699;
+       goto yy304;
+yy668:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy700;
+       goto yy304;
 yy669:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy699;
-       goto yy284;
+       if (yych == 'a') goto yy702;
+       goto yy304;
 yy670:
-       ++YYCURSOR;
-#line 153 "../src/options/parse_opts.re"
-       { globopts.FFlag = true;             goto opt; }
-#line 2740 "src/options/parse_opts.cc"
-yy672:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy700;
-       goto yy284;
+       if (yych <= 0x00) goto yy703;
+       goto yy304;
+yy671:
+       ++YYCURSOR;
+#line 171 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::UCS2);      goto opt; }
+#line 2754 "src/options/parse_opts.cc"
 yy673:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy701;
-       goto yy284;
-yy674:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy702;
-       goto yy284;
+       ++YYCURSOR;
+#line 161 "../src/options/parse_opts.re"
+       { opts.set_bFlag (true);             goto opt; }
+#line 2759 "src/options/parse_opts.cc"
 yy675:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy703;
-       goto yy284;
+       if (yych == 't') goto yy705;
+       goto yy304;
 yy676:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy704;
-       goto yy284;
+       if (yych == 'd') goto yy706;
+       goto yy304;
 yy677:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy706;
-       goto yy284;
+       if (yych == 'o') goto yy707;
+       goto yy304;
 yy678:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy707;
-       goto yy284;
+       if (yych <= 0x00) goto yy708;
+       goto yy304;
 yy679:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy708;
-       goto yy284;
+       if (yych == 't') goto yy710;
+       goto yy304;
 yy680:
-       ++YYCURSOR;
-#line 188 "../src/options/parse_opts.re"
-       { goto opt; }
-#line 2777 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy711;
+       goto yy304;
+yy681:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy712;
+       goto yy304;
 yy682:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy709;
-       goto yy284;
+       if (yych <= 0x00) goto yy714;
+       goto yy304;
 yy683:
-       ++YYCURSOR;
-#line 181 "../src/options/parse_opts.re"
-       { NEXT_ARG("-t, --type-header",  opt_header); }
-#line 2786 "src/options/parse_opts.cc"
-yy685:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy710;
-       goto yy284;
-yy686:
+       if (yych <= 0x00) goto yy716;
+       goto yy304;
+yy684:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy711;
-       goto yy284;
+       if (yych == 'o') goto yy718;
+       goto yy304;
+yy685:
+       ++YYCURSOR;
+#line 206 "../src/options/parse_opts.re"
+       { globopts.dump_interf = true;        goto opt; }
+#line 2804 "src/options/parse_opts.cc"
 yy687:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy713;
-       goto yy284;
-yy688:
        ++YYCURSOR;
-#line 161 "../src/options/parse_opts.re"
-       { opts.set_dFlag (true);             goto opt; }
-#line 2803 "src/options/parse_opts.cc"
+#line 185 "../src/options/parse_opts.re"
+       { NEXT_ARG("--empty-class",      opt_empty_class); }
+#line 2809 "src/options/parse_opts.cc"
+yy689:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy719;
+       goto yy304;
 yy690:
+       ++YYCURSOR;
+#line 154 "../src/options/parse_opts.re"
+       { globopts.FFlag = true;             goto opt; }
+#line 2818 "src/options/parse_opts.cc"
+yy692:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy714;
-       goto yy284;
-yy691:
+       if (yych == 'n') goto yy720;
+       goto yy304;
+yy693:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy715;
-       goto yy284;
-yy692:
-       ++YYCURSOR;
-#line 200 "../src/options/parse_opts.re"
-       { globopts.dump_dfa_det = true;       goto opt; }
-#line 2816 "src/options/parse_opts.cc"
+       if (yych == 'm') goto yy721;
+       goto yy304;
 yy694:
-       ++YYCURSOR;
-#line 202 "../src/options/parse_opts.re"
-       { globopts.dump_dfa_min = true;       goto opt; }
-#line 2821 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy722;
+       goto yy304;
+yy695:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy723;
+       goto yy304;
 yy696:
-       ++YYCURSOR;
-#line 199 "../src/options/parse_opts.re"
-       { globopts.dump_dfa_raw = true;       goto opt; }
-#line 2826 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy724;
+       goto yy304;
+yy697:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy726;
+       goto yy304;
 yy698:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy716;
-       goto yy284;
+       if (yych == 'e') goto yy727;
+       goto yy304;
 yy699:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy717;
-       goto yy284;
+       if (yych == 'e') goto yy728;
+       goto yy304;
 yy700:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy718;
-       goto yy284;
-yy701:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy719;
-       goto yy284;
+       ++YYCURSOR;
+#line 189 "../src/options/parse_opts.re"
+       { goto opt; }
+#line 2855 "src/options/parse_opts.cc"
 yy702:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy720;
-       goto yy284;
+       if (yych == 't') goto yy729;
+       goto yy304;
 yy703:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy722;
-       goto yy284;
-yy704:
        ++YYCURSOR;
-#line 193 "../src/options/parse_opts.re"
-       { globopts.lookahead = false;     goto opt; }
-#line 2855 "src/options/parse_opts.cc"
+#line 182 "../src/options/parse_opts.re"
+       { NEXT_ARG("-t, --type-header",  opt_header); }
+#line 2864 "src/options/parse_opts.cc"
+yy705:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy730;
+       goto yy304;
 yy706:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy723;
-       goto yy284;
+       if (yych <= 0x00) goto yy731;
+       goto yy304;
 yy707:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy724;
-       goto yy284;
+       if (yych == 's') goto yy733;
+       goto yy304;
 yy708:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy725;
-       goto yy284;
-yy709:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy727;
-       goto yy284;
+       ++YYCURSOR;
+#line 162 "../src/options/parse_opts.re"
+       { opts.set_dFlag (true);             goto opt; }
+#line 2881 "src/options/parse_opts.cc"
 yy710:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy728;
-       goto yy284;
+       if (yych == 'i') goto yy734;
+       goto yy304;
 yy711:
-       ++YYCURSOR;
-#line 166 "../src/options/parse_opts.re"
-       { opts.set_bCaseInverted (true);     goto opt; }
-#line 2880 "src/options/parse_opts.cc"
-yy713:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy729;
-       goto yy284;
+       if (yych == 's') goto yy735;
+       goto yy304;
+yy712:
+       ++YYCURSOR;
+#line 201 "../src/options/parse_opts.re"
+       { globopts.dump_dfa_det = true;       goto opt; }
+#line 2894 "src/options/parse_opts.cc"
 yy714:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy731;
-       goto yy284;
-yy715:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy732;
-       goto yy284;
+       ++YYCURSOR;
+#line 203 "../src/options/parse_opts.re"
+       { globopts.dump_dfa_min = true;       goto opt; }
+#line 2899 "src/options/parse_opts.cc"
 yy716:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy733;
-       goto yy284;
-yy717:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy734;
-       goto yy284;
+       ++YYCURSOR;
+#line 200 "../src/options/parse_opts.re"
+       { globopts.dump_dfa_raw = true;       goto opt; }
+#line 2904 "src/options/parse_opts.cc"
 yy718:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy735;
-       goto yy284;
+       if (yych == 'p') goto yy736;
+       goto yy304;
 yy719:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy737;
-       goto yy284;
+       if (yych == 'c') goto yy737;
+       goto yy304;
 yy720:
-       ++YYCURSOR;
-#line 163 "../src/options/parse_opts.re"
-       { opts.set_iFlag (true);             goto opt; }
-#line 2913 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'g') goto yy738;
+       goto yy304;
+yy721:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy739;
+       goto yy304;
 yy722:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy738;
-       goto yy284;
+       if (yych <= 0x00) goto yy740;
+       goto yy304;
 yy723:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy739;
-       goto yy284;
+       if (yych == '-') goto yy742;
+       goto yy304;
 yy724:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy740;
-       goto yy284;
-yy725:
        ++YYCURSOR;
-#line 192 "../src/options/parse_opts.re"
-       { NEXT_ARG("--posix-closure",    opt_posix_closure); }
-#line 2930 "src/options/parse_opts.cc"
+#line 194 "../src/options/parse_opts.re"
+       { globopts.lookahead = false;     goto opt; }
+#line 2933 "src/options/parse_opts.cc"
+yy726:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy743;
+       goto yy304;
 yy727:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy742;
-       goto yy284;
+       if (yych == 's') goto yy744;
+       goto yy304;
 yy728:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy744;
-       goto yy284;
+       if (yych <= 0x00) goto yy745;
+       goto yy304;
 yy729:
-       ++YYCURSOR;
-#line 162 "../src/options/parse_opts.re"
-       { opts.set_gFlag (true);             goto opt; }
-#line 2943 "src/options/parse_opts.cc"
-yy731:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy745;
-       goto yy284;
-yy732:
+       if (yych == 'e') goto yy747;
+       goto yy304;
+yy730:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy746;
-       goto yy284;
+       if (yych == 'v') goto yy748;
+       goto yy304;
+yy731:
+       ++YYCURSOR;
+#line 167 "../src/options/parse_opts.re"
+       { opts.set_bCaseInverted (true);     goto opt; }
+#line 2958 "src/options/parse_opts.cc"
 yy733:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy747;
-       goto yy284;
+       if (yych <= 0x00) goto yy749;
+       goto yy304;
 yy734:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy749;
-       goto yy284;
+       if (yych == 'o') goto yy751;
+       goto yy304;
 yy735:
-       ++YYCURSOR;
-#line 186 "../src/options/parse_opts.re"
-       { NEXT_ARG("--input-encoding",   opt_input_encoding); }
-#line 2964 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy752;
+       goto yy304;
+yy736:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy753;
+       goto yy304;
 yy737:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy751;
-       goto yy284;
+       if (yych == 'y') goto yy754;
+       goto yy304;
 yy738:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy753;
-       goto yy284;
+       if (yych <= 0x00) goto yy755;
+       goto yy304;
 yy739:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy754;
-       goto yy284;
+       if (yych == 't') goto yy757;
+       goto yy304;
 yy740:
        ++YYCURSOR;
-#line 174 "../src/options/parse_opts.re"
+#line 164 "../src/options/parse_opts.re"
+       { opts.set_iFlag (true);             goto opt; }
+#line 2991 "src/options/parse_opts.cc"
+yy742:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'd') goto yy758;
+       goto yy304;
+yy743:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'g') goto yy759;
+       goto yy304;
+yy744:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy760;
+       goto yy304;
+yy745:
+       ++YYCURSOR;
+#line 193 "../src/options/parse_opts.re"
+       { NEXT_ARG("--posix-closure",    opt_posix_closure); }
+#line 3008 "src/options/parse_opts.cc"
+yy747:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy762;
+       goto yy304;
+yy748:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy764;
+       goto yy304;
+yy749:
+       ++YYCURSOR;
+#line 163 "../src/options/parse_opts.re"
+       { opts.set_gFlag (true);             goto opt; }
+#line 3021 "src/options/parse_opts.cc"
+yy751:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy765;
+       goto yy304;
+yy752:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy766;
+       goto yy304;
+yy753:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy767;
+       goto yy304;
+yy754:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy769;
+       goto yy304;
+yy755:
+       ++YYCURSOR;
+#line 187 "../src/options/parse_opts.re"
+       { NEXT_ARG("--input-encoding",   opt_input_encoding); }
+#line 3042 "src/options/parse_opts.cc"
+yy757:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy771;
+       goto yy304;
+yy758:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy773;
+       goto yy304;
+yy759:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy774;
+       goto yy304;
+yy760:
+       ++YYCURSOR;
+#line 175 "../src/options/parse_opts.re"
        {
         opts.set_posix_syntax(true);
         opts.set_posix_semantics(true);
         goto opt;
     }
-#line 2985 "src/options/parse_opts.cc"
-yy742:
+#line 3063 "src/options/parse_opts.cc"
+yy762:
        ++YYCURSOR;
-#line 152 "../src/options/parse_opts.re"
+#line 153 "../src/options/parse_opts.re"
        { globopts.fFlag = true;             goto opt; }
-#line 2990 "src/options/parse_opts.cc"
-yy744:
+#line 3068 "src/options/parse_opts.cc"
+yy764:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy755;
-       goto yy284;
-yy745:
+       if (yych <= 0x00) goto yy775;
+       goto yy304;
+yy765:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy757;
-       goto yy284;
-yy746:
+       if (yych <= 0x00) goto yy777;
+       goto yy304;
+yy766:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy759;
-       goto yy284;
-yy747:
+       if (yych == 't') goto yy779;
+       goto yy304;
+yy767:
        ++YYCURSOR;
-#line 201 "../src/options/parse_opts.re"
+#line 202 "../src/options/parse_opts.re"
        { globopts.dump_dfa_tagopt = true;    goto opt; }
-#line 3007 "src/options/parse_opts.cc"
-yy749:
+#line 3085 "src/options/parse_opts.cc"
+yy769:
        ++YYCURSOR;
-#line 182 "../src/options/parse_opts.re"
+#line 183 "../src/options/parse_opts.re"
        { NEXT_ARG("--encoding-policy",  opt_encoding_policy); }
-#line 3012 "src/options/parse_opts.cc"
-yy751:
+#line 3090 "src/options/parse_opts.cc"
+yy771:
        ++YYCURSOR;
-#line 185 "../src/options/parse_opts.re"
+#line 186 "../src/options/parse_opts.re"
        { NEXT_ARG("--location-format",  opt_location_format); }
-#line 3017 "src/options/parse_opts.cc"
-yy753:
+#line 3095 "src/options/parse_opts.cc"
+yy773:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy760;
-       goto yy284;
-yy754:
+       if (yych == 't') goto yy780;
+       goto yy304;
+yy774:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy761;
-       goto yy284;
-yy755:
+       if (yych <= 0x00) goto yy781;
+       goto yy304;
+yy775:
        ++YYCURSOR;
-#line 165 "../src/options/parse_opts.re"
+#line 166 "../src/options/parse_opts.re"
        { opts.set_bCaseInsensitive (true);  goto opt; }
-#line 3030 "src/options/parse_opts.cc"
-yy757:
+#line 3108 "src/options/parse_opts.cc"
+yy777:
        ++YYCURSOR;
-#line 191 "../src/options/parse_opts.re"
+#line 192 "../src/options/parse_opts.re"
        { NEXT_ARG("--dfa-minimization", opt_dfa_minimization); }
-#line 3035 "src/options/parse_opts.cc"
-yy759:
+#line 3113 "src/options/parse_opts.cc"
+yy779:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy763;
-       goto yy284;
-yy760:
+       if (yych == 's') goto yy783;
+       goto yy304;
+yy780:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy764;
-       goto yy284;
-yy761:
+       if (yych == 'e') goto yy784;
+       goto yy304;
+yy781:
        ++YYCURSOR;
-#line 194 "../src/options/parse_opts.re"
+#line 195 "../src/options/parse_opts.re"
        { globopts.optimize_tags = false; goto opt; }
-#line 3048 "src/options/parse_opts.cc"
-yy763:
+#line 3126 "src/options/parse_opts.cc"
+yy783:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy765;
-       goto yy284;
-yy764:
+       if (yych <= 0x00) goto yy785;
+       goto yy304;
+yy784:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy767;
-       goto yy284;
-yy765:
+       if (yych <= 0x00) goto yy787;
+       goto yy304;
+yy785:
        ++YYCURSOR;
-#line 206 "../src/options/parse_opts.re"
+#line 207 "../src/options/parse_opts.re"
        { globopts.dump_closure_stats = true; goto opt; }
-#line 3061 "src/options/parse_opts.cc"
-yy767:
+#line 3139 "src/options/parse_opts.cc"
+yy787:
        ++YYCURSOR;
-#line 156 "../src/options/parse_opts.re"
+#line 157 "../src/options/parse_opts.re"
        { globopts.bNoGenerationDate = true; goto opt; }
-#line 3066 "src/options/parse_opts.cc"
+#line 3144 "src/options/parse_opts.cc"
 }
-#line 207 "../src/options/parse_opts.re"
+#line 208 "../src/options/parse_opts.re"
 
 
 opt_output:
 
-#line 3073 "src/options/parse_opts.cc"
+#line 3151 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -3107,29 +3185,29 @@ opt_output:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy771;
-       if (yych != '-') goto yy773;
-yy771:
+       if (yych <= 0x00) goto yy791;
+       if (yych != '-') goto yy793;
+yy791:
        ++YYCURSOR;
-#line 211 "../src/options/parse_opts.re"
+#line 212 "../src/options/parse_opts.re"
        { ERRARG("-o, --output", "filename", *argv); }
-#line 3117 "src/options/parse_opts.cc"
-yy773:
+#line 3195 "src/options/parse_opts.cc"
+yy793:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy773;
+               goto yy793;
        }
        ++YYCURSOR;
-#line 212 "../src/options/parse_opts.re"
+#line 213 "../src/options/parse_opts.re"
        { opts.set_output_file (*argv); goto opt; }
-#line 3126 "src/options/parse_opts.cc"
+#line 3204 "src/options/parse_opts.cc"
 }
-#line 213 "../src/options/parse_opts.re"
+#line 214 "../src/options/parse_opts.re"
 
 
 opt_header:
 
-#line 3133 "src/options/parse_opts.cc"
+#line 3211 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -3167,29 +3245,29 @@ opt_header:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy779;
-       if (yych != '-') goto yy781;
-yy779:
+       if (yych <= 0x00) goto yy799;
+       if (yych != '-') goto yy801;
+yy799:
        ++YYCURSOR;
-#line 217 "../src/options/parse_opts.re"
+#line 218 "../src/options/parse_opts.re"
        { ERRARG("-t, --type-header", "filename", *argv); }
-#line 3177 "src/options/parse_opts.cc"
-yy781:
+#line 3255 "src/options/parse_opts.cc"
+yy801:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy781;
+               goto yy801;
        }
        ++YYCURSOR;
-#line 218 "../src/options/parse_opts.re"
+#line 219 "../src/options/parse_opts.re"
        { opts.set_header_file (*argv); goto opt; }
-#line 3186 "src/options/parse_opts.cc"
+#line 3264 "src/options/parse_opts.cc"
 }
-#line 219 "../src/options/parse_opts.re"
+#line 220 "../src/options/parse_opts.re"
 
 
 opt_incpath:
 
-#line 3193 "src/options/parse_opts.cc"
+#line 3271 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -3227,576 +3305,576 @@ opt_incpath:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy787;
-       if (yych != '-') goto yy789;
-yy787:
+       if (yych <= 0x00) goto yy807;
+       if (yych != '-') goto yy809;
+yy807:
        ++YYCURSOR;
-#line 223 "../src/options/parse_opts.re"
+#line 224 "../src/options/parse_opts.re"
        { ERRARG("-I", "filename", *argv); }
-#line 3237 "src/options/parse_opts.cc"
-yy789:
+#line 3315 "src/options/parse_opts.cc"
+yy809:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy789;
+               goto yy809;
        }
        ++YYCURSOR;
-#line 224 "../src/options/parse_opts.re"
+#line 225 "../src/options/parse_opts.re"
        { globopts.incpaths.push_back(*argv); goto opt; }
-#line 3246 "src/options/parse_opts.cc"
+#line 3324 "src/options/parse_opts.cc"
 }
-#line 225 "../src/options/parse_opts.re"
+#line 226 "../src/options/parse_opts.re"
 
 
 opt_encoding_policy:
 
-#line 3253 "src/options/parse_opts.cc"
+#line 3331 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy797;
+               if (yych == 'f') goto yy817;
        } else {
-               if (yych <= 'i') goto yy798;
-               if (yych == 's') goto yy799;
+               if (yych <= 'i') goto yy818;
+               if (yych == 's') goto yy819;
        }
        ++YYCURSOR;
-yy796:
-#line 229 "../src/options/parse_opts.re"
+yy816:
+#line 230 "../src/options/parse_opts.re"
        { ERRARG("--encoding-policy", "ignore | substitute | fail", *argv); }
-#line 3267 "src/options/parse_opts.cc"
-yy797:
+#line 3345 "src/options/parse_opts.cc"
+yy817:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy800;
-       goto yy796;
-yy798:
+       if (yych == 'a') goto yy820;
+       goto yy816;
+yy818:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'g') goto yy802;
-       goto yy796;
-yy799:
+       if (yych == 'g') goto yy822;
+       goto yy816;
+yy819:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy803;
-       goto yy796;
-yy800:
+       if (yych == 'u') goto yy823;
+       goto yy816;
+yy820:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy804;
-yy801:
+       if (yych == 'i') goto yy824;
+yy821:
        YYCURSOR = YYMARKER;
-       goto yy796;
-yy802:
+       goto yy816;
+yy822:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy805;
-       goto yy801;
-yy803:
+       if (yych == 'n') goto yy825;
+       goto yy821;
+yy823:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy806;
-       goto yy801;
-yy804:
+       if (yych == 'b') goto yy826;
+       goto yy821;
+yy824:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy807;
-       goto yy801;
-yy805:
+       if (yych == 'l') goto yy827;
+       goto yy821;
+yy825:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy808;
-       goto yy801;
-yy806:
+       if (yych == 'o') goto yy828;
+       goto yy821;
+yy826:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy809;
-       goto yy801;
-yy807:
+       if (yych == 's') goto yy829;
+       goto yy821;
+yy827:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy810;
-       goto yy801;
-yy808:
+       if (yych <= 0x00) goto yy830;
+       goto yy821;
+yy828:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy812;
-       goto yy801;
-yy809:
+       if (yych == 'r') goto yy832;
+       goto yy821;
+yy829:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy813;
-       goto yy801;
-yy810:
+       if (yych == 't') goto yy833;
+       goto yy821;
+yy830:
        ++YYCURSOR;
-#line 232 "../src/options/parse_opts.re"
+#line 233 "../src/options/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_FAIL);       goto opt; }
-#line 3322 "src/options/parse_opts.cc"
-yy812:
+#line 3400 "src/options/parse_opts.cc"
+yy832:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy814;
-       goto yy801;
-yy813:
+       if (yych == 'e') goto yy834;
+       goto yy821;
+yy833:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy815;
-       goto yy801;
-yy814:
+       if (yych == 'i') goto yy835;
+       goto yy821;
+yy834:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy816;
-       goto yy801;
-yy815:
+       if (yych <= 0x00) goto yy836;
+       goto yy821;
+yy835:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy818;
-       goto yy801;
-yy816:
+       if (yych == 't') goto yy838;
+       goto yy821;
+yy836:
        ++YYCURSOR;
-#line 230 "../src/options/parse_opts.re"
+#line 231 "../src/options/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_IGNORE);     goto opt; }
-#line 3343 "src/options/parse_opts.cc"
-yy818:
+#line 3421 "src/options/parse_opts.cc"
+yy838:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy801;
+       if (yych != 'u') goto yy821;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy801;
+       if (yych != 't') goto yy821;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy801;
+       if (yych != 'e') goto yy821;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy801;
+       if (yych >= 0x01) goto yy821;
        ++YYCURSOR;
-#line 231 "../src/options/parse_opts.re"
+#line 232 "../src/options/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; }
-#line 3356 "src/options/parse_opts.cc"
+#line 3434 "src/options/parse_opts.cc"
 }
-#line 233 "../src/options/parse_opts.re"
+#line 234 "../src/options/parse_opts.re"
 
 
 opt_input:
 
-#line 3363 "src/options/parse_opts.cc"
+#line 3441 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 'b') goto yy826;
-       if (yych <= 'c') goto yy828;
-       if (yych <= 'd') goto yy829;
-yy826:
+       if (yych <= 'b') goto yy846;
+       if (yych <= 'c') goto yy848;
+       if (yych <= 'd') goto yy849;
+yy846:
        ++YYCURSOR;
-yy827:
-#line 237 "../src/options/parse_opts.re"
+yy847:
+#line 238 "../src/options/parse_opts.re"
        { ERRARG("--input", "default | custom", *argv); }
-#line 3375 "src/options/parse_opts.cc"
-yy828:
+#line 3453 "src/options/parse_opts.cc"
+yy848:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy830;
-       goto yy827;
-yy829:
+       if (yych == 'u') goto yy850;
+       goto yy847;
+yy849:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy832;
-       goto yy827;
-yy830:
+       if (yych == 'e') goto yy852;
+       goto yy847;
+yy850:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy833;
-yy831:
+       if (yych == 's') goto yy853;
+yy851:
        YYCURSOR = YYMARKER;
-       goto yy827;
-yy832:
+       goto yy847;
+yy852:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy834;
-       goto yy831;
-yy833:
+       if (yych == 'f') goto yy854;
+       goto yy851;
+yy853:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy835;
-       goto yy831;
-yy834:
+       if (yych == 't') goto yy855;
+       goto yy851;
+yy854:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy836;
-       goto yy831;
-yy835:
+       if (yych == 'a') goto yy856;
+       goto yy851;
+yy855:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy837;
-       goto yy831;
-yy836:
+       if (yych == 'o') goto yy857;
+       goto yy851;
+yy856:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy838;
-       goto yy831;
-yy837:
+       if (yych == 'u') goto yy858;
+       goto yy851;
+yy857:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy839;
-       goto yy831;
-yy838:
+       if (yych == 'm') goto yy859;
+       goto yy851;
+yy858:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy840;
-       goto yy831;
-yy839:
+       if (yych == 'l') goto yy860;
+       goto yy851;
+yy859:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy841;
-       goto yy831;
-yy840:
+       if (yych <= 0x00) goto yy861;
+       goto yy851;
+yy860:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy843;
-       goto yy831;
-yy841:
+       if (yych == 't') goto yy863;
+       goto yy851;
+yy861:
        ++YYCURSOR;
-#line 239 "../src/options/parse_opts.re"
+#line 240 "../src/options/parse_opts.re"
        { opts.set_input_api(INPUT_CUSTOM);  goto opt; }
-#line 3430 "src/options/parse_opts.cc"
-yy843:
+#line 3508 "src/options/parse_opts.cc"
+yy863:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy831;
+       if (yych >= 0x01) goto yy851;
        ++YYCURSOR;
-#line 238 "../src/options/parse_opts.re"
+#line 239 "../src/options/parse_opts.re"
        { opts.set_input_api(INPUT_DEFAULT); goto opt; }
-#line 3437 "src/options/parse_opts.cc"
+#line 3515 "src/options/parse_opts.cc"
 }
-#line 240 "../src/options/parse_opts.re"
+#line 241 "../src/options/parse_opts.re"
 
 
 opt_empty_class:
 
-#line 3444 "src/options/parse_opts.cc"
+#line 3522 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'e') goto yy850;
-       if (yych == 'm') goto yy851;
+       if (yych == 'e') goto yy870;
+       if (yych == 'm') goto yy871;
        ++YYCURSOR;
-yy849:
-#line 244 "../src/options/parse_opts.re"
+yy869:
+#line 245 "../src/options/parse_opts.re"
        { ERRARG("--empty-class", "match-empty | match-none | error", *argv); }
-#line 3454 "src/options/parse_opts.cc"
-yy850:
+#line 3532 "src/options/parse_opts.cc"
+yy870:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'r') goto yy852;
-       goto yy849;
-yy851:
+       if (yych == 'r') goto yy872;
+       goto yy869;
+yy871:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy854;
-       goto yy849;
-yy852:
+       if (yych == 'a') goto yy874;
+       goto yy869;
+yy872:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy855;
-yy853:
+       if (yych == 'r') goto yy875;
+yy873:
        YYCURSOR = YYMARKER;
-       goto yy849;
-yy854:
+       goto yy869;
+yy874:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy856;
-       goto yy853;
-yy855:
+       if (yych == 't') goto yy876;
+       goto yy873;
+yy875:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy857;
-       goto yy853;
-yy856:
+       if (yych == 'o') goto yy877;
+       goto yy873;
+yy876:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy858;
-       goto yy853;
-yy857:
+       if (yych == 'c') goto yy878;
+       goto yy873;
+yy877:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy859;
-       goto yy853;
-yy858:
+       if (yych == 'r') goto yy879;
+       goto yy873;
+yy878:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy860;
-       goto yy853;
-yy859:
+       if (yych == 'h') goto yy880;
+       goto yy873;
+yy879:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy861;
-       goto yy853;
-yy860:
+       if (yych <= 0x00) goto yy881;
+       goto yy873;
+yy880:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy863;
-       goto yy853;
-yy861:
+       if (yych == '-') goto yy883;
+       goto yy873;
+yy881:
        ++YYCURSOR;
-#line 247 "../src/options/parse_opts.re"
+#line 248 "../src/options/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_ERROR);       goto opt; }
-#line 3501 "src/options/parse_opts.cc"
-yy863:
+#line 3579 "src/options/parse_opts.cc"
+yy883:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy864;
-       if (yych == 'n') goto yy865;
-       goto yy853;
-yy864:
+       if (yych == 'e') goto yy884;
+       if (yych == 'n') goto yy885;
+       goto yy873;
+yy884:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy866;
-       goto yy853;
-yy865:
+       if (yych == 'm') goto yy886;
+       goto yy873;
+yy885:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy867;
-       goto yy853;
-yy866:
+       if (yych == 'o') goto yy887;
+       goto yy873;
+yy886:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy868;
-       goto yy853;
-yy867:
+       if (yych == 'p') goto yy888;
+       goto yy873;
+yy887:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy869;
-       goto yy853;
-yy868:
+       if (yych == 'n') goto yy889;
+       goto yy873;
+yy888:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy870;
-       goto yy853;
-yy869:
+       if (yych == 't') goto yy890;
+       goto yy873;
+yy889:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy871;
-       goto yy853;
-yy870:
+       if (yych == 'e') goto yy891;
+       goto yy873;
+yy890:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy872;
-       goto yy853;
-yy871:
+       if (yych == 'y') goto yy892;
+       goto yy873;
+yy891:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy873;
-       goto yy853;
-yy872:
+       if (yych <= 0x00) goto yy893;
+       goto yy873;
+yy892:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy875;
-       goto yy853;
-yy873:
+       if (yych <= 0x00) goto yy895;
+       goto yy873;
+yy893:
        ++YYCURSOR;
-#line 246 "../src/options/parse_opts.re"
+#line 247 "../src/options/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE);  goto opt; }
-#line 3547 "src/options/parse_opts.cc"
-yy875:
+#line 3625 "src/options/parse_opts.cc"
+yy895:
        ++YYCURSOR;
-#line 245 "../src/options/parse_opts.re"
+#line 246 "../src/options/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_EMPTY); goto opt; }
-#line 3552 "src/options/parse_opts.cc"
+#line 3630 "src/options/parse_opts.cc"
 }
-#line 248 "../src/options/parse_opts.re"
+#line 249 "../src/options/parse_opts.re"
 
 
 opt_location_format:
 
-#line 3559 "src/options/parse_opts.cc"
+#line 3637 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'g') goto yy881;
-       if (yych == 'm') goto yy882;
+       if (yych == 'g') goto yy901;
+       if (yych == 'm') goto yy902;
        ++YYCURSOR;
-yy880:
-#line 252 "../src/options/parse_opts.re"
+yy900:
+#line 253 "../src/options/parse_opts.re"
        { ERRARG("--location-format", "gnu | msvc", *argv); }
-#line 3569 "src/options/parse_opts.cc"
-yy881:
+#line 3647 "src/options/parse_opts.cc"
+yy901:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy883;
-       goto yy880;
-yy882:
+       if (yych == 'n') goto yy903;
+       goto yy900;
+yy902:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 's') goto yy885;
-       goto yy880;
-yy883:
+       if (yych == 's') goto yy905;
+       goto yy900;
+yy903:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy886;
-yy884:
+       if (yych == 'u') goto yy906;
+yy904:
        YYCURSOR = YYMARKER;
-       goto yy880;
-yy885:
+       goto yy900;
+yy905:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy887;
-       goto yy884;
-yy886:
+       if (yych == 'v') goto yy907;
+       goto yy904;
+yy906:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy888;
-       goto yy884;
-yy887:
+       if (yych <= 0x00) goto yy908;
+       goto yy904;
+yy907:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy890;
-       goto yy884;
-yy888:
+       if (yych == 'c') goto yy910;
+       goto yy904;
+yy908:
        ++YYCURSOR;
-#line 253 "../src/options/parse_opts.re"
+#line 254 "../src/options/parse_opts.re"
        { msg.locfmt = LOCFMT_GNU;  goto opt; }
-#line 3600 "src/options/parse_opts.cc"
-yy890:
+#line 3678 "src/options/parse_opts.cc"
+yy910:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy884;
+       if (yych >= 0x01) goto yy904;
        ++YYCURSOR;
-#line 254 "../src/options/parse_opts.re"
+#line 255 "../src/options/parse_opts.re"
        { msg.locfmt = LOCFMT_MSVC; goto opt; }
-#line 3607 "src/options/parse_opts.cc"
+#line 3685 "src/options/parse_opts.cc"
 }
-#line 255 "../src/options/parse_opts.re"
+#line 256 "../src/options/parse_opts.re"
 
 
 opt_input_encoding:
 
-#line 3614 "src/options/parse_opts.cc"
+#line 3692 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'a') goto yy897;
-       if (yych == 'u') goto yy898;
+       if (yych == 'a') goto yy917;
+       if (yych == 'u') goto yy918;
        ++YYCURSOR;
-yy896:
-#line 259 "../src/options/parse_opts.re"
+yy916:
+#line 260 "../src/options/parse_opts.re"
        { ERRARG("--input-encoding", "ascii | utf8", *argv); }
-#line 3624 "src/options/parse_opts.cc"
-yy897:
+#line 3702 "src/options/parse_opts.cc"
+yy917:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 's') goto yy899;
-       goto yy896;
-yy898:
+       if (yych == 's') goto yy919;
+       goto yy916;
+yy918:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 't') goto yy901;
-       goto yy896;
-yy899:
+       if (yych == 't') goto yy921;
+       goto yy916;
+yy919:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy902;
-yy900:
+       if (yych == 'c') goto yy922;
+yy920:
        YYCURSOR = YYMARKER;
-       goto yy896;
-yy901:
+       goto yy916;
+yy921:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy903;
-       goto yy900;
-yy902:
+       if (yych == 'f') goto yy923;
+       goto yy920;
+yy922:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy904;
-       goto yy900;
-yy903:
+       if (yych == 'i') goto yy924;
+       goto yy920;
+yy923:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '8') goto yy905;
-       goto yy900;
-yy904:
+       if (yych == '8') goto yy925;
+       goto yy920;
+yy924:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy906;
-       goto yy900;
-yy905:
+       if (yych == 'i') goto yy926;
+       goto yy920;
+yy925:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy907;
-       goto yy900;
-yy906:
+       if (yych <= 0x00) goto yy927;
+       goto yy920;
+yy926:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy909;
-       goto yy900;
-yy907:
+       if (yych <= 0x00) goto yy929;
+       goto yy920;
+yy927:
        ++YYCURSOR;
-#line 261 "../src/options/parse_opts.re"
+#line 262 "../src/options/parse_opts.re"
        { globopts.input_encoding = Enc::UTF8;  goto opt; }
-#line 3667 "src/options/parse_opts.cc"
-yy909:
+#line 3745 "src/options/parse_opts.cc"
+yy929:
        ++YYCURSOR;
-#line 260 "../src/options/parse_opts.re"
+#line 261 "../src/options/parse_opts.re"
        { globopts.input_encoding = Enc::ASCII; goto opt; }
-#line 3672 "src/options/parse_opts.cc"
+#line 3750 "src/options/parse_opts.cc"
 }
-#line 262 "../src/options/parse_opts.re"
+#line 263 "../src/options/parse_opts.re"
 
 
 opt_dfa_minimization:
 
-#line 3679 "src/options/parse_opts.cc"
+#line 3757 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'm') goto yy915;
-       if (yych == 't') goto yy916;
+       if (yych == 'm') goto yy935;
+       if (yych == 't') goto yy936;
        ++YYCURSOR;
-yy914:
-#line 266 "../src/options/parse_opts.re"
+yy934:
+#line 267 "../src/options/parse_opts.re"
        { ERRARG("--dfa-minimization", "table | moore", *argv); }
-#line 3689 "src/options/parse_opts.cc"
-yy915:
+#line 3767 "src/options/parse_opts.cc"
+yy935:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy917;
-       goto yy914;
-yy916:
+       if (yych == 'o') goto yy937;
+       goto yy934;
+yy936:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy919;
-       goto yy914;
-yy917:
+       if (yych == 'a') goto yy939;
+       goto yy934;
+yy937:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy920;
-yy918:
+       if (yych == 'o') goto yy940;
+yy938:
        YYCURSOR = YYMARKER;
-       goto yy914;
-yy919:
+       goto yy934;
+yy939:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy921;
-       goto yy918;
-yy920:
+       if (yych == 'b') goto yy941;
+       goto yy938;
+yy940:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy922;
-       goto yy918;
-yy921:
+       if (yych == 'r') goto yy942;
+       goto yy938;
+yy941:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy923;
-       goto yy918;
-yy922:
+       if (yych == 'l') goto yy943;
+       goto yy938;
+yy942:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy924;
-       goto yy918;
-yy923:
+       if (yych == 'e') goto yy944;
+       goto yy938;
+yy943:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy925;
-       goto yy918;
-yy924:
+       if (yych == 'e') goto yy945;
+       goto yy938;
+yy944:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy926;
-       goto yy918;
-yy925:
+       if (yych <= 0x00) goto yy946;
+       goto yy938;
+yy945:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy928;
-       goto yy918;
-yy926:
+       if (yych <= 0x00) goto yy948;
+       goto yy938;
+yy946:
        ++YYCURSOR;
-#line 268 "../src/options/parse_opts.re"
+#line 269 "../src/options/parse_opts.re"
        { globopts.dfa_minimization = DFA_MINIMIZATION_MOORE; goto opt; }
-#line 3736 "src/options/parse_opts.cc"
-yy928:
+#line 3814 "src/options/parse_opts.cc"
+yy948:
        ++YYCURSOR;
-#line 267 "../src/options/parse_opts.re"
+#line 268 "../src/options/parse_opts.re"
        { globopts.dfa_minimization = DFA_MINIMIZATION_TABLE; goto opt; }
-#line 3741 "src/options/parse_opts.cc"
+#line 3819 "src/options/parse_opts.cc"
 }
-#line 269 "../src/options/parse_opts.re"
+#line 270 "../src/options/parse_opts.re"
 
 
 opt_posix_closure:
 
-#line 3748 "src/options/parse_opts.cc"
+#line 3826 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'g') goto yy934;
+       if (yych == 'g') goto yy954;
        ++YYCURSOR;
-yy933:
-#line 273 "../src/options/parse_opts.re"
+yy953:
+#line 274 "../src/options/parse_opts.re"
        { ERRARG("--posix-closure", "gor1 | gtop", *argv); }
-#line 3757 "src/options/parse_opts.cc"
-yy934:
+#line 3835 "src/options/parse_opts.cc"
+yy954:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy935;
-       if (yych == 't') goto yy937;
-       goto yy933;
-yy935:
+       if (yych == 'o') goto yy955;
+       if (yych == 't') goto yy957;
+       goto yy953;
+yy955:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy938;
-yy936:
+       if (yych == 'r') goto yy958;
+yy956:
        YYCURSOR = YYMARKER;
-       goto yy933;
-yy937:
+       goto yy953;
+yy957:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy939;
-       goto yy936;
-yy938:
+       if (yych == 'o') goto yy959;
+       goto yy956;
+yy958:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '1') goto yy940;
-       goto yy936;
-yy939:
+       if (yych == '1') goto yy960;
+       goto yy956;
+yy959:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy941;
-       goto yy936;
-yy940:
+       if (yych == 'p') goto yy961;
+       goto yy956;
+yy960:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy942;
-       goto yy936;
-yy941:
+       if (yych <= 0x00) goto yy962;
+       goto yy956;
+yy961:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy944;
-       goto yy936;
-yy942:
+       if (yych <= 0x00) goto yy964;
+       goto yy956;
+yy962:
        ++YYCURSOR;
-#line 274 "../src/options/parse_opts.re"
+#line 275 "../src/options/parse_opts.re"
        { globopts.posix_closure = POSIX_CLOSURE_GOR1; goto opt; }
-#line 3793 "src/options/parse_opts.cc"
-yy944:
+#line 3871 "src/options/parse_opts.cc"
+yy964:
        ++YYCURSOR;
-#line 275 "../src/options/parse_opts.re"
+#line 276 "../src/options/parse_opts.re"
        { globopts.posix_closure = POSIX_CLOSURE_GTOP; goto opt; }
-#line 3798 "src/options/parse_opts.cc"
+#line 3876 "src/options/parse_opts.cc"
 }
-#line 276 "../src/options/parse_opts.re"
+#line 277 "../src/options/parse_opts.re"
 
 
 end:
index 275fdb57bb5b9b878426a20ef4d017cf9b5c7e5f..2b326e01ff678ca244fc56f31e5dfd6cd883b968 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.1.1 on Mon Aug  5 23:14:16 2019 */
+/* Generated by re2c 1.2.1 on Fri Aug 23 07:30:27 2019 */
 #line 1 "../src/parse/lex_conf.re"
 #include "src/util/c99_stdint.h"
 #include <string>
@@ -107,7 +107,7 @@ void Scanner::lex_conf(Opt &opts)
                }
        }
 yy2:
-#line 173 "../src/parse/lex_conf.re"
+#line 170 "../src/parse/lex_conf.re"
        {
         msg.fatal(tok_loc(), "unrecognized configuration '%.*s'",
             static_cast<int>(cur - tok), tok);
@@ -149,323 +149,319 @@ yy10:
        goto yy4;
 yy11:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy22;
+       if (yych == 'e') goto yy22;
+       if (yych == 't') goto yy23;
        goto yy4;
 yy12:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy23;
+       if (yych == 'a') goto yy24;
        goto yy4;
 yy13:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy24;
+       if (yych == 'a') goto yy25;
        goto yy4;
 yy14:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy25;
+       if (yych == 'y') goto yy26;
        goto yy4;
 yy15:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy26;
+       if (yych == 'o') goto yy27;
        goto yy4;
 yy16:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy27;
+       if (yych == 'n') goto yy28;
        goto yy4;
 yy17:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy28;
+       if (yych == 'f') goto yy29;
        goto yy4;
 yy18:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy29;
+       if (yych == 'f') goto yy30;
        goto yy4;
 yy19:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy31;
+       if (yych == 'a') goto yy32;
        goto yy4;
 yy20:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy32;
+       if (yych == 'd') goto yy33;
        goto yy4;
 yy21:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy33;
+       if (yych == 'b') goto yy34;
        goto yy4;
 yy22:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy34;
+       if (yych == 'n') goto yy35;
        goto yy4;
 yy23:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy35;
+       if (yych == 'a') goto yy36;
        goto yy4;
 yy24:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy36;
+       if (yych == 'g') goto yy37;
        goto yy4;
 yy25:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy38;
+       goto yy4;
+yy26:
        yych = (unsigned char)*++cur;
        if (yych <= 'c') {
                if (yych <= 'a') goto yy4;
-               if (yych <= 'b') goto yy37;
-               goto yy38;
+               if (yych <= 'b') goto yy39;
+               goto yy40;
        } else {
-               if (yych == 'f') goto yy39;
+               if (yych == 'f') goto yy41;
                goto yy4;
        }
-yy26:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy40;
-       goto yy4;
 yy27:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy41;
+       if (yych == 't') goto yy42;
        goto yy4;
 yy28:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy42;
+       if (yych == 'd') goto yy43;
        goto yy4;
 yy29:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy44;
+       goto yy4;
+yy30:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 74 "../src/parse/lex_conf.re"
-       {
-        const int32_t eof = lex_conf_number();
-        opts.set_eof(eof < 0 ? NOEOF : static_cast<uint32_t>(eof));
-        return;
-    }
-#line 240 "src/parse/lex_conf.cc"
-yy31:
-       yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy43;
-       goto yy4;
+       { opts.set_eof     (lex_conf_eof()); return; }
+#line 241 "src/parse/lex_conf.cc"
 yy32:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy44;
+       if (yych == 'g') goto yy45;
        goto yy4;
 yy33:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy45;
+       if (yych == 'e') goto yy46;
        goto yy4;
 yy34:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy46;
-       if (yych == 't') goto yy47;
+       if (yych == 'e') goto yy47;
        goto yy4;
 yy35:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy48;
+       if (yych == 't') goto yy48;
        goto yy4;
 yy36:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy49;
+       if (yych == 'r') goto yy49;
+       if (yych == 't') goto yy50;
        goto yy4;
 yy37:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy50;
+       if (yych == 's') goto yy51;
        goto yy4;
 yy38:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy51;
+       if (yych == 'i') goto yy52;
        goto yy4;
 yy39:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy52;
+       if (yych == 'm') goto yy53;
        goto yy4;
 yy40:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy53;
+       if (yych == 'h') goto yy54;
        goto yy4;
 yy41:
        yych = (unsigned char)*++cur;
-       if (yych <= 'd') {
-               if (yych == ':') goto yy54;
-               goto yy4;
-       } else {
-               if (yych <= 'e') goto yy55;
-               if (yych == 'p') goto yy56;
-               goto yy4;
-       }
+       if (yych == 'i') goto yy55;
+       goto yy4;
 yy42:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy57;
+       if (yych == 'o') goto yy56;
        goto yy4;
 yy43:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy58;
-       goto yy4;
+       if (yych <= 'd') {
+               if (yych == ':') goto yy57;
+               goto yy4;
+       } else {
+               if (yych <= 'e') goto yy58;
+               if (yych == 'p') goto yy59;
+               goto yy4;
+       }
 yy44:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy59;
+       if (yych == 'n') goto yy60;
        goto yy4;
 yy45:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy60;
+       if (yych == 's') goto yy61;
        goto yy4;
 yy46:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy61;
+       if (yych == 'n') goto yy62;
        goto yy4;
 yy47:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy62;
+       if (yych == 'l') goto yy63;
        goto yy4;
 yy48:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy63;
+       if (yych == 'i') goto yy64;
        goto yy4;
 yy49:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy64;
+       if (yych == 't') goto yy65;
        goto yy4;
 yy50:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy65;
+       if (yych == 'e') goto yy66;
        goto yy4;
 yy51:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy66;
+       if (yych == ':') goto yy67;
        goto yy4;
 yy52:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy67;
+       if (yych == 'a') goto yy68;
        goto yy4;
 yy53:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy68;
+       if (yych == ':') goto yy69;
        goto yy4;
 yy54:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy69;
-       if (yych == 'g') goto yy70;
+       if (yych == ':') goto yy70;
        goto yy4;
 yy55:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy71;
+       if (yych == 'l') goto yy71;
        goto yy4;
 yy56:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy72;
+       if (yych == ':') goto yy72;
        goto yy4;
 yy57:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy73;
+       if (yych == 'd') goto yy73;
+       if (yych == 'g') goto yy74;
        goto yy4;
 yy58:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy74;
+       if (yych == 'n') goto yy75;
        goto yy4;
 yy59:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy75;
+       if (yych == 'r') goto yy76;
        goto yy4;
 yy60:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy76;
-       if (yych == 'p') goto yy77;
+       if (yych == 'e') goto yy77;
        goto yy4;
 yy61:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy78;
+       if (yych == ':') goto yy78;
        goto yy4;
 yy62:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy79;
+       if (yych == 't') goto yy79;
        goto yy4;
 yy63:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy80;
+       if (yych == ':') goto yy80;
        if (yych == 'p') goto yy81;
        goto yy4;
 yy64:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy82;
+       if (yych == 'n') goto yy82;
        goto yy4;
 yy65:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy83;
+       if (yych == 'l') goto yy83;
        goto yy4;
 yy66:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy84;
-       if (yych == 'e') goto yy85;
+       if (yych == ':') goto yy84;
        goto yy4;
 yy67:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy86;
+       if (yych == 'e') goto yy85;
+       if (yych == 'p') goto yy86;
        goto yy4;
 yy68:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy87;
+       if (yych == 'b') goto yy87;
        goto yy4;
 yy69:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy88;
+       if (yych == 'h') goto yy88;
        goto yy4;
 yy70:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy89;
+       if (yych == 'c') goto yy89;
+       if (yych == 'e') goto yy90;
        goto yy4;
 yy71:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy90;
+       if (yych == 'l') goto yy91;
        goto yy4;
 yy72:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy91;
+       if (yych == 't') goto yy92;
        goto yy4;
 yy73:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy92;
+       if (yych == 'i') goto yy93;
        goto yy4;
 yy74:
        yych = (unsigned char)*++cur;
-       switch (yych) {
-       case '8':       goto yy93;
-       case 'P':       goto yy95;
-       case 'T':       goto yy97;
-       case 'b':       goto yy99;
-       case 'c':       goto yy101;
-       case 'd':       goto yy102;
-       case 'e':       goto yy104;
-       case 'g':       goto yy106;
-       case 'i':       goto yy108;
-       case 'n':       goto yy110;
-       case 'o':       goto yy111;
-       case 'p':       goto yy113;
-       case 's':       goto yy114;
-       case 't':       goto yy116;
-       case 'u':       goto yy118;
-       case 'w':       goto yy120;
-       case 'x':       goto yy122;
-       default:        goto yy4;
-       }
+       if (yych == 'o') goto yy94;
+       goto yy4;
 yy75:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy124;
+       if (yych == 'u') goto yy95;
        goto yy4;
 yy76:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy125;
+       if (yych == 'e') goto yy96;
        goto yy4;
 yy77:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy126;
+       if (yych == ':') goto yy97;
        goto yy4;
 yy78:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy127;
-       goto yy4;
+       switch (yych) {
+       case '8':       goto yy98;
+       case 'P':       goto yy100;
+       case 'T':       goto yy102;
+       case 'b':       goto yy104;
+       case 'c':       goto yy106;
+       case 'd':       goto yy107;
+       case 'e':       goto yy109;
+       case 'g':       goto yy111;
+       case 'i':       goto yy113;
+       case 'n':       goto yy115;
+       case 'o':       goto yy116;
+       case 'p':       goto yy118;
+       case 's':       goto yy119;
+       case 't':       goto yy121;
+       case 'u':       goto yy123;
+       case 'w':       goto yy125;
+       case 'x':       goto yy127;
+       default:        goto yy4;
+       }
 yy79:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy128;
-       if (yych == 'n') goto yy129;
+       if (yych == ':') goto yy129;
        goto yy4;
 yy80:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy130;
+       if (yych == 'y') goto yy130;
        goto yy4;
 yy81:
        yych = (unsigned char)*++cur;
@@ -473,57 +469,78 @@ yy81:
        goto yy4;
 yy82:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy132;
+       if (yych == 'e') goto yy132;
        goto yy4;
 yy83:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy133;
+       if (yych == 'a') goto yy133;
        goto yy4;
 yy84:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy134;
+       if (yych == 'a') goto yy134;
+       if (yych == 'n') goto yy135;
        goto yy4;
 yy85:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy135;
+       if (yych == 'x') goto yy136;
        goto yy4;
 yy86:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy136;
+       if (yych == 'r') goto yy137;
        goto yy4;
 yy87:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy137;
+       if (yych == 'l') goto yy138;
        goto yy4;
 yy88:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy138;
+       if (yych == 'e') goto yy139;
        goto yy4;
 yy89:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy139;
+       if (yych == 'o') goto yy140;
        goto yy4;
 yy90:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy140;
+       if (yych == 'm') goto yy141;
        goto yy4;
 yy91:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy141;
+       if (yych == ':') goto yy142;
        goto yy4;
 yy92:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy142;
+       if (yych == 'h') goto yy143;
        goto yy4;
 yy93:
+       yych = (unsigned char)*++cur;
+       if (yych == 'v') goto yy144;
+       goto yy4;
+yy94:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy145;
+       goto yy4;
+yy95:
+       yych = (unsigned char)*++cur;
+       if (yych == 'm') goto yy146;
+       goto yy4;
+yy96:
+       yych = (unsigned char)*++cur;
+       if (yych == 'f') goto yy147;
+       goto yy4;
+yy97:
+       yych = (unsigned char)*++cur;
+       if (yych == 'Y') goto yy148;
+       goto yy4;
+yy98:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 68 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::UTF8, opts);   return; }
-#line 526 "src/parse/lex_conf.cc"
-yy95:
+#line 543 "src/parse/lex_conf.cc"
+yy100:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
@@ -535,16 +552,16 @@ yy95:
         opts.set_posix_semantics(b);
         return;
     }
-#line 539 "src/parse/lex_conf.cc"
-yy97:
+#line 556 "src/parse/lex_conf.cc"
+yy102:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 51 "../src/parse/lex_conf.re"
        { opts.set_tags             (lex_conf_bool());   return; }
-#line 547 "src/parse/lex_conf.cc"
-yy99:
+#line 564 "src/parse/lex_conf.cc"
+yy104:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -557,20 +574,20 @@ yy99:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'i') goto yy143;
+                       if (yych == 'i') goto yy149;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy100:
+yy105:
 #line 46 "../src/parse/lex_conf.re"
        { opts.set_bFlag            (lex_conf_bool());   return; }
-#line 568 "src/parse/lex_conf.cc"
-yy101:
+#line 585 "src/parse/lex_conf.cc"
+yy106:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy144;
-       if (yych == 'o') goto yy145;
+       if (yych == 'a') goto yy150;
+       if (yych == 'o') goto yy151;
        goto yy4;
-yy102:
+yy107:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -583,49 +600,49 @@ yy102:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'e') goto yy146;
+                       if (yych == 'e') goto yy152;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy103:
+yy108:
 #line 47 "../src/parse/lex_conf.re"
        { opts.set_dFlag            (lex_conf_bool());   return; }
-#line 594 "src/parse/lex_conf.cc"
-yy104:
+#line 611 "src/parse/lex_conf.cc"
+yy109:
        yych = (unsigned char)*++cur;
        if (yych <= '_') {
                if (yych <= ':') {
                        if (yych == '-') goto yy3;
                        if (yych >= '0') goto yy3;
                } else {
-                       if (yych <= '@') goto yy105;
+                       if (yych <= '@') goto yy110;
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                }
        } else {
                if (yych <= 'l') {
-                       if (yych <= '`') goto yy105;
-                       if (yych == 'c') goto yy147;
+                       if (yych <= '`') goto yy110;
+                       if (yych == 'c') goto yy153;
                        goto yy3;
                } else {
-                       if (yych <= 'm') goto yy148;
-                       if (yych <= 'n') goto yy149;
+                       if (yych <= 'm') goto yy154;
+                       if (yych <= 'n') goto yy155;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy105:
+yy110:
 #line 64 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::EBCDIC, opts); return; }
-#line 620 "src/parse/lex_conf.cc"
-yy106:
+#line 637 "src/parse/lex_conf.cc"
+yy111:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 48 "../src/parse/lex_conf.re"
        { opts.set_gFlag            (lex_conf_bool());   return; }
-#line 628 "src/parse/lex_conf.cc"
-yy108:
+#line 645 "src/parse/lex_conf.cc"
+yy113:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -638,20 +655,20 @@ yy108:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'n') goto yy150;
+                       if (yych == 'n') goto yy156;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy109:
+yy114:
 #line 49 "../src/parse/lex_conf.re"
        { opts.set_iFlag            (lex_conf_bool());   return; }
-#line 649 "src/parse/lex_conf.cc"
-yy110:
+#line 666 "src/parse/lex_conf.cc"
+yy115:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy151;
-       if (yych == 'o') goto yy152;
+       if (yych == 'e') goto yy157;
+       if (yych == 'o') goto yy158;
        goto yy4;
-yy111:
+yy116:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -664,74 +681,74 @@ yy111:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'u') goto yy153;
+                       if (yych == 'u') goto yy159;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy112:
+yy117:
 #line 54 "../src/parse/lex_conf.re"
        { opts.set_output_file      (lex_conf_string()); return; }
-#line 675 "src/parse/lex_conf.cc"
-yy113:
+#line 692 "src/parse/lex_conf.cc"
+yy118:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy154;
+       if (yych == 'o') goto yy160;
        goto yy4;
-yy114:
+yy119:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 50 "../src/parse/lex_conf.re"
        { opts.set_sFlag            (lex_conf_bool());   return; }
-#line 687 "src/parse/lex_conf.cc"
-yy116:
+#line 704 "src/parse/lex_conf.cc"
+yy121:
        yych = (unsigned char)*++cur;
        if (yych <= '^') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy117;
+                       if (yych <= '@') goto yy122;
                        if (yych <= 'Z') goto yy3;
                }
        } else {
                if (yych <= 'a') {
                        if (yych <= '_') goto yy3;
-                       if (yych >= 'a') goto yy155;
+                       if (yych >= 'a') goto yy161;
                } else {
-                       if (yych == 'y') goto yy156;
+                       if (yych == 'y') goto yy162;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy117:
+yy122:
 #line 55 "../src/parse/lex_conf.re"
        { opts.set_header_file      (lex_conf_string()); return; }
-#line 710 "src/parse/lex_conf.cc"
-yy118:
+#line 727 "src/parse/lex_conf.cc"
+yy123:
        yych = (unsigned char)*++cur;
        if (yych <= '^') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy119;
+                       if (yych <= '@') goto yy124;
                        if (yych <= 'Z') goto yy3;
                }
        } else {
                if (yych <= 'n') {
-                       if (yych == '`') goto yy119;
+                       if (yych == '`') goto yy124;
                        if (yych <= 'm') goto yy3;
-                       goto yy157;
+                       goto yy163;
                } else {
-                       if (yych == 't') goto yy158;
+                       if (yych == 't') goto yy164;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy119:
+yy124:
 #line 65 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::UTF32, opts);  return; }
-#line 734 "src/parse/lex_conf.cc"
-yy120:
+#line 751 "src/parse/lex_conf.cc"
+yy125:
        yych = (unsigned char)*++cur;
        if (yych <= 'Z') {
                if (yych <= '/') {
@@ -744,362 +761,342 @@ yy120:
                if (yych <= '`') {
                        if (yych == '_') goto yy3;
                } else {
-                       if (yych == 'i') goto yy159;
+                       if (yych == 'i') goto yy165;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy121:
+yy126:
 #line 66 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::UCS2, opts);   return; }
-#line 755 "src/parse/lex_conf.cc"
-yy122:
+#line 772 "src/parse/lex_conf.cc"
+yy127:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 67 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::UTF16, opts);  return; }
-#line 763 "src/parse/lex_conf.cc"
-yy124:
-       yych = (unsigned char)*++cur;
-       if (yych <= 'r') goto yy4;
-       if (yych <= 's') goto yy160;
-       if (yych <= 't') goto yy161;
-       goto yy4;
-yy125:
-       yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy162;
-       goto yy4;
-yy126:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy163;
-       goto yy4;
-yy127:
-       yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy164;
-       goto yy4;
-yy128:
-       yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy165;
-       goto yy4;
+#line 780 "src/parse/lex_conf.cc"
 yy129:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy166;
+       if (yych <= 'r') goto yy4;
+       if (yych <= 's') goto yy166;
+       if (yych <= 't') goto yy167;
        goto yy4;
 yy130:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy167;
+       if (yych == 'y') goto yy168;
        goto yy4;
 yy131:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy168;
+       if (yych == 'e') goto yy169;
        goto yy4;
 yy132:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy169;
+       if (yych == 'l') goto yy170;
        goto yy4;
 yy133:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy170;
+       if (yych == 'b') goto yy172;
        goto yy4;
 yy134:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy172;
+       if (yych == 'b') goto yy173;
        goto yy4;
 yy135:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy173;
+       if (yych == 'e') goto yy174;
        goto yy4;
 yy136:
        yych = (unsigned char)*++cur;
-       if (yych <= 'd') {
-               if (yych == 'c') goto yy174;
-               goto yy4;
-       } else {
-               if (yych <= 'e') goto yy175;
-               if (yych == 'p') goto yy176;
-               goto yy4;
-       }
+       if (yych == 'p') goto yy175;
+       goto yy4;
 yy137:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy177;
+       if (yych == 'e') goto yy176;
        goto yy4;
 yy138:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy178;
+       if (yych == 'e') goto yy177;
        goto yy4;
 yy139:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy179;
+       if (yych == 'x') goto yy178;
        goto yy4;
 yy140:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy181;
+       if (yych == 'n') goto yy180;
        goto yy4;
 yy141:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy182;
+       if (yych == 'i') goto yy181;
        goto yy4;
 yy142:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy183;
-       goto yy4;
+       if (yych <= 'd') {
+               if (yych == 'c') goto yy182;
+               goto yy4;
+       } else {
+               if (yych <= 'e') goto yy183;
+               if (yych == 'p') goto yy184;
+               goto yy4;
+       }
 yy143:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy184;
+       if (yych == 'r') goto yy185;
        goto yy4;
 yy144:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy185;
+       if (yych == 'i') goto yy186;
        goto yy4;
 yy145:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy186;
+       if (yych == 'o') goto yy187;
        goto yy4;
 yy146:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy187;
+       if (yych == 'p') goto yy189;
        goto yy4;
 yy147:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy188;
+       if (yych == 'i') goto yy190;
        goto yy4;
 yy148:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy189;
+       if (yych == 'Y') goto yy191;
        goto yy4;
 yy149:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy190;
+       if (yych == 't') goto yy192;
        goto yy4;
 yy150:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy191;
+       if (yych == 's') goto yy193;
        goto yy4;
 yy151:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy192;
+       if (yych == 'm') goto yy194;
        goto yy4;
 yy152:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy193;
+       if (yych == 'b') goto yy195;
        goto yy4;
 yy153:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy194;
+       if (yych == 'b') goto yy196;
        goto yy4;
 yy154:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy195;
+       if (yych == 'p') goto yy197;
        goto yy4;
 yy155:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy196;
+       if (yych == 'c') goto yy198;
        goto yy4;
 yy156:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy197;
+       if (yych == 'p') goto yy199;
        goto yy4;
 yy157:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy198;
+       if (yych == 's') goto yy200;
        goto yy4;
 yy158:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy199;
+       if (yych == '-') goto yy201;
        goto yy4;
 yy159:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy200;
+       if (yych == 't') goto yy202;
        goto yy4;
 yy160:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy201;
+       if (yych == 's') goto yy203;
        goto yy4;
 yy161:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy202;
+       if (yych == 'g') goto yy204;
        goto yy4;
 yy162:
        yych = (unsigned char)*++cur;
-       if (yych == 'F') goto yy203;
-       if (yych == 'N') goto yy204;
+       if (yych == 'p') goto yy205;
        goto yy4;
 yy163:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy205;
+       if (yych == 'i') goto yy206;
        goto yy4;
 yy164:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy206;
+       if (yych == 'f') goto yy207;
        goto yy4;
 yy165:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy207;
+       if (yych == 'd') goto yy208;
        goto yy4;
 yy166:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy208;
+       if (yych == 't') goto yy209;
        goto yy4;
 yy167:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy209;
+       if (yych == 'o') goto yy210;
        goto yy4;
 yy168:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy210;
+       if (yych == 'F') goto yy211;
+       if (yych == 'N') goto yy212;
        goto yy4;
 yy169:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy211;
+       if (yych == 'f') goto yy213;
        goto yy4;
 yy170:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 108 "../src/parse/lex_conf.re"
-       { opts.set_yybmHexTable (lex_conf_bool()); return; }
-#line 964 "src/parse/lex_conf.cc"
+#line 75 "../src/parse/lex_conf.re"
+       { opts.set_sentinel(lex_conf_eof()); return; }
+#line 961 "src/parse/lex_conf.cc"
 yy172:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy212;
+       if (yych == 'e') goto yy214;
        goto yy4;
 yy173:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy213;
+       if (yych == 'o') goto yy215;
        goto yy4;
 yy174:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy215;
+       if (yych == 'x') goto yy216;
        goto yy4;
 yy175:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy216;
+       if (yych == 'r') goto yy217;
        goto yy4;
 yy176:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy217;
+       if (yych == 'f') goto yy218;
        goto yy4;
 yy177:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy218;
+       if (yych == ':') goto yy219;
        goto yy4;
 yy178:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy219;
-       goto yy4;
-yy179:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       if (yych == '@') goto yy220;
+#line 105 "../src/parse/lex_conf.re"
+       { opts.set_yybmHexTable (lex_conf_bool()); return; }
+#line 993 "src/parse/lex_conf.cc"
 yy180:
-#line 92 "../src/parse/lex_conf.re"
-       { opts.set_condGoto         (lex_conf_string ()); return; }
-#line 1003 "src/parse/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'v') goto yy220;
+       goto yy4;
 yy181:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy222;
+       if (yych == 't') goto yy221;
        goto yy4;
 yy182:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy223;
+       if (yych == 'h') goto yy223;
        goto yy4;
 yy183:
        yych = (unsigned char)*++cur;
-       switch (yych) {
-       case 'B':       goto yy225;
-       case 'C':       goto yy226;
-       case 'D':       goto yy227;
-       case 'F':       goto yy228;
-       case 'G':       goto yy229;
-       case 'L':       goto yy230;
-       case 'M':       goto yy231;
-       case 'P':       goto yy232;
-       case 'R':       goto yy233;
-       case 'S':       goto yy234;
-       default:        goto yy4;
-       }
+       if (yych == 'n') goto yy224;
+       goto yy4;
 yy184:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy235;
+       if (yych == 'a') goto yy225;
        goto yy4;
 yy185:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy236;
+       if (yych == 'e') goto yy226;
        goto yy4;
 yy186:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy237;
+       if (yych == 'd') goto yy227;
        goto yy4;
 yy187:
-       yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy238;
-       goto yy4;
-yy188:
-       yych = (unsigned char)*++cur;
+       yyaccept = 0;
+       yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy105;
+       if (yych == '@') goto yy228;
+yy188:
+#line 89 "../src/parse/lex_conf.re"
+       { opts.set_condGoto         (lex_conf_string ()); return; }
+#line 1032 "src/parse/lex_conf.cc"
 yy189:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy239;
+       if (yych == 'r') goto yy230;
        goto yy4;
 yy190:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy240;
+       if (yych == 'x') goto yy231;
        goto yy4;
 yy191:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy241;
-       goto yy4;
+       switch (yych) {
+       case 'B':       goto yy233;
+       case 'C':       goto yy234;
+       case 'D':       goto yy235;
+       case 'F':       goto yy236;
+       case 'G':       goto yy237;
+       case 'L':       goto yy238;
+       case 'M':       goto yy239;
+       case 'P':       goto yy240;
+       case 'R':       goto yy241;
+       case 'S':       goto yy242;
+       default:        goto yy4;
+       }
 yy192:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy242;
+       if (yych == '-') goto yy243;
        goto yy4;
 yy193:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy243;
+       if (yych == 'e') goto yy244;
        goto yy4;
 yy194:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy244;
+       if (yych == 'p') goto yy245;
        goto yy4;
 yy195:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy245;
+       if (yych == 'u') goto yy246;
        goto yy4;
 yy196:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy97;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy110;
 yy197:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy246;
+       if (yych == 't') goto yy247;
        goto yy4;
 yy198:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy247;
+       if (yych == 'o') goto yy248;
        goto yy4;
 yy199:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy248;
+       if (yych == 'u') goto yy249;
        goto yy4;
 yy200:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy249;
+       if (yych == 't') goto yy250;
        goto yy4;
 yy201:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy250;
+       if (yych == 'd') goto yy251;
        goto yy4;
 yy202:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy251;
+       if (yych == 'p') goto yy252;
        goto yy4;
 yy203:
        yych = (unsigned char)*++cur;
@@ -1107,253 +1104,285 @@ yy203:
        goto yy4;
 yy204:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy254;
+       if (yych == 's') goto yy102;
        goto yy4;
 yy205:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy255;
+       if (yych == 'e') goto yy254;
        goto yy4;
 yy206:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy256;
+       if (yych == 'c') goto yy255;
        goto yy4;
 yy207:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy258;
+       if (yych == '-') goto yy256;
        goto yy4;
 yy208:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy259;
+       if (yych == 'e') goto yy257;
        goto yy4;
 yy209:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy260;
+       if (yych == 'r') goto yy258;
        goto yy4;
 yy210:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy261;
+       if (yych == 'p') goto yy259;
        goto yy4;
 yy211:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy262;
+       if (yych == 'i') goto yy261;
        goto yy4;
 yy212:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy263;
+       if (yych == 'e') goto yy262;
        goto yy4;
 yy213:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 155 "../src/parse/lex_conf.re"
-       { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
-#line 1152 "src/parse/lex_conf.cc"
+       if (yych == 'i') goto yy263;
+       goto yy4;
+yy214:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy264;
+       goto yy4;
 yy215:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy264;
+       if (yych == 'r') goto yy266;
        goto yy4;
 yy216:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy265;
+       if (yych == 't') goto yy267;
        goto yy4;
 yy217:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy266;
+       if (yych == 'e') goto yy268;
        goto yy4;
 yy218:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy267;
+       if (yych == 'i') goto yy269;
        goto yy4;
 yy219:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy268;
+       if (yych == 'y') goto yy270;
        goto yy4;
 yy220:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy269;
+       if (yych == 'e') goto yy271;
+       goto yy4;
 yy221:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 152 "../src/parse/lex_conf.re"
+       { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
+#line 1181 "src/parse/lex_conf.cc"
+yy223:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy272;
+       goto yy4;
+yy224:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy273;
+       goto yy4;
+yy225:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy274;
+       goto yy4;
+yy226:
+       yych = (unsigned char)*++cur;
+       if (yych == 's') goto yy275;
+       goto yy4;
+yy227:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy276;
+       goto yy4;
+yy228:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy277;
+yy229:
        cur = mar;
        if (yyaccept <= 2) {
                if (yyaccept <= 1) {
                        if (yyaccept == 0) {
-                               goto yy180;
+                               goto yy188;
                        } else {
-                               goto yy257;
+                               goto yy265;
                        }
                } else {
-                       goto yy325;
+                       goto yy333;
                }
        } else {
                if (yyaccept <= 4) {
                        if (yyaccept == 3) {
-                               goto yy390;
+                               goto yy398;
                        } else {
-                               goto yy580;
+                               goto yy588;
                        }
                } else {
-                       goto yy650;
+                       goto yy658;
                }
        }
-yy222:
+yy230:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy270;
+       if (yych == 'e') goto yy278;
        goto yy4;
-yy223:
+yy231:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 88 "../src/parse/lex_conf.re"
+#line 85 "../src/parse/lex_conf.re"
        { opts.set_condPrefix       (lex_conf_string ()); return; }
-#line 1210 "src/parse/lex_conf.cc"
-yy225:
-       yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy271;
-       goto yy4;
-yy226:
-       yych = (unsigned char)*++cur;
-       if (yych <= 'S') {
-               if (yych == 'O') goto yy272;
-               goto yy4;
-       } else {
-               if (yych <= 'T') goto yy273;
-               if (yych <= 'U') goto yy274;
-               goto yy4;
-       }
-yy227:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy275;
-       goto yy4;
-yy228:
-       yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy276;
-       goto yy4;
-yy229:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy277;
-       goto yy4;
-yy230:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy278;
-       if (yych == 'I') goto yy279;
-       goto yy4;
-yy231:
-       yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy280;
-       if (yych == 'T') goto yy281;
-       goto yy4;
-yy232:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy282;
-       goto yy4;
+#line 1239 "src/parse/lex_conf.cc"
 yy233:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy283;
+       if (yych == 'A') goto yy279;
        goto yy4;
 yy234:
        yych = (unsigned char)*++cur;
-       if (yych <= 'J') {
-               if (yych == 'E') goto yy284;
+       if (yych <= 'S') {
+               if (yych == 'O') goto yy280;
                goto yy4;
        } else {
-               if (yych <= 'K') goto yy285;
-               if (yych == 'T') goto yy286;
+               if (yych <= 'T') goto yy281;
+               if (yych <= 'U') goto yy282;
                goto yy4;
        }
 yy235:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy287;
+       if (yych == 'E') goto yy283;
        goto yy4;
 yy236:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy288;
+       if (yych == 'I') goto yy284;
        goto yy4;
 yy237:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy289;
+       if (yych == 'E') goto yy285;
        goto yy4;
 yy238:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy290;
+       if (yych == 'E') goto yy286;
+       if (yych == 'I') goto yy287;
        goto yy4;
 yy239:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy291;
+       if (yych == 'A') goto yy288;
+       if (yych == 'T') goto yy289;
        goto yy4;
 yy240:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy292;
+       if (yych == 'E') goto yy290;
        goto yy4;
 yy241:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy293;
+       if (yych == 'E') goto yy291;
        goto yy4;
 yy242:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy295;
-       goto yy4;
+       if (yych <= 'J') {
+               if (yych == 'E') goto yy292;
+               goto yy4;
+       } else {
+               if (yych <= 'K') goto yy293;
+               if (yych == 'T') goto yy294;
+               goto yy4;
+       }
 yy243:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy296;
+       if (yych == 'v') goto yy295;
        goto yy4;
 yy244:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy297;
+       if (yych == '-') goto yy296;
        goto yy4;
 yy245:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy298;
+       if (yych == 'u') goto yy297;
        goto yy4;
 yy246:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy299;
+       if (yych == 'g') goto yy298;
        goto yy4;
 yy247:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy300;
+       if (yych == 'y') goto yy299;
        goto yy4;
 yy248:
        yych = (unsigned char)*++cur;
-       if (yych == '1') goto yy301;
-       if (yych == '8') goto yy93;
+       if (yych == 'd') goto yy300;
        goto yy4;
 yy249:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy302;
+       if (yych == 't') goto yy301;
        goto yy4;
 yy250:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy303;
+       if (yych == 'e') goto yy303;
        goto yy4;
 yy251:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 141 "../src/parse/lex_conf.re"
-       {
-        const int32_t n = lex_conf_number ();
-        if (n < 0) {
-            msg.fatal(cur_loc(), "configuration 'indent:top' must be nonnegative");
-        }
-        opts.set_topIndent (static_cast<uint32_t> (n));
-        return;
-    }
-#line 1344 "src/parse/lex_conf.cc"
-yy253:
+       if (yych == 'e') goto yy304;
+       goto yy4;
+yy252:
+       yych = (unsigned char)*++cur;
+       if (yych == 'u') goto yy305;
+       goto yy4;
+yy253:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy304;
+       if (yych == 'x') goto yy306;
        goto yy4;
 yy254:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy305;
+       if (yych == '-') goto yy307;
        goto yy4;
 yy255:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy306;
+       if (yych == 'o') goto yy308;
        goto yy4;
 yy256:
+       yych = (unsigned char)*++cur;
+       if (yych == '1') goto yy309;
+       if (yych == '8') goto yy98;
+       goto yy4;
+yy257:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy310;
+       goto yy4;
+yy258:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy311;
+       goto yy4;
+yy259:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 138 "../src/parse/lex_conf.re"
+       {
+        const int32_t n = lex_conf_number ();
+        if (n < 0) {
+            msg.fatal(cur_loc(), "configuration 'indent:top' must be nonnegative");
+        }
+        opts.set_topIndent (static_cast<uint32_t> (n));
+        return;
+    }
+#line 1373 "src/parse/lex_conf.cc"
+yy261:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy312;
+       goto yy4;
+yy262:
+       yych = (unsigned char)*++cur;
+       if (yych == 'x') goto yy313;
+       goto yy4;
+yy263:
+       yych = (unsigned char)*++cur;
+       if (yych == 'x') goto yy314;
+       goto yy4;
+yy264:
        yyaccept = 1;
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 32) {
@@ -1362,580 +1391,580 @@ yy256:
        if (yych <= 0x1F) {
                if (yych == '\t') {
                        ctx = cur;
-                       goto yy308;
+                       goto yy316;
                }
        } else {
                if (yych <= ' ') {
                        ctx = cur;
-                       goto yy308;
+                       goto yy316;
                }
                if (yych == '=') {
                        ctx = cur;
-                       goto yy310;
+                       goto yy318;
                }
        }
-yy257:
-#line 168 "../src/parse/lex_conf.re"
-       { opts.set_startlabel       (lex_conf_string()); return; }
-#line 1381 "src/parse/lex_conf.cc"
-yy258:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy312;
-       goto yy4;
-yy259:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy314;
-       goto yy4;
-yy260:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy315;
-       goto yy4;
-yy261:
-       yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy316;
-       goto yy4;
-yy262:
-       yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy318;
-       goto yy4;
-yy263:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy319;
-       goto yy4;
-yy264:
-       yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy320;
-       goto yy4;
 yy265:
-       yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy321;
-       goto yy4;
+#line 165 "../src/parse/lex_conf.re"
+       { opts.set_startlabel       (lex_conf_string()); return; }
+#line 1410 "src/parse/lex_conf.cc"
 yy266:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy322;
+       if (yych == 't') goto yy320;
        goto yy4;
 yy267:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy323;
+       if (yych == 'l') goto yy322;
        goto yy4;
 yy268:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy324;
+       if (yych == 's') goto yy323;
        goto yy4;
 yy269:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy326;
-       goto yy221;
+       if (yych == 'x') goto yy324;
+       goto yy4;
 yy270:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy327;
+       if (yych == 'y') goto yy326;
        goto yy4;
 yy271:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy328;
+       if (yych == 'r') goto yy327;
        goto yy4;
 yy272:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy329;
+       if (yych == 'c') goto yy328;
        goto yy4;
 yy273:
        yych = (unsigned char)*++cur;
-       if (yych <= 'W') goto yy4;
-       if (yych <= 'X') goto yy330;
-       if (yych <= 'Y') goto yy331;
+       if (yych == 'b') goto yy329;
        goto yy4;
 yy274:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy332;
+       if (yych == 'a') goto yy330;
        goto yy4;
 yy275:
        yych = (unsigned char)*++cur;
-       if (yych == 'B') goto yy333;
+       if (yych == 'h') goto yy331;
        goto yy4;
 yy276:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy334;
+       if (yych == 'r') goto yy332;
        goto yy4;
 yy277:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy335;
-       goto yy4;
+       if (yych == 'o') goto yy334;
+       goto yy229;
 yy278:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy336;
+       if (yych == 'f') goto yy335;
        goto yy4;
 yy279:
        yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy337;
+       if (yych == 'C') goto yy336;
        goto yy4;
 yy280:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy338;
+       if (yych == 'N') goto yy337;
        goto yy4;
 yy281:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy339;
+       if (yych <= 'W') goto yy4;
+       if (yych <= 'X') goto yy338;
+       if (yych <= 'Y') goto yy339;
        goto yy4;
 yy282:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy340;
+       if (yych == 'R') goto yy340;
        goto yy4;
 yy283:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy341;
+       if (yych == 'B') goto yy341;
        goto yy4;
 yy284:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy342;
+       if (yych == 'L') goto yy342;
        goto yy4;
 yy285:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy343;
+       if (yych == 'T') goto yy343;
        goto yy4;
 yy286:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy344;
+       if (yych == 'S') goto yy344;
        goto yy4;
 yy287:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy345;
+       if (yych == 'M') goto yy345;
        goto yy4;
 yy288:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy346;
+       if (yych == 'R') goto yy346;
        goto yy4;
 yy289:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy347;
+       if (yych == 'A') goto yy347;
        goto yy4;
 yy290:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy348;
+       if (yych == 'E') goto yy348;
        goto yy4;
 yy291:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy349;
+       if (yych == 'S') goto yy349;
        goto yy4;
 yy292:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy350;
+       if (yych == 'T') goto yy350;
        goto yy4;
 yy293:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-#line 71 "../src/parse/lex_conf.re"
-       { lex_conf_input(opts);            return; }
-#line 1531 "src/parse/lex_conf.cc"
+       if (yych == 'I') goto yy351;
+       goto yy4;
+yy294:
+       yych = (unsigned char)*++cur;
+       if (yych == 'A') goto yy352;
+       goto yy4;
 yy295:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy351;
+       if (yych == 'e') goto yy353;
        goto yy4;
 yy296:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy352;
+       if (yych == 'i') goto yy354;
        goto yy4;
 yy297:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy353;
+       if (yych == 't') goto yy355;
        goto yy4;
 yy298:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy354;
+       if (yych == '-') goto yy356;
        goto yy4;
 yy299:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy355;
+       if (yych == '-') goto yy357;
        goto yy4;
 yy300:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy356;
+       if (yych == 'i') goto yy358;
        goto yy4;
 yy301:
        yych = (unsigned char)*++cur;
-       if (yych == '6') goto yy122;
-       goto yy4;
-yy302:
-       yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy357;
-       goto yy4;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 71 "../src/parse/lex_conf.re"
+       { lex_conf_input(opts);            return; }
+#line 1560 "src/parse/lex_conf.cc"
 yy303:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy358;
+       if (yych == 'd') goto yy359;
        goto yy4;
 yy304:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy359;
+       if (yych == 'b') goto yy360;
        goto yy4;
 yy305:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy360;
+       if (yych == 't') goto yy361;
        goto yy4;
 yy306:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy362;
+       goto yy4;
+yy307:
+       yych = (unsigned char)*++cur;
+       if (yych == 'h') goto yy363;
+       goto yy4;
+yy308:
+       yych = (unsigned char)*++cur;
+       if (yych == 'd') goto yy364;
+       goto yy4;
+yy309:
+       yych = (unsigned char)*++cur;
+       if (yych == '6') goto yy127;
+       goto yy4;
+yy310:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy365;
+       goto yy4;
+yy311:
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy366;
+       goto yy4;
+yy312:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy367;
+       goto yy4;
+yy313:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy368;
+       goto yy4;
+yy314:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 164 "../src/parse/lex_conf.re"
+#line 161 "../src/parse/lex_conf.re"
        { opts.set_labelPrefix (lex_conf_string ()); return; }
-#line 1583 "src/parse/lex_conf.cc"
-yy308:
+#line 1612 "src/parse/lex_conf.cc"
+yy316:
        ++cur;
        if (lim <= cur) YYFILL(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 64) {
-               goto yy308;
+               goto yy316;
        }
-       if (yych != '=') goto yy221;
-yy310:
+       if (yych != '=') goto yy229;
+yy318:
        ++cur;
        if ((lim - cur) < 2) YYFILL(2);
        yych = (unsigned char)*cur;
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy221;
-                       goto yy310;
+                       if (yych <= 0x08) goto yy229;
+                       goto yy318;
                } else {
-                       if (yych == ' ') goto yy310;
-                       goto yy221;
+                       if (yych == ' ') goto yy318;
+                       goto yy229;
                }
        } else {
                if (yych <= '/') {
-                       if (yych <= '-') goto yy362;
-                       goto yy221;
+                       if (yych <= '-') goto yy370;
+                       goto yy229;
                } else {
-                       if (yych <= '0') goto yy363;
-                       if (yych <= '9') goto yy365;
-                       goto yy221;
+                       if (yych <= '0') goto yy371;
+                       if (yych <= '9') goto yy373;
+                       goto yy229;
                }
        }
-yy312:
+yy320:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 103 "../src/parse/lex_conf.re"
+#line 100 "../src/parse/lex_conf.re"
        { opts.set_bUseStateAbort  (lex_conf_bool()); return; }
-#line 1621 "src/parse/lex_conf.cc"
-yy314:
+#line 1650 "src/parse/lex_conf.cc"
+yy322:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy367;
+       if (yych == 'a') goto yy375;
        goto yy4;
-yy315:
+yy323:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy368;
+       if (yych == 's') goto yy376;
        goto yy4;
-yy316:
+yy324:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 137 "../src/parse/lex_conf.re"
+#line 134 "../src/parse/lex_conf.re"
        { opts.set_tags_prefix    (lex_conf_string ()); return; }
-#line 1637 "src/parse/lex_conf.cc"
-yy318:
+#line 1666 "src/parse/lex_conf.cc"
+yy326:
        yych = (unsigned char)*++cur;
        if (yych <= 'c') {
                if (yych <= '`') goto yy4;
-               if (yych <= 'a') goto yy369;
-               if (yych <= 'b') goto yy370;
-               goto yy371;
+               if (yych <= 'a') goto yy377;
+               if (yych <= 'b') goto yy378;
+               goto yy379;
        } else {
                if (yych <= 'r') goto yy4;
-               if (yych <= 's') goto yy372;
-               if (yych <= 't') goto yy373;
+               if (yych <= 's') goto yy380;
+               if (yych <= 't') goto yy381;
                goto yy4;
        }
-yy319:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy374;
-       goto yy4;
-yy320:
-       yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy375;
-       goto yy4;
-yy321:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy377;
-       goto yy4;
-yy322:
-       yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy378;
-       goto yy4;
-yy323:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy379;
-       goto yy4;
-yy324:
-       yyaccept = 2;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-       if (yych == '@') goto yy380;
-yy325:
-#line 90 "../src/parse/lex_conf.re"
-       { opts.set_condDivider      (lex_conf_string ()); return; }
-#line 1681 "src/parse/lex_conf.cc"
-yy326:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy381;
-       goto yy221;
 yy327:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy382;
+       if (yych == 's') goto yy382;
        goto yy4;
 yy328:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy383;
+       if (yych == 'k') goto yy383;
        goto yy4;
 yy329:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy384;
+       if (yych == 'l') goto yy385;
        goto yy4;
 yy330:
        yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy385;
+       if (yych == 'm') goto yy386;
        goto yy4;
 yy331:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy386;
+       if (yych == 'o') goto yy387;
        goto yy4;
 yy332:
-       yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy387;
-       goto yy4;
+       yyaccept = 2;
+       yych = (unsigned char)*(mar = ++cur);
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       if (yych == '@') goto yy388;
 yy333:
-       yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy388;
-       goto yy4;
+#line 87 "../src/parse/lex_conf.re"
+       { opts.set_condDivider      (lex_conf_string ()); return; }
+#line 1710 "src/parse/lex_conf.cc"
 yy334:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy389;
-       goto yy4;
+       if (yych == 'n') goto yy389;
+       goto yy229;
 yy335:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy391;
-       if (yych == 'S') goto yy392;
+       if (yych == 'i') goto yy390;
        goto yy4;
 yy336:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy393;
+       if (yych == 'K') goto yy391;
        goto yy4;
 yy337:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy394;
+       if (yych == 'D') goto yy392;
        goto yy4;
 yy338:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy395;
+       if (yych == 'M') goto yy393;
        goto yy4;
 yy339:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy396;
+       if (yych == 'P') goto yy394;
        goto yy4;
 yy340:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy397;
+       if (yych == 'S') goto yy395;
        goto yy4;
 yy341:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy399;
+       if (yych == 'U') goto yy396;
        goto yy4;
 yy342:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy400;
-       if (yych == 'S') goto yy401;
+       if (yych == 'L') goto yy397;
        goto yy4;
 yy343:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy402;
+       if (yych == 'C') goto yy399;
+       if (yych == 'S') goto yy400;
        goto yy4;
 yy344:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy404;
+       if (yych == 'S') goto yy401;
        goto yy4;
 yy345:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy405;
+       if (yych == 'I') goto yy402;
        goto yy4;
 yy346:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy406;
+       if (yych == 'K') goto yy403;
        goto yy4;
 yy347:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy407;
+       if (yych == 'G') goto yy404;
        goto yy4;
 yy348:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy408;
+       if (yych == 'K') goto yy405;
        goto yy4;
 yy349:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy409;
+       if (yych == 'T') goto yy407;
        goto yy4;
 yy350:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy410;
+       if (yych == 'C') goto yy408;
+       if (yych == 'S') goto yy409;
        goto yy4;
 yy351:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy411;
+       if (yych == 'P') goto yy410;
        goto yy4;
 yy352:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy412;
+       if (yych == 'G') goto yy412;
        goto yy4;
 yy353:
        yych = (unsigned char)*++cur;
-       if (yybm[0+yych] & 32) {
-               goto yy3;
-       }
-       goto yy112;
+       if (yych == 'c') goto yy413;
+       goto yy4;
 yy354:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy413;
+       if (yych == 'n') goto yy414;
        goto yy4;
 yy355:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy414;
+       if (yych == 'e') goto yy415;
        goto yy4;
 yy356:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy415;
+       if (yych == 'o') goto yy416;
        goto yy4;
 yy357:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy416;
+       if (yych == 'c') goto yy417;
        goto yy4;
 yy358:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy417;
+       if (yych == 'n') goto yy418;
        goto yy4;
 yy359:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy419;
+       if (yych == '-') goto yy419;
        goto yy4;
 yy360:
+       yych = (unsigned char)*++cur;
+       if (yych == 'u') goto yy420;
+       goto yy4;
+yy361:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 102 "../src/parse/lex_conf.re"
-       { opts.set_yynext          (lex_conf_string ()); return; }
-#line 1829 "src/parse/lex_conf.cc"
+       goto yy117;
 yy362:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy221;
-       if (yych <= '9') goto yy365;
-       goto yy221;
+       if (yych == 'c') goto yy421;
+       goto yy4;
 yy363:
-       ++cur;
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy422;
+       goto yy4;
 yy364:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy423;
+       goto yy4;
+yy365:
+       yych = (unsigned char)*++cur;
+       if (yych == 'h') goto yy424;
+       goto yy4;
+yy366:
+       yych = (unsigned char)*++cur;
+       if (yych == 'g') goto yy425;
+       goto yy4;
+yy367:
+       yych = (unsigned char)*++cur;
+       if (yych == 'L') goto yy427;
+       goto yy4;
+yy368:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 99 "../src/parse/lex_conf.re"
+       { opts.set_yynext          (lex_conf_string ()); return; }
+#line 1858 "src/parse/lex_conf.cc"
+yy370:
+       yych = (unsigned char)*++cur;
+       if (yych <= '0') goto yy229;
+       if (yych <= '9') goto yy373;
+       goto yy229;
+yy371:
+       ++cur;
+yy372:
        cur = ctx;
-#line 167 "../src/parse/lex_conf.re"
+#line 164 "../src/parse/lex_conf.re"
        { opts.set_startlabel_force (lex_conf_bool());   return; }
-#line 1841 "src/parse/lex_conf.cc"
-yy365:
+#line 1870 "src/parse/lex_conf.cc"
+yy373:
        ++cur;
        if (lim <= cur) YYFILL(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy365;
+               goto yy373;
        }
-       goto yy364;
-yy367:
+       goto yy372;
+yy375:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy420;
+       if (yych == 'b') goto yy428;
        goto yy4;
-yy368:
+yy376:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy421;
+       if (yych == 'i') goto yy429;
        goto yy4;
-yy369:
+yy377:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy422;
+       if (yych == 'c') goto yy430;
        goto yy4;
-yy370:
+yy378:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy423;
+       if (yych == 'm') goto yy431;
        goto yy4;
-yy371:
+yy379:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy425;
-       if (yych == 't') goto yy427;
+       if (yych == 'h') goto yy433;
+       if (yych == 't') goto yy435;
        goto yy4;
-yy372:
+yy380:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy428;
+       if (yych == 't') goto yy436;
        goto yy4;
-yy373:
+yy381:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy429;
+       if (yych == 'a') goto yy437;
        goto yy4;
-yy374:
+yy382:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy430;
+       if (yych == 'i') goto yy438;
        goto yy4;
-yy375:
+yy383:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 162 "../src/parse/lex_conf.re"
+#line 159 "../src/parse/lex_conf.re"
        { opts.set_fill_check   (lex_conf_bool()); return; }
-#line 1890 "src/parse/lex_conf.cc"
-yy377:
+#line 1919 "src/parse/lex_conf.cc"
+yy385:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy431;
+       if (yych == 'e') goto yy439;
        goto yy4;
-yy378:
+yy386:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy433;
+       if (yych == 'e') goto yy441;
        goto yy4;
-yy379:
+yy387:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy434;
+       if (yych == 'l') goto yy442;
        goto yy4;
-yy380:
+yy388:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy435;
-       goto yy221;
-yy381:
+       if (yych == 'c') goto yy443;
+       goto yy229;
+yy389:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy436;
-       goto yy221;
-yy382:
+       if (yych == 'd') goto yy444;
+       goto yy229;
+yy390:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy438;
+       if (yych == 'x') goto yy446;
        goto yy4;
-yy383:
+yy391:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy440;
+       if (yych == 'U') goto yy448;
        goto yy4;
-yy384:
+yy392:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy441;
+       if (yych == 'T') goto yy449;
        goto yy4;
-yy385:
+yy393:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy442;
+       if (yych == 'A') goto yy450;
        goto yy4;
-yy386:
+yy394:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy443;
+       if (yych == 'E') goto yy451;
        goto yy4;
-yy387:
+yy395:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy445;
+       if (yych == 'O') goto yy453;
        goto yy4;
-yy388:
+yy396:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy446;
+       if (yych == 'G') goto yy454;
        goto yy4;
-yy389:
+yy397:
        yyaccept = 3;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -1943,417 +1972,417 @@ yy389:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy448;
+                       if (yych <= ':') goto yy456;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy449;
+                       if (yych <= '@') goto yy457;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy390;
+                       if (yych == '`') goto yy398;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy390:
-#line 157 "../src/parse/lex_conf.re"
+yy398:
+#line 154 "../src/parse/lex_conf.re"
        { opts.set_fill         (lex_conf_string ()); return; }
-#line 1961 "src/parse/lex_conf.cc"
-yy391:
+#line 1990 "src/parse/lex_conf.cc"
+yy399:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy450;
+       if (yych == 'O') goto yy458;
        goto yy4;
-yy392:
+yy400:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy451;
+       if (yych == 'T') goto yy459;
        goto yy4;
-yy393:
+yy401:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy452;
+       if (yych == 'T') goto yy460;
        goto yy4;
-yy394:
+yy402:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy453;
+       if (yych == 'T') goto yy461;
        goto yy4;
-yy395:
+yy403:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy455;
+       if (yych == 'E') goto yy463;
        goto yy4;
-yy396:
+yy404:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy456;
-       if (yych == 'P') goto yy458;
+       if (yych == 'N') goto yy464;
+       if (yych == 'P') goto yy466;
        goto yy4;
-yy397:
+yy405:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 124 "../src/parse/lex_conf.re"
+#line 121 "../src/parse/lex_conf.re"
        { opts.set_yypeek       (lex_conf_string ()); return; }
-#line 1994 "src/parse/lex_conf.cc"
-yy399:
+#line 2023 "src/parse/lex_conf.cc"
+yy407:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy460;
+       if (yych == 'O') goto yy468;
        goto yy4;
-yy400:
+yy408:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy461;
+       if (yych == 'O') goto yy469;
        goto yy4;
-yy401:
+yy409:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy462;
+       if (yych == 'T') goto yy470;
        goto yy4;
-yy402:
+yy410:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 125 "../src/parse/lex_conf.re"
+#line 122 "../src/parse/lex_conf.re"
        { opts.set_yyskip       (lex_conf_string ()); return; }
-#line 2014 "src/parse/lex_conf.cc"
-yy404:
+#line 2043 "src/parse/lex_conf.cc"
+yy412:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy463;
-       if (yych == 'P') goto yy465;
+       if (yych == 'N') goto yy471;
+       if (yych == 'P') goto yy473;
        goto yy4;
-yy405:
+yy413:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy467;
+       if (yych == 't') goto yy475;
        goto yy4;
-yy406:
+yy414:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy468;
-       if (yych == 'v') goto yy469;
+       if (yych == 's') goto yy476;
+       if (yych == 'v') goto yy477;
        goto yy4;
-yy407:
+yy415:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy470;
+       if (yych == 'd') goto yy478;
        goto yy4;
-yy408:
+yy416:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy471;
+       if (yych == 'u') goto yy479;
        goto yy4;
-yy409:
+yy417:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy472;
+       if (yych == 'l') goto yy480;
        goto yy4;
-yy410:
+yy418:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy473;
+       if (yych == 'g') goto yy481;
        goto yy4;
-yy411:
+yy419:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy474;
+       if (yych == 'i') goto yy482;
        goto yy4;
-yy412:
+yy420:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy475;
+       if (yych == 'g') goto yy483;
        goto yy4;
-yy413:
+yy421:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy476;
+       if (yych == 'a') goto yy484;
        goto yy4;
-yy414:
+yy422:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy477;
+       if (yych == 'a') goto yy485;
        goto yy4;
-yy415:
+yy423:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy119;
-yy416:
+       goto yy124;
+yy424:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy478;
+       if (yych == 'a') goto yy486;
        goto yy4;
-yy417:
+yy425:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 140 "../src/parse/lex_conf.re"
+#line 137 "../src/parse/lex_conf.re"
        { opts.set_indString (lex_conf_string ()); return; }
-#line 2078 "src/parse/lex_conf.cc"
-yy419:
+#line 2107 "src/parse/lex_conf.cc"
+yy427:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy479;
+       if (yych == 'a') goto yy487;
        goto yy4;
-yy420:
+yy428:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy480;
+       if (yych == 'e') goto yy488;
        goto yy4;
-yy421:
+yy429:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy481;
+       if (yych == 'o') goto yy489;
        goto yy4;
-yy422:
+yy430:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy482;
+       if (yych == 'c') goto yy490;
        goto yy4;
-yy423:
+yy431:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 107 "../src/parse/lex_conf.re"
+#line 104 "../src/parse/lex_conf.re"
        { opts.set_yybm         (lex_conf_string ()); return; }
-#line 2102 "src/parse/lex_conf.cc"
-yy425:
+#line 2131 "src/parse/lex_conf.cc"
+yy433:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 153 "../src/parse/lex_conf.re"
+#line 150 "../src/parse/lex_conf.re"
        { opts.set_yych           (lex_conf_string ()); return; }
-#line 2110 "src/parse/lex_conf.cc"
-yy427:
+#line 2139 "src/parse/lex_conf.cc"
+yy435:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy483;
+       if (yych == 'a') goto yy491;
        goto yy4;
-yy428:
+yy436:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy484;
+       if (yych == 'a') goto yy492;
        goto yy4;
-yy429:
+yy437:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy485;
+       if (yych == 'r') goto yy493;
        goto yy4;
-yy430:
+yy438:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy486;
+       if (yych == 'o') goto yy494;
        goto yy4;
-yy431:
+yy439:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 158 "../src/parse/lex_conf.re"
+#line 155 "../src/parse/lex_conf.re"
        { opts.set_fill_use     (lex_conf_bool()); return; }
-#line 2134 "src/parse/lex_conf.cc"
-yy433:
+#line 2163 "src/parse/lex_conf.cc"
+yy441:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy487;
+       if (yych == 't') goto yy495;
        goto yy4;
-yy434:
+yy442:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy488;
+       if (yych == 'd') goto yy496;
        goto yy4;
-yy435:
+yy443:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy490;
-       goto yy221;
-yy436:
+       if (yych == 'o') goto yy498;
+       goto yy229;
+yy444:
        ++cur;
-#line 93 "../src/parse/lex_conf.re"
+#line 90 "../src/parse/lex_conf.re"
        { opts.set_condGotoParam    (lex_conf_string ()); return; }
-#line 2151 "src/parse/lex_conf.cc"
-yy438:
+#line 2180 "src/parse/lex_conf.cc"
+yy446:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 89 "../src/parse/lex_conf.re"
+#line 86 "../src/parse/lex_conf.re"
        { opts.set_condEnumPrefix   (lex_conf_string ()); return; }
-#line 2159 "src/parse/lex_conf.cc"
-yy440:
+#line 2188 "src/parse/lex_conf.cc"
+yy448:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy491;
+       if (yych == 'P') goto yy499;
        goto yy4;
-yy441:
+yy449:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy493;
+       if (yych == 'Y') goto yy501;
        goto yy4;
-yy442:
+yy450:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy494;
+       if (yych == 'R') goto yy502;
        goto yy4;
-yy443:
+yy451:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 152 "../src/parse/lex_conf.re"
+#line 149 "../src/parse/lex_conf.re"
        { opts.set_yyctype        (lex_conf_string ()); return; }
-#line 2179 "src/parse/lex_conf.cc"
-yy445:
+#line 2208 "src/parse/lex_conf.cc"
+yy453:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy495;
+       if (yych == 'R') goto yy503;
        goto yy4;
-yy446:
+yy454:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 150 "../src/parse/lex_conf.re"
+#line 147 "../src/parse/lex_conf.re"
        { opts.set_yydebug (lex_conf_string ()); return; }
-#line 2191 "src/parse/lex_conf.cc"
-yy448:
+#line 2220 "src/parse/lex_conf.cc"
+yy456:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy497;
+       if (yych == 'n') goto yy505;
        goto yy4;
-yy449:
+yy457:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy498;
-       goto yy221;
-yy450:
+       if (yych == 'l') goto yy506;
+       goto yy229;
+yy458:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy499;
+       if (yych == 'N') goto yy507;
        goto yy4;
-yy451:
+yy459:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy500;
+       if (yych == 'A') goto yy508;
        goto yy4;
-yy452:
+yy460:
        yych = (unsigned char)*++cur;
-       if (yych == 'H') goto yy501;
+       if (yych == 'H') goto yy509;
        goto yy4;
-yy453:
+yy461:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 122 "../src/parse/lex_conf.re"
+#line 119 "../src/parse/lex_conf.re"
        { opts.set_yylimit     (lex_conf_string ()); return; }
-#line 2219 "src/parse/lex_conf.cc"
-yy455:
+#line 2248 "src/parse/lex_conf.cc"
+yy463:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy502;
+       if (yych == 'R') goto yy510;
        goto yy4;
-yy456:
+yy464:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 134 "../src/parse/lex_conf.re"
+#line 131 "../src/parse/lex_conf.re"
        { opts.set_yymtagn      (lex_conf_string ()); return; }
-#line 2231 "src/parse/lex_conf.cc"
-yy458:
+#line 2260 "src/parse/lex_conf.cc"
+yy466:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 135 "../src/parse/lex_conf.re"
+#line 132 "../src/parse/lex_conf.re"
        { opts.set_yymtagp      (lex_conf_string ()); return; }
-#line 2239 "src/parse/lex_conf.cc"
-yy460:
+#line 2268 "src/parse/lex_conf.cc"
+yy468:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy504;
+       if (yych == 'R') goto yy512;
        goto yy4;
-yy461:
+yy469:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy505;
+       if (yych == 'N') goto yy513;
        goto yy4;
-yy462:
+yy470:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy506;
+       if (yych == 'A') goto yy514;
        goto yy4;
-yy463:
+yy471:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 132 "../src/parse/lex_conf.re"
+#line 129 "../src/parse/lex_conf.re"
        { opts.set_yystagn      (lex_conf_string ()); return; }
-#line 2259 "src/parse/lex_conf.cc"
-yy465:
+#line 2288 "src/parse/lex_conf.cc"
+yy473:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 133 "../src/parse/lex_conf.re"
+#line 130 "../src/parse/lex_conf.re"
        { opts.set_yystagp      (lex_conf_string ()); return; }
-#line 2267 "src/parse/lex_conf.cc"
-yy467:
+#line 2296 "src/parse/lex_conf.cc"
+yy475:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy507;
+       if (yych == 'o') goto yy515;
        goto yy4;
-yy468:
+yy476:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy508;
+       if (yych == 'e') goto yy516;
        goto yy4;
-yy469:
+yy477:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy509;
+       if (yych == 'e') goto yy517;
        goto yy4;
-yy470:
+yy478:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy510;
+       if (yych == '-') goto yy518;
        goto yy4;
-yy471:
+yy479:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy511;
+       if (yych == 't') goto yy519;
        goto yy4;
-yy472:
+yy480:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy512;
+       if (yych == 'a') goto yy520;
        goto yy4;
-yy473:
+yy481:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy513;
+       if (yych == '-') goto yy521;
        goto yy4;
-yy474:
+yy482:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy514;
+       if (yych == 'f') goto yy522;
        goto yy4;
-yy475:
+yy483:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy515;
+       if (yych == '-') goto yy523;
        goto yy4;
-yy476:
+yy484:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy516;
+       if (yych == 'p') goto yy524;
        goto yy4;
-yy477:
+yy485:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy517;
+       if (yych == 'd') goto yy525;
        goto yy4;
-yy478:
+yy486:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy518;
+       if (yych == 'r') goto yy526;
        goto yy4;
-yy479:
+yy487:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy519;
+       if (yych == 'b') goto yy527;
        goto yy4;
-yy480:
+yy488:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy520;
+       if (yych == 'l') goto yy528;
        goto yy4;
-yy481:
+yy489:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy522;
+       if (yych == 'n') goto yy530;
        goto yy4;
-yy482:
+yy490:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy524;
+       if (yych == 'e') goto yy532;
        goto yy4;
-yy483:
+yy491:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy525;
+       if (yych == 'b') goto yy533;
        goto yy4;
-yy484:
+yy492:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy526;
+       if (yych == 'b') goto yy534;
        goto yy4;
-yy485:
+yy493:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy527;
+       if (yych == 'g') goto yy535;
        goto yy4;
-yy486:
+yy494:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy528;
+       if (yych == 'n') goto yy536;
        goto yy4;
-yy487:
+yy495:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy530;
+       if (yych == 'e') goto yy538;
        goto yy4;
-yy488:
+yy496:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 109 "../src/parse/lex_conf.re"
+#line 106 "../src/parse/lex_conf.re"
        {
         const int32_t n = lex_conf_number ();
         if (n < 0) {
@@ -2362,12 +2391,12 @@ yy488:
         opts.set_cGotoThreshold (static_cast<uint32_t> (n));
         return;
     }
-#line 2366 "src/parse/lex_conf.cc"
-yy490:
+#line 2395 "src/parse/lex_conf.cc"
+yy498:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy531;
-       goto yy221;
-yy491:
+       if (yych == 'n') goto yy539;
+       goto yy229;
+yy499:
        yych = (unsigned char)*++cur;
        if (yych <= 'B') {
                if (yych <= '/') {
@@ -2378,388 +2407,388 @@ yy491:
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= 'C') goto yy532;
+                       if (yych <= 'C') goto yy540;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy492;
+                       if (yych == '`') goto yy500;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy492:
-#line 126 "../src/parse/lex_conf.re"
+yy500:
+#line 123 "../src/parse/lex_conf.re"
        { opts.set_yybackup     (lex_conf_string ()); return; }
-#line 2392 "src/parse/lex_conf.cc"
-yy493:
+#line 2421 "src/parse/lex_conf.cc"
+yy501:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy533;
+       if (yych == 'P') goto yy541;
        goto yy4;
-yy494:
+yy502:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy534;
+       if (yych == 'K') goto yy542;
        goto yy4;
-yy495:
+yy503:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 119 "../src/parse/lex_conf.re"
+#line 116 "../src/parse/lex_conf.re"
        { opts.set_yycursor    (lex_conf_string ()); return; }
-#line 2408 "src/parse/lex_conf.cc"
-yy497:
+#line 2437 "src/parse/lex_conf.cc"
+yy505:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy535;
+       if (yych == 'a') goto yy543;
        goto yy4;
-yy498:
+yy506:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy536;
-       goto yy221;
-yy499:
+       if (yych == 'e') goto yy544;
+       goto yy229;
+yy507:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy537;
+       if (yych == 'D') goto yy545;
        goto yy4;
-yy500:
+yy508:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy538;
+       if (yych == 'T') goto yy546;
        goto yy4;
-yy501:
+yy509:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy539;
+       if (yych == 'A') goto yy547;
        goto yy4;
-yy502:
+yy510:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 120 "../src/parse/lex_conf.re"
+#line 117 "../src/parse/lex_conf.re"
        { opts.set_yymarker    (lex_conf_string ()); return; }
-#line 2436 "src/parse/lex_conf.cc"
-yy504:
+#line 2465 "src/parse/lex_conf.cc"
+yy512:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy540;
+       if (yych == 'E') goto yy548;
        goto yy4;
-yy505:
+yy513:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy542;
+       if (yych == 'D') goto yy550;
        goto yy4;
-yy506:
+yy514:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy543;
+       if (yych == 'T') goto yy551;
        goto yy4;
-yy507:
+yy515:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy544;
+       if (yych == 'r') goto yy552;
        goto yy4;
-yy508:
+yy516:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy545;
+       if (yych == 'n') goto yy553;
        goto yy4;
-yy509:
+yy517:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy546;
+       if (yych == 'r') goto yy554;
        goto yy4;
-yy510:
+yy518:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy547;
+       if (yych == 'g') goto yy555;
        goto yy4;
-yy511:
+yy519:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy548;
+       if (yych == 'p') goto yy556;
        goto yy4;
-yy512:
+yy520:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy549;
+       if (yych == 's') goto yy557;
        goto yy4;
-yy513:
+yy521:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy550;
+       if (yych == 'p') goto yy558;
        goto yy4;
-yy514:
+yy522:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy114;
+       if (yych == 's') goto yy119;
        goto yy4;
-yy515:
+yy523:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy551;
+       if (yych == 'i') goto yy559;
        goto yy4;
-yy516:
+yy524:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy552;
+       if (yych == 't') goto yy560;
        goto yy4;
-yy517:
+yy525:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy553;
+       if (yych == 'e') goto yy561;
        goto yy4;
-yy518:
+yy526:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy554;
+       if (yych == 's') goto yy562;
        goto yy4;
-yy519:
+yy527:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy555;
+       if (yych == 'e') goto yy563;
        goto yy4;
-yy520:
+yy528:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 104 "../src/parse/lex_conf.re"
+#line 101 "../src/parse/lex_conf.re"
        { opts.set_bUseStateNext   (lex_conf_bool()); return; }
-#line 2508 "src/parse/lex_conf.cc"
-yy522:
+#line 2537 "src/parse/lex_conf.cc"
+yy530:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 138 "../src/parse/lex_conf.re"
+#line 135 "../src/parse/lex_conf.re"
        { opts.set_tags_expression(lex_conf_string ()); return; }
-#line 2516 "src/parse/lex_conf.cc"
-yy524:
+#line 2545 "src/parse/lex_conf.cc"
+yy532:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy556;
+       if (yych == 'p') goto yy564;
        goto yy4;
-yy525:
+yy533:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy557;
+       if (yych == 'l') goto yy565;
        goto yy4;
-yy526:
+yy534:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy558;
+       if (yych == 'l') goto yy566;
        goto yy4;
-yy527:
+yy535:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy559;
+       if (yych == 'e') goto yy567;
        goto yy4;
-yy528:
+yy536:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 154 "../src/parse/lex_conf.re"
+#line 151 "../src/parse/lex_conf.re"
        { opts.set_yychConversion (lex_conf_bool()); return; }
-#line 2540 "src/parse/lex_conf.cc"
-yy530:
+#line 2569 "src/parse/lex_conf.cc"
+yy538:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy560;
+       if (yych == 'r') goto yy568;
        goto yy4;
-yy531:
+yy539:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy562;
-       goto yy221;
-yy532:
+       if (yych == 'd') goto yy570;
+       goto yy229;
+yy540:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy564;
+       if (yych == 'T') goto yy572;
        goto yy4;
-yy533:
+yy541:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy565;
+       if (yych == 'E') goto yy573;
        goto yy4;
-yy534:
+yy542:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy567;
+       if (yych == 'E') goto yy575;
        goto yy4;
-yy535:
+yy543:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy568;
+       if (yych == 'k') goto yy576;
        goto yy4;
-yy536:
+yy544:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy569;
-       goto yy221;
-yy537:
+       if (yych == 'n') goto yy577;
+       goto yy229;
+yy545:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy571;
+       if (yych == 'I') goto yy579;
        goto yy4;
-yy538:
+yy546:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy572;
+       if (yych == 'E') goto yy580;
        goto yy4;
-yy539:
+yy547:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy574;
+       if (yych == 'N') goto yy582;
        goto yy4;
-yy540:
+yy548:
        yych = (unsigned char)*++cur;
        if (yych <= 'C') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= ':') goto yy3;
-                       if (yych <= '@') goto yy541;
+                       if (yych <= '@') goto yy549;
                        if (yych <= 'B') goto yy3;
-                       goto yy576;
+                       goto yy584;
                }
        } else {
                if (yych <= '^') {
-                       if (yych == 'T') goto yy577;
+                       if (yych == 'T') goto yy585;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy541;
+                       if (yych == '`') goto yy549;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy541:
-#line 128 "../src/parse/lex_conf.re"
+yy549:
+#line 125 "../src/parse/lex_conf.re"
        { opts.set_yyrestore    (lex_conf_string ()); return; }
-#line 2604 "src/parse/lex_conf.cc"
-yy542:
+#line 2633 "src/parse/lex_conf.cc"
+yy550:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy578;
+       if (yych == 'I') goto yy586;
        goto yy4;
-yy543:
+yy551:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy579;
+       if (yych == 'E') goto yy587;
        goto yy4;
-yy544:
+yy552:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy581;
+       if (yych == 's') goto yy589;
        goto yy4;
-yy545:
+yy553:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy582;
+       if (yych == 's') goto yy590;
        goto yy4;
-yy546:
+yy554:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy583;
+       if (yych == 't') goto yy591;
        goto yy4;
-yy547:
+yy555:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy584;
+       if (yych == 'o') goto yy592;
        goto yy4;
-yy548:
+yy556:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy585;
+       if (yych == 'u') goto yy593;
        goto yy4;
-yy549:
+yy557:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy586;
+       if (yych == 's') goto yy594;
        goto yy4;
-yy550:
+yy558:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy588;
+       if (yych == 'o') goto yy596;
        goto yy4;
-yy551:
+yy559:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy589;
+       if (yych == 'n') goto yy597;
        goto yy4;
-yy552:
+yy560:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy590;
+       if (yych == 'u') goto yy598;
        goto yy4;
-yy553:
+yy561:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy591;
+       if (yych == 'r') goto yy599;
        goto yy4;
-yy554:
+yy562:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy121;
-yy555:
+       goto yy126;
+yy563:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy592;
+       if (yych == 'l') goto yy600;
        goto yy4;
-yy556:
+yy564:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy594;
+       if (yych == 't') goto yy602;
        goto yy4;
-yy557:
+yy565:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy596;
+       if (yych == 'e') goto yy604;
        goto yy4;
-yy558:
+yy566:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy598;
+       if (yych == 'e') goto yy606;
        goto yy4;
-yy559:
+yy567:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy600;
+       if (yych == 't') goto yy608;
        goto yy4;
-yy560:
+yy568:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 160 "../src/parse/lex_conf.re"
+#line 157 "../src/parse/lex_conf.re"
        { opts.set_fill_arg_use (lex_conf_bool()); return; }
-#line 2686 "src/parse/lex_conf.cc"
-yy562:
+#line 2715 "src/parse/lex_conf.cc"
+yy570:
        ++cur;
-#line 91 "../src/parse/lex_conf.re"
+#line 88 "../src/parse/lex_conf.re"
        { opts.set_condDividerParam (lex_conf_string ()); return; }
-#line 2691 "src/parse/lex_conf.cc"
-yy564:
+#line 2720 "src/parse/lex_conf.cc"
+yy572:
        yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy602;
+       if (yych == 'X') goto yy610;
        goto yy4;
-yy565:
+yy573:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 82 "../src/parse/lex_conf.re"
+#line 79 "../src/parse/lex_conf.re"
        { opts.set_yycondtype       (lex_conf_string ()); return; }
-#line 2703 "src/parse/lex_conf.cc"
-yy567:
+#line 2732 "src/parse/lex_conf.cc"
+yy575:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy604;
+       if (yych == 'R') goto yy612;
        goto yy4;
-yy568:
+yy576:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy606;
+       if (yych == 'e') goto yy614;
        goto yy4;
-yy569:
+yy577:
        ++cur;
-#line 159 "../src/parse/lex_conf.re"
+#line 156 "../src/parse/lex_conf.re"
        { opts.set_fill_arg     (lex_conf_string ()); return; }
-#line 2716 "src/parse/lex_conf.cc"
-yy571:
+#line 2745 "src/parse/lex_conf.cc"
+yy579:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy607;
+       if (yych == 'T') goto yy615;
        goto yy4;
-yy572:
+yy580:
        yych = (unsigned char)*++cur;
        if (yych <= '@') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy608;
+                       if (yych <= ':') goto yy616;
                }
        } else {
                if (yych <= '_') {
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                } else {
-                       if (yych <= '`') goto yy573;
+                       if (yych <= '`') goto yy581;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy573:
-#line 96 "../src/parse/lex_conf.re"
+yy581:
+#line 93 "../src/parse/lex_conf.re"
        { opts.set_state_get       (lex_conf_string ()); return; }
-#line 2742 "src/parse/lex_conf.cc"
-yy574:
+#line 2771 "src/parse/lex_conf.cc"
+yy582:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 131 "../src/parse/lex_conf.re"
+#line 128 "../src/parse/lex_conf.re"
        { opts.set_yylessthan   (lex_conf_string ()); return; }
-#line 2750 "src/parse/lex_conf.cc"
-yy576:
+#line 2779 "src/parse/lex_conf.cc"
+yy584:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy609;
+       if (yych == 'T') goto yy617;
        goto yy4;
-yy577:
+yy585:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy610;
+       if (yych == 'A') goto yy618;
        goto yy4;
-yy578:
+yy586:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy611;
+       if (yych == 'T') goto yy619;
        goto yy4;
-yy579:
+yy587:
        yyaccept = 4;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -2767,316 +2796,316 @@ yy579:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy612;
+                       if (yych <= ':') goto yy620;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy613;
+                       if (yych <= '@') goto yy621;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy580;
+                       if (yych == '`') goto yy588;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy580:
-#line 98 "../src/parse/lex_conf.re"
+yy588:
+#line 95 "../src/parse/lex_conf.re"
        { opts.set_state_set       (lex_conf_string ()); return; }
-#line 2785 "src/parse/lex_conf.cc"
-yy581:
+#line 2814 "src/parse/lex_conf.cc"
+yy589:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy100;
-yy582:
+       goto yy105;
+yy590:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy614;
+       if (yych == 'i') goto yy622;
        goto yy4;
-yy583:
+yy591:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy615;
+       if (yych == 'e') goto yy623;
        goto yy4;
-yy584:
+yy592:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy616;
+       if (yych == 't') goto yy624;
        goto yy4;
-yy585:
+yy593:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy617;
+       if (yych == 't') goto yy625;
        goto yy4;
-yy586:
+yy594:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 72 "../src/parse/lex_conf.re"
        { lex_conf_empty_class(opts);      return; }
-#line 2815 "src/parse/lex_conf.cc"
-yy588:
+#line 2844 "src/parse/lex_conf.cc"
+yy596:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy618;
+       if (yych == 'l') goto yy626;
        goto yy4;
-yy589:
+yy597:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy619;
+       if (yych == 'f') goto yy627;
        goto yy4;
-yy590:
+yy598:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy620;
+       if (yych == 'r') goto yy628;
        goto yy4;
-yy591:
+yy599:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy117;
-yy592:
+       goto yy122;
+yy600:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 101 "../src/parse/lex_conf.re"
+#line 98 "../src/parse/lex_conf.re"
        { opts.set_yyfilllabel     (lex_conf_string ()); return; }
-#line 2841 "src/parse/lex_conf.cc"
-yy594:
+#line 2870 "src/parse/lex_conf.cc"
+yy602:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 105 "../src/parse/lex_conf.re"
+#line 102 "../src/parse/lex_conf.re"
        { opts.set_yyaccept        (lex_conf_string ()); return; }
-#line 2849 "src/parse/lex_conf.cc"
-yy596:
+#line 2878 "src/parse/lex_conf.cc"
+yy604:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 94 "../src/parse/lex_conf.re"
+#line 91 "../src/parse/lex_conf.re"
        { opts.set_yyctable         (lex_conf_string ()); return; }
-#line 2857 "src/parse/lex_conf.cc"
-yy598:
+#line 2886 "src/parse/lex_conf.cc"
+yy606:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 171 "../src/parse/lex_conf.re"
+#line 168 "../src/parse/lex_conf.re"
        { lex_conf_string (); return; }
-#line 2865 "src/parse/lex_conf.cc"
-yy600:
+#line 2894 "src/parse/lex_conf.cc"
+yy608:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 117 "../src/parse/lex_conf.re"
+#line 114 "../src/parse/lex_conf.re"
        { opts.set_yytarget (lex_conf_string ()); return; }
-#line 2873 "src/parse/lex_conf.cc"
-yy602:
+#line 2902 "src/parse/lex_conf.cc"
+yy610:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 127 "../src/parse/lex_conf.re"
+#line 124 "../src/parse/lex_conf.re"
        { opts.set_yybackupctx  (lex_conf_string ()); return; }
-#line 2881 "src/parse/lex_conf.cc"
-yy604:
+#line 2910 "src/parse/lex_conf.cc"
+yy612:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 121 "../src/parse/lex_conf.re"
+#line 118 "../src/parse/lex_conf.re"
        { opts.set_yyctxmarker (lex_conf_string ()); return; }
-#line 2889 "src/parse/lex_conf.cc"
-yy606:
+#line 2918 "src/parse/lex_conf.cc"
+yy614:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy621;
+       if (yych == 'd') goto yy629;
        goto yy4;
-yy607:
+yy615:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy623;
+       if (yych == 'I') goto yy631;
        goto yy4;
-yy608:
+yy616:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy624;
+       if (yych == 'n') goto yy632;
        goto yy4;
-yy609:
+yy617:
        yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy625;
+       if (yych == 'X') goto yy633;
        goto yy4;
-yy610:
+yy618:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy627;
+       if (yych == 'G') goto yy635;
        goto yy4;
-yy611:
+yy619:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy629;
+       if (yych == 'I') goto yy637;
        goto yy4;
-yy612:
+yy620:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy630;
+       if (yych == 'n') goto yy638;
        goto yy4;
-yy613:
+yy621:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy631;
-       goto yy221;
-yy614:
+       if (yych == 's') goto yy639;
+       goto yy229;
+yy622:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy632;
+       if (yych == 't') goto yy640;
        goto yy4;
-yy615:
+yy623:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy633;
+       if (yych == 'd') goto yy641;
        goto yy4;
-yy616:
+yy624:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy635;
+       if (yych == 'o') goto yy643;
        goto yy4;
-yy617:
+yy625:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy103;
-yy618:
+       goto yy108;
+yy626:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy636;
+       if (yych == 'i') goto yy644;
        goto yy4;
-yy619:
+yy627:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy637;
+       if (yych == 'o') goto yy645;
        goto yy4;
-yy620:
+yy628:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy638;
+       if (yych == 'e') goto yy646;
        goto yy4;
-yy621:
+yy629:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 161 "../src/parse/lex_conf.re"
+#line 158 "../src/parse/lex_conf.re"
        { opts.set_fill_naked   (lex_conf_bool()); return; }
-#line 2959 "src/parse/lex_conf.cc"
-yy623:
+#line 2988 "src/parse/lex_conf.cc"
+yy631:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy639;
+       if (yych == 'O') goto yy647;
        goto yy4;
-yy624:
+yy632:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy640;
+       if (yych == 'a') goto yy648;
        goto yy4;
-yy625:
+yy633:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 129 "../src/parse/lex_conf.re"
+#line 126 "../src/parse/lex_conf.re"
        { opts.set_yyrestorectx (lex_conf_string ()); return; }
-#line 2975 "src/parse/lex_conf.cc"
-yy627:
+#line 3004 "src/parse/lex_conf.cc"
+yy635:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 130 "../src/parse/lex_conf.re"
+#line 127 "../src/parse/lex_conf.re"
        { opts.set_yyrestoretag (lex_conf_string ()); return; }
-#line 2983 "src/parse/lex_conf.cc"
-yy629:
+#line 3012 "src/parse/lex_conf.cc"
+yy637:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy641;
+       if (yych == 'O') goto yy649;
        goto yy4;
-yy630:
+yy638:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy642;
+       if (yych == 'a') goto yy650;
        goto yy4;
-yy631:
+yy639:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy643;
-       goto yy221;
-yy632:
+       if (yych == 't') goto yy651;
+       goto yy229;
+yy640:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy644;
+       if (yych == 'i') goto yy652;
        goto yy4;
-yy633:
+yy641:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 53 "../src/parse/lex_conf.re"
        { opts.set_bCaseInverted    (lex_conf_bool());   return; }
-#line 3007 "src/parse/lex_conf.cc"
-yy635:
+#line 3036 "src/parse/lex_conf.cc"
+yy643:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy106;
+       if (yych == 's') goto yy111;
        goto yy4;
-yy636:
+yy644:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy645;
+       if (yych == 'c') goto yy653;
        goto yy4;
-yy637:
+yy645:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-       goto yy109;
-yy638:
+       goto yy114;
+yy646:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy95;
+       if (yych == 's') goto yy100;
        goto yy4;
-yy639:
+yy647:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy646;
+       if (yych == 'N') goto yy654;
        goto yy4;
-yy640:
+yy648:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy648;
+       if (yych == 'k') goto yy656;
        goto yy4;
-yy641:
+yy649:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy649;
+       if (yych == 'N') goto yy657;
        goto yy4;
-yy642:
+yy650:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy651;
+       if (yych == 'k') goto yy659;
        goto yy4;
-yy643:
+yy651:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy652;
-       goto yy221;
-yy644:
+       if (yych == 'a') goto yy660;
+       goto yy229;
+yy652:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy653;
+       if (yych == 'v') goto yy661;
        goto yy4;
-yy645:
+yy653:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy654;
+       if (yych == 'y') goto yy662;
        goto yy4;
-yy646:
+yy654:
        yych = (unsigned char)*++cur;
        if (yych <= '@') {
                if (yych <= '/') {
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy656;
+                       if (yych <= ':') goto yy664;
                }
        } else {
                if (yych <= '_') {
                        if (yych <= 'Z') goto yy3;
                        if (yych >= '_') goto yy3;
                } else {
-                       if (yych <= '`') goto yy647;
+                       if (yych <= '`') goto yy655;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy647:
-#line 83 "../src/parse/lex_conf.re"
+yy655:
+#line 80 "../src/parse/lex_conf.re"
        { opts.set_cond_get         (lex_conf_string ()); return; }
-#line 3075 "src/parse/lex_conf.cc"
-yy648:
+#line 3104 "src/parse/lex_conf.cc"
+yy656:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy657;
+       if (yych == 'e') goto yy665;
        goto yy4;
-yy649:
+yy657:
        yyaccept = 5;
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= '?') {
@@ -3084,161 +3113,161 @@ yy649:
                        if (yych == '-') goto yy3;
                } else {
                        if (yych <= '9') goto yy3;
-                       if (yych <= ':') goto yy658;
+                       if (yych <= ':') goto yy666;
                }
        } else {
                if (yych <= '^') {
-                       if (yych <= '@') goto yy659;
+                       if (yych <= '@') goto yy667;
                        if (yych <= 'Z') goto yy3;
                } else {
-                       if (yych == '`') goto yy650;
+                       if (yych == '`') goto yy658;
                        if (yych <= 'z') goto yy3;
                }
        }
-yy650:
-#line 85 "../src/parse/lex_conf.re"
+yy658:
+#line 82 "../src/parse/lex_conf.re"
        { opts.set_cond_set         (lex_conf_string ()); return; }
-#line 3102 "src/parse/lex_conf.cc"
-yy651:
+#line 3131 "src/parse/lex_conf.cc"
+yy659:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy660;
+       if (yych == 'e') goto yy668;
        goto yy4;
-yy652:
+yy660:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy661;
-       goto yy221;
-yy653:
+       if (yych == 't') goto yy669;
+       goto yy229;
+yy661:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy662;
+       if (yych == 'e') goto yy670;
        goto yy4;
-yy654:
+yy662:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 70 "../src/parse/lex_conf.re"
        { lex_conf_encoding_policy(opts);  return; }
-#line 3122 "src/parse/lex_conf.cc"
-yy656:
+#line 3151 "src/parse/lex_conf.cc"
+yy664:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy664;
+       if (yych == 'n') goto yy672;
        goto yy4;
-yy657:
+yy665:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy665;
+       if (yych == 'd') goto yy673;
        goto yy4;
-yy658:
+yy666:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy667;
+       if (yych == 'n') goto yy675;
        goto yy4;
-yy659:
+yy667:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy668;
-       goto yy221;
-yy660:
+       if (yych == 'c') goto yy676;
+       goto yy229;
+yy668:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy669;
+       if (yych == 'd') goto yy677;
        goto yy4;
-yy661:
+yy669:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy671;
-       goto yy221;
-yy662:
+       if (yych == 'e') goto yy679;
+       goto yy229;
+yy670:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
 #line 52 "../src/parse/lex_conf.re"
        { opts.set_bCaseInsensitive (lex_conf_bool());   return; }
-#line 3154 "src/parse/lex_conf.cc"
-yy664:
+#line 3183 "src/parse/lex_conf.cc"
+yy672:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy673;
+       if (yych == 'a') goto yy681;
        goto yy4;
-yy665:
+yy673:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 97 "../src/parse/lex_conf.re"
+#line 94 "../src/parse/lex_conf.re"
        { opts.set_state_get_naked (lex_conf_bool()); return; }
-#line 3166 "src/parse/lex_conf.cc"
-yy667:
+#line 3195 "src/parse/lex_conf.cc"
+yy675:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy674;
+       if (yych == 'a') goto yy682;
        goto yy4;
-yy668:
+yy676:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy675;
-       goto yy221;
-yy669:
+       if (yych == 'o') goto yy683;
+       goto yy229;
+yy677:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 99 "../src/parse/lex_conf.re"
+#line 96 "../src/parse/lex_conf.re"
        { opts.set_state_set_naked (lex_conf_bool()); return; }
-#line 3182 "src/parse/lex_conf.cc"
-yy671:
+#line 3211 "src/parse/lex_conf.cc"
+yy679:
        ++cur;
-#line 100 "../src/parse/lex_conf.re"
+#line 97 "../src/parse/lex_conf.re"
        { opts.set_state_set_arg   (lex_conf_string ()); return; }
-#line 3187 "src/parse/lex_conf.cc"
-yy673:
+#line 3216 "src/parse/lex_conf.cc"
+yy681:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy676;
+       if (yych == 'k') goto yy684;
        goto yy4;
-yy674:
+yy682:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy677;
+       if (yych == 'k') goto yy685;
        goto yy4;
-yy675:
+yy683:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy678;
-       goto yy221;
-yy676:
+       if (yych == 'n') goto yy686;
+       goto yy229;
+yy684:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy679;
+       if (yych == 'e') goto yy687;
        goto yy4;
-yy677:
+yy685:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy680;
+       if (yych == 'e') goto yy688;
        goto yy4;
-yy678:
+yy686:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy681;
-       goto yy221;
-yy679:
+       if (yych == 'd') goto yy689;
+       goto yy229;
+yy687:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy683;
+       if (yych == 'd') goto yy691;
        goto yy4;
-yy680:
+yy688:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy685;
+       if (yych == 'd') goto yy693;
        goto yy4;
-yy681:
+yy689:
        ++cur;
-#line 86 "../src/parse/lex_conf.re"
+#line 83 "../src/parse/lex_conf.re"
        { opts.set_cond_set_arg     (lex_conf_string ()); return; }
-#line 3224 "src/parse/lex_conf.cc"
-yy683:
+#line 3253 "src/parse/lex_conf.cc"
+yy691:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 84 "../src/parse/lex_conf.re"
+#line 81 "../src/parse/lex_conf.re"
        { opts.set_cond_get_naked   (lex_conf_bool()); return; }
-#line 3232 "src/parse/lex_conf.cc"
-yy685:
+#line 3261 "src/parse/lex_conf.cc"
+yy693:
        yych = (unsigned char)*++cur;
        if (yybm[0+yych] & 32) {
                goto yy3;
        }
-#line 87 "../src/parse/lex_conf.re"
+#line 84 "../src/parse/lex_conf.re"
        { opts.set_cond_set_naked   (lex_conf_bool()); return; }
-#line 3240 "src/parse/lex_conf.cc"
+#line 3269 "src/parse/lex_conf.cc"
 }
-#line 177 "../src/parse/lex_conf.re"
+#line 174 "../src/parse/lex_conf.re"
 
 }
 
@@ -3246,102 +3275,102 @@ void Scanner::lex_conf_encoding_policy(Opt &opts)
 {
     lex_conf_assign ();
 
-#line 3250 "src/parse/lex_conf.cc"
+#line 3279 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 10) YYFILL(10);
        yych = (unsigned char)*cur;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy691;
+               if (yych == 'f') goto yy699;
        } else {
-               if (yych <= 'i') goto yy692;
-               if (yych == 's') goto yy693;
+               if (yych <= 'i') goto yy700;
+               if (yych == 's') goto yy701;
        }
        ++cur;
-yy690:
-#line 184 "../src/parse/lex_conf.re"
+yy698:
+#line 181 "../src/parse/lex_conf.re"
        { msg.fatal(cur_loc(),
         "bad configuration value (expected: 'ignore', 'substitute', 'fail')"); }
-#line 3266 "src/parse/lex_conf.cc"
-yy691:
+#line 3295 "src/parse/lex_conf.cc"
+yy699:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy694;
-       goto yy690;
-yy692:
+       if (yych == 'a') goto yy702;
+       goto yy698;
+yy700:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'g') goto yy696;
-       goto yy690;
-yy693:
+       if (yych == 'g') goto yy704;
+       goto yy698;
+yy701:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy697;
-       goto yy690;
-yy694:
+       if (yych == 'u') goto yy705;
+       goto yy698;
+yy702:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy698;
-yy695:
+       if (yych == 'i') goto yy706;
+yy703:
        cur = mar;
-       goto yy690;
-yy696:
+       goto yy698;
+yy704:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy699;
-       goto yy695;
-yy697:
+       if (yych == 'n') goto yy707;
+       goto yy703;
+yy705:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy700;
-       goto yy695;
-yy698:
+       if (yych == 'b') goto yy708;
+       goto yy703;
+yy706:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy701;
-       goto yy695;
-yy699:
+       if (yych == 'l') goto yy709;
+       goto yy703;
+yy707:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy703;
-       goto yy695;
-yy700:
+       if (yych == 'o') goto yy711;
+       goto yy703;
+yy708:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy704;
-       goto yy695;
-yy701:
+       if (yych == 's') goto yy712;
+       goto yy703;
+yy709:
        ++cur;
-#line 188 "../src/parse/lex_conf.re"
+#line 185 "../src/parse/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_FAIL);       goto end; }
-#line 3309 "src/parse/lex_conf.cc"
-yy703:
+#line 3338 "src/parse/lex_conf.cc"
+yy711:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy705;
-       goto yy695;
-yy704:
+       if (yych == 'r') goto yy713;
+       goto yy703;
+yy712:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy706;
-       goto yy695;
-yy705:
+       if (yych == 't') goto yy714;
+       goto yy703;
+yy713:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy707;
-       goto yy695;
-yy706:
+       if (yych == 'e') goto yy715;
+       goto yy703;
+yy714:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy709;
-       goto yy695;
-yy707:
+       if (yych == 'i') goto yy717;
+       goto yy703;
+yy715:
        ++cur;
-#line 186 "../src/parse/lex_conf.re"
+#line 183 "../src/parse/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_IGNORE);     goto end; }
-#line 3330 "src/parse/lex_conf.cc"
-yy709:
+#line 3359 "src/parse/lex_conf.cc"
+yy717:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy695;
+       if (yych != 't') goto yy703;
        yych = (unsigned char)*++cur;
-       if (yych != 'u') goto yy695;
+       if (yych != 'u') goto yy703;
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy695;
+       if (yych != 't') goto yy703;
        yych = (unsigned char)*++cur;
-       if (yych != 'e') goto yy695;
+       if (yych != 'e') goto yy703;
        ++cur;
-#line 187 "../src/parse/lex_conf.re"
+#line 184 "../src/parse/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); goto end; }
-#line 3343 "src/parse/lex_conf.cc"
+#line 3372 "src/parse/lex_conf.cc"
 }
-#line 189 "../src/parse/lex_conf.re"
+#line 186 "../src/parse/lex_conf.re"
 
 end:
     lex_conf_semicolon();
@@ -3351,76 +3380,76 @@ void Scanner::lex_conf_input(Opt &opts)
 {
     lex_conf_assign ();
 
-#line 3355 "src/parse/lex_conf.cc"
+#line 3384 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 7) YYFILL(7);
        yych = (unsigned char)*cur;
-       if (yych <= 'b') goto yy717;
-       if (yych <= 'c') goto yy719;
-       if (yych <= 'd') goto yy720;
-yy717:
+       if (yych <= 'b') goto yy725;
+       if (yych <= 'c') goto yy727;
+       if (yych <= 'd') goto yy728;
+yy725:
        ++cur;
-yy718:
-#line 198 "../src/parse/lex_conf.re"
+yy726:
+#line 195 "../src/parse/lex_conf.re"
        { msg.fatal(cur_loc(), "bad configuration value (expected: 'default', 'custom')"); }
-#line 3368 "src/parse/lex_conf.cc"
-yy719:
+#line 3397 "src/parse/lex_conf.cc"
+yy727:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy721;
-       goto yy718;
-yy720:
+       if (yych == 'u') goto yy729;
+       goto yy726;
+yy728:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'e') goto yy723;
-       goto yy718;
-yy721:
+       if (yych == 'e') goto yy731;
+       goto yy726;
+yy729:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy724;
-yy722:
+       if (yych == 's') goto yy732;
+yy730:
        cur = mar;
-       goto yy718;
-yy723:
+       goto yy726;
+yy731:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy725;
-       goto yy722;
-yy724:
+       if (yych == 'f') goto yy733;
+       goto yy730;
+yy732:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy726;
-       goto yy722;
-yy725:
+       if (yych == 't') goto yy734;
+       goto yy730;
+yy733:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy727;
-       goto yy722;
-yy726:
+       if (yych == 'a') goto yy735;
+       goto yy730;
+yy734:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy728;
-       goto yy722;
-yy727:
+       if (yych == 'o') goto yy736;
+       goto yy730;
+yy735:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy729;
-       goto yy722;
-yy728:
+       if (yych == 'u') goto yy737;
+       goto yy730;
+yy736:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy730;
-       goto yy722;
-yy729:
+       if (yych == 'm') goto yy738;
+       goto yy730;
+yy737:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy732;
-       goto yy722;
-yy730:
+       if (yych == 'l') goto yy740;
+       goto yy730;
+yy738:
        ++cur;
-#line 200 "../src/parse/lex_conf.re"
+#line 197 "../src/parse/lex_conf.re"
        { opts.set_input_api(INPUT_CUSTOM);  goto end; }
-#line 3415 "src/parse/lex_conf.cc"
-yy732:
+#line 3444 "src/parse/lex_conf.cc"
+yy740:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy722;
+       if (yych != 't') goto yy730;
        ++cur;
-#line 199 "../src/parse/lex_conf.re"
+#line 196 "../src/parse/lex_conf.re"
        { opts.set_input_api(INPUT_DEFAULT); goto end; }
-#line 3422 "src/parse/lex_conf.cc"
+#line 3451 "src/parse/lex_conf.cc"
 }
-#line 201 "../src/parse/lex_conf.re"
+#line 198 "../src/parse/lex_conf.re"
 
 end:
     lex_conf_semicolon();
@@ -3430,105 +3459,105 @@ void Scanner::lex_conf_empty_class(Opt &opts)
 {
     lex_conf_assign ();
 
-#line 3434 "src/parse/lex_conf.cc"
+#line 3463 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 11) YYFILL(11);
        yych = (unsigned char)*cur;
-       if (yych == 'e') goto yy739;
-       if (yych == 'm') goto yy740;
+       if (yych == 'e') goto yy747;
+       if (yych == 'm') goto yy748;
        ++cur;
-yy738:
-#line 210 "../src/parse/lex_conf.re"
+yy746:
+#line 207 "../src/parse/lex_conf.re"
        { msg.fatal(cur_loc(),
         "bad configuration value (expected: 'match-empty', 'match-none', 'error')"); }
-#line 3446 "src/parse/lex_conf.cc"
-yy739:
+#line 3475 "src/parse/lex_conf.cc"
+yy747:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'r') goto yy741;
-       goto yy738;
-yy740:
+       if (yych == 'r') goto yy749;
+       goto yy746;
+yy748:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy743;
-       goto yy738;
-yy741:
+       if (yych == 'a') goto yy751;
+       goto yy746;
+yy749:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy744;
-yy742:
+       if (yych == 'r') goto yy752;
+yy750:
        cur = mar;
-       goto yy738;
-yy743:
+       goto yy746;
+yy751:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy745;
-       goto yy742;
-yy744:
+       if (yych == 't') goto yy753;
+       goto yy750;
+yy752:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy746;
-       goto yy742;
-yy745:
+       if (yych == 'o') goto yy754;
+       goto yy750;
+yy753:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy747;
-       goto yy742;
-yy746:
+       if (yych == 'c') goto yy755;
+       goto yy750;
+yy754:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy748;
-       goto yy742;
-yy747:
+       if (yych == 'r') goto yy756;
+       goto yy750;
+yy755:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy750;
-       goto yy742;
-yy748:
+       if (yych == 'h') goto yy758;
+       goto yy750;
+yy756:
        ++cur;
-#line 214 "../src/parse/lex_conf.re"
+#line 211 "../src/parse/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_ERROR);       goto end; }
-#line 3485 "src/parse/lex_conf.cc"
-yy750:
+#line 3514 "src/parse/lex_conf.cc"
+yy758:
        yych = (unsigned char)*++cur;
-       if (yych != '-') goto yy742;
+       if (yych != '-') goto yy750;
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy752;
-       if (yych == 'n') goto yy753;
-       goto yy742;
-yy752:
+       if (yych == 'e') goto yy760;
+       if (yych == 'n') goto yy761;
+       goto yy750;
+yy760:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy754;
-       goto yy742;
-yy753:
+       if (yych == 'm') goto yy762;
+       goto yy750;
+yy761:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy755;
-       goto yy742;
-yy754:
+       if (yych == 'o') goto yy763;
+       goto yy750;
+yy762:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy756;
-       goto yy742;
-yy755:
+       if (yych == 'p') goto yy764;
+       goto yy750;
+yy763:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy757;
-       goto yy742;
-yy756:
+       if (yych == 'n') goto yy765;
+       goto yy750;
+yy764:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy758;
-       goto yy742;
-yy757:
+       if (yych == 't') goto yy766;
+       goto yy750;
+yy765:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy759;
-       goto yy742;
-yy758:
+       if (yych == 'e') goto yy767;
+       goto yy750;
+yy766:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy761;
-       goto yy742;
-yy759:
+       if (yych == 'y') goto yy769;
+       goto yy750;
+yy767:
        ++cur;
-#line 213 "../src/parse/lex_conf.re"
+#line 210 "../src/parse/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE);  goto end; }
-#line 3525 "src/parse/lex_conf.cc"
-yy761:
+#line 3554 "src/parse/lex_conf.cc"
+yy769:
        ++cur;
-#line 212 "../src/parse/lex_conf.re"
+#line 209 "../src/parse/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); goto end; }
-#line 3530 "src/parse/lex_conf.cc"
+#line 3559 "src/parse/lex_conf.cc"
 }
-#line 215 "../src/parse/lex_conf.re"
+#line 212 "../src/parse/lex_conf.re"
 
 end:
     lex_conf_semicolon();
@@ -3546,7 +3575,7 @@ void Scanner::lex_conf_enc(Enc::type_t enc, Opt &opts)
 void Scanner::lex_conf_assign ()
 {
 
-#line 3550 "src/parse/lex_conf.cc"
+#line 3579 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3586,56 +3615,56 @@ void Scanner::lex_conf_assign ()
        if ((lim - cur) < 2) YYFILL(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy767;
+               if (yych == '\t') goto yy775;
        } else {
-               if (yych <= ' ') goto yy767;
-               if (yych == '=') goto yy768;
+               if (yych <= ' ') goto yy775;
+               if (yych == '=') goto yy776;
        }
        ++cur;
-yy766:
-#line 232 "../src/parse/lex_conf.re"
+yy774:
+#line 229 "../src/parse/lex_conf.re"
        { msg.fatal(cur_loc(), "missing '=' in configuration"); }
-#line 3599 "src/parse/lex_conf.cc"
-yy767:
+#line 3628 "src/parse/lex_conf.cc"
+yy775:
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy771;
-               goto yy766;
+               if (yych == '\t') goto yy779;
+               goto yy774;
        } else {
-               if (yych <= ' ') goto yy771;
-               if (yych != '=') goto yy766;
+               if (yych <= ' ') goto yy779;
+               if (yych != '=') goto yy774;
        }
-yy768:
+yy776:
        ++cur;
        if (lim <= cur) YYFILL(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy768;
+               goto yy776;
        }
-#line 233 "../src/parse/lex_conf.re"
+#line 230 "../src/parse/lex_conf.re"
        { return; }
-#line 3618 "src/parse/lex_conf.cc"
-yy771:
+#line 3647 "src/parse/lex_conf.cc"
+yy779:
        ++cur;
        if (lim <= cur) YYFILL(1);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy771;
+               if (yych == '\t') goto yy779;
        } else {
-               if (yych <= ' ') goto yy771;
-               if (yych == '=') goto yy768;
+               if (yych <= ' ') goto yy779;
+               if (yych == '=') goto yy776;
        }
        cur = mar;
-       goto yy766;
+       goto yy774;
 }
-#line 234 "../src/parse/lex_conf.re"
+#line 231 "../src/parse/lex_conf.re"
 
 }
 
 void Scanner::lex_conf_semicolon ()
 {
 
-#line 3639 "src/parse/lex_conf.cc"
+#line 3668 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3675,39 +3704,39 @@ void Scanner::lex_conf_semicolon ()
        if ((lim - cur) < 2) YYFILL(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy778;
+               if (yych == '\t') goto yy786;
        } else {
-               if (yych <= ' ') goto yy778;
-               if (yych == ';') goto yy779;
+               if (yych <= ' ') goto yy786;
+               if (yych == ';') goto yy787;
        }
        ++cur;
-yy777:
-#line 240 "../src/parse/lex_conf.re"
+yy785:
+#line 237 "../src/parse/lex_conf.re"
        { msg.fatal(cur_loc(), "missing ending ';' in configuration"); }
-#line 3688 "src/parse/lex_conf.cc"
-yy778:
+#line 3717 "src/parse/lex_conf.cc"
+yy786:
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 128) {
-               goto yy781;
+               goto yy789;
        }
-       if (yych != ';') goto yy777;
-yy779:
+       if (yych != ';') goto yy785;
+yy787:
        ++cur;
-#line 241 "../src/parse/lex_conf.re"
+#line 238 "../src/parse/lex_conf.re"
        { return; }
-#line 3699 "src/parse/lex_conf.cc"
-yy781:
+#line 3728 "src/parse/lex_conf.cc"
+yy789:
        ++cur;
        if (lim <= cur) YYFILL(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy781;
+               goto yy789;
        }
-       if (yych == ';') goto yy779;
+       if (yych == ';') goto yy787;
        cur = mar;
-       goto yy777;
+       goto yy785;
 }
-#line 242 "../src/parse/lex_conf.re"
+#line 239 "../src/parse/lex_conf.re"
 
 }
 
@@ -3721,7 +3750,7 @@ int32_t Scanner::lex_conf_number ()
     lex_conf_assign ();
     tok = cur;
 
-#line 3725 "src/parse/lex_conf.cc"
+#line 3754 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3761,25 +3790,25 @@ int32_t Scanner::lex_conf_number ()
        if ((lim - cur) < 2) YYFILL(2);
        yych = (unsigned char)*cur;
        if (yych <= '/') {
-               if (yych == '-') goto yy788;
+               if (yych == '-') goto yy796;
        } else {
-               if (yych <= '0') goto yy789;
-               if (yych <= '9') goto yy791;
+               if (yych <= '0') goto yy797;
+               if (yych <= '9') goto yy799;
        }
        ++cur;
-yy787:
-#line 255 "../src/parse/lex_conf.re"
+yy795:
+#line 252 "../src/parse/lex_conf.re"
        { msg.fatal(cur_loc(), "bad configuration value (expected number)"); }
-#line 3774 "src/parse/lex_conf.cc"
-yy788:
+#line 3803 "src/parse/lex_conf.cc"
+yy796:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy787;
-       if (yych <= '9') goto yy791;
-       goto yy787;
-yy789:
+       if (yych <= '0') goto yy795;
+       if (yych <= '9') goto yy799;
+       goto yy795;
+yy797:
        ++cur;
-yy790:
-#line 256 "../src/parse/lex_conf.re"
+yy798:
+#line 253 "../src/parse/lex_conf.re"
        {
         int32_t n = 0;
         if (!s_to_i32_unsafe (tok, cur, n)) {
@@ -3788,18 +3817,24 @@ yy790:
         lex_conf_semicolon ();
         return n;
     }
-#line 3792 "src/parse/lex_conf.cc"
-yy791:
+#line 3821 "src/parse/lex_conf.cc"
+yy799:
        ++cur;
        if (lim <= cur) YYFILL(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy791;
+               goto yy799;
        }
-       goto yy790;
+       goto yy798;
+}
+#line 261 "../src/parse/lex_conf.re"
+
 }
-#line 264 "../src/parse/lex_conf.re"
 
+uint32_t Scanner::lex_conf_eof()
+{
+    const int32_t n = lex_conf_number();
+    return n < 0 ? NOEOF : static_cast<uint32_t>(n);
 }
 
 std::string Scanner::lex_conf_string ()
@@ -3808,7 +3843,7 @@ std::string Scanner::lex_conf_string ()
     std::string s;
     tok = cur;
 
-#line 3812 "src/parse/lex_conf.cc"
+#line 3847 "src/parse/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3849,40 +3884,40 @@ std::string Scanner::lex_conf_string ()
        yych = (unsigned char)*cur;
        if (yych <= '!') {
                if (yych <= '\n') {
-                       if (yych <= 0x00) goto yy795;
-                       if (yych <= 0x08) goto yy796;
+                       if (yych <= 0x00) goto yy803;
+                       if (yych <= 0x08) goto yy804;
                } else {
-                       if (yych != ' ') goto yy796;
+                       if (yych != ' ') goto yy804;
                }
        } else {
                if (yych <= '\'') {
-                       if (yych <= '"') goto yy799;
-                       if (yych <= '&') goto yy796;
-                       goto yy799;
+                       if (yych <= '"') goto yy807;
+                       if (yych <= '&') goto yy804;
+                       goto yy807;
                } else {
-                       if (yych != ';') goto yy796;
+                       if (yych != ';') goto yy804;
                }
        }
-yy795:
-#line 293 "../src/parse/lex_conf.re"
+yy803:
+#line 296 "../src/parse/lex_conf.re"
        { goto end; }
-#line 3870 "src/parse/lex_conf.cc"
-yy796:
+#line 3905 "src/parse/lex_conf.cc"
+yy804:
        ++cur;
        if (lim <= cur) YYFILL(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy796;
+               goto yy804;
        }
-#line 289 "../src/parse/lex_conf.re"
+#line 292 "../src/parse/lex_conf.re"
        {
         s = getstr(tok, cur);
         goto end;
     }
-#line 3883 "src/parse/lex_conf.cc"
-yy799:
+#line 3918 "src/parse/lex_conf.cc"
+yy807:
        ++cur;
-#line 273 "../src/parse/lex_conf.re"
+#line 276 "../src/parse/lex_conf.re"
        {
         const char quote = tok[0];
         for (;;) {
@@ -3899,9 +3934,9 @@ yy799:
             }
         }
     }
-#line 3903 "src/parse/lex_conf.cc"
+#line 3938 "src/parse/lex_conf.cc"
 }
-#line 294 "../src/parse/lex_conf.re"
+#line 297 "../src/parse/lex_conf.re"
 
 end:
     lex_conf_semicolon ();
index 97b49069186aae867c4af792d9b00c62a56457d9..e2b056a107636c5bd8da4ecef9f1b4f61d2516c4 100644 (file)
@@ -79,7 +79,7 @@ static smart_ptr<DFA> ast_to_dfa(const spec_t &spec, Output &output)
         emit_data(skeleton);
     }
 
-    cutoff_dead_rules(dfa, defrule, cond, msg);
+    cutoff_dead_rules(dfa, opts, defrule, cond, msg);
 
     insert_fallback_tags(dfa);
 
index a1aa447e0f16d9c47e6d9b0de88617841e699d06..d34feec3a1e19c85d6f2a962b1a38a7c69bc46a1 100644 (file)
@@ -10,6 +10,7 @@
 #include "src/msg/location.h"
 #include "src/msg/warn.h"
 #include "src/regexp/rule.h"
+#include "src/options/opt.h"
 #include "src/util/forbid_copy.h"
 
 
@@ -189,6 +190,54 @@ static void warn_dead_rules(const dfa_t &dfa, size_t defrule,
 }
 
 
+static void warn_sentinel_in_midrule(const dfa_t &dfa, const opt_t *opts
+    , const std::string &cond, const bool *live, Msg &msg)
+{
+    // perform check only in case sentinel method is used
+    if (opts->fill_use || opts->eof != NOEOF) return;
+
+    const size_t nstates = dfa.states.size();
+    const size_t nsym = dfa.nchars;
+    const size_t nrules = dfa.rules.size();
+    bool *bad = new bool[nrules];
+    memset(bad, 0, nrules);
+
+    // find character class that contains sentinel symbol
+    const uint32_t sentsym = opts->sentinel == NOEOF ? 0 : opts->sentinel;
+    uint32_t sentcls = 0;
+    DASSERT(dfa.charset.size() == nsym + 1);
+    for (; sentcls < nsym && sentsym >= dfa.charset[sentcls + 1]; ++sentcls);
+    DASSERT(sentcls < nsym);
+
+    // check that every transition on sentinel symbol goes to an end state
+    // that has no further transitions; otherwise, give a warning or, if
+    // 're2c:sentinel' configuration is used, an error
+    for (size_t i = 0; i < nstates; ++i) {
+        const size_t j = dfa.states[i]->arcs[sentcls];
+        if (j == dfa_t::NIL) continue;
+
+        const size_t *arcs = dfa.states[j]->arcs;
+        for (size_t c = 0; c < nsym; ++c) {
+            const size_t k = arcs[c];
+            if (k == dfa_t::NIL) continue;
+
+            for (size_t r = 0; r < nrules; ++r) {
+                bad[r] |= live[r * nstates + k];
+            }
+        }
+    }
+
+    for (size_t r = 0; r < nrules; ++r) {
+        if (bad[r]) {
+            msg.warn.sentinel_in_midrule(dfa.rules[r].code->loc
+                , cond, opts->sentinel);
+        }
+    }
+
+    delete[] bad;
+}
+
+
 static void remove_dead_final_states(dfa_t &dfa, const bool *fallthru)
 {
     const size_t
@@ -242,8 +291,8 @@ static void find_fallback_states(dfa_t &dfa, const bool *fallthru)
 }
 
 
-void cutoff_dead_rules(dfa_t &dfa, size_t defrule, const std::string &cond
-    , Msg &msg)
+void cutoff_dead_rules(dfa_t &dfa, const opt_t *opts, size_t defrule
+    , const std::string &cond, Msg &msg)
 {
     const rdfa_t rdfa(dfa);
     const size_t
@@ -255,6 +304,7 @@ void cutoff_dead_rules(dfa_t &dfa, size_t defrule, const std::string &cond
 
     liveness_analyses(rdfa, live);
     warn_dead_rules(dfa, defrule, cond, live, msg);
+    warn_sentinel_in_midrule(dfa, opts, cond, live, msg);
     remove_dead_final_states(dfa, fallthru);
     find_fallback_states(dfa, fallthru);
 
index 1b1dc0f52f28433967b24611294f1a7f1218e6ec..c85feb7a229cb21801dd10f8f5505e228f87f1bd 100644 (file)
@@ -86,7 +86,7 @@ enum posix_closure_t
 
 void minimization(dfa_t &dfa, dfa_minimization_t type);
 void fillpoints(const dfa_t &dfa, std::vector<size_t> &fill);
-void cutoff_dead_rules(dfa_t &dfa, size_t defrule, const std::string &cond, Msg &msg);
+void cutoff_dead_rules(dfa_t &dfa, const opt_t *opts, size_t defrule, const std::string &cond, Msg &msg);
 void insert_fallback_tags(dfa_t &dfa);
 void compact_and_optimize_tags(const opt_t *opts, dfa_t &dfa);
 void freeze_tags(dfa_t &dfa);
index 174f54e3bd8a607ae11802c00d26dbf04dd08675..8096a4ac409acee0ebe1915726d0304d2acf71e2 100644 (file)
@@ -5,6 +5,7 @@
 
 #include "src/msg/msg.h"
 #include "src/msg/warn.h"
+#include "src/options/opt.h"
 #include "src/regexp/rule.h"
 #include "src/skeleton/skeleton.h"
 #include "src/skeleton/path.h"
@@ -222,4 +223,21 @@ void Warn::useless_escape(const loc_t &loc, const char *str, const char *end)
     }
 }
 
+void Warn::sentinel_in_midrule(const loc_t &loc, const std::string &cond
+    , uint32_t sentinel)
+{
+    if (mask[SENTINEL_IN_MIDRULE] & WARNING) {
+        const bool defined = sentinel != NOEOF;
+        const bool e = defined || (mask[SENTINEL_IN_MIDRULE] & ERROR);
+        error_accuml |= e;
+        msg.warning(names[SENTINEL_IN_MIDRULE], loc, e
+            , "%ssentinel symbol %u occurs in the middle of the rule%s"
+            , incond(cond).c_str()
+            , defined ? sentinel : 0
+            , defined ? "" :
+                " (note: if a different sentinel symbol is used,"
+                " specify it with 're2c:sentinel' configuration)");
+    }
+}
+
 } // namespace re2c
index bfa06bc5d5a972a328445c66ad6f68cdd845e5c6..5c4da2bcddc6a0af2a40f9dc33c9dc3cf6a5fd5e 100644 (file)
@@ -23,7 +23,8 @@ struct Skeleton;
     W (SWAPPED_RANGE,            "swapped-range"), \
     W (UNDEFINED_CONTROL_FLOW,   "undefined-control-flow"), \
     W (UNREACHABLE_RULES,        "unreachable-rules"), \
-    W (USELESS_ESCAPE,           "useless-escape"),
+    W (USELESS_ESCAPE,           "useless-escape"), \
+    W (SENTINEL_IN_MIDRULE,      "sentinel-in-midrule"),
 
 class Warn
 {
@@ -69,6 +70,7 @@ public:
     void undefined_control_flow(const Skeleton &skel, std::vector<path_t> & paths, bool overflow);
     void unreachable_rule(const std::string & cond, const Rule &rule);
     void useless_escape(const loc_t &loc, const char *str, const char *end);
+    void sentinel_in_midrule(const loc_t &loc, const std::string &cond, uint32_t sentinel);
 };
 
 } // namespace re2c
index 95e2f1a7bafbe1544471fbcb979926f924d19dc4..52fa4647ae068116fbd9eedc9d4ba4f507abcfd2 100644 (file)
@@ -36,6 +36,7 @@ void mutopt_t::fix(const conopt_t *globopts)
             gFlag = Opt::baseopt.gFlag;
             cGotoThreshold = Opt::baseopt.cGotoThreshold;
             eof = Opt::baseopt.eof;
+            sentinel = Opt::baseopt.sentinel;
             // default environment-insensitive formatting
             yybmHexTable = Opt::baseopt.yybmHexTable;
             // fallthrough
@@ -46,6 +47,7 @@ void mutopt_t::fix(const conopt_t *globopts)
             iFlag = Opt::baseopt.iFlag;
             // default EOF mode
             eof = Opt::baseopt.eof;
+            sentinel = Opt::baseopt.sentinel;
             // default environment-sensitive formatting
             topIndent = Opt::baseopt.topIndent;
             indString = Opt::baseopt.indString;
@@ -245,6 +247,15 @@ void mutopt_t::fix(const conopt_t *globopts)
             fatal ("EOF exceeds maximum code unit value for given encoding");
         }
     }
+    if (sentinel != NOEOF) {
+        if (sentinel >= encoding.nCodeUnits()) {
+            fatal("sentinel exceeds maximum code unit value for given encoding");
+        }
+        if (fill_use || eof != NOEOF) {
+            fatal("re2c:sentinel configuration is not needed"
+                " in the presence of bounds checking or EOF rule");
+        }
+    }
 }
 
 const mutopt_t Opt::baseopt;
index efc407f93f6018ae0281eb3f330c18dcb5d8c221..825bbae42861a8d76561a8ec5bd88a5060e33aca 100644 (file)
@@ -124,6 +124,7 @@ const uint32_t NOEOF = ~0u - 1;
     MUTOPT (std::string, yytarget, "yytarget") \
     MUTOPT (uint32_t, cGotoThreshold, 9) \
     MUTOPT (uint32_t, eof, NOEOF) \
+    MUTOPT (uint32_t, sentinel, NOEOF) \
     /* formatting */ \
     MUTOPT (uint32_t, topIndent, 0) \
     MUTOPT (std::string, indString, "\t") \
index f01c7d8e8fdab43b3100afe70ce33cd9465bd2c5..1e0b31a35b156a323f0b99de59c6a34e289e5829 100644 (file)
@@ -91,6 +91,7 @@ opt_warn:
     "undefined-control-flow"   end { msg.warn.set (Warn::UNDEFINED_CONTROL_FLOW, option); goto opt; }
     "unreachable-rules"        end { msg.warn.set (Warn::UNREACHABLE_RULES,      option); goto opt; }
     "useless-escape"           end { msg.warn.set (Warn::USELESS_ESCAPE,         option); goto opt; }
+    "sentinel-in-midrule"      end { msg.warn.set (Warn::SENTINEL_IN_MIDRULE,    option); goto opt; }
 */
 
 opt_short:
index 639d15f13490a63b5cce7d581bfe2bfad2b2629c..9346b78b33b05561b0d54c4b0b92be35adfb04b2 100644 (file)
@@ -71,11 +71,8 @@ void Scanner::lex_conf(Opt &opts)
     "flags:input"            { lex_conf_input(opts);            return; }
     "flags:empty-class"      { lex_conf_empty_class(opts);      return; }
 
-    "eof" {
-        const int32_t eof = lex_conf_number();
-        opts.set_eof(eof < 0 ? NOEOF : static_cast<uint32_t>(eof));
-        return;
-    }
+    "eof"      { opts.set_eof     (lex_conf_eof()); return; }
+    "sentinel" { opts.set_sentinel(lex_conf_eof()); return; }
 
     // internal options do not have configurations
 
@@ -264,6 +261,12 @@ int32_t Scanner::lex_conf_number ()
 */
 }
 
+uint32_t Scanner::lex_conf_eof()
+{
+    const int32_t n = lex_conf_number();
+    return n < 0 ? NOEOF : static_cast<uint32_t>(n);
+}
+
 std::string Scanner::lex_conf_string ()
 {
     lex_conf_assign ();
index 2fd26a826e7bbc7d615ab127a0b07692db00dde9..b6a03ea0d73da7f8fcc85b78e950fbf28324499f 100644 (file)
@@ -80,6 +80,7 @@ private:
     void lex_conf_semicolon();
     int32_t lex_conf_number();
     bool lex_conf_bool();
+    uint32_t lex_conf_eof();
     std::string lex_conf_string();
     bool is_eof() const;
     void fail_if_eof() const;