]> granicus.if.org Git - re2c/commitdiff
Renamed 'contexts' to 'tags' (and all related stuff likewise).
authorUlya Trofimovich <skvadrik@gmail.com>
Tue, 10 May 2016 13:02:59 +0000 (14:02 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Tue, 10 May 2016 13:02:59 +0000 (14:02 +0100)
No serious changes.

124 files changed:
re2c/Makefile.am
re2c/bootstrap/src/conf/parse_opts.cc
re2c/bootstrap/src/parse/lex.cc
re2c/bootstrap/src/parse/lex_conf.cc
re2c/src/codegen/emit_action.cc
re2c/src/codegen/emit_dfa.cc
re2c/src/codegen/input_api.cc
re2c/src/codegen/input_api.h
re2c/src/codegen/output.cc
re2c/src/codegen/output.h
re2c/src/conf/opt.cc
re2c/src/conf/opt.h
re2c/src/conf/parse_opts.re
re2c/src/conf/warn.cc
re2c/src/conf/warn.h
re2c/src/ir/adfa/adfa.cc
re2c/src/ir/adfa/adfa.h
re2c/src/ir/compile.cc
re2c/src/ir/dfa/determinization.cc
re2c/src/ir/dfa/dfa.h
re2c/src/ir/dfa/minimization.cc
re2c/src/ir/dfa/tag_deduplication.cc [moved from re2c/src/ir/dfa/context_deduplication.cc with 96% similarity]
re2c/src/ir/nfa/make_tags.cc
re2c/src/ir/nfa/nfa.h
re2c/src/ir/nfa/regexps2nfa.cc
re2c/src/ir/rule.h
re2c/src/ir/skeleton/generate_code.cc
re2c/src/ir/skeleton/skeleton.h
re2c/src/ir/tag.cc [moved from re2c/src/ir/ctx.cc with 96% similarity]
re2c/src/ir/tag.h [moved from re2c/src/ir/ctx.h with 87% similarity]
re2c/src/parse/lex.re
re2c/src/parse/lex_conf.re
re2c/src/parse/scanner.h
re2c/test/contexts/selfoverlap1.i--contexts.c [deleted file]
re2c/test/contexts/selfoverlap1_trail.i--contexts.c [deleted file]
re2c/test/scanner_re2c_default.--emit-dot.c
re2c/test/tags/cond_star0.ci--input(custom).c [moved from re2c/test/contexts/cond_star0.ci--input(custom).c with 100% similarity]
re2c/test/tags/cond_star0.ci--input(custom).re [moved from re2c/test/contexts/cond_star0.ci--input(custom).re with 100% similarity]
re2c/test/tags/cond_star0.ci.c [moved from re2c/test/contexts/cond_star0.ci.c with 100% similarity]
re2c/test/tags/cond_star0.ci.re [moved from re2c/test/contexts/cond_star0.ci.re with 100% similarity]
re2c/test/tags/cond_star1.ci--input(custom).c [moved from re2c/test/contexts/cond_star1.ci--input(custom).c with 100% similarity]
re2c/test/tags/cond_star1.ci--input(custom).re [moved from re2c/test/contexts/cond_star1.ci--input(custom).re with 100% similarity]
re2c/test/tags/cond_star1.ci.c [moved from re2c/test/contexts/cond_star1.ci.c with 100% similarity]
re2c/test/tags/cond_star1.ci.re [moved from re2c/test/contexts/cond_star1.ci.re with 100% similarity]
re2c/test/tags/cond_star2.ci.c [moved from re2c/test/contexts/cond_star2.ci.c with 100% similarity]
re2c/test/tags/cond_star2.ci.re [moved from re2c/test/contexts/cond_star2.ci.re with 100% similarity]
re2c/test/tags/conf1.i--tags--input(custom).c [moved from re2c/test/contexts/conf1.i--contexts--input(custom).c with 100% similarity]
re2c/test/tags/conf1.i--tags--input(custom).re [moved from re2c/test/contexts/conf1.i--contexts--input(custom).re with 94% similarity]
re2c/test/tags/conf1.i--tags.c [moved from re2c/test/contexts/conf1.i--contexts.c with 100% similarity]
re2c/test/tags/conf1.i--tags.re [moved from re2c/test/contexts/conf1.i--contexts.re with 96% similarity]
re2c/test/tags/conf2.i--tags--input(custom).c [moved from re2c/test/contexts/conf2.i--contexts--input(custom).c with 100% similarity]
re2c/test/tags/conf2.i--tags--input(custom).re [moved from re2c/test/contexts/conf2.i--contexts--input(custom).re with 92% similarity]
re2c/test/tags/conf2.i--tags.c [moved from re2c/test/contexts/conf2.i--contexts.c with 100% similarity]
re2c/test/tags/conf2.i--tags.re [moved from re2c/test/contexts/conf2.i--contexts.re with 93% similarity]
re2c/test/tags/conf3.i--tags--input(custom).c [moved from re2c/test/contexts/conf3.i--contexts--input(custom).c with 100% similarity]
re2c/test/tags/conf3.i--tags--input(custom).re [moved from re2c/test/contexts/conf3.i--contexts--input(custom).re with 85% similarity]
re2c/test/tags/conf3.i--tags.c [moved from re2c/test/contexts/conf3.i--contexts.c with 100% similarity]
re2c/test/tags/conf3.i--tags.re [moved from re2c/test/contexts/conf3.i--contexts.re with 84% similarity]
re2c/test/tags/conf4.i--tags--input(custom).c [moved from re2c/test/contexts/conf4.i--contexts--input(custom).c with 100% similarity]
re2c/test/tags/conf4.i--tags--input(custom).re [moved from re2c/test/contexts/conf4.i--contexts--input(custom).re with 74% similarity]
re2c/test/tags/conf4.i--tags.c [moved from re2c/test/contexts/conf4.i--contexts.c with 100% similarity]
re2c/test/tags/conf4.i--tags.re [moved from re2c/test/contexts/conf4.i--contexts.re with 70% similarity]
re2c/test/tags/conf5.i--tags--input(custom).c [moved from re2c/test/contexts/conf5.i--contexts--input(custom).c with 100% similarity]
re2c/test/tags/conf5.i--tags--input(custom).re [moved from re2c/test/contexts/conf5.i--contexts--input(custom).re with 68% similarity]
re2c/test/tags/conf5.i--tags.c [moved from re2c/test/contexts/conf5.i--contexts.c with 100% similarity]
re2c/test/tags/conf5.i--tags.re [moved from re2c/test/contexts/conf5.i--contexts.re with 64% similarity]
re2c/test/tags/conf6.--tags--input(custom).c [moved from re2c/test/contexts/conf6.--contexts--input(custom).c with 92% similarity]
re2c/test/tags/conf6.--tags--input(custom).re [moved from re2c/test/contexts/conf6.--contexts--input(custom).re with 82% similarity]
re2c/test/tags/conf6.--tags.c [moved from re2c/test/contexts/conf6.--contexts.c with 94% similarity]
re2c/test/tags/conf6.--tags.re [moved from re2c/test/contexts/conf6.--contexts.re with 80% similarity]
re2c/test/tags/dedup0.i--input(custom).c [moved from re2c/test/contexts/dedup0.i--input(custom).c with 100% similarity]
re2c/test/tags/dedup0.i--input(custom).re [moved from re2c/test/contexts/dedup0.i--input(custom).re with 100% similarity]
re2c/test/tags/dedup0.i.c [moved from re2c/test/contexts/dedup0.i.c with 100% similarity]
re2c/test/tags/dedup0.i.re [moved from re2c/test/contexts/dedup0.i.re with 100% similarity]
re2c/test/tags/dedup1.i--input(custom).c [moved from re2c/test/contexts/dedup1.i--input(custom).c with 100% similarity]
re2c/test/tags/dedup1.i--input(custom).re [moved from re2c/test/contexts/dedup1.i--input(custom).re with 100% similarity]
re2c/test/tags/dedup1.i.c [moved from re2c/test/contexts/dedup1.i.c with 100% similarity]
re2c/test/tags/dedup1.i.re [moved from re2c/test/contexts/dedup1.i.re with 100% similarity]
re2c/test/tags/dedup2.i--input(custom).c [moved from re2c/test/contexts/dedup2.i--input(custom).c with 100% similarity]
re2c/test/tags/dedup2.i--input(custom).re [moved from re2c/test/contexts/dedup2.i--input(custom).re with 100% similarity]
re2c/test/tags/dedup2.i.c [moved from re2c/test/contexts/dedup2.i.c with 100% similarity]
re2c/test/tags/dedup2.i.re [moved from re2c/test/contexts/dedup2.i.re with 100% similarity]
re2c/test/tags/dedup3.i--input(custom).c [moved from re2c/test/contexts/dedup3.i--input(custom).c with 100% similarity]
re2c/test/tags/dedup3.i--input(custom).re [moved from re2c/test/contexts/dedup3.i--input(custom).re with 100% similarity]
re2c/test/tags/dedup3.i.c [moved from re2c/test/contexts/dedup3.i.c with 100% similarity]
re2c/test/tags/dedup3.i.re [moved from re2c/test/contexts/dedup3.i.re with 100% similarity]
re2c/test/tags/fix2.i--tags.c [moved from re2c/test/contexts/fix2.i--contexts.c with 100% similarity]
re2c/test/tags/fix2.i--tags.re [moved from re2c/test/contexts/fix2.i--contexts.re with 100% similarity]
re2c/test/tags/fix2_trail.i--tags--input(custom).c [moved from re2c/test/contexts/fix2_trail.i--contexts--input(custom).c with 89% similarity]
re2c/test/tags/fix2_trail.i--tags--input(custom).re [moved from re2c/test/contexts/fix2_trail.i--contexts--input(custom).re with 100% similarity]
re2c/test/tags/fix2_trail.i--tags.c [moved from re2c/test/contexts/fix2_trail.i--contexts.c with 100% similarity]
re2c/test/tags/fix2_trail.i--tags.re [moved from re2c/test/contexts/fix2_trail.i--contexts.re with 100% similarity]
re2c/test/tags/fix3.i--tags.c [moved from re2c/test/contexts/fix3.i--contexts.c with 51% similarity]
re2c/test/tags/fix3.i--tags.re [moved from re2c/test/contexts/fix3.i--contexts.re with 100% similarity]
re2c/test/tags/fix3_trail.i--tags--input(custom).c [moved from re2c/test/contexts/fix3_trail.i--contexts--input(custom).c with 60% similarity]
re2c/test/tags/fix3_trail.i--tags--input(custom).re [moved from re2c/test/contexts/fix3_trail.i--contexts--input(custom).re with 100% similarity]
re2c/test/tags/fix3_trail.i--tags.c [moved from re2c/test/contexts/fix3_trail.i--contexts.c with 53% similarity]
re2c/test/tags/fix3_trail.i--tags.re [moved from re2c/test/contexts/fix3_trail.i--contexts.re with 100% similarity]
re2c/test/tags/fix4.i--tags.c [moved from re2c/test/contexts/fix4.i--contexts.c with 67% similarity]
re2c/test/tags/fix4.i--tags.re [moved from re2c/test/contexts/fix4.i--contexts.re with 100% similarity]
re2c/test/tags/fix4_trail.i--tags--input(custom).c [moved from re2c/test/contexts/fix4_trail.i--contexts--input(custom).c with 74% similarity]
re2c/test/tags/fix4_trail.i--tags--input(custom).re [moved from re2c/test/contexts/fix4_trail.i--contexts--input(custom).re with 100% similarity]
re2c/test/tags/fix4_trail.i--tags.c [moved from re2c/test/contexts/fix4_trail.i--contexts.c with 67% similarity]
re2c/test/tags/fix4_trail.i--tags.re [moved from re2c/test/contexts/fix4_trail.i--contexts.re with 100% similarity]
re2c/test/tags/fix5.i--tags.c [moved from re2c/test/contexts/fix5.i--contexts.c with 66% similarity]
re2c/test/tags/fix5.i--tags.re [moved from re2c/test/contexts/fix5.i--contexts.re with 100% similarity]
re2c/test/tags/fix5_trail.i--tags--input(custom).c [moved from re2c/test/contexts/fix5_trail.i--contexts--input(custom).c with 76% similarity]
re2c/test/tags/fix5_trail.i--tags--input(custom).re [moved from re2c/test/contexts/fix5_trail.i--contexts--input(custom).re with 100% similarity]
re2c/test/tags/fix5_trail.i--tags.c [moved from re2c/test/contexts/fix5_trail.i--contexts.c with 69% similarity]
re2c/test/tags/fix5_trail.i--tags.re [moved from re2c/test/contexts/fix5_trail.i--contexts.re with 100% similarity]
re2c/test/tags/nondeterministic1.i--tags.c [new file with mode: 0644]
re2c/test/tags/nondeterministic1.i--tags.re [moved from re2c/test/contexts/selfoverlap1.i--contexts.re with 100% similarity]
re2c/test/tags/nondeterministic1_trail.i--tags.c [new file with mode: 0644]
re2c/test/tags/nondeterministic1_trail.i--tags.re [moved from re2c/test/contexts/selfoverlap1_trail.i--contexts.re with 100% similarity]
re2c/test/tags/nondeterministic1_trail.i.c [moved from re2c/test/contexts/selfoverlap1_trail.i.c with 90% similarity]
re2c/test/tags/nondeterministic1_trail.i.re [moved from re2c/test/contexts/selfoverlap1_trail.i.re with 100% similarity]
re2c/test/tags/overlap.i--input(custom).c [moved from re2c/test/contexts/overlap.i--input(custom).c with 100% similarity]
re2c/test/tags/overlap.i--input(custom).re [moved from re2c/test/contexts/overlap.i--input(custom).re with 100% similarity]
re2c/test/tags/overlap.i.c [moved from re2c/test/contexts/overlap.i.c with 100% similarity]
re2c/test/tags/overlap.i.re [moved from re2c/test/contexts/overlap.i.re with 100% similarity]
re2c/test/tags/syntax_error0.c [moved from re2c/test/contexts/syntax_error0.c with 100% similarity]
re2c/test/tags/syntax_error0.re [moved from re2c/test/contexts/syntax_error0.re with 100% similarity]
re2c/test/tags/yyaccept1.i.c [moved from re2c/test/contexts/yyaccept1.i.c with 100% similarity]
re2c/test/tags/yyaccept1.i.re [moved from re2c/test/contexts/yyaccept1.i.re with 100% similarity]

index bcf79e5d3f912e16dfca91921580b967ec2ddb6f..9d652cb8e199afa8fa5b01787ba8ace3e3bf6789 100644 (file)
@@ -36,8 +36,8 @@ SRC_HDR = \
        src/ir/regexp/empty_class_policy.h \
        src/ir/regexp/regexp.h \
        src/ir/compile.h \
-       src/ir/ctx.h \
        src/ir/rule.h \
+       src/ir/tag.h \
        src/ir/tagpool.h \
        src/ir/skeleton/path.h \
        src/ir/skeleton/skeleton.h \
@@ -90,11 +90,11 @@ SRC = \
        src/ir/nfa/regexps2nfa.cc \
        src/ir/adfa/adfa.cc \
        src/ir/adfa/prepare.cc \
-       src/ir/dfa/context_deduplication.cc \
        src/ir/dfa/determinization.cc \
        src/ir/dfa/fallback.cc \
        src/ir/dfa/fillpoints.cc \
        src/ir/dfa/minimization.cc \
+       src/ir/dfa/tag_deduplication.cc \
        src/ir/regexp/encoding/enc.cc \
        src/ir/regexp/encoding/range_suffix.cc \
        src/ir/regexp/encoding/utf8/utf8_regexp.cc \
@@ -106,7 +106,6 @@ SRC = \
        src/ir/regexp/regexp.cc \
        src/ir/regexp/split_charset.cc \
        src/ir/compile.cc \
-       src/ir/ctx.cc \
        src/ir/rule.cc \
        src/ir/skeleton/control_flow.cc \
        src/ir/skeleton/generate_code.cc \
@@ -114,6 +113,7 @@ SRC = \
        src/ir/skeleton/maxpath.cc \
        src/ir/skeleton/skeleton.cc \
        src/ir/skeleton/unreachable_nullable.cc \
+       src/ir/tag.cc \
        src/main.cc \
        src/parse/code.cc \
        src/parse/input.cc \
index 61c47b278e799111b55d4b7da442d3b982ad1d11..8134fe5b7dcb40bcebf74a6fb0bfac8118b09501 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 on Wed Mar 23 14:54:33 2016 */
+/* Generated by re2c 0.16 on Tue May 10 13:30:37 2016 */
 #line 1 "../src/conf/parse_opts.re"
 #include "src/codegen/input_api.h"
 #include "src/conf/msg.h"
@@ -248,8 +248,9 @@ opt_warn:
        case 'c':       goto yy46;
        case 'e':       goto yy47;
        case 'm':       goto yy48;
-       case 's':       goto yy49;
-       case 'u':       goto yy50;
+       case 'n':       goto yy49;
+       case 's':       goto yy50;
+       case 'u':       goto yy51;
        default:        goto yy44;
        }
 yy44:
@@ -260,2172 +261,2150 @@ yy45:
                error ("bad warning: %s", *argv);
                return EXIT_FAIL;
        }
-#line 264 "src/conf/parse_opts.cc"
+#line 265 "src/conf/parse_opts.cc"
 yy46:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy51;
+       if (yych == 'o') goto yy52;
        goto yy45;
 yy47:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'm') goto yy53;
+       if (yych == 'm') goto yy54;
        goto yy45;
 yy48:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy54;
+       if (yych == 'a') goto yy55;
        goto yy45;
 yy49:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy55;
-       if (yych == 'w') goto yy56;
+       if (yych == 'o') goto yy56;
        goto yy45;
 yy50:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy57;
-       if (yych == 's') goto yy58;
+       if (yych == 'w') goto yy57;
        goto yy45;
 yy51:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy59;
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == 'n') goto yy58;
+       if (yych == 's') goto yy59;
+       goto yy45;
 yy52:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy60;
+yy53:
        YYCURSOR = YYMARKER;
        goto yy45;
-yy53:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy60;
-       goto yy52;
 yy54:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy61;
-       goto yy52;
+       if (yych == 'p') goto yy61;
+       goto yy53;
 yy55:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy62;
-       goto yy52;
+       if (yych == 't') goto yy62;
+       goto yy53;
 yy56:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy63;
-       goto yy52;
+       if (yych == 'n') goto yy63;
+       goto yy53;
 yy57:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy64;
-       if (yych == 'r') goto yy65;
-       goto yy52;
+       if (yych == 'a') goto yy64;
+       goto yy53;
 yy58:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy66;
-       goto yy52;
+       if (yych == 'd') goto yy65;
+       if (yych == 'r') goto yy66;
+       goto yy53;
 yy59:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy67;
-       goto yy52;
+       if (yych == 'e') goto yy67;
+       goto yy53;
 yy60:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy68;
-       goto yy52;
+       if (yych == 'd') goto yy68;
+       goto yy53;
 yy61:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy69;
-       goto yy52;
+       if (yych == 't') goto yy69;
+       goto yy53;
 yy62:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy70;
-       goto yy52;
+       if (yych == 'c') goto yy70;
+       goto yy53;
 yy63:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy71;
-       goto yy52;
+       if (yych == 'd') goto yy71;
+       goto yy53;
 yy64:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy72;
-       goto yy52;
+       if (yych == 'p') goto yy72;
+       goto yy53;
 yy65:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy73;
-       goto yy52;
+       goto yy53;
 yy66:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy74;
-       goto yy52;
+       if (yych == 'e') goto yy74;
+       goto yy53;
 yy67:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy75;
-       goto yy52;
+       if (yych == 'l') goto yy75;
+       goto yy53;
 yy68:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy76;
-       goto yy52;
+       if (yych == 'i') goto yy76;
+       goto yy53;
 yy69:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy77;
-       goto yy52;
+       if (yych == 'y') goto yy77;
+       goto yy53;
 yy70:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy78;
-       goto yy52;
+       if (yych == 'h') goto yy78;
+       goto yy53;
 yy71:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy79;
-       goto yy52;
+       if (yych == 'e') goto yy79;
+       goto yy53;
 yy72:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy80;
-       goto yy52;
+       if (yych == 'p') goto yy80;
+       goto yy53;
 yy73:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy81;
-       goto yy52;
+       if (yych == 'f') goto yy81;
+       goto yy53;
 yy74:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy82;
-       goto yy52;
+       if (yych == 'a') goto yy82;
+       goto yy53;
 yy75:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy83;
-       goto yy52;
+       if (yych == 'e') goto yy83;
+       goto yy53;
 yy76:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy84;
-       goto yy52;
+       if (yych == 't') goto yy84;
+       goto yy53;
 yy77:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '-') goto yy85;
-       goto yy52;
+       goto yy53;
 yy78:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy86;
-       goto yy52;
+       if (yych == '-') goto yy86;
+       goto yy53;
 yy79:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy87;
-       goto yy52;
+       if (yych == 't') goto yy87;
+       goto yy53;
 yy80:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy88;
-       goto yy52;
+       if (yych == 'e') goto yy88;
+       goto yy53;
 yy81:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy89;
-       goto yy52;
+       if (yych == 'i') goto yy89;
+       goto yy53;
 yy82:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy90;
-       goto yy52;
+       if (yych == 'c') goto yy90;
+       goto yy53;
 yy83:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy91;
-       goto yy52;
+       if (yych == 's') goto yy91;
+       goto yy53;
 yy84:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy92;
-       goto yy52;
+       if (yych == 'i') goto yy92;
+       goto yy53;
 yy85:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy93;
-       goto yy52;
+       if (yych == 'c') goto yy93;
+       goto yy53;
 yy86:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy94;
-       goto yy52;
+       goto yy53;
 yy87:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy95;
-       goto yy52;
+       if (yych == 'e') goto yy95;
+       goto yy53;
 yy88:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy96;
-       goto yy52;
+       if (yych == 'd') goto yy96;
+       goto yy53;
 yy89:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy97;
-       goto yy52;
+       if (yych == 'n') goto yy97;
+       goto yy53;
 yy90:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy98;
-       goto yy52;
+       if (yych == 'h') goto yy98;
+       goto yy53;
 yy91:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy99;
-       goto yy52;
+       if (yych == 's') goto yy99;
+       goto yy53;
 yy92:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy100;
-       goto yy52;
+       if (yych == 'o') goto yy100;
+       goto yy53;
 yy93:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy101;
-       goto yy52;
+       if (yych == 'h') goto yy101;
+       goto yy53;
 yy94:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy102;
-       goto yy52;
+       if (yych == 'm') goto yy102;
+       goto yy53;
 yy95:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy103;
-       goto yy52;
+       if (yych == 'r') goto yy103;
+       goto yy53;
 yy96:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy104;
-       goto yy52;
+       if (yych == '-') goto yy104;
+       goto yy53;
 yy97:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy105;
-       goto yy52;
+       if (yych == 'e') goto yy105;
+       goto yy53;
 yy98:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy106;
-       goto yy52;
+       if (yych == 'a') goto yy106;
+       goto yy53;
 yy99:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy107;
-       goto yy52;
+       if (yych == '-') goto yy107;
+       goto yy53;
 yy100:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy108;
-       goto yy52;
+       if (yych == 'n') goto yy108;
+       goto yy53;
 yy101:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy109;
-       goto yy52;
+       if (yych == 'a') goto yy109;
+       goto yy53;
 yy102:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy110;
-       goto yy52;
+       if (yych == 'p') goto yy110;
+       goto yy53;
 yy103:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy111;
-       goto yy52;
+       if (yych == 'm') goto yy111;
+       goto yy53;
 yy104:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy112;
-       goto yy52;
+       if (yych == 'r') goto yy112;
+       goto yy53;
 yy105:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy113;
-       goto yy52;
+       if (yych == 'd') goto yy113;
+       goto yy53;
 yy106:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy114;
-       goto yy52;
+       if (yych == 'b') goto yy114;
+       goto yy53;
 yy107:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy115;
-       goto yy52;
+       if (yych == 'e') goto yy115;
+       goto yy53;
 yy108:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy116;
-       goto yy52;
+       if (yych == '-') goto yy116;
+       goto yy53;
 yy109:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy117;
-       goto yy52;
+       if (yych == 'r') goto yy117;
+       goto yy53;
 yy110:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy118;
-       goto yy52;
+       if (yych == 't') goto yy118;
+       goto yy53;
 yy111:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy119;
-       goto yy52;
+       if (yych == 'i') goto yy119;
+       goto yy53;
 yy112:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy120;
-       goto yy52;
+       if (yych == 'a') goto yy120;
+       goto yy53;
 yy113:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy121;
-       goto yy52;
+       if (yych == '-') goto yy121;
+       goto yy53;
 yy114:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy122;
-       goto yy52;
+       if (yych == 'l') goto yy122;
+       goto yy53;
 yy115:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy123;
-       goto yy52;
+       if (yych == 's') goto yy123;
+       goto yy53;
 yy116:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy124;
-       goto yy52;
+       if (yych == 'o') goto yy124;
+       goto yy53;
 yy117:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy125;
-       goto yy52;
+       if (yych == 'a') goto yy125;
+       goto yy53;
 yy118:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy126;
-       goto yy52;
+       if (yych == 'y') goto yy126;
+       goto yy53;
 yy119:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'n') goto yy127;
-       goto yy52;
+       goto yy53;
 yy120:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy128;
-       goto yy52;
+       if (yych == 'n') goto yy128;
+       goto yy53;
 yy121:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy129;
-       goto yy52;
+       if (yych == 'c') goto yy129;
+       goto yy53;
 yy122:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy130;
-       goto yy52;
+       if (yych == 'e') goto yy130;
+       goto yy53;
 yy123:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy131;
-       goto yy52;
+       if (yych == 'c') goto yy131;
+       goto yy53;
 yy124:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy132;
-       goto yy52;
+       if (yych == 'r') goto yy132;
+       goto yy53;
 yy125:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy133;
-       goto yy52;
+       if (yych == 'c') goto yy133;
+       goto yy53;
 yy126:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy134;
-       goto yy52;
+       if (yych == '-') goto yy134;
+       goto yy53;
 yy127:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy135;
-       goto yy52;
+       if (yych == 'i') goto yy135;
+       goto yy53;
 yy128:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy136;
-       goto yy52;
+       if (yych == 'g') goto yy136;
+       goto yy53;
 yy129:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy137;
-       goto yy52;
+       if (yych == 'o') goto yy137;
+       goto yy53;
 yy130:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy138;
-       goto yy52;
+       if (yych == '-') goto yy138;
+       goto yy53;
 yy131:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy139;
-       goto yy52;
+       if (yych == 'a') goto yy139;
+       goto yy53;
 yy132:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy140;
-       goto yy52;
+       if (yych == 'd') goto yy140;
+       goto yy53;
 yy133:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy141;
-       goto yy52;
+       if (yych == 't') goto yy141;
+       goto yy53;
 yy134:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy142;
-       goto yy52;
+       if (yych == 's') goto yy142;
+       goto yy53;
 yy135:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy143;
-       goto yy52;
+       if (yych == 's') goto yy143;
+       goto yy53;
 yy136:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy144;
-       goto yy52;
+       if (yych == 'e') goto yy144;
+       goto yy53;
 yy137:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy145;
-       goto yy52;
+       if (yych == 'n') goto yy145;
+       goto yy53;
 yy138:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy146;
-       goto yy52;
+       if (yych == 'r') goto yy146;
+       goto yy53;
 yy139:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy147;
-       goto yy52;
+       if (yych == 'p') goto yy147;
+       goto yy53;
 yy140:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy148;
-       goto yy52;
+       goto yy53;
 yy141:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy149;
-       goto yy52;
+       if (yych == 'e') goto yy149;
+       goto yy53;
 yy142:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy150;
-       goto yy52;
+       if (yych == 't') goto yy150;
+       goto yy53;
 yy143:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy151;
-       goto yy52;
+       if (yych == 't') goto yy151;
+       goto yy53;
 yy144:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy153;
-       goto yy52;
+       if (yych <= 0x00) goto yy152;
+       goto yy53;
 yy145:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy154;
-       goto yy52;
+       if (yych == 't') goto yy154;
+       goto yy53;
 yy146:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy155;
-       goto yy52;
+       if (yych == 'u') goto yy155;
+       goto yy53;
 yy147:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy156;
-       goto yy52;
+       if (yych == 'e') goto yy156;
+       goto yy53;
 yy148:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'r') goto yy157;
-       goto yy52;
+       goto yy53;
 yy149:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'r') goto yy158;
-       goto yy52;
+       goto yy53;
 yy150:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy159;
-       goto yy52;
+       if (yych == 'r') goto yy159;
+       goto yy53;
 yy151:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy160;
+       goto yy53;
+yy152:
        ++YYCURSOR;
 #line 85 "../src/conf/parse_opts.re"
        { warn.set (Warn::SWAPPED_RANGE,            option); goto opt; }
-#line 690 "src/conf/parse_opts.cc"
-yy153:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy160;
-       goto yy52;
+#line 694 "src/conf/parse_opts.cc"
 yy154:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy161;
-       goto yy52;
+       if (yych == 'r') goto yy161;
+       goto yy53;
 yy155:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy162;
-       goto yy52;
+       if (yych == 'l') goto yy162;
+       goto yy53;
 yy156:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy164;
-       goto yy52;
+       if (yych <= 0x00) goto yy163;
+       goto yy53;
 yy157:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy166;
-       goto yy52;
+       if (yych <= 0x00) goto yy165;
+       goto yy53;
 yy158:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy167;
-       goto yy52;
+       if (yych == '-') goto yy167;
+       goto yy53;
 yy159:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy168;
-       goto yy52;
+       if (yych == 'i') goto yy168;
+       goto yy53;
 yy160:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy169;
-       goto yy52;
+       if (yych == 'c') goto yy169;
+       goto yy53;
 yy161:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy170;
-       goto yy52;
+       if (yych == 'o') goto yy170;
+       goto yy53;
 yy162:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy171;
+       goto yy53;
+yy163:
        ++YYCURSOR;
 #line 88 "../src/conf/parse_opts.re"
        { warn.set (Warn::USELESS_ESCAPE,           option); goto opt; }
-#line 731 "src/conf/parse_opts.cc"
-yy164:
+#line 735 "src/conf/parse_opts.cc"
+yy165:
        ++YYCURSOR;
 #line 81 "../src/conf/parse_opts.re"
        { warn.set (Warn::CONDITION_ORDER,          option); goto opt; }
-#line 736 "src/conf/parse_opts.cc"
-yy166:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy171;
-       goto yy52;
+#line 740 "src/conf/parse_opts.cc"
 yy167:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy172;
-       goto yy52;
+       if (yych == 'c') goto yy172;
+       goto yy53;
 yy168:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy173;
-       goto yy52;
+       if (yych == 'n') goto yy173;
+       goto yy53;
 yy169:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy174;
-       goto yy52;
+       if (yych == '-') goto yy174;
+       goto yy53;
 yy170:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy175;
-       goto yy52;
+       if (yych == 'l') goto yy175;
+       goto yy53;
 yy171:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy176;
-       goto yy52;
+       if (yych == 's') goto yy176;
+       goto yy53;
 yy172:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy177;
-       goto yy52;
+       if (yych == 'l') goto yy177;
+       goto yy53;
 yy173:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy178;
-       goto yy52;
+       if (yych == 'g') goto yy178;
+       goto yy53;
 yy174:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy179;
-       goto yy52;
+       if (yych == 't') goto yy179;
+       goto yy53;
 yy175:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy180;
-       goto yy52;
+       if (yych == '-') goto yy180;
+       goto yy53;
 yy176:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy182;
-       goto yy52;
+       if (yych <= 0x00) goto yy181;
+       goto yy53;
 yy177:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy183;
-       goto yy52;
+       if (yych == 'a') goto yy183;
+       goto yy53;
 yy178:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy185;
-       goto yy52;
+       if (yych <= 0x00) goto yy184;
+       goto yy53;
 yy179:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy186;
-       goto yy52;
+       if (yych == 'a') goto yy186;
+       goto yy53;
 yy180:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'f') goto yy187;
+       goto yy53;
+yy181:
        ++YYCURSOR;
 #line 87 "../src/conf/parse_opts.re"
        { warn.set (Warn::UNREACHABLE_RULES,        option); goto opt; }
-#line 797 "src/conf/parse_opts.cc"
-yy182:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy187;
-       goto yy52;
+#line 801 "src/conf/parse_opts.cc"
 yy183:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy188;
+       goto yy53;
+yy184:
        ++YYCURSOR;
 #line 83 "../src/conf/parse_opts.re"
        { warn.set (Warn::MATCH_EMPTY_STRING,       option); goto opt; }
-#line 806 "src/conf/parse_opts.cc"
-yy185:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy188;
-       goto yy52;
+#line 810 "src/conf/parse_opts.cc"
 yy186:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy189;
-       goto yy52;
+       if (yych == 'g') goto yy189;
+       goto yy53;
 yy187:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy190;
-       goto yy52;
+       if (yych == 'l') goto yy190;
+       goto yy53;
 yy188:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy191;
-       goto yy52;
+       if (yych == 's') goto yy191;
+       goto yy53;
 yy189:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy192;
-       goto yy52;
+       if (yych == 's') goto yy192;
+       goto yy53;
 yy190:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy193;
-       goto yy52;
+       if (yych == 'o') goto yy193;
+       goto yy53;
 yy191:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy195;
-       goto yy52;
+       if (yych <= 0x00) goto yy194;
+       goto yy53;
 yy192:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'w') goto yy196;
-       goto yy52;
+       if (yych <= 0x00) goto yy196;
+       goto yy53;
 yy193:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'w') goto yy198;
+       goto yy53;
+yy194:
        ++YYCURSOR;
 #line 82 "../src/conf/parse_opts.re"
        { warn.set (Warn::EMPTY_CHARACTER_CLASS,    option); goto opt; }
-#line 843 "src/conf/parse_opts.cc"
-yy195:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy197;
-       goto yy52;
+#line 847 "src/conf/parse_opts.cc"
 yy196:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy198;
-       goto yy52;
-yy197:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy200;
-       goto yy52;
+       ++YYCURSOR;
+#line 84 "../src/conf/parse_opts.re"
+       { warn.set (Warn::NONDETERMINISTIC_TAGS,    option); goto opt; }
+#line 852 "src/conf/parse_opts.cc"
 yy198:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych >= 0x01) goto yy53;
        ++YYCURSOR;
 #line 86 "../src/conf/parse_opts.re"
        { warn.set (Warn::UNDEFINED_CONTROL_FLOW,   option); goto opt; }
-#line 860 "src/conf/parse_opts.cc"
-yy200:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy52;
-       ++YYCURSOR;
-#line 84 "../src/conf/parse_opts.re"
-       { warn.set (Warn::SELFOVERLAPPING_CONTEXTS, option); goto opt; }
-#line 867 "src/conf/parse_opts.cc"
+#line 859 "src/conf/parse_opts.cc"
 }
 #line 89 "../src/conf/parse_opts.re"
 
 
 opt_short:
 
-#line 874 "src/conf/parse_opts.cc"
+#line 866 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'b') {
-               if (yych <= 'C') {
+               if (yych <= 'D') {
                        if (yych <= '7') {
-                               if (yych <= 0x00) goto yy205;
-                               if (yych == '1') goto yy209;
-                               goto yy207;
+                               if (yych <= 0x00) goto yy203;
+                               if (yych == '1') goto yy207;
+                               goto yy205;
                        } else {
                                if (yych <= '>') {
-                                       if (yych <= '8') goto yy211;
-                                       goto yy207;
+                                       if (yych <= '8') goto yy209;
+                                       goto yy205;
                                } else {
-                                       if (yych <= '?') goto yy213;
-                                       if (yych <= 'B') goto yy207;
-                                       goto yy215;
+                                       if (yych <= '?') goto yy211;
+                                       if (yych <= 'C') goto yy205;
+                                       goto yy213;
                                }
                        }
                } else {
-                       if (yych <= 'R') {
-                               if (yych <= 'D') goto yy217;
-                               if (yych == 'F') goto yy219;
-                               goto yy207;
+                       if (yych <= 'S') {
+                               if (yych == 'F') goto yy215;
+                               if (yych <= 'R') goto yy205;
+                               goto yy217;
                        } else {
                                if (yych <= 'U') {
-                                       if (yych <= 'S') goto yy221;
-                                       goto yy207;
+                                       if (yych <= 'T') goto yy219;
+                                       goto yy205;
                                } else {
-                                       if (yych <= 'V') goto yy223;
-                                       if (yych <= 'a') goto yy207;
-                                       goto yy225;
+                                       if (yych <= 'V') goto yy221;
+                                       if (yych <= 'a') goto yy205;
+                                       goto yy223;
                                }
                        }
                }
        } else {
                if (yych <= 'o') {
                        if (yych <= 'f') {
-                               if (yych <= 'c') goto yy227;
-                               if (yych <= 'd') goto yy229;
-                               if (yych <= 'e') goto yy231;
-                               goto yy233;
+                               if (yych <= 'c') goto yy225;
+                               if (yych <= 'd') goto yy227;
+                               if (yych <= 'e') goto yy229;
+                               goto yy231;
                        } else {
                                if (yych <= 'h') {
-                                       if (yych <= 'g') goto yy235;
-                                       goto yy213;
+                                       if (yych <= 'g') goto yy233;
+                                       goto yy211;
                                } else {
-                                       if (yych <= 'i') goto yy237;
-                                       if (yych <= 'n') goto yy207;
-                                       goto yy239;
+                                       if (yych <= 'i') goto yy235;
+                                       if (yych <= 'n') goto yy205;
+                                       goto yy237;
                                }
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych <= 'q') goto yy207;
-                               if (yych <= 'r') goto yy241;
-                               if (yych <= 's') goto yy243;
-                               goto yy245;
+                               if (yych <= 'q') goto yy205;
+                               if (yych <= 'r') goto yy239;
+                               if (yych <= 's') goto yy241;
+                               goto yy243;
                        } else {
                                if (yych <= 'v') {
-                                       if (yych <= 'u') goto yy247;
-                                       goto yy249;
+                                       if (yych <= 'u') goto yy245;
+                                       goto yy247;
                                } else {
-                                       if (yych <= 'w') goto yy251;
-                                       if (yych <= 'x') goto yy253;
-                                       goto yy207;
+                                       if (yych <= 'w') goto yy249;
+                                       if (yych <= 'x') goto yy251;
+                                       goto yy205;
                                }
                        }
                }
        }
-yy205:
+yy203:
        ++YYCURSOR;
 #line 98 "../src/conf/parse_opts.re"
        { goto opt; }
-#line 949 "src/conf/parse_opts.cc"
-yy207:
+#line 941 "src/conf/parse_opts.cc"
+yy205:
        ++YYCURSOR;
 #line 94 "../src/conf/parse_opts.re"
        {
                error ("bad short option: %s", *argv);
                return EXIT_FAIL;
        }
-#line 957 "src/conf/parse_opts.cc"
-yy209:
+#line 949 "src/conf/parse_opts.cc"
+yy207:
        ++YYCURSOR;
 #line 123 "../src/conf/parse_opts.re"
        { goto opt_short; }
-#line 962 "src/conf/parse_opts.cc"
-yy211:
+#line 954 "src/conf/parse_opts.cc"
+yy209:
        ++YYCURSOR;
 #line 118 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::UTF8))   { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 967 "src/conf/parse_opts.cc"
-yy213:
+#line 959 "src/conf/parse_opts.cc"
+yy211:
        ++YYCURSOR;
 #line 99 "../src/conf/parse_opts.re"
        { usage ();   return EXIT_OK; }
-#line 972 "src/conf/parse_opts.cc"
+#line 964 "src/conf/parse_opts.cc"
+yy213:
+       ++YYCURSOR;
+#line 105 "../src/conf/parse_opts.re"
+       { opts.set_target (opt_t::DOT);      goto opt_short; }
+#line 969 "src/conf/parse_opts.cc"
 yy215:
        ++YYCURSOR;
-#line 104 "../src/conf/parse_opts.re"
-       { opts.set_contexts (true);          goto opt_short; }
-#line 977 "src/conf/parse_opts.cc"
+#line 107 "../src/conf/parse_opts.re"
+       { opts.set_FFlag (true);             goto opt_short; }
+#line 974 "src/conf/parse_opts.cc"
 yy217:
        ++YYCURSOR;
-#line 106 "../src/conf/parse_opts.re"
-       { opts.set_target (opt_t::DOT);      goto opt_short; }
-#line 982 "src/conf/parse_opts.cc"
+#line 112 "../src/conf/parse_opts.re"
+       { opts.set_target (opt_t::SKELETON); goto opt_short; }
+#line 979 "src/conf/parse_opts.cc"
 yy219:
        ++YYCURSOR;
-#line 108 "../src/conf/parse_opts.re"
-       { opts.set_FFlag (true);             goto opt_short; }
-#line 987 "src/conf/parse_opts.cc"
-yy221:
-       ++YYCURSOR;
 #line 113 "../src/conf/parse_opts.re"
-       { opts.set_target (opt_t::SKELETON); goto opt_short; }
-#line 992 "src/conf/parse_opts.cc"
-yy223:
+       { opts.set_tags (true);              goto opt_short; }
+#line 984 "src/conf/parse_opts.cc"
+yy221:
        ++YYCURSOR;
 #line 101 "../src/conf/parse_opts.re"
        { vernum ();  return EXIT_OK; }
-#line 997 "src/conf/parse_opts.cc"
-yy225:
+#line 989 "src/conf/parse_opts.cc"
+yy223:
        ++YYCURSOR;
 #line 102 "../src/conf/parse_opts.re"
        { opts.set_bFlag (true);             goto opt_short; }
-#line 1002 "src/conf/parse_opts.cc"
-yy227:
+#line 994 "src/conf/parse_opts.cc"
+yy225:
        ++YYCURSOR;
 #line 103 "../src/conf/parse_opts.re"
        { opts.set_cFlag (true);             goto opt_short; }
-#line 1007 "src/conf/parse_opts.cc"
-yy229:
+#line 999 "src/conf/parse_opts.cc"
+yy227:
        ++YYCURSOR;
-#line 105 "../src/conf/parse_opts.re"
+#line 104 "../src/conf/parse_opts.re"
        { opts.set_dFlag (true);             goto opt_short; }
-#line 1012 "src/conf/parse_opts.cc"
-yy231:
+#line 1004 "src/conf/parse_opts.cc"
+yy229:
        ++YYCURSOR;
 #line 114 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 1017 "src/conf/parse_opts.cc"
-yy233:
+#line 1009 "src/conf/parse_opts.cc"
+yy231:
        ++YYCURSOR;
-#line 107 "../src/conf/parse_opts.re"
+#line 106 "../src/conf/parse_opts.re"
        { opts.set_fFlag (true);             goto opt_short; }
-#line 1022 "src/conf/parse_opts.cc"
-yy235:
+#line 1014 "src/conf/parse_opts.cc"
+yy233:
        ++YYCURSOR;
-#line 109 "../src/conf/parse_opts.re"
+#line 108 "../src/conf/parse_opts.re"
        { opts.set_gFlag (true);             goto opt_short; }
-#line 1027 "src/conf/parse_opts.cc"
-yy237:
+#line 1019 "src/conf/parse_opts.cc"
+yy235:
        ++YYCURSOR;
-#line 110 "../src/conf/parse_opts.re"
+#line 109 "../src/conf/parse_opts.re"
        { opts.set_iFlag (true);             goto opt_short; }
-#line 1032 "src/conf/parse_opts.cc"
-yy239:
+#line 1024 "src/conf/parse_opts.cc"
+yy237:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy255;
+       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy253;
 #line 120 "../src/conf/parse_opts.re"
        { *argv = YYCURSOR;                                                             goto opt_output; }
-#line 1038 "src/conf/parse_opts.cc"
-yy241:
+#line 1030 "src/conf/parse_opts.cc"
+yy239:
        ++YYCURSOR;
-#line 111 "../src/conf/parse_opts.re"
+#line 110 "../src/conf/parse_opts.re"
        { opts.set_rFlag (true);             goto opt_short; }
-#line 1043 "src/conf/parse_opts.cc"
-yy243:
+#line 1035 "src/conf/parse_opts.cc"
+yy241:
        ++YYCURSOR;
-#line 112 "../src/conf/parse_opts.re"
+#line 111 "../src/conf/parse_opts.re"
        { opts.set_sFlag (true);             goto opt_short; }
-#line 1048 "src/conf/parse_opts.cc"
-yy245:
+#line 1040 "src/conf/parse_opts.cc"
+yy243:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy257;
+       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy255;
 #line 122 "../src/conf/parse_opts.re"
        { *argv = YYCURSOR;                                                                  goto opt_header; }
-#line 1054 "src/conf/parse_opts.cc"
-yy247:
+#line 1046 "src/conf/parse_opts.cc"
+yy245:
        ++YYCURSOR;
 #line 115 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::UTF32))  { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 1059 "src/conf/parse_opts.cc"
-yy249:
+#line 1051 "src/conf/parse_opts.cc"
+yy247:
        ++YYCURSOR;
 #line 100 "../src/conf/parse_opts.re"
        { version (); return EXIT_OK; }
-#line 1064 "src/conf/parse_opts.cc"
-yy251:
+#line 1056 "src/conf/parse_opts.cc"
+yy249:
        ++YYCURSOR;
 #line 116 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::UCS2))   { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 1069 "src/conf/parse_opts.cc"
-yy253:
+#line 1061 "src/conf/parse_opts.cc"
+yy251:
        ++YYCURSOR;
 #line 117 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::UTF16))  { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 1074 "src/conf/parse_opts.cc"
-yy255:
+#line 1066 "src/conf/parse_opts.cc"
+yy253:
        ++YYCURSOR;
 #line 119 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
-#line 1079 "src/conf/parse_opts.cc"
-yy257:
+#line 1071 "src/conf/parse_opts.cc"
+yy255:
        ++YYCURSOR;
 #line 121 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
-#line 1084 "src/conf/parse_opts.cc"
+#line 1076 "src/conf/parse_opts.cc"
 }
 #line 124 "../src/conf/parse_opts.re"
 
 
 opt_long:
 
-#line 1091 "src/conf/parse_opts.cc"
+#line 1083 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        switch (yych) {
-       case 'b':       goto yy263;
-       case 'c':       goto yy264;
-       case 'd':       goto yy265;
-       case 'e':       goto yy266;
-       case 'f':       goto yy267;
-       case 'h':       goto yy268;
-       case 'i':       goto yy269;
-       case 'n':       goto yy270;
-       case 'o':       goto yy271;
-       case 'r':       goto yy272;
-       case 's':       goto yy273;
-       case 't':       goto yy274;
-       case 'u':       goto yy275;
-       case 'v':       goto yy276;
-       case 'w':       goto yy277;
-       default:        goto yy261;
+       case 'b':       goto yy261;
+       case 'c':       goto yy262;
+       case 'd':       goto yy263;
+       case 'e':       goto yy264;
+       case 'f':       goto yy265;
+       case 'h':       goto yy266;
+       case 'i':       goto yy267;
+       case 'n':       goto yy268;
+       case 'o':       goto yy269;
+       case 'r':       goto yy270;
+       case 's':       goto yy271;
+       case 't':       goto yy272;
+       case 'u':       goto yy273;
+       case 'v':       goto yy274;
+       case 'w':       goto yy275;
+       default:        goto yy259;
        }
-yy261:
+yy259:
        ++YYCURSOR;
-yy262:
+yy260:
 #line 129 "../src/conf/parse_opts.re"
        {
                error ("bad long option: %s", *argv);
                return EXIT_FAIL;
        }
-#line 1121 "src/conf/parse_opts.cc"
+#line 1113 "src/conf/parse_opts.cc"
+yy261:
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == 'i') goto yy276;
+       goto yy260;
+yy262:
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == 'a') goto yy278;
+       if (yych == 'o') goto yy279;
+       goto yy260;
 yy263:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'i') goto yy278;
-       goto yy262;
+       if (yych <= 'd') goto yy260;
+       if (yych <= 'e') goto yy280;
+       if (yych <= 'f') goto yy281;
+       goto yy260;
 yy264:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy280;
-       if (yych == 'o') goto yy281;
-       goto yy262;
+       if (yych <= 'l') {
+               if (yych == 'c') goto yy282;
+               goto yy260;
+       } else {
+               if (yych <= 'm') goto yy283;
+               if (yych <= 'n') goto yy284;
+               goto yy260;
+       }
 yy265:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych <= 'd') goto yy262;
-       if (yych <= 'e') goto yy282;
-       if (yych <= 'f') goto yy283;
-       goto yy262;
+       if (yych == 'l') goto yy285;
+       goto yy260;
 yy266:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych <= 'l') {
-               if (yych == 'c') goto yy284;
-               goto yy262;
-       } else {
-               if (yych <= 'm') goto yy285;
-               if (yych <= 'n') goto yy286;
-               goto yy262;
-       }
+       if (yych == 'e') goto yy286;
+       goto yy260;
 yy267:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'l') goto yy287;
-       goto yy262;
+       if (yych == 'n') goto yy287;
+       goto yy260;
 yy268:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'e') goto yy288;
-       goto yy262;
+       if (yych == 'o') goto yy289;
+       goto yy260;
 yy269:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy289;
-       goto yy262;
+       if (yych == 'u') goto yy290;
+       goto yy260;
 yy270:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy290;
-       if (yych == 'o') goto yy291;
-       goto yy262;
+       if (yych == 'e') goto yy291;
+       goto yy260;
 yy271:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy292;
-       goto yy262;
+       if (yych <= 'j') {
+               if (yych == 'i') goto yy292;
+               goto yy260;
+       } else {
+               if (yych <= 'k') goto yy293;
+               if (yych == 't') goto yy294;
+               goto yy260;
+       }
 yy272:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy293;
-       goto yy262;
+       if (yych == 'a') goto yy295;
+       if (yych == 'y') goto yy296;
+       goto yy260;
 yy273:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych <= 'j') {
-               if (yych == 'i') goto yy294;
-               goto yy262;
-       } else {
-               if (yych <= 'k') goto yy295;
-               if (yych == 't') goto yy296;
-               goto yy262;
-       }
+       if (yych == 'n') goto yy297;
+       if (yych == 't') goto yy298;
+       goto yy260;
 yy274:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'y') goto yy297;
-       goto yy262;
+       if (yych == 'e') goto yy299;
+       goto yy260;
 yy275:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy298;
-       if (yych == 't') goto yy299;
-       goto yy262;
+       if (yych == 'i') goto yy300;
+       goto yy260;
 yy276:
-       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy300;
-       goto yy262;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy301;
 yy277:
-       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'i') goto yy301;
-       goto yy262;
+       YYCURSOR = YYMARKER;
+       goto yy260;
 yy278:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy302;
+       if (yych == 's') goto yy302;
+       goto yy277;
 yy279:
-       YYCURSOR = YYMARKER;
-       goto yy262;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'm') goto yy303;
+       goto yy277;
 yy280:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy303;
-       goto yy279;
+       if (yych == 'b') goto yy304;
+       goto yy277;
 yy281:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 'l') goto yy279;
-       if (yych <= 'm') goto yy304;
-       if (yych <= 'n') goto yy305;
-       goto yy279;
+       if (yych == 'a') goto yy305;
+       goto yy277;
 yy282:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'b') goto yy306;
-       goto yy279;
+       goto yy277;
 yy283:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy307;
-       goto yy279;
+       if (yych == 'i') goto yy307;
+       if (yych == 'p') goto yy308;
+       goto yy277;
 yy284:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy308;
-       goto yy279;
+       if (yych == 'c') goto yy309;
+       goto yy277;
 yy285:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy309;
-       if (yych == 'p') goto yy310;
-       goto yy279;
+       if (yych == 'e') goto yy310;
+       goto yy277;
 yy286:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy311;
-       goto yy279;
+       if (yych == 'l') goto yy311;
+       goto yy277;
 yy287:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy312;
-       goto yy279;
+       if (yych == 'p') goto yy312;
+       goto yy277;
 yy288:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy313;
-       goto yy279;
+       if (yych == 's') goto yy313;
+       goto yy277;
 yy289:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy314;
-       goto yy279;
+       if (yych == '-') goto yy314;
+       goto yy277;
 yy290:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy315;
-       goto yy279;
+       if (yych == 't') goto yy315;
+       goto yy277;
 yy291:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy316;
-       goto yy279;
+       if (yych == 'u') goto yy316;
+       goto yy277;
 yy292:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy317;
-       goto yy279;
+       if (yych == 'n') goto yy317;
+       goto yy277;
 yy293:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy318;
-       goto yy279;
+       if (yych == 'e') goto yy318;
+       goto yy277;
 yy294:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy319;
-       goto yy279;
+       if (yych == 'a') goto yy319;
+       if (yych == 'o') goto yy320;
+       goto yy277;
 yy295:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy320;
-       goto yy279;
+       if (yych == 'g') goto yy321;
+       goto yy277;
 yy296:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy321;
-       if (yych == 'o') goto yy322;
-       goto yy279;
+       if (yych == 'p') goto yy322;
+       goto yy277;
 yy297:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy323;
-       goto yy279;
+       if (yych == 'i') goto yy323;
+       goto yy277;
 yy298:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy324;
-       goto yy279;
+       if (yych == 'f') goto yy324;
+       goto yy277;
 yy299:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy325;
-       goto yy279;
+       if (yych == 'r') goto yy325;
+       goto yy277;
 yy300:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy326;
-       goto yy279;
+       if (yych == 'd') goto yy326;
+       goto yy277;
 yy301:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy327;
-       goto yy279;
+       if (yych == '-') goto yy327;
+       goto yy277;
 yy302:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy328;
-       goto yy279;
+       if (yych == 'e') goto yy328;
+       goto yy277;
 yy303:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy329;
-       goto yy279;
+       if (yych == 'p') goto yy329;
+       goto yy277;
 yy304:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy330;
-       goto yy279;
+       if (yych == 'u') goto yy330;
+       goto yy277;
 yy305:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy331;
-       goto yy279;
+       if (yych == '-') goto yy331;
+       goto yy277;
 yy306:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy332;
-       goto yy279;
+       if (yych <= 0x00) goto yy332;
+       goto yy277;
 yy307:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy333;
-       goto yy279;
+       if (yych == 't') goto yy334;
+       goto yy277;
 yy308:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy334;
-       goto yy279;
+       if (yych == 't') goto yy335;
+       goto yy277;
 yy309:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy336;
-       goto yy279;
+       if (yych == 'o') goto yy336;
+       goto yy277;
 yy310:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy337;
-       goto yy279;
+       if (yych == 'x') goto yy337;
+       goto yy277;
 yy311:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy338;
-       goto yy279;
+       if (yych == 'p') goto yy338;
+       goto yy277;
 yy312:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy339;
-       goto yy279;
+       if (yych == 'u') goto yy339;
+       goto yy277;
 yy313:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy340;
-       goto yy279;
+       if (yych == 't') goto yy340;
+       goto yy277;
 yy314:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy341;
-       goto yy279;
+       if (yych <= 'f') {
+               if (yych == 'd') goto yy341;
+               goto yy277;
+       } else {
+               if (yych <= 'g') goto yy342;
+               if (yych == 'v') goto yy343;
+               goto yy277;
+       }
 yy315:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy342;
-       goto yy279;
+       if (yych == 'p') goto yy344;
+       goto yy277;
 yy316:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 'f') {
-               if (yych == 'd') goto yy343;
-               goto yy279;
-       } else {
-               if (yych <= 'g') goto yy344;
-               if (yych == 'v') goto yy345;
-               goto yy279;
-       }
+       if (yych == 's') goto yy345;
+       goto yy277;
 yy317:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy346;
-       goto yy279;
+       if (yych == 'g') goto yy346;
+       goto yy277;
 yy318:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy347;
-       goto yy279;
+       if (yych == 'l') goto yy347;
+       goto yy277;
 yy319:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy348;
-       goto yy279;
+       if (yych == 'r') goto yy348;
+       goto yy277;
 yy320:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy349;
-       goto yy279;
+       if (yych == 'r') goto yy349;
+       goto yy277;
 yy321:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy350;
-       goto yy279;
+       if (yych == 's') goto yy350;
+       goto yy277;
 yy322:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy351;
-       goto yy279;
+       if (yych == 'e') goto yy351;
+       goto yy277;
 yy323:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy352;
-       goto yy279;
+       if (yych == 'c') goto yy352;
+       goto yy277;
 yy324:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy353;
-       goto yy279;
+       if (yych == '-') goto yy353;
+       goto yy277;
 yy325:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy354;
-       goto yy279;
+       if (yych == 'n') goto yy354;
+       if (yych == 's') goto yy355;
+       goto yy277;
 yy326:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy355;
-       if (yych == 's') goto yy356;
-       goto yy279;
+       if (yych == 'e') goto yy356;
+       goto yy277;
 yy327:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy357;
-       goto yy279;
+       if (yych == 'v') goto yy357;
+       goto yy277;
 yy328:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy358;
-       goto yy279;
+       if (yych == '-') goto yy358;
+       goto yy277;
 yy329:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy359;
-       goto yy279;
+       if (yych == 'u') goto yy359;
+       goto yy277;
 yy330:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy360;
-       goto yy279;
+       if (yych == 'g') goto yy360;
+       goto yy277;
 yy331:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy361;
-       goto yy279;
+       if (yych == 'm') goto yy361;
+       goto yy277;
 yy332:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy362;
-       goto yy279;
-yy333:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy363;
-       goto yy279;
-yy334:
        ++YYCURSOR;
 #line 152 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 1436 "src/conf/parse_opts.cc"
+#line 1427 "src/conf/parse_opts.cc"
+yy334:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy362;
+       goto yy277;
+yy335:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'y') goto yy363;
+       goto yy277;
 yy336:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy364;
-       goto yy279;
+       if (yych == 'd') goto yy364;
+       goto yy277;
 yy337:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy365;
-       goto yy279;
+       if (yych == '-') goto yy365;
+       goto yy277;
 yy338:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy366;
-       goto yy279;
+       if (yych <= 0x00) goto yy366;
+       goto yy277;
 yy339:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy367;
-       goto yy279;
+       if (yych == 't') goto yy368;
+       goto yy277;
 yy340:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy368;
-       goto yy279;
+       if (yych == 'e') goto yy369;
+       goto yy277;
 yy341:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy370;
-       goto yy279;
+       if (yych == 'e') goto yy370;
+       goto yy277;
 yy342:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy371;
-       goto yy279;
+       goto yy277;
 yy343:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy372;
-       goto yy279;
+       goto yy277;
 yy344:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy373;
-       goto yy279;
+       if (yych == 'u') goto yy373;
+       goto yy277;
 yy345:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy374;
-       goto yy279;
+       if (yych == 'a') goto yy374;
+       goto yy277;
 yy346:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy375;
-       goto yy279;
+       if (yych == 'l') goto yy375;
+       goto yy277;
 yy347:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy376;
-       goto yy279;
+       if (yych == 'e') goto yy376;
+       goto yy277;
 yy348:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy377;
-       goto yy279;
+       if (yych == 't') goto yy377;
+       goto yy277;
 yy349:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy378;
-       goto yy279;
+       if (yych == 'a') goto yy378;
+       goto yy277;
 yy350:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy379;
-       goto yy279;
+       if (yych <= 0x00) goto yy379;
+       goto yy277;
 yy351:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy380;
-       goto yy279;
-yy352:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '-') goto yy381;
-       goto yy279;
-yy353:
+       goto yy277;
+yy352:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'o') goto yy382;
-       goto yy279;
-yy354:
+       goto yy277;
+yy353:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '1') goto yy383;
        if (yych == '8') goto yy384;
-       goto yy279;
-yy355:
+       goto yy277;
+yy354:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'u') goto yy385;
-       goto yy279;
-yy356:
+       goto yy277;
+yy355:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'i') goto yy386;
-       goto yy279;
-yy357:
+       goto yy277;
+yy356:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '-') goto yy387;
-       goto yy279;
-yy358:
+       goto yy277;
+yy357:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy388;
-       goto yy279;
-yy359:
+       goto yy277;
+yy358:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'i') goto yy389;
-       goto yy279;
-yy360:
+       goto yy277;
+yy359:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 't') goto yy390;
-       goto yy279;
+       goto yy277;
+yy360:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy391;
+       goto yy277;
 yy361:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy391;
-       goto yy279;
+       if (yych == 'i') goto yy392;
+       goto yy277;
 yy362:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy392;
-       goto yy279;
+       if (yych == 'd') goto yy393;
+       goto yy277;
 yy363:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy393;
-       goto yy279;
+       if (yych == '-') goto yy394;
+       goto yy277;
 yy364:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy394;
-       goto yy279;
+       if (yych == 'i') goto yy395;
+       goto yy277;
 yy365:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy395;
-       goto yy279;
+       if (yych == 's') goto yy396;
+       goto yy277;
 yy366:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy396;
-       goto yy279;
-yy367:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy397;
-       goto yy279;
-yy368:
        ++YYCURSOR;
 #line 133 "../src/conf/parse_opts.re"
        { usage ();   return EXIT_OK; }
-#line 1570 "src/conf/parse_opts.cc"
+#line 1561 "src/conf/parse_opts.cc"
+yy368:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy397;
+       goto yy277;
+yy369:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'd') goto yy399;
+       goto yy277;
 yy370:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy398;
-       goto yy279;
+       if (yych == 'b') goto yy400;
+       goto yy277;
 yy371:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy400;
-       goto yy279;
+       if (yych == 'n') goto yy401;
+       goto yy277;
 yy372:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy401;
-       goto yy279;
+       if (yych == 'r') goto yy402;
+       goto yy277;
 yy373:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy402;
-       goto yy279;
+       if (yych == 't') goto yy403;
+       goto yy277;
 yy374:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy403;
-       goto yy279;
+       if (yych == 'b') goto yy404;
+       goto yy277;
 yy375:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy404;
-       goto yy279;
+       if (yych == 'e') goto yy405;
+       goto yy277;
 yy376:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy405;
-       goto yy279;
+       if (yych == 't') goto yy406;
+       goto yy277;
 yy377:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy406;
-       goto yy279;
+       if (yych == '-') goto yy407;
+       goto yy277;
 yy378:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy407;
-       goto yy279;
+       if (yych == 'b') goto yy408;
+       goto yy277;
 yy379:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy408;
-       goto yy279;
-yy380:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy409;
-       goto yy279;
+       ++YYCURSOR;
+#line 151 "../src/conf/parse_opts.re"
+       { opts.set_tags (true);              goto opt; }
+#line 1610 "src/conf/parse_opts.cc"
 yy381:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy410;
-       goto yy279;
+       if (yych == 'h') goto yy409;
+       goto yy277;
 yy382:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy411;
-       goto yy279;
+       if (yych == 'd') goto yy410;
+       goto yy277;
 yy383:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '6') goto yy412;
-       goto yy279;
+       if (yych == '6') goto yy411;
+       goto yy277;
 yy384:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy413;
-       goto yy279;
+       if (yych <= 0x00) goto yy412;
+       goto yy277;
 yy385:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy415;
-       goto yy279;
+       if (yych == 'm') goto yy414;
+       goto yy277;
 yy386:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy416;
-       goto yy279;
+       if (yych == 'o') goto yy415;
+       goto yy277;
 yy387:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy417;
-       goto yy279;
+       if (yych == 'c') goto yy416;
+       goto yy277;
 yy388:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy418;
-       goto yy279;
+       if (yych == 'c') goto yy417;
+       goto yy277;
 yy389:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy419;
-       goto yy279;
+       if (yych == 'n') goto yy418;
+       goto yy277;
 yy390:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy420;
-       goto yy279;
+       if (yych == 'e') goto yy419;
+       goto yy277;
 yy391:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy421;
-       goto yy279;
+       if (yych == 'o') goto yy420;
+       goto yy277;
 yy392:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy422;
-       goto yy279;
+       if (yych == 'n') goto yy421;
+       goto yy277;
 yy393:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy423;
-       goto yy279;
+       if (yych == 'o') goto yy422;
+       goto yy277;
 yy394:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy424;
-       goto yy279;
+       if (yych == 'c') goto yy423;
+       goto yy277;
 yy395:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy425;
-       goto yy279;
+       if (yych == 'n') goto yy424;
+       goto yy277;
 yy396:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy426;
-       goto yy279;
+       if (yych == 'y') goto yy425;
+       goto yy277;
 yy397:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy427;
-       goto yy279;
-yy398:
        ++YYCURSOR;
 #line 160 "../src/conf/parse_opts.re"
        { goto opt_input; }
-#line 1687 "src/conf/parse_opts.cc"
+#line 1679 "src/conf/parse_opts.cc"
+yy399:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy426;
+       goto yy277;
 yy400:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy428;
-       goto yy279;
+       if (yych == 'u') goto yy427;
+       goto yy277;
 yy401:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy429;
-       goto yy279;
+       if (yych == 'e') goto yy428;
+       goto yy277;
 yy402:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy430;
-       goto yy279;
+       if (yych == 's') goto yy429;
+       goto yy277;
 yy403:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy431;
-       goto yy279;
+       if (yych <= 0x00) goto yy430;
+       goto yy277;
 yy404:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy432;
-       goto yy279;
+       if (yych == 'l') goto yy432;
+       goto yy277;
 yy405:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy434;
-       goto yy279;
+       if (yych == '-') goto yy433;
+       goto yy277;
 yy406:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy435;
-       goto yy279;
+       if (yych == 'o') goto yy434;
+       goto yy277;
 yy407:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy436;
-       goto yy279;
+       if (yych == 'c') goto yy435;
+       goto yy277;
 yy408:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy437;
-       goto yy279;
+       if (yych == 'l') goto yy436;
+       goto yy277;
 yy409:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy438;
-       goto yy279;
+       if (yych == 'e') goto yy437;
+       goto yy277;
 yy410:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy439;
-       goto yy279;
+       if (yych == 'e') goto yy438;
+       goto yy277;
 yy411:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy440;
-       goto yy279;
+       if (yych <= 0x00) goto yy439;
+       goto yy277;
 yy412:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy441;
-       goto yy279;
-yy413:
        ++YYCURSOR;
 #line 156 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::UTF8))   { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 1744 "src/conf/parse_opts.cc"
+#line 1736 "src/conf/parse_opts.cc"
+yy414:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy441;
+       goto yy277;
 yy415:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy443;
-       goto yy279;
+       if (yych == 'n') goto yy443;
+       goto yy277;
 yy416:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy445;
-       goto yy279;
+       if (yych == 'h') goto yy444;
+       goto yy277;
 yy417:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy446;
-       goto yy279;
+       if (yych == 't') goto yy445;
+       goto yy277;
 yy418:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy447;
-       goto yy279;
+       if (yych == 's') goto yy446;
+       if (yych == 'v') goto yy447;
+       goto yy277;
 yy419:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy448;
-       if (yych == 'v') goto yy449;
-       goto yy279;
+       if (yych == 'd') goto yy448;
+       goto yy277;
 yy420:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy450;
-       goto yy279;
+       if (yych == 'u') goto yy449;
+       goto yy277;
 yy421:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy451;
-       goto yy279;
+       if (yych == 'i') goto yy450;
+       goto yy277;
 yy422:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy452;
-       goto yy279;
+       if (yych == 't') goto yy451;
+       goto yy277;
 yy423:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy453;
-       goto yy279;
+       if (yych == 'l') goto yy452;
+       goto yy277;
 yy424:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy454;
-       goto yy279;
+       if (yych == 'g') goto yy453;
+       goto yy277;
 yy425:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy455;
-       goto yy279;
+       if (yych == 'n') goto yy454;
+       goto yy277;
 yy426:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy456;
-       goto yy279;
+       if (yych == 'i') goto yy455;
+       goto yy277;
 yy427:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy457;
-       goto yy279;
+       if (yych == 'g') goto yy456;
+       goto yy277;
 yy428:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy458;
-       goto yy279;
+       if (yych == 'r') goto yy457;
+       goto yy277;
 yy429:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy459;
-       goto yy279;
+       if (yych == 'i') goto yy458;
+       goto yy277;
 yy430:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy460;
-       goto yy279;
-yy431:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy461;
-       goto yy279;
-yy432:
        ++YYCURSOR;
 #line 157 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
-#line 1818 "src/conf/parse_opts.cc"
+#line 1806 "src/conf/parse_opts.cc"
+yy432:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy459;
+       goto yy277;
+yy433:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'p') goto yy460;
+       goto yy277;
 yy434:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy462;
-       goto yy279;
+       if (yych == 'n') goto yy461;
+       goto yy277;
 yy435:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy463;
-       goto yy279;
+       if (yych == 'o') goto yy462;
+       goto yy277;
 yy436:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy464;
-       goto yy279;
+       if (yych == 'e') goto yy463;
+       goto yy277;
 yy437:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy465;
-       goto yy279;
+       if (yych == 'a') goto yy464;
+       goto yy277;
 yy438:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy466;
-       goto yy279;
+       if (yych <= 0x00) goto yy465;
+       goto yy277;
 yy439:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy467;
-       goto yy279;
-yy440:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy468;
-       goto yy279;
-yy441:
        ++YYCURSOR;
 #line 155 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::UTF16))  { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 1851 "src/conf/parse_opts.cc"
-yy443:
+#line 1839 "src/conf/parse_opts.cc"
+yy441:
        ++YYCURSOR;
 #line 135 "../src/conf/parse_opts.re"
        { vernum ();  return EXIT_OK; }
-#line 1856 "src/conf/parse_opts.cc"
+#line 1844 "src/conf/parse_opts.cc"
+yy443:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy467;
+       goto yy277;
+yy444:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy469;
+       goto yy277;
 yy445:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy470;
-       goto yy279;
+       if (yych == 'o') goto yy470;
+       goto yy277;
 yy446:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy472;
-       goto yy279;
+       if (yych == 'e') goto yy471;
+       goto yy277;
 yy447:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy473;
-       goto yy279;
+       if (yych == 'e') goto yy472;
+       goto yy277;
 yy448:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy474;
-       goto yy279;
+       if (yych == '-') goto yy473;
+       goto yy277;
 yy449:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy475;
-       goto yy279;
+       if (yych == 't') goto yy474;
+       goto yy277;
 yy450:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy476;
-       goto yy279;
+       if (yych == 'm') goto yy475;
+       goto yy277;
 yy451:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy477;
-       goto yy279;
+       if (yych <= 0x00) goto yy476;
+       goto yy277;
 yy452:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy479;
-       goto yy279;
+       if (yych == 'a') goto yy478;
+       goto yy277;
 yy453:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy480;
-       goto yy279;
+       if (yych == '-') goto yy479;
+       goto yy277;
 yy454:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy481;
-       goto yy279;
+       if (yych == 't') goto yy480;
+       goto yy277;
 yy455:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy483;
-       goto yy279;
+       if (yych == 'f') goto yy481;
+       goto yy277;
 yy456:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy484;
-       goto yy279;
+       if (yych == '-') goto yy482;
+       goto yy277;
 yy457:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy485;
-       goto yy279;
+       if (yych == 'a') goto yy483;
+       goto yy277;
 yy458:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy486;
-       goto yy279;
+       if (yych == 'o') goto yy484;
+       goto yy277;
 yy459:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy487;
-       goto yy279;
+       if (yych <= 0x00) goto yy485;
+       goto yy277;
 yy460:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy488;
-       goto yy279;
+       if (yych == 'a') goto yy487;
+       goto yy277;
 yy461:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy489;
-       goto yy279;
+       if (yych <= 0x00) goto yy488;
+       goto yy277;
 yy462:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy490;
-       goto yy279;
+       if (yych == 'n') goto yy490;
+       goto yy277;
 yy463:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy492;
-       goto yy279;
+       if (yych == '-') goto yy491;
+       goto yy277;
 yy464:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy493;
-       goto yy279;
+       if (yych == 'd') goto yy492;
+       goto yy277;
 yy465:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy495;
-       goto yy279;
-yy466:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy496;
-       goto yy279;
-yy467:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy497;
-       goto yy279;
-yy468:
        ++YYCURSOR;
 #line 153 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::UTF32))  { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 1953 "src/conf/parse_opts.cc"
-yy470:
+#line 1937 "src/conf/parse_opts.cc"
+yy467:
        ++YYCURSOR;
 #line 134 "../src/conf/parse_opts.re"
        { version (); return EXIT_OK; }
-#line 1958 "src/conf/parse_opts.cc"
+#line 1942 "src/conf/parse_opts.cc"
+yy469:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'r') goto yy493;
+       goto yy277;
+yy470:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'r') goto yy494;
+       goto yy277;
+yy471:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy495;
+       goto yy277;
 yy472:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy498;
-       goto yy279;
+       if (yych == 'r') goto yy496;
+       goto yy277;
 yy473:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy499;
-       goto yy279;
+       if (yych == 'g') goto yy497;
+       goto yy277;
 yy474:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy500;
-       goto yy279;
+       if (yych == 'p') goto yy498;
+       goto yy277;
 yy475:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy501;
-       goto yy279;
+       if (yych == 'i') goto yy499;
+       goto yy277;
 yy476:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy502;
-       goto yy279;
-yy477:
        ++YYCURSOR;
-#line 138 "../src/conf/parse_opts.re"
-       { opts.set_contexts (true);          goto opt; }
-#line 1983 "src/conf/parse_opts.cc"
+#line 139 "../src/conf/parse_opts.re"
+       { opts.set_target (opt_t::DOT);      goto opt; }
+#line 1975 "src/conf/parse_opts.cc"
+yy478:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy500;
+       goto yy277;
 yy479:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy503;
-       goto yy279;
+       if (yych == 'p') goto yy501;
+       goto yy277;
 yy480:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy504;
-       goto yy279;
+       if (yych == 'a') goto yy502;
+       goto yy277;
 yy481:
-       ++YYCURSOR;
-#line 140 "../src/conf/parse_opts.re"
-       { opts.set_target (opt_t::DOT);      goto opt; }
-#line 1996 "src/conf/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy503;
+       goto yy277;
+yy482:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy504;
+       goto yy277;
 yy483:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy505;
-       goto yy279;
+       if (yych == 't') goto yy505;
+       goto yy277;
 yy484:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy506;
-       goto yy279;
+       if (yych == 'n') goto yy506;
+       goto yy277;
 yy485:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy507;
-       goto yy279;
-yy486:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy508;
-       goto yy279;
+       ++YYCURSOR;
+#line 144 "../src/conf/parse_opts.re"
+       { opts.set_rFlag (true);             goto opt; }
+#line 2008 "src/conf/parse_opts.cc"
 yy487:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy509;
-       goto yy279;
+       if (yych == 's') goto yy507;
+       goto yy277;
 yy488:
+       ++YYCURSOR;
+#line 150 "../src/conf/parse_opts.re"
+       { opts.set_target (opt_t::SKELETON); goto opt; }
+#line 2017 "src/conf/parse_opts.cc"
+yy490:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy510;
-       goto yy279;
-yy489:
+       if (yych == 'd') goto yy508;
+       goto yy277;
+yy491:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy511;
-       goto yy279;
-yy490:
-       ++YYCURSOR;
-#line 145 "../src/conf/parse_opts.re"
-       { opts.set_rFlag (true);             goto opt; }
-#line 2029 "src/conf/parse_opts.cc"
+       if (yych == 's') goto yy509;
+       goto yy277;
 yy492:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy512;
-       goto yy279;
+       if (yych == 'e') goto yy510;
+       goto yy277;
 yy493:
-       ++YYCURSOR;
-#line 151 "../src/conf/parse_opts.re"
-       { opts.set_target (opt_t::SKELETON); goto opt; }
-#line 2038 "src/conf/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy511;
+       goto yy277;
+yy494:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy512;
+       goto yy277;
 yy495:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy513;
-       goto yy279;
+       if (yych == 's') goto yy513;
+       goto yy277;
 yy496:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy514;
-       goto yy279;
+       if (yych == 't') goto yy514;
+       goto yy277;
 yy497:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy515;
-       goto yy279;
+       if (yych == 'o') goto yy515;
+       goto yy277;
 yy498:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy516;
-       goto yy279;
+       if (yych == 'u') goto yy516;
+       goto yy277;
 yy499:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy517;
-       goto yy279;
+       if (yych == 'z') goto yy517;
+       goto yy277;
 yy500:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 's') goto yy518;
-       goto yy279;
+       goto yy277;
 yy501:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy519;
-       goto yy279;
+       if (yych == 'o') goto yy519;
+       goto yy277;
 yy502:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy520;
-       goto yy279;
+       if (yych == 'x') goto yy520;
+       goto yy277;
 yy503:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy521;
-       goto yy279;
+       if (yych <= 0x00) goto yy521;
+       goto yy277;
 yy504:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'z') goto yy522;
-       goto yy279;
+       if (yych == 'n') goto yy523;
+       goto yy277;
 yy505:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy523;
-       goto yy279;
+       if (yych == 'i') goto yy524;
+       goto yy277;
 yy506:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy524;
-       goto yy279;
+       if (yych <= 0x00) goto yy525;
+       goto yy277;
 yy507:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy525;
-       goto yy279;
+       if (yych == 's') goto yy527;
+       goto yy277;
 yy508:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy526;
-       goto yy279;
+       if (yych == 'i') goto yy528;
+       goto yy277;
 yy509:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy528;
-       goto yy279;
+       if (yych == 't') goto yy529;
+       goto yy277;
 yy510:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy529;
-       goto yy279;
+       if (yych == 'r') goto yy530;
+       goto yy277;
 yy511:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy530;
-       goto yy279;
+       if (yych <= 0x00) goto yy531;
+       goto yy277;
 yy512:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy532;
-       goto yy279;
+       if (yych <= 0x00) goto yy533;
+       goto yy277;
 yy513:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy533;
-       goto yy279;
+       if (yych == 'i') goto yy535;
+       goto yy277;
 yy514:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy534;
-       goto yy279;
+       if (yych == 'e') goto yy536;
+       goto yy277;
 yy515:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy535;
-       goto yy279;
+       if (yych == 't') goto yy537;
+       goto yy277;
 yy516:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy536;
-       goto yy279;
+       if (yych == 't') goto yy538;
+       goto yy277;
 yy517:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy538;
-       goto yy279;
+       if (yych == 'a') goto yy539;
+       goto yy277;
 yy518:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy540;
-       goto yy279;
+       if (yych <= 0x00) goto yy540;
+       goto yy277;
 yy519:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy541;
-       goto yy279;
+       if (yych == 'l') goto yy542;
+       goto yy277;
 yy520:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy542;
-       goto yy279;
+       if (yych <= 0x00) goto yy543;
+       goto yy277;
 yy521:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy543;
-       goto yy279;
-yy522:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy544;
-       goto yy279;
+       ++YYCURSOR;
+#line 145 "../src/conf/parse_opts.re"
+       { opts.set_sFlag (true);             goto opt; }
+#line 2146 "src/conf/parse_opts.cc"
 yy523:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy545;
-       goto yy279;
+       if (yych == 'f') goto yy545;
+       goto yy277;
 yy524:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy547;
-       goto yy279;
+       if (yych == 'o') goto yy546;
+       goto yy277;
 yy525:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy548;
-       goto yy279;
-yy526:
        ++YYCURSOR;
-#line 146 "../src/conf/parse_opts.re"
-       { opts.set_sFlag (true);             goto opt; }
-#line 2167 "src/conf/parse_opts.cc"
+#line 147 "../src/conf/parse_opts.re"
+       { opts.set_version (false);          goto opt; }
+#line 2159 "src/conf/parse_opts.cc"
+yy527:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy547;
+       goto yy277;
 yy528:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy550;
-       goto yy279;
+       if (yych == 't') goto yy549;
+       goto yy277;
 yy529:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy551;
-       goto yy279;
+       if (yych == 'a') goto yy550;
+       goto yy277;
 yy530:
-       ++YYCURSOR;
-#line 148 "../src/conf/parse_opts.re"
-       { opts.set_version (false);          goto opt; }
-#line 2180 "src/conf/parse_opts.cc"
-yy532:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy552;
-       goto yy279;
-yy533:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy554;
-       goto yy279;
-yy534:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy555;
-       goto yy279;
-yy535:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy556;
-       goto yy279;
-yy536:
+       if (yych <= 0x00) goto yy551;
+       goto yy277;
+yy531:
        ++YYCURSOR;
 #line 154 "../src/conf/parse_opts.re"
        { if (!opts.set_encoding (Enc::UCS2))   { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 2201 "src/conf/parse_opts.cc"
-yy538:
+#line 2180 "src/conf/parse_opts.cc"
+yy533:
        ++YYCURSOR;
 #line 136 "../src/conf/parse_opts.re"
        { opts.set_bFlag (true);             goto opt; }
-#line 2206 "src/conf/parse_opts.cc"
-yy540:
+#line 2185 "src/conf/parse_opts.cc"
+yy535:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy558;
-       goto yy279;
-yy541:
+       if (yych == 't') goto yy553;
+       goto yy277;
+yy536:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy559;
-       goto yy279;
-yy542:
+       if (yych == 'd') goto yy554;
+       goto yy277;
+yy537:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy560;
-       goto yy279;
-yy543:
+       if (yych == 'o') goto yy555;
+       goto yy277;
+yy538:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy561;
-       goto yy279;
-yy544:
+       if (yych <= 0x00) goto yy556;
+       goto yy277;
+yy539:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy563;
-       goto yy279;
-yy545:
+       if (yych == 't') goto yy558;
+       goto yy277;
+yy540:
        ++YYCURSOR;
 #line 161 "../src/conf/parse_opts.re"
        { goto opt_empty_class; }
-#line 2231 "src/conf/parse_opts.cc"
-yy547:
+#line 2210 "src/conf/parse_opts.cc"
+yy542:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy564;
-       goto yy279;
-yy548:
+       if (yych == 'i') goto yy559;
+       goto yy277;
+yy543:
        ++YYCURSOR;
-#line 142 "../src/conf/parse_opts.re"
+#line 141 "../src/conf/parse_opts.re"
        { opts.set_FFlag (true);             goto opt; }
-#line 2240 "src/conf/parse_opts.cc"
-yy550:
+#line 2219 "src/conf/parse_opts.cc"
+yy545:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy565;
-       goto yy279;
-yy551:
+       if (yych == 'o') goto yy560;
+       goto yy277;
+yy546:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy566;
-       goto yy279;
-yy552:
+       if (yych == 'n') goto yy561;
+       goto yy277;
+yy547:
        ++YYCURSOR;
 #line 163 "../src/conf/parse_opts.re"
        { goto opt; }
-#line 2253 "src/conf/parse_opts.cc"
+#line 2232 "src/conf/parse_opts.cc"
+yy549:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy562;
+       goto yy277;
+yy550:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy563;
+       goto yy277;
+yy551:
+       ++YYCURSOR;
+#line 158 "../src/conf/parse_opts.re"
+       { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
+#line 2245 "src/conf/parse_opts.cc"
+yy553:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy564;
+       goto yy277;
 yy554:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy567;
-       goto yy279;
+       if (yych <= 0x00) goto yy565;
+       goto yy277;
 yy555:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy568;
-       goto yy279;
+       if (yych == 's') goto yy567;
+       goto yy277;
 yy556:
        ++YYCURSOR;
-#line 158 "../src/conf/parse_opts.re"
-       { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
-#line 2266 "src/conf/parse_opts.cc"
+#line 138 "../src/conf/parse_opts.re"
+       { opts.set_dFlag (true);             goto opt; }
+#line 2262 "src/conf/parse_opts.cc"
 yy558:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy569;
-       goto yy279;
+       if (yych == 'i') goto yy568;
+       goto yy277;
 yy559:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy570;
-       goto yy279;
+       if (yych == 'c') goto yy569;
+       goto yy277;
 yy560:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy572;
-       goto yy279;
+       if (yych <= 0x00) goto yy570;
+       goto yy277;
 yy561:
-       ++YYCURSOR;
-#line 139 "../src/conf/parse_opts.re"
-       { opts.set_dFlag (true);             goto opt; }
-#line 2283 "src/conf/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy572;
+       goto yy277;
+yy562:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy573;
+       goto yy277;
 yy563:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy573;
-       goto yy279;
+       if (yych == 'e') goto yy574;
+       goto yy277;
 yy564:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy574;
-       goto yy279;
+       if (yych == 'v') goto yy575;
+       goto yy277;
 yy565:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy575;
-       goto yy279;
-yy566:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy577;
-       goto yy279;
+       ++YYCURSOR;
+#line 149 "../src/conf/parse_opts.re"
+       { opts.set_bCaseInverted (true);     goto opt; }
+#line 2295 "src/conf/parse_opts.cc"
 yy567:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy578;
-       goto yy279;
+       if (yych <= 0x00) goto yy576;
+       goto yy277;
 yy568:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy579;
-       goto yy279;
+       if (yych == 'o') goto yy578;
+       goto yy277;
 yy569:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy580;
-       goto yy279;
+       if (yych == 'y') goto yy579;
+       goto yy277;
 yy570:
        ++YYCURSOR;
-#line 150 "../src/conf/parse_opts.re"
-       { opts.set_bCaseInverted (true);     goto opt; }
-#line 2316 "src/conf/parse_opts.cc"
+#line 143 "../src/conf/parse_opts.re"
+       { opts.set_iFlag (true);             goto opt; }
+#line 2312 "src/conf/parse_opts.cc"
 yy572:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy581;
-       goto yy279;
+       if (yych == 'd') goto yy580;
+       goto yy277;
 yy573:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy583;
-       goto yy279;
+       if (yych == 'n') goto yy581;
+       goto yy277;
 yy574:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy584;
-       goto yy279;
+       if (yych <= 0x00) goto yy582;
+       goto yy277;
 yy575:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy584;
+       goto yy277;
+yy576:
        ++YYCURSOR;
-#line 144 "../src/conf/parse_opts.re"
-       { opts.set_iFlag (true);             goto opt; }
+#line 142 "../src/conf/parse_opts.re"
+       { opts.set_gFlag (true);             goto opt; }
 #line 2333 "src/conf/parse_opts.cc"
-yy577:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy585;
-       goto yy279;
 yy578:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy586;
-       goto yy279;
+       if (yych == 'n') goto yy585;
+       goto yy277;
 yy579:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy587;
-       goto yy279;
+       if (yych <= 0x00) goto yy586;
+       goto yy277;
 yy580:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy589;
-       goto yy279;
+       if (yych == 'a') goto yy588;
+       goto yy277;
 yy581:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy589;
+       goto yy277;
+yy582:
        ++YYCURSOR;
-#line 143 "../src/conf/parse_opts.re"
-       { opts.set_gFlag (true);             goto opt; }
+#line 140 "../src/conf/parse_opts.re"
+       { opts.set_fFlag (true);             goto opt; }
 #line 2354 "src/conf/parse_opts.cc"
-yy583:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy590;
-       goto yy279;
 yy584:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy591;
-       goto yy279;
+       if (yych <= 0x00) goto yy590;
+       goto yy277;
 yy585:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy593;
-       goto yy279;
+       if (yych <= 0x00) goto yy592;
+       goto yy277;
 yy586:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy594;
-       goto yy279;
-yy587:
-       ++YYCURSOR;
-#line 141 "../src/conf/parse_opts.re"
-       { opts.set_fFlag (true);             goto opt; }
-#line 2375 "src/conf/parse_opts.cc"
-yy589:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy595;
-       goto yy279;
-yy590:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy597;
-       goto yy279;
-yy591:
        ++YYCURSOR;
 #line 159 "../src/conf/parse_opts.re"
        { goto opt_encoding_policy; }
-#line 2388 "src/conf/parse_opts.cc"
-yy593:
+#line 2367 "src/conf/parse_opts.cc"
+yy588:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy599;
-       goto yy279;
-yy594:
+       if (yych == 't') goto yy594;
+       goto yy277;
+yy589:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy600;
-       goto yy279;
-yy595:
+       if (yych <= 0x00) goto yy595;
+       goto yy277;
+yy590:
        ++YYCURSOR;
-#line 149 "../src/conf/parse_opts.re"
+#line 148 "../src/conf/parse_opts.re"
        { opts.set_bCaseInsensitive (true);  goto opt; }
-#line 2401 "src/conf/parse_opts.cc"
-yy597:
+#line 2380 "src/conf/parse_opts.cc"
+yy592:
        ++YYCURSOR;
 #line 162 "../src/conf/parse_opts.re"
        { goto opt_dfa_minimization; }
-#line 2406 "src/conf/parse_opts.cc"
-yy599:
+#line 2385 "src/conf/parse_opts.cc"
+yy594:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy602;
-       goto yy279;
-yy600:
+       if (yych == 'e') goto yy597;
+       goto yy277;
+yy595:
        ++YYCURSOR;
 #line 137 "../src/conf/parse_opts.re"
        { opts.set_cFlag (true);             goto opt; }
-#line 2415 "src/conf/parse_opts.cc"
-yy602:
+#line 2394 "src/conf/parse_opts.cc"
+yy597:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy279;
+       if (yych >= 0x01) goto yy277;
        ++YYCURSOR;
-#line 147 "../src/conf/parse_opts.re"
+#line 146 "../src/conf/parse_opts.re"
        { opts.set_bNoGenerationDate (true); goto opt; }
-#line 2422 "src/conf/parse_opts.cc"
+#line 2401 "src/conf/parse_opts.cc"
 }
 #line 164 "../src/conf/parse_opts.re"
 
 
 opt_output:
 
-#line 2429 "src/conf/parse_opts.cc"
+#line 2408 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2463,39 +2442,39 @@ opt_output:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy607;
-       if (yych != '-') goto yy609;
-yy607:
+       if (yych <= 0x00) goto yy602;
+       if (yych != '-') goto yy604;
+yy602:
        ++YYCURSOR;
 #line 169 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option -o, --output: %s", *argv);
                return EXIT_FAIL;
        }
-#line 2476 "src/conf/parse_opts.cc"
-yy609:
+#line 2455 "src/conf/parse_opts.cc"
+yy604:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy613;
-yy610:
+       goto yy608;
+yy605:
        ++YYCURSOR;
 #line 173 "../src/conf/parse_opts.re"
        { if (!opts.output (*argv)) return EXIT_FAIL; goto opt; }
-#line 2484 "src/conf/parse_opts.cc"
-yy612:
+#line 2463 "src/conf/parse_opts.cc"
+yy607:
        ++YYCURSOR;
        yych = (YYCTYPE)*YYCURSOR;
-yy613:
+yy608:
        if (yybm[0+yych] & 128) {
-               goto yy612;
+               goto yy607;
        }
-       goto yy610;
+       goto yy605;
 }
 #line 174 "../src/conf/parse_opts.re"
 
 
 opt_header:
 
-#line 2499 "src/conf/parse_opts.cc"
+#line 2478 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2533,32 +2512,32 @@ opt_header:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy616;
-       if (yych != '-') goto yy618;
-yy616:
+       if (yych <= 0x00) goto yy611;
+       if (yych != '-') goto yy613;
+yy611:
        ++YYCURSOR;
 #line 179 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option -t, --type-header: %s", *argv);
                return EXIT_FAIL;
        }
-#line 2546 "src/conf/parse_opts.cc"
-yy618:
+#line 2525 "src/conf/parse_opts.cc"
+yy613:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy622;
-yy619:
+       goto yy617;
+yy614:
        ++YYCURSOR;
 #line 183 "../src/conf/parse_opts.re"
        { opts.set_header_file (*argv); goto opt; }
-#line 2554 "src/conf/parse_opts.cc"
-yy621:
+#line 2533 "src/conf/parse_opts.cc"
+yy616:
        ++YYCURSOR;
        yych = (YYCTYPE)*YYCURSOR;
-yy622:
+yy617:
        if (yybm[0+yych] & 128) {
-               goto yy621;
+               goto yy616;
        }
-       goto yy619;
+       goto yy614;
 }
 #line 184 "../src/conf/parse_opts.re"
 
@@ -2570,113 +2549,113 @@ opt_encoding_policy:
                return EXIT_FAIL;
        }
 
-#line 2574 "src/conf/parse_opts.cc"
+#line 2553 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy627;
+               if (yych == 'f') goto yy622;
        } else {
-               if (yych <= 'i') goto yy628;
-               if (yych == 's') goto yy629;
+               if (yych <= 'i') goto yy623;
+               if (yych == 's') goto yy624;
        }
        ++YYCURSOR;
-yy626:
+yy621:
 #line 194 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --encoding-policy (expected: ignore | substitute | fail): %s", *argv);
                return EXIT_FAIL;
        }
-#line 2591 "src/conf/parse_opts.cc"
-yy627:
+#line 2570 "src/conf/parse_opts.cc"
+yy622:
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == 'a') goto yy625;
+       goto yy621;
+yy623:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy630;
+       if (yych == 'g') goto yy627;
+       goto yy621;
+yy624:
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == 'u') goto yy628;
+       goto yy621;
+yy625:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy629;
+yy626:
+       YYCURSOR = YYMARKER;
+       goto yy621;
+yy627:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy630;
        goto yy626;
 yy628:
-       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'g') goto yy632;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'b') goto yy631;
        goto yy626;
 yy629:
-       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy633;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'l') goto yy632;
        goto yy626;
 yy630:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy634;
+       if (yych == 'o') goto yy633;
+       goto yy626;
 yy631:
-       YYCURSOR = YYMARKER;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy634;
        goto yy626;
 yy632:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy635;
-       goto yy631;
+       if (yych <= 0x00) goto yy635;
+       goto yy626;
 yy633:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy636;
-       goto yy631;
+       if (yych == 'r') goto yy637;
+       goto yy626;
 yy634:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy637;
-       goto yy631;
+       if (yych == 't') goto yy638;
+       goto yy626;
 yy635:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy638;
-       goto yy631;
-yy636:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy639;
-       goto yy631;
+       ++YYCURSOR;
+#line 200 "../src/conf/parse_opts.re"
+       { opts.set_encoding_policy (Enc::POLICY_FAIL);       goto opt; }
+#line 2625 "src/conf/parse_opts.cc"
 yy637:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy640;
-       goto yy631;
+       if (yych == 'e') goto yy639;
+       goto yy626;
 yy638:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy642;
-       goto yy631;
+       if (yych == 'i') goto yy640;
+       goto yy626;
 yy639:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy643;
-       goto yy631;
+       if (yych <= 0x00) goto yy641;
+       goto yy626;
 yy640:
-       ++YYCURSOR;
-#line 200 "../src/conf/parse_opts.re"
-       { opts.set_encoding_policy (Enc::POLICY_FAIL);       goto opt; }
-#line 2646 "src/conf/parse_opts.cc"
-yy642:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy644;
-       goto yy631;
-yy643:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy645;
-       goto yy631;
-yy644:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy646;
-       goto yy631;
-yy645:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy648;
-       goto yy631;
-yy646:
+       if (yych == 't') goto yy643;
+       goto yy626;
+yy641:
        ++YYCURSOR;
 #line 198 "../src/conf/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_IGNORE);     goto opt; }
-#line 2667 "src/conf/parse_opts.cc"
-yy648:
+#line 2646 "src/conf/parse_opts.cc"
+yy643:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy631;
+       if (yych != 'u') goto yy626;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy631;
+       if (yych != 't') goto yy626;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy631;
+       if (yych != 'e') goto yy626;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy631;
+       if (yych >= 0x01) goto yy626;
        ++YYCURSOR;
 #line 199 "../src/conf/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; }
-#line 2680 "src/conf/parse_opts.cc"
+#line 2659 "src/conf/parse_opts.cc"
 }
 #line 201 "../src/conf/parse_opts.re"
 
@@ -2688,84 +2667,84 @@ opt_input:
                return EXIT_FAIL;
        }
 
-#line 2692 "src/conf/parse_opts.cc"
+#line 2671 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 'b') goto yy656;
-       if (yych <= 'c') goto yy658;
-       if (yych <= 'd') goto yy659;
-yy656:
+       if (yych <= 'b') goto yy651;
+       if (yych <= 'c') goto yy653;
+       if (yych <= 'd') goto yy654;
+yy651:
        ++YYCURSOR;
-yy657:
+yy652:
 #line 211 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --input (expected: default | custom): %s", *argv);
                return EXIT_FAIL;
        }
-#line 2707 "src/conf/parse_opts.cc"
-yy658:
+#line 2686 "src/conf/parse_opts.cc"
+yy653:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy660;
-       goto yy657;
-yy659:
+       if (yych == 'u') goto yy655;
+       goto yy652;
+yy654:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy662;
-       goto yy657;
+       if (yych == 'e') goto yy657;
+       goto yy652;
+yy655:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy658;
+yy656:
+       YYCURSOR = YYMARKER;
+       goto yy652;
+yy657:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'f') goto yy659;
+       goto yy656;
+yy658:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy660;
+       goto yy656;
+yy659:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy661;
+       goto yy656;
 yy660:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy663;
+       if (yych == 'o') goto yy662;
+       goto yy656;
 yy661:
-       YYCURSOR = YYMARKER;
-       goto yy657;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'u') goto yy663;
+       goto yy656;
 yy662:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy664;
-       goto yy661;
+       if (yych == 'm') goto yy664;
+       goto yy656;
 yy663:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy665;
-       goto yy661;
+       if (yych == 'l') goto yy665;
+       goto yy656;
 yy664:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy666;
-       goto yy661;
+       if (yych <= 0x00) goto yy666;
+       goto yy656;
 yy665:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy667;
-       goto yy661;
+       if (yych == 't') goto yy668;
+       goto yy656;
 yy666:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy668;
-       goto yy661;
-yy667:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy669;
-       goto yy661;
-yy668:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy670;
-       goto yy661;
-yy669:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy671;
-       goto yy661;
-yy670:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy673;
-       goto yy661;
-yy671:
        ++YYCURSOR;
 #line 216 "../src/conf/parse_opts.re"
        { opts.set_input_api (InputAPI::CUSTOM);  goto opt; }
-#line 2762 "src/conf/parse_opts.cc"
-yy673:
+#line 2741 "src/conf/parse_opts.cc"
+yy668:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy661;
+       if (yych >= 0x01) goto yy656;
        ++YYCURSOR;
 #line 215 "../src/conf/parse_opts.re"
        { opts.set_input_api (InputAPI::DEFAULT); goto opt; }
-#line 2769 "src/conf/parse_opts.cc"
+#line 2748 "src/conf/parse_opts.cc"
 }
 #line 217 "../src/conf/parse_opts.re"
 
@@ -2777,118 +2756,118 @@ opt_empty_class:
                return EXIT_FAIL;
        }
 
-#line 2781 "src/conf/parse_opts.cc"
+#line 2760 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'e') goto yy680;
-       if (yych == 'm') goto yy681;
+       if (yych == 'e') goto yy675;
+       if (yych == 'm') goto yy676;
        ++YYCURSOR;
-yy679:
+yy674:
 #line 227 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --empty-class (expected: match-empty | match-none | error): %s", *argv);
                return EXIT_FAIL;
        }
-#line 2794 "src/conf/parse_opts.cc"
-yy680:
+#line 2773 "src/conf/parse_opts.cc"
+yy675:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'r') goto yy682;
-       goto yy679;
-yy681:
+       if (yych == 'r') goto yy677;
+       goto yy674;
+yy676:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy684;
-       goto yy679;
+       if (yych == 'a') goto yy679;
+       goto yy674;
+yy677:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'r') goto yy680;
+yy678:
+       YYCURSOR = YYMARKER;
+       goto yy674;
+yy679:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy681;
+       goto yy678;
+yy680:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy682;
+       goto yy678;
+yy681:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'c') goto yy683;
+       goto yy678;
 yy682:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy685;
+       if (yych == 'r') goto yy684;
+       goto yy678;
 yy683:
-       YYCURSOR = YYMARKER;
-       goto yy679;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'h') goto yy685;
+       goto yy678;
 yy684:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy686;
-       goto yy683;
+       if (yych <= 0x00) goto yy686;
+       goto yy678;
 yy685:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy687;
-       goto yy683;
+       if (yych == '-') goto yy688;
+       goto yy678;
 yy686:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy688;
-       goto yy683;
-yy687:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy689;
-       goto yy683;
+       ++YYCURSOR;
+#line 233 "../src/conf/parse_opts.re"
+       { opts.set_empty_class_policy (EMPTY_CLASS_ERROR);       goto opt; }
+#line 2820 "src/conf/parse_opts.cc"
 yy688:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy690;
-       goto yy683;
+       if (yych == 'e') goto yy689;
+       if (yych == 'n') goto yy690;
+       goto yy678;
 yy689:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy691;
-       goto yy683;
+       if (yych == 'm') goto yy691;
+       goto yy678;
 yy690:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy693;
-       goto yy683;
+       if (yych == 'o') goto yy692;
+       goto yy678;
 yy691:
-       ++YYCURSOR;
-#line 233 "../src/conf/parse_opts.re"
-       { opts.set_empty_class_policy (EMPTY_CLASS_ERROR);       goto opt; }
-#line 2841 "src/conf/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'p') goto yy693;
+       goto yy678;
+yy692:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy694;
+       goto yy678;
 yy693:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy694;
-       if (yych == 'n') goto yy695;
-       goto yy683;
+       if (yych == 't') goto yy695;
+       goto yy678;
 yy694:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy696;
-       goto yy683;
+       if (yych == 'e') goto yy696;
+       goto yy678;
 yy695:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy697;
-       goto yy683;
+       if (yych == 'y') goto yy697;
+       goto yy678;
 yy696:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy698;
-       goto yy683;
+       if (yych <= 0x00) goto yy698;
+       goto yy678;
 yy697:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy699;
-       goto yy683;
+       if (yych <= 0x00) goto yy700;
+       goto yy678;
 yy698:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy700;
-       goto yy683;
-yy699:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy701;
-       goto yy683;
-yy700:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy702;
-       goto yy683;
-yy701:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy703;
-       goto yy683;
-yy702:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy705;
-       goto yy683;
-yy703:
        ++YYCURSOR;
 #line 232 "../src/conf/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE);  goto opt; }
-#line 2887 "src/conf/parse_opts.cc"
-yy705:
+#line 2866 "src/conf/parse_opts.cc"
+yy700:
        ++YYCURSOR;
 #line 231 "../src/conf/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_EMPTY); goto opt; }
-#line 2892 "src/conf/parse_opts.cc"
+#line 2871 "src/conf/parse_opts.cc"
 }
 #line 234 "../src/conf/parse_opts.re"
 
@@ -2900,72 +2879,72 @@ opt_dfa_minimization:
                return EXIT_FAIL;
        }
 
-#line 2904 "src/conf/parse_opts.cc"
+#line 2883 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'm') goto yy711;
-       if (yych == 't') goto yy712;
+       if (yych == 'm') goto yy706;
+       if (yych == 't') goto yy707;
        ++YYCURSOR;
-yy710:
+yy705:
 #line 244 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --dfa-minimization (expected: table | moore): %s", *argv);
                return EXIT_FAIL;
        }
-#line 2917 "src/conf/parse_opts.cc"
-yy711:
+#line 2896 "src/conf/parse_opts.cc"
+yy706:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy713;
-       goto yy710;
-yy712:
+       if (yych == 'o') goto yy708;
+       goto yy705;
+yy707:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy715;
-       goto yy710;
-yy713:
+       if (yych == 'a') goto yy710;
+       goto yy705;
+yy708:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy716;
-yy714:
+       if (yych == 'o') goto yy711;
+yy709:
        YYCURSOR = YYMARKER;
-       goto yy710;
-yy715:
+       goto yy705;
+yy710:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy717;
-       goto yy714;
-yy716:
+       if (yych == 'b') goto yy712;
+       goto yy709;
+yy711:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy718;
-       goto yy714;
-yy717:
+       if (yych == 'r') goto yy713;
+       goto yy709;
+yy712:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy719;
-       goto yy714;
-yy718:
+       if (yych == 'l') goto yy714;
+       goto yy709;
+yy713:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy720;
-       goto yy714;
-yy719:
+       if (yych == 'e') goto yy715;
+       goto yy709;
+yy714:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy721;
-       goto yy714;
-yy720:
+       if (yych == 'e') goto yy716;
+       goto yy709;
+yy715:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy722;
-       goto yy714;
-yy721:
+       if (yych <= 0x00) goto yy717;
+       goto yy709;
+yy716:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy724;
-       goto yy714;
-yy722:
+       if (yych <= 0x00) goto yy719;
+       goto yy709;
+yy717:
        ++YYCURSOR;
 #line 249 "../src/conf/parse_opts.re"
        { opts.set_dfa_minimization (DFA_MINIMIZATION_MOORE); goto opt; }
-#line 2964 "src/conf/parse_opts.cc"
-yy724:
+#line 2943 "src/conf/parse_opts.cc"
+yy719:
        ++YYCURSOR;
 #line 248 "../src/conf/parse_opts.re"
        { opts.set_dfa_minimization (DFA_MINIMIZATION_TABLE); goto opt; }
-#line 2969 "src/conf/parse_opts.cc"
+#line 2948 "src/conf/parse_opts.cc"
 }
 #line 250 "../src/conf/parse_opts.re"
 
index b1c176676647b8c948b7dfa1d929646087384375..2a30f76d3aedd714af57153afaecf8729e444772 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 on Fri May  6 10:34:02 2016 */
+/* Generated by re2c 0.16 on Tue May 10 13:05:36 2016 */
 #line 1 "../src/parse/lex.re"
 #include "src/util/c99_stdint.h"
 #include <stddef.h>
@@ -209,51 +209,51 @@ yy19:
 yy20:
        yych = (YYCTYPE)*++YYCURSOR;
        switch (yych) {
-       case 'c':       goto yy22;
-       case 'g':       goto yy23;
-       case 'i':       goto yy24;
-       case 'm':       goto yy25;
-       case 'r':       goto yy26;
-       case 't':       goto yy27;
-       case 'u':       goto yy28;
+       case 'g':       goto yy22;
+       case 'i':       goto yy23;
+       case 'm':       goto yy24;
+       case 'r':       goto yy25;
+       case 't':       goto yy26;
+       case 'u':       goto yy27;
        default:        goto yy13;
        }
 yy21:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy29;
+       if (yych == 'n') goto yy28;
        goto yy13;
 yy22:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy30;
+       if (yych == 'e') goto yy29;
        goto yy13;
 yy23:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy31;
+       if (yych == 'g') goto yy30;
        goto yy13;
 yy24:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy32;
+       if (yych == 'a') goto yy31;
        goto yy13;
 yy25:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy33;
+       if (yych == 'e') goto yy32;
+       if (yych == 'u') goto yy33;
        goto yy13;
 yy26:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy34;
-       if (yych == 'u') goto yy35;
+       if (yych == 'a') goto yy34;
+       if (yych == 'y') goto yy35;
        goto yy13;
 yy27:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy36;
+       if (yych == 's') goto yy36;
        goto yy13;
 yy28:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy37;
+       if (yych == 'e') goto yy37;
        goto yy13;
 yy29:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy38;
+       if (yych == 't') goto yy38;
        goto yy13;
 yy30:
        yych = (YYCTYPE)*++YYCURSOR;
@@ -261,56 +261,56 @@ yy30:
        goto yy13;
 yy31:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy40;
+       if (yych == 'x') goto yy40;
        goto yy13;
 yy32:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy41;
+       if (yych == '2') goto yy41;
        goto yy13;
 yy33:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy42;
+       if (yych == 'l') goto yy42;
        goto yy13;
 yy34:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy43;
+       if (yych == 'g') goto yy43;
        goto yy13;
 yy35:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy44;
+       if (yych == 'p') goto yy44;
        goto yy13;
 yy36:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy45;
+       if (yych == 'e') goto yy45;
        goto yy13;
 yy37:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy46;
-       goto yy13;
+       if (yych <= '0') goto yy47;
+       if (yych <= '9') goto yy13;
+       goto yy47;
 yy38:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '0') goto yy48;
-       if (yych <= '9') goto yy13;
-       goto yy48;
+       if (yych == 's') goto yy48;
+       goto yy13;
 yy39:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy49;
+       if (yych == 'o') goto yy49;
        goto yy13;
 yy40:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy50;
+       if (yych == ':') goto yy50;
        goto yy13;
 yy41:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy51;
+       if (yych == 'c') goto yy16;
        goto yy13;
 yy42:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy52;
+       if (yych == 'e') goto yy51;
        goto yy13;
 yy43:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy16;
+       if (yych == 's') goto yy52;
        goto yy13;
 yy44:
        yych = (YYCTYPE)*++YYCURSOR;
@@ -318,44 +318,44 @@ yy44:
        goto yy13;
 yy45:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy54;
+       if (yych == ':') goto yy54;
        goto yy13;
 yy46:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy55;
-       goto yy13;
-yy47:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy48:
+yy47:
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy47;
+               if (yych == '\t') goto yy46;
                goto yy13;
        } else {
-               if (yych <= ' ') goto yy47;
+               if (yych <= ' ') goto yy46;
                if (yych <= '0') goto yy13;
                if (yych <= '9') {
                        YYCTXMARKER = YYCURSOR;
-                       goto yy56;
+                       goto yy55;
                }
                goto yy13;
        }
+yy48:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy57;
+       goto yy13;
 yy49:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy58;
+       if (yych == 'r') goto yy58;
        goto yy13;
 yy50:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy59;
+       if (yych == 'r') goto yy59;
        goto yy13;
 yy51:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy60;
+       if (yych == 's') goto yy60;
        goto yy13;
 yy52:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy61;
+       if (yych == ':') goto yy61;
        goto yy13;
 yy53:
        yych = (YYCTYPE)*++YYCURSOR;
@@ -363,44 +363,44 @@ yy53:
        goto yy13;
 yy54:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy63;
+       if (yych == 'r') goto yy63;
        goto yy13;
 yy55:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy64;
-       goto yy13;
-yy56:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 64) {
-               goto yy56;
+               goto yy55;
        }
        if (yych <= '\f') {
                if (yych <= 0x08) goto yy13;
-               if (yych <= '\t') goto yy65;
-               if (yych <= '\n') goto yy67;
+               if (yych <= '\t') goto yy64;
+               if (yych <= '\n') goto yy66;
                goto yy13;
        } else {
-               if (yych <= '\r') goto yy69;
-               if (yych == ' ') goto yy65;
+               if (yych <= '\r') goto yy68;
+               if (yych == ' ') goto yy64;
                goto yy13;
        }
+yy57:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy69;
+       goto yy13;
 yy58:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy70;
+       if (yych == 'e') goto yy70;
        goto yy13;
 yy59:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy71;
+       if (yych == 'e') goto yy71;
        goto yy13;
 yy60:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy72;
+       if (yych == ':') goto yy72;
        goto yy13;
 yy61:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy73;
+       if (yych == 'r') goto yy73;
        goto yy13;
 yy62:
        yych = (YYCTYPE)*++YYCURSOR;
@@ -408,25 +408,21 @@ yy62:
        goto yy13;
 yy63:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy75;
+       if (yych == 'e') goto yy75;
        goto yy13;
 yy64:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy76;
-       goto yy13;
-yy65:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy65;
+               if (yych == '\t') goto yy64;
                goto yy13;
        } else {
-               if (yych <= ' ') goto yy65;
-               if (yych == '"') goto yy77;
+               if (yych <= ' ') goto yy64;
+               if (yych == '"') goto yy76;
                goto yy13;
        }
-yy67:
+yy66:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
 #line 162 "../src/parse/lex.re"
@@ -434,26 +430,30 @@ yy67:
                set_sourceline();
                goto echo;
        }
-#line 438 "src/parse/lex.cc"
+#line 434 "src/parse/lex.cc"
+yy68:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '\n') goto yy66;
+       goto yy13;
 yy69:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy67;
+       if (yych == 't') goto yy78;
        goto yy13;
 yy70:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy79;
+       if (yych == ':') goto yy79;
        goto yy13;
 yy71:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy80;
+       if (yych == '2') goto yy80;
        goto yy13;
 yy72:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy81;
+       if (yych == 'r') goto yy81;
        goto yy13;
 yy73:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy82;
+       if (yych == 'e') goto yy82;
        goto yy13;
 yy74:
        yych = (YYCTYPE)*++YYCURSOR;
@@ -461,37 +461,37 @@ yy74:
        goto yy13;
 yy75:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy84;
+       if (yych == '2') goto yy84;
        goto yy13;
 yy76:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy85;
-       goto yy13;
-yy77:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy77;
+               goto yy76;
        }
        if (yych <= '\n') goto yy13;
-       if (yych <= '"') goto yy86;
-       goto yy87;
+       if (yych <= '"') goto yy85;
+       goto yy86;
+yy78:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy87;
+       goto yy13;
 yy79:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy88;
+       if (yych == 'r') goto yy88;
        goto yy13;
 yy80:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy89;
+       if (yych == 'c') goto yy89;
        goto yy13;
 yy81:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy90;
+       if (yych == 'e') goto yy91;
        goto yy13;
 yy82:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy91;
+       if (yych == '2') goto yy92;
        goto yy13;
 yy83:
        yych = (YYCTYPE)*++YYCURSOR;
@@ -499,36 +499,28 @@ yy83:
        goto yy13;
 yy84:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy94;
+       if (yych == 'c') goto yy94;
        goto yy13;
 yy85:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy95;
+       if (yych == '\n') goto yy66;
+       if (yych == '\r') goto yy68;
        goto yy13;
 yy86:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy67;
-       if (yych == '\r') goto yy69;
-       goto yy13;
-yy87:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych == '\n') goto yy13;
-       goto yy77;
-yy88:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy97;
-       goto yy13;
-yy89:
+       goto yy76;
+yy87:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy98;
+       if (yych == ':') goto yy96;
        goto yy13;
-yy90:
+yy88:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy99;
+       if (yych == 'e') goto yy97;
        goto yy13;
-yy91:
+yy89:
        ++YYCURSOR;
 #line 116 "../src/parse/lex.re"
        {
@@ -539,16 +531,20 @@ yy91:
                lex_end_of_comment();
                goto echo;
        }
-#line 543 "src/parse/lex.cc"
-yy93:
+#line 535 "src/parse/lex.cc"
+yy91:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy100;
+       if (yych == '2') goto yy98;
        goto yy13;
-yy94:
+yy92:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'c') goto yy99;
+       goto yy13;
+yy93:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '2') goto yy101;
        goto yy13;
-yy95:
+yy94:
        ++YYCURSOR;
 #line 97 "../src/parse/lex.re"
        {
@@ -561,40 +557,43 @@ yy95:
                reuse();
                return Reuse;
        }
-#line 565 "src/parse/lex.cc"
-yy97:
+#line 561 "src/parse/lex.cc"
+yy96:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'r') goto yy102;
        goto yy13;
-yy98:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy103;
-       goto yy13;
-yy99:
+yy97:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy104;
+       if (yych == '2') goto yy103;
        goto yy13;
-yy100:
+yy98:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy105;
+       if (yych == 'c') goto yy104;
        goto yy13;
+yy99:
+       ++YYCURSOR;
+#line 145 "../src/parse/lex.re"
+       {
+               if (opts->target == opt_t::CODE) {
+                       out.wraw(tok, start);
+               }
+               lex_tags();
+               goto echo;
+       }
+#line 584 "src/parse/lex.cc"
 yy101:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy107;
+       if (yych == 'c') goto yy106;
        goto yy13;
 yy102:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy109;
+       if (yych == 'e') goto yy108;
        goto yy13;
 yy103:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy110;
+       if (yych == 'c') goto yy109;
        goto yy13;
 yy104:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy111;
-       goto yy13;
-yy105:
        ++YYCURSOR;
 #line 86 "../src/parse/lex.re"
        {
@@ -607,8 +606,8 @@ yy105:
                opts.reset_mapCodeName ();
                return Rules;
        }
-#line 611 "src/parse/lex.cc"
-yy107:
+#line 610 "src/parse/lex.cc"
+yy106:
        ++YYCURSOR;
 #line 134 "../src/parse/lex.re"
        {
@@ -621,16 +620,12 @@ yy107:
                lex_end_of_comment();
                goto echo;
        }
-#line 625 "src/parse/lex.cc"
-yy109:
+#line 624 "src/parse/lex.cc"
+yy108:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy113;
+       if (yych == '2') goto yy111;
        goto yy13;
-yy110:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy114;
-       goto yy13;
-yy111:
+yy109:
        ++YYCURSOR;
 #line 108 "../src/parse/lex.re"
        {
@@ -640,27 +635,10 @@ yy111:
                lex_end_of_comment();
                goto echo;
        }
-#line 644 "src/parse/lex.cc"
-yy113:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy115;
-       goto yy13;
-yy114:
+#line 639 "src/parse/lex.cc"
+yy111:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy117;
-       goto yy13;
-yy115:
-       ++YYCURSOR;
-#line 145 "../src/parse/lex.re"
-       {
-               if (opts->target == opt_t::CODE) {
-                       out.wraw(tok, start);
-               }
-               lex_contexts();
-               goto echo;
-       }
-#line 663 "src/parse/lex.cc"
-yy117:
+       if (yych != 'c') goto yy13;
        ++YYCURSOR;
 #line 125 "../src/parse/lex.re"
        {
@@ -671,7 +649,7 @@ yy117:
                lex_end_of_comment();
                goto echo;
        }
-#line 675 "src/parse/lex.cc"
+#line 653 "src/parse/lex.cc"
 }
 #line 174 "../src/parse/lex.re"
 
@@ -681,43 +659,43 @@ void Scanner::lex_end_of_comment()
 {
        uint32_t ignored = 0;
        for (;;) {
-#line 685 "src/parse/lex.cc"
+#line 663 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '\f') {
-               if (yych <= 0x00) goto yy121;
-               if (yych == '\n') goto yy125;
-               goto yy123;
+               if (yych <= 0x00) goto yy116;
+               if (yych == '\n') goto yy120;
+               goto yy118;
        } else {
-               if (yych <= '\r') goto yy127;
-               if (yych == '*') goto yy128;
-               goto yy123;
+               if (yych <= '\r') goto yy122;
+               if (yych == '*') goto yy123;
+               goto yy118;
        }
-yy121:
+yy116:
        ++YYCURSOR;
 #line 181 "../src/parse/lex.re"
        { fatal("expected end of block"); }
-#line 703 "src/parse/lex.cc"
-yy123:
+#line 681 "src/parse/lex.cc"
+yy118:
        ++YYCURSOR;
-yy124:
+yy119:
 #line 183 "../src/parse/lex.re"
        { continue; }
-#line 709 "src/parse/lex.cc"
-yy125:
+#line 687 "src/parse/lex.cc"
+yy120:
        ++YYCURSOR;
 #line 184 "../src/parse/lex.re"
        { ++ignored; continue; }
-#line 714 "src/parse/lex.cc"
-yy127:
+#line 692 "src/parse/lex.cc"
+yy122:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy125;
-       goto yy124;
-yy128:
+       if (yych == '\n') goto yy120;
+       goto yy119;
+yy123:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '/') goto yy124;
+       if (yych != '/') goto yy119;
        ++YYCURSOR;
 #line 185 "../src/parse/lex.re"
        {
@@ -728,17 +706,17 @@ yy128:
                        tok = pos = cur;
                        return;
                }
-#line 732 "src/parse/lex.cc"
+#line 710 "src/parse/lex.cc"
 }
 #line 193 "../src/parse/lex.re"
 }
 }
 
-void Scanner::lex_contexts()
+void Scanner::lex_tags()
 {
-       ConfContexts conf;
+       ConfTags conf;
        for (;;) {
-#line 742 "src/parse/lex.cc"
+#line 720 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -778,94 +756,94 @@ void Scanner::lex_contexts()
        if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy135;
+               goto yy130;
        }
        if (yych <= ')') {
                if (yych <= '\n') {
-                       if (yych >= '\t') goto yy138;
+                       if (yych >= '\t') goto yy133;
                } else {
-                       if (yych == '\r') goto yy140;
+                       if (yych == '\r') goto yy135;
                }
        } else {
                if (yych <= 'l') {
-                       if (yych <= '*') goto yy141;
-                       if (yych >= 'l') goto yy142;
+                       if (yych <= '*') goto yy136;
+                       if (yych >= 'l') goto yy137;
                } else {
-                       if (yych == 's') goto yy143;
+                       if (yych == 's') goto yy138;
                }
        }
        ++YYCURSOR;
-yy134:
+yy129:
 #line 200 "../src/parse/lex.re"
        { fatal("unrecognized configuration"); }
-#line 802 "src/parse/lex.cc"
-yy135:
+#line 780 "src/parse/lex.cc"
+yy130:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy135;
+               goto yy130;
        }
 #line 205 "../src/parse/lex.re"
        { continue; }
-#line 812 "src/parse/lex.cc"
-yy138:
+#line 790 "src/parse/lex.cc"
+yy133:
        ++YYCURSOR;
 #line 206 "../src/parse/lex.re"
        { ++cline; continue; }
-#line 817 "src/parse/lex.cc"
-yy140:
+#line 795 "src/parse/lex.cc"
+yy135:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy138;
-       goto yy134;
-yy141:
+       if (yych == '\n') goto yy133;
+       goto yy129;
+yy136:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '/') goto yy144;
-       goto yy134;
-yy142:
+       if (yych == '/') goto yy139;
+       goto yy129;
+yy137:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'i') goto yy146;
-       goto yy134;
-yy143:
+       if (yych == 'i') goto yy141;
+       goto yy129;
+yy138:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy148;
-       goto yy134;
-yy144:
+       if (yych == 'e') goto yy143;
+       goto yy129;
+yy139:
        ++YYCURSOR;
 #line 207 "../src/parse/lex.re"
        {
                        if (opts->target == opt_t::CODE) {
-                               out.wdelay_contexts(opts->topIndent,
-                                       new ConfContexts(conf));
+                               out.wdelay_tags(opts->topIndent,
+                                       new ConfTags(conf));
                        }
                        tok = pos = cur;
                        return;
                }
-#line 845 "src/parse/lex.cc"
-yy146:
+#line 823 "src/parse/lex.cc"
+yy141:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy149;
-yy147:
+       if (yych == 'n') goto yy144;
+yy142:
        YYCURSOR = YYMARKER;
-       goto yy134;
-yy148:
+       goto yy129;
+yy143:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy150;
-       goto yy147;
-yy149:
+       if (yych == 'p') goto yy145;
+       goto yy142;
+yy144:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy152;
-       goto yy147;
-yy150:
+       if (yych == 'e') goto yy147;
+       goto yy142;
+yy145:
        ++YYCURSOR;
 #line 203 "../src/parse/lex.re"
        { conf.sep  = lex_conf_string(); continue; }
-#line 864 "src/parse/lex.cc"
-yy152:
+#line 842 "src/parse/lex.cc"
+yy147:
        ++YYCURSOR;
 #line 202 "../src/parse/lex.re"
        { conf.line = lex_conf_string(); continue; }
-#line 869 "src/parse/lex.cc"
+#line 847 "src/parse/lex.cc"
 }
 #line 215 "../src/parse/lex.re"
 }
@@ -887,7 +865,7 @@ scan:
 
 start:
 
-#line 891 "src/parse/lex.cc"
+#line 869 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -928,99 +906,99 @@ start:
        if ((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 16) {
-               goto yy158;
+               goto yy153;
        }
        if (yych <= '9') {
                if (yych <= '&') {
                        if (yych <= '\r') {
-                               if (yych <= 0x08) goto yy156;
-                               if (yych <= '\n') goto yy161;
-                               if (yych >= '\r') goto yy163;
+                               if (yych <= 0x08) goto yy151;
+                               if (yych <= '\n') goto yy156;
+                               if (yych >= '\r') goto yy158;
                        } else {
                                if (yych <= '"') {
-                                       if (yych >= '"') goto yy164;
+                                       if (yych >= '"') goto yy159;
                                } else {
-                                       if (yych == '%') goto yy166;
+                                       if (yych == '%') goto yy161;
                                }
                        }
                } else {
                        if (yych <= '+') {
-                               if (yych <= '\'') goto yy167;
-                               if (yych <= ')') goto yy169;
-                               if (yych <= '*') goto yy171;
-                               goto yy173;
+                               if (yych <= '\'') goto yy162;
+                               if (yych <= ')') goto yy164;
+                               if (yych <= '*') goto yy166;
+                               goto yy168;
                        } else {
                                if (yych <= '-') {
-                                       if (yych <= ',') goto yy169;
+                                       if (yych <= ',') goto yy164;
                                } else {
-                                       if (yych <= '.') goto yy175;
-                                       if (yych <= '/') goto yy177;
-                                       goto yy178;
+                                       if (yych <= '.') goto yy170;
+                                       if (yych <= '/') goto yy172;
+                                       goto yy173;
                                }
                        }
                }
        } else {
                if (yych <= '\\') {
                        if (yych <= '>') {
-                               if (yych <= ':') goto yy179;
-                               if (yych == '<') goto yy180;
-                               goto yy169;
+                               if (yych <= ':') goto yy174;
+                               if (yych == '<') goto yy175;
+                               goto yy164;
                        } else {
                                if (yych <= '@') {
-                                       if (yych <= '?') goto yy173;
-                                       goto yy181;
+                                       if (yych <= '?') goto yy168;
+                                       goto yy176;
                                } else {
-                                       if (yych <= 'Z') goto yy178;
-                                       if (yych <= '[') goto yy182;
-                                       goto yy169;
+                                       if (yych <= 'Z') goto yy173;
+                                       if (yych <= '[') goto yy177;
+                                       goto yy164;
                                }
                        }
                } else {
                        if (yych <= 'q') {
-                               if (yych == '_') goto yy178;
-                               if (yych >= 'a') goto yy178;
+                               if (yych == '_') goto yy173;
+                               if (yych >= 'a') goto yy173;
                        } else {
                                if (yych <= 'z') {
-                                       if (yych <= 'r') goto yy184;
-                                       goto yy178;
+                                       if (yych <= 'r') goto yy179;
+                                       goto yy173;
                                } else {
-                                       if (yych <= '{') goto yy185;
-                                       if (yych <= '|') goto yy169;
+                                       if (yych <= '{') goto yy180;
+                                       if (yych <= '|') goto yy164;
                                }
                        }
                }
        }
-yy156:
+yy151:
        ++YYCURSOR;
-yy157:
+yy152:
 #line 397 "../src/parse/lex.re"
        {
                                        fatalf("unexpected character: '%c'", *tok);
                                        goto scan;
                                }
-#line 1002 "src/parse/lex.cc"
-yy158:
+#line 980 "src/parse/lex.cc"
+yy153:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 16) {
-               goto yy158;
+               goto yy153;
        }
 #line 381 "../src/parse/lex.re"
        {
                                        goto scan;
                                }
-#line 1014 "src/parse/lex.cc"
-yy161:
+#line 992 "src/parse/lex.cc"
+yy156:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy187;
+               if (yych == '\t') goto yy182;
        } else {
-               if (yych <= ' ') goto yy187;
-               if (yych == '#') goto yy190;
+               if (yych <= ' ') goto yy182;
+               if (yych == '#') goto yy185;
        }
-yy162:
+yy157:
 #line 390 "../src/parse/lex.re"
        {
                                        if (cur == eof) return 0;
@@ -1028,188 +1006,188 @@ yy162:
                                        cline++;
                                        goto scan;
                                }
-#line 1032 "src/parse/lex.cc"
-yy163:
+#line 1010 "src/parse/lex.cc"
+yy158:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy161;
-       goto yy157;
-yy164:
+       if (yych == '\n') goto yy156;
+       goto yy152;
+yy159:
        ++YYCURSOR;
 #line 264 "../src/parse/lex.re"
        { yylval.regexp = lex_str('"',  opts->bCaseInsensitive ||  opts->bCaseInverted); return TOKEN_REGEXP; }
-#line 1041 "src/parse/lex.cc"
-yy166:
+#line 1019 "src/parse/lex.cc"
+yy161:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '}') goto yy192;
-       goto yy157;
-yy167:
+       if (yych == '}') goto yy187;
+       goto yy152;
+yy162:
        ++YYCURSOR;
 #line 263 "../src/parse/lex.re"
        { yylval.regexp = lex_str('\'', opts->bCaseInsensitive || !opts->bCaseInverted); return TOKEN_REGEXP; }
-#line 1050 "src/parse/lex.cc"
-yy169:
+#line 1028 "src/parse/lex.cc"
+yy164:
        ++YYCURSOR;
-yy170:
+yy165:
 #line 284 "../src/parse/lex.re"
        {
                                        return *tok;
                                }
-#line 1058 "src/parse/lex.cc"
-yy171:
+#line 1036 "src/parse/lex.cc"
+yy166:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) == '/') goto yy192;
+       if ((yych = (YYCTYPE)*YYCURSOR) == '/') goto yy187;
 #line 288 "../src/parse/lex.re"
        {
                                        yylval.op = *tok;
                                        return TOKEN_STAR;
                                }
-#line 1067 "src/parse/lex.cc"
-yy173:
+#line 1045 "src/parse/lex.cc"
+yy168:
        ++YYCURSOR;
 #line 292 "../src/parse/lex.re"
        {
                                        yylval.op = *tok;
                                        return TOKEN_CLOSE;
                                }
-#line 1075 "src/parse/lex.cc"
-yy175:
+#line 1053 "src/parse/lex.cc"
+yy170:
        ++YYCURSOR;
 #line 376 "../src/parse/lex.re"
        {
                                        yylval.regexp = mkDot();
                                        return TOKEN_REGEXP;
                                }
-#line 1083 "src/parse/lex.cc"
-yy177:
+#line 1061 "src/parse/lex.cc"
+yy172:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '*') goto yy194;
-       if (yych == '/') goto yy196;
-       goto yy170;
-yy178:
+       if (yych == '*') goto yy189;
+       if (yych == '/') goto yy191;
+       goto yy165;
+yy173:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy204;
-yy179:
+       goto yy199;
+yy174:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '=') goto yy205;
-       goto yy157;
-yy180:
+       if (yych == '=') goto yy200;
+       goto yy152;
+yy175:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '!') goto yy207;
-       if (yych == '>') goto yy209;
-       goto yy170;
-yy181:
+       if (yych == '!') goto yy202;
+       if (yych == '>') goto yy204;
+       goto yy165;
+yy176:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= 'Z') {
-               if (yych <= '/') goto yy157;
-               if (yych <= '9') goto yy210;
-               if (yych <= '@') goto yy157;
-               goto yy210;
+               if (yych <= '/') goto yy152;
+               if (yych <= '9') goto yy205;
+               if (yych <= '@') goto yy152;
+               goto yy205;
        } else {
                if (yych <= '_') {
-                       if (yych <= '^') goto yy157;
-                       goto yy210;
+                       if (yych <= '^') goto yy152;
+                       goto yy205;
                } else {
-                       if (yych <= '`') goto yy157;
-                       if (yych <= 'z') goto yy210;
-                       goto yy157;
+                       if (yych <= '`') goto yy152;
+                       if (yych <= 'z') goto yy205;
+                       goto yy152;
                }
        }
-yy182:
+yy177:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) == '^') goto yy213;
+       if ((yych = (YYCTYPE)*YYCURSOR) == '^') goto yy208;
 #line 265 "../src/parse/lex.re"
        { yylval.regexp = lex_cls(false); return TOKEN_REGEXP; }
-#line 1124 "src/parse/lex.cc"
-yy184:
+#line 1102 "src/parse/lex.cc"
+yy179:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy215;
-       goto yy204;
-yy185:
+       if (yych == 'e') goto yy210;
+       goto yy199;
+yy180:
        yyaccept = 2;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 64) {
-               goto yy218;
+               goto yy213;
        }
        if (yych <= 'Z') {
-               if (yych == ',') goto yy216;
-               if (yych >= 'A') goto yy220;
+               if (yych == ',') goto yy211;
+               if (yych >= 'A') goto yy215;
        } else {
                if (yych <= '_') {
-                       if (yych >= '_') goto yy220;
+                       if (yych >= '_') goto yy215;
                } else {
-                       if (yych <= '`') goto yy186;
-                       if (yych <= 'z') goto yy220;
+                       if (yych <= '`') goto yy181;
+                       if (yych <= 'z') goto yy215;
                }
        }
-yy186:
+yy181:
 #line 234 "../src/parse/lex.re"
        {
                                        depth = 1;
                                        goto code;
                                }
-#line 1152 "src/parse/lex.cc"
-yy187:
+#line 1130 "src/parse/lex.cc"
+yy182:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy187;
+               if (yych == '\t') goto yy182;
        } else {
-               if (yych <= ' ') goto yy187;
-               if (yych == '#') goto yy190;
+               if (yych <= ' ') goto yy182;
+               if (yych == '#') goto yy185;
        }
-yy189:
+yy184:
        YYCURSOR = YYMARKER;
        if (yyaccept <= 1) {
                if (yyaccept == 0) {
-                       goto yy162;
+                       goto yy157;
                } else {
-                       goto yy170;
+                       goto yy165;
                }
        } else {
                if (yyaccept == 2) {
-                       goto yy186;
+                       goto yy181;
                } else {
-                       goto yy217;
+                       goto yy212;
                }
        }
-yy190:
+yy185:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy190;
-               goto yy189;
+               if (yych == '\t') goto yy185;
+               goto yy184;
        } else {
-               if (yych <= ' ') goto yy190;
-               if (yych == 'l') goto yy222;
-               goto yy189;
+               if (yych <= ' ') goto yy185;
+               if (yych == 'l') goto yy217;
+               goto yy184;
        }
-yy192:
+yy187:
        ++YYCURSOR;
 #line 258 "../src/parse/lex.re"
        {
                                        tok = cur;
                                        return 0;
                                }
-#line 1197 "src/parse/lex.cc"
-yy194:
+#line 1175 "src/parse/lex.cc"
+yy189:
        ++YYCURSOR;
 #line 252 "../src/parse/lex.re"
        {
                                        depth = 1;
                                        goto comment;
                                }
-#line 1205 "src/parse/lex.cc"
-yy196:
+#line 1183 "src/parse/lex.cc"
+yy191:
        ++YYCURSOR;
 #line 249 "../src/parse/lex.re"
        {
                                goto nextLine;
                        }
-#line 1212 "src/parse/lex.cc"
-yy198:
+#line 1190 "src/parse/lex.cc"
+yy193:
        ++YYCURSOR;
        YYCURSOR -= 1;
 #line 360 "../src/parse/lex.re"
@@ -1228,11 +1206,11 @@ yy198:
                                                return TOKEN_REGEXP;
                                        }
                                }
-#line 1232 "src/parse/lex.cc"
-yy200:
+#line 1210 "src/parse/lex.cc"
+yy195:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy226;
-yy201:
+       goto yy221;
+yy196:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
 #line 355 "../src/parse/lex.re"
@@ -1240,179 +1218,179 @@ yy201:
                                        yylval.str = new std::string (tok, tok_len ());
                                        return TOKEN_ID;
                                }
-#line 1244 "src/parse/lex.cc"
-yy203:
+#line 1222 "src/parse/lex.cc"
+yy198:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
-yy204:
+yy199:
        if (yybm[0+yych] & 32) {
-               goto yy203;
+               goto yy198;
        }
        if (yych <= ' ') {
                if (yych == '\t') {
                        YYCTXMARKER = YYCURSOR;
-                       goto yy200;
+                       goto yy195;
                }
-               if (yych <= 0x1F) goto yy198;
+               if (yych <= 0x1F) goto yy193;
                YYCTXMARKER = YYCURSOR;
-               goto yy200;
+               goto yy195;
        } else {
                if (yych <= ',') {
-                       if (yych <= '+') goto yy198;
+                       if (yych <= '+') goto yy193;
                        YYCTXMARKER = YYCURSOR;
-                       goto yy201;
+                       goto yy196;
                } else {
-                       if (yych <= '<') goto yy198;
+                       if (yych <= '<') goto yy193;
                        if (yych <= '>') {
                                YYCTXMARKER = YYCURSOR;
-                               goto yy201;
+                               goto yy196;
                        }
-                       goto yy198;
+                       goto yy193;
                }
        }
-yy205:
+yy200:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) == '>') goto yy227;
+       if ((yych = (YYCTYPE)*YYCURSOR) == '>') goto yy222;
 #line 243 "../src/parse/lex.re"
        {
                                        tok += 2; /* skip ":=" */
                                        depth = 0;
                                        goto code;
                                }
-#line 1284 "src/parse/lex.cc"
-yy207:
+#line 1262 "src/parse/lex.cc"
+yy202:
        ++YYCURSOR;
 #line 271 "../src/parse/lex.re"
        {
                                        return TOKEN_SETUP;
                                }
-#line 1291 "src/parse/lex.cc"
-yy209:
+#line 1269 "src/parse/lex.cc"
+yy204:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '9') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy189;
+                       if (yych <= 0x08) goto yy184;
                        YYCTXMARKER = YYCURSOR;
-                       goto yy229;
+                       goto yy224;
                } else {
                        if (yych == ' ') {
                                YYCTXMARKER = YYCURSOR;
-                               goto yy229;
+                               goto yy224;
                        }
-                       goto yy189;
+                       goto yy184;
                }
        } else {
                if (yych <= '=') {
                        if (yych <= ':') {
                                YYCTXMARKER = YYCURSOR;
-                               goto yy231;
+                               goto yy226;
                        }
-                       if (yych <= '<') goto yy189;
+                       if (yych <= '<') goto yy184;
                        YYCTXMARKER = YYCURSOR;
-                       goto yy232;
+                       goto yy227;
                } else {
                        if (yych == '{') {
                                YYCTXMARKER = YYCURSOR;
-                               goto yy233;
+                               goto yy228;
                        }
-                       goto yy189;
+                       goto yy184;
                }
        }
-yy210:
+yy205:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'Z') {
-               if (yych <= '/') goto yy212;
-               if (yych <= '9') goto yy210;
-               if (yych >= 'A') goto yy210;
+               if (yych <= '/') goto yy207;
+               if (yych <= '9') goto yy205;
+               if (yych >= 'A') goto yy205;
        } else {
                if (yych <= '_') {
-                       if (yych >= '_') goto yy210;
+                       if (yych >= '_') goto yy205;
                } else {
-                       if (yych <= '`') goto yy212;
-                       if (yych <= 'z') goto yy210;
+                       if (yych <= '`') goto yy207;
+                       if (yych <= 'z') goto yy205;
                }
        }
-yy212:
+yy207:
 #line 275 "../src/parse/lex.re"
        {
-               if (!opts->contexts) {
+               if (!opts->tags) {
                        fatal("tags are only allowed with '-T, --tags' option");
                }
                const std::string *name = new std::string(tok + 1, tok_len() - 1);
                yylval.regexp = RegExp::make_tag(name);
                return TOKEN_REGEXP;
        }
-#line 1349 "src/parse/lex.cc"
-yy213:
+#line 1327 "src/parse/lex.cc"
+yy208:
        ++YYCURSOR;
 #line 266 "../src/parse/lex.re"
        { yylval.regexp = lex_cls(true);  return TOKEN_REGEXP; }
-#line 1354 "src/parse/lex.cc"
-yy215:
+#line 1332 "src/parse/lex.cc"
+yy210:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '2') goto yy235;
-       goto yy204;
-yy216:
+       if (yych == '2') goto yy230;
+       goto yy199;
+yy211:
        ++YYCURSOR;
-yy217:
+yy212:
 #line 328 "../src/parse/lex.re"
        {
                                        fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers");
                                }
-#line 1366 "src/parse/lex.cc"
-yy218:
+#line 1344 "src/parse/lex.cc"
+yy213:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 64) {
-               goto yy218;
+               goto yy213;
        }
        if (yych <= '^') {
                if (yych <= ',') {
-                       if (yych <= '+') goto yy189;
-                       goto yy236;
+                       if (yych <= '+') goto yy184;
+                       goto yy231;
                } else {
-                       if (yych <= '@') goto yy189;
-                       if (yych >= '[') goto yy189;
+                       if (yych <= '@') goto yy184;
+                       if (yych >= '[') goto yy184;
                }
        } else {
                if (yych <= 'z') {
-                       if (yych == '`') goto yy189;
+                       if (yych == '`') goto yy184;
                } else {
-                       if (yych == '}') goto yy237;
-                       goto yy189;
+                       if (yych == '}') goto yy232;
+                       goto yy184;
                }
        }
-yy220:
+yy215:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '^') {
                if (yych <= '9') {
-                       if (yych <= '/') goto yy189;
-                       goto yy220;
+                       if (yych <= '/') goto yy184;
+                       goto yy215;
                } else {
-                       if (yych <= '@') goto yy189;
-                       if (yych <= 'Z') goto yy220;
-                       goto yy189;
+                       if (yych <= '@') goto yy184;
+                       if (yych <= 'Z') goto yy215;
+                       goto yy184;
                }
        } else {
                if (yych <= 'z') {
-                       if (yych == '`') goto yy189;
-                       goto yy220;
+                       if (yych == '`') goto yy184;
+                       goto yy215;
                } else {
-                       if (yych == '}') goto yy239;
-                       goto yy189;
+                       if (yych == '}') goto yy234;
+                       goto yy184;
                }
        }
-yy222:
+yy217:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy241;
-       goto yy189;
-yy223:
+       if (yych == 'i') goto yy236;
+       goto yy184;
+yy218:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
 #line 342 "../src/parse/lex.re"
@@ -1428,83 +1406,83 @@ yy223:
                                                return TOKEN_ID;
                                        }
                                }
-#line 1432 "src/parse/lex.cc"
-yy225:
+#line 1410 "src/parse/lex.cc"
+yy220:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy226:
+yy221:
        if (yych <= ' ') {
-               if (yych == '\t') goto yy225;
-               if (yych <= 0x1F) goto yy223;
-               goto yy225;
+               if (yych == '\t') goto yy220;
+               if (yych <= 0x1F) goto yy218;
+               goto yy220;
        } else {
                if (yych <= ',') {
-                       if (yych <= '+') goto yy223;
-                       goto yy201;
+                       if (yych <= '+') goto yy218;
+                       goto yy196;
                } else {
-                       if (yych <= '<') goto yy223;
-                       if (yych <= '>') goto yy201;
-                       goto yy223;
+                       if (yych <= '<') goto yy218;
+                       if (yych <= '>') goto yy196;
+                       goto yy218;
                }
        }
-yy227:
+yy222:
        ++YYCURSOR;
        YYCURSOR -= 2;
 #line 239 "../src/parse/lex.re"
        {
                                        return *tok;
                                }
-#line 1459 "src/parse/lex.cc"
-yy229:
+#line 1437 "src/parse/lex.cc"
+yy224:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '9') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy189;
-                       goto yy229;
+                       if (yych <= 0x08) goto yy184;
+                       goto yy224;
                } else {
-                       if (yych == ' ') goto yy229;
-                       goto yy189;
+                       if (yych == ' ') goto yy224;
+                       goto yy184;
                }
        } else {
                if (yych <= '=') {
-                       if (yych <= ':') goto yy231;
-                       if (yych <= '<') goto yy189;
-                       goto yy232;
+                       if (yych <= ':') goto yy226;
+                       if (yych <= '<') goto yy184;
+                       goto yy227;
                } else {
-                       if (yych == '{') goto yy233;
-                       goto yy189;
+                       if (yych == '{') goto yy228;
+                       goto yy184;
                }
        }
-yy231:
+yy226:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '=') goto yy233;
-       goto yy189;
-yy232:
+       if (yych == '=') goto yy228;
+       goto yy184;
+yy227:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '>') goto yy189;
-yy233:
+       if (yych != '>') goto yy184;
+yy228:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
 #line 268 "../src/parse/lex.re"
        {
                                        return TOKEN_NOCOND;
                                }
-#line 1496 "src/parse/lex.cc"
-yy235:
+#line 1474 "src/parse/lex.cc"
+yy230:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy242;
-       goto yy204;
-yy236:
+       if (yych == 'c') goto yy237;
+       goto yy199;
+yy231:
        yyaccept = 3;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych <= '/') goto yy217;
-       if (yych <= '9') goto yy243;
-       if (yych == '}') goto yy245;
-       goto yy217;
-yy237:
+       if (yych <= '/') goto yy212;
+       if (yych <= '9') goto yy238;
+       if (yych == '}') goto yy240;
+       goto yy212;
+yy232:
        ++YYCURSOR;
 #line 297 "../src/parse/lex.re"
        {
@@ -1515,8 +1493,8 @@ yy237:
                                        yylval.extop.max = yylval.extop.min;
                                        return TOKEN_CLOSESIZE;
                                }
-#line 1519 "src/parse/lex.cc"
-yy239:
+#line 1497 "src/parse/lex.cc"
+yy234:
        ++YYCURSOR;
 #line 332 "../src/parse/lex.re"
        {
@@ -1526,24 +1504,24 @@ yy239:
                                        yylval.str = new std::string (tok + 1, tok_len () - 2); // -2 to omit braces
                                        return TOKEN_ID;
                                }
-#line 1530 "src/parse/lex.cc"
-yy241:
+#line 1508 "src/parse/lex.cc"
+yy236:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy247;
-       goto yy189;
-yy242:
+       if (yych == 'n') goto yy242;
+       goto yy184;
+yy237:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == ':') goto yy248;
-       goto yy204;
-yy243:
+       if (yych == ':') goto yy243;
+       goto yy199;
+yy238:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= '/') goto yy189;
-       if (yych <= '9') goto yy243;
-       if (yych == '}') goto yy250;
-       goto yy189;
-yy245:
+       if (yych <= '/') goto yy184;
+       if (yych <= '9') goto yy238;
+       if (yych == '}') goto yy245;
+       goto yy184;
+yy240:
        ++YYCURSOR;
 #line 319 "../src/parse/lex.re"
        {
@@ -1554,17 +1532,17 @@ yy245:
                                        yylval.extop.max = std::numeric_limits<uint32_t>::max();
                                        return TOKEN_CLOSESIZE;
                                }
-#line 1558 "src/parse/lex.cc"
-yy247:
+#line 1536 "src/parse/lex.cc"
+yy242:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy252;
-       goto yy189;
-yy248:
+       if (yych == 'e') goto yy247;
+       goto yy184;
+yy243:
        ++YYCURSOR;
 #line 340 "../src/parse/lex.re"
        { lex_conf (); return TOKEN_CONF; }
-#line 1567 "src/parse/lex.cc"
-yy250:
+#line 1545 "src/parse/lex.cc"
+yy245:
        ++YYCURSOR;
 #line 306 "../src/parse/lex.re"
        {
@@ -1579,60 +1557,60 @@ yy250:
                                        }
                                        return TOKEN_CLOSESIZE;
                                }
-#line 1583 "src/parse/lex.cc"
-yy252:
+#line 1561 "src/parse/lex.cc"
+yy247:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '0') goto yy254;
-       if (yych <= '9') goto yy189;
-       goto yy254;
-yy253:
+       if (yych <= '0') goto yy249;
+       if (yych <= '9') goto yy184;
+       goto yy249;
+yy248:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy254:
+yy249:
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy253;
-               goto yy189;
+               if (yych == '\t') goto yy248;
+               goto yy184;
        } else {
-               if (yych <= ' ') goto yy253;
-               if (yych <= '0') goto yy189;
-               if (yych >= ':') goto yy189;
+               if (yych <= ' ') goto yy248;
+               if (yych <= '0') goto yy184;
+               if (yych >= ':') goto yy184;
                YYCTXMARKER = YYCURSOR;
        }
-yy255:
+yy250:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '\r') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy189;
+                       if (yych <= 0x08) goto yy184;
                } else {
-                       if (yych <= '\n') goto yy259;
-                       if (yych <= '\f') goto yy189;
-                       goto yy261;
+                       if (yych <= '\n') goto yy254;
+                       if (yych <= '\f') goto yy184;
+                       goto yy256;
                }
        } else {
                if (yych <= ' ') {
-                       if (yych <= 0x1F) goto yy189;
+                       if (yych <= 0x1F) goto yy184;
                } else {
-                       if (yych <= '/') goto yy189;
-                       if (yych <= '9') goto yy255;
-                       goto yy189;
+                       if (yych <= '/') goto yy184;
+                       if (yych <= '9') goto yy250;
+                       goto yy184;
                }
        }
-yy257:
+yy252:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy257;
-               goto yy189;
+               if (yych == '\t') goto yy252;
+               goto yy184;
        } else {
-               if (yych <= ' ') goto yy257;
-               if (yych == '"') goto yy262;
-               goto yy189;
+               if (yych <= ' ') goto yy252;
+               if (yych == '"') goto yy257;
+               goto yy184;
        }
-yy259:
+yy254:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
 #line 385 "../src/parse/lex.re"
@@ -1640,52 +1618,52 @@ yy259:
                                        set_sourceline ();
                                        goto scan;
                                }
-#line 1644 "src/parse/lex.cc"
-yy261:
+#line 1622 "src/parse/lex.cc"
+yy256:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy259;
-       goto yy189;
-yy262:
+       if (yych == '\n') goto yy254;
+       goto yy184;
+yy257:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy262;
+               goto yy257;
        }
-       if (yych <= '\n') goto yy189;
-       if (yych >= '#') goto yy265;
+       if (yych <= '\n') goto yy184;
+       if (yych >= '#') goto yy260;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy259;
-       if (yych == '\r') goto yy261;
-       goto yy189;
-yy265:
+       if (yych == '\n') goto yy254;
+       if (yych == '\r') goto yy256;
+       goto yy184;
+yy260:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy189;
-       goto yy262;
+       if (yych == '\n') goto yy184;
+       goto yy257;
 }
 #line 401 "../src/parse/lex.re"
 
 
 flex_name:
 
-#line 1674 "src/parse/lex.cc"
+#line 1652 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy270;
-       if (yych == '\r') goto yy272;
+       if (yych == '\n') goto yy265;
+       if (yych == '\r') goto yy267;
        ++YYCURSOR;
-yy269:
+yy264:
 #line 412 "../src/parse/lex.re"
        {
                YYCURSOR = tok;
                goto start;
        }
-#line 1688 "src/parse/lex.cc"
-yy270:
+#line 1666 "src/parse/lex.cc"
+yy265:
        ++YYCURSOR;
 #line 406 "../src/parse/lex.re"
        {
@@ -1693,18 +1671,18 @@ yy270:
                lexer_state = LEX_NORMAL;
                return TOKEN_FID_END;
        }
-#line 1697 "src/parse/lex.cc"
-yy272:
+#line 1675 "src/parse/lex.cc"
+yy267:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) == '\n') goto yy270;
-       goto yy269;
+       if ((yych = (YYCTYPE)*YYCURSOR) == '\n') goto yy265;
+       goto yy264;
 }
 #line 416 "../src/parse/lex.re"
 
 
 code:
 
-#line 1708 "src/parse/lex.cc"
+#line 1686 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -1746,24 +1724,24 @@ code:
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '&') {
                if (yych <= '\n') {
-                       if (yych <= 0x00) goto yy275;
-                       if (yych <= '\t') goto yy277;
-                       goto yy279;
+                       if (yych <= 0x00) goto yy270;
+                       if (yych <= '\t') goto yy272;
+                       goto yy274;
                } else {
-                       if (yych == '"') goto yy281;
-                       goto yy277;
+                       if (yych == '"') goto yy276;
+                       goto yy272;
                }
        } else {
                if (yych <= '{') {
-                       if (yych <= '\'') goto yy282;
-                       if (yych <= 'z') goto yy277;
-                       goto yy283;
+                       if (yych <= '\'') goto yy277;
+                       if (yych <= 'z') goto yy272;
+                       goto yy278;
                } else {
-                       if (yych == '}') goto yy285;
-                       goto yy277;
+                       if (yych == '}') goto yy280;
+                       goto yy272;
                }
        }
-yy275:
+yy270:
        ++YYCURSOR;
 #line 479 "../src/parse/lex.re"
        {
@@ -1777,33 +1755,33 @@ yy275:
                                        }
                                        goto code;
                                }
-#line 1781 "src/parse/lex.cc"
-yy277:
+#line 1759 "src/parse/lex.cc"
+yy272:
        ++YYCURSOR;
-yy278:
+yy273:
 #line 493 "../src/parse/lex.re"
        {
                                        goto code;
                                }
-#line 1789 "src/parse/lex.cc"
-yy279:
+#line 1767 "src/parse/lex.cc"
+yy274:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '\r') {
                if (yych <= '\t') {
-                       if (yych >= '\t') goto yy287;
+                       if (yych >= '\t') goto yy282;
                } else {
-                       if (yych <= '\n') goto yy289;
-                       if (yych >= '\r') goto yy289;
+                       if (yych <= '\n') goto yy284;
+                       if (yych >= '\r') goto yy284;
                }
        } else {
                if (yych <= ' ') {
-                       if (yych >= ' ') goto yy287;
+                       if (yych >= ' ') goto yy282;
                } else {
-                       if (yych == '#') goto yy290;
+                       if (yych == '#') goto yy285;
                }
        }
-yy280:
+yy275:
 #line 460 "../src/parse/lex.re"
        {
                                        if (depth == 0)
@@ -1824,18 +1802,18 @@ yy280:
                                        cline++;
                                        goto code;
                                }
-#line 1828 "src/parse/lex.cc"
-yy281:
+#line 1806 "src/parse/lex.cc"
+yy276:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '\n') goto yy278;
-       goto yy294;
-yy282:
+       if (yych == '\n') goto yy273;
+       goto yy289;
+yy277:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '\n') goto yy278;
-       goto yy299;
-yy283:
+       if (yych == '\n') goto yy273;
+       goto yy294;
+yy278:
        ++YYCURSOR;
 #line 432 "../src/parse/lex.re"
        {
@@ -1849,8 +1827,8 @@ yy283:
                                        }
                                        goto code;
                                }
-#line 1853 "src/parse/lex.cc"
-yy285:
+#line 1831 "src/parse/lex.cc"
+yy280:
        ++YYCURSOR;
 #line 420 "../src/parse/lex.re"
        {
@@ -1865,17 +1843,17 @@ yy285:
                                        }
                                        goto code;
                                }
-#line 1869 "src/parse/lex.cc"
-yy287:
+#line 1847 "src/parse/lex.cc"
+yy282:
        yyaccept = 2;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy301;
+               if (yych == '\t') goto yy296;
        } else {
-               if (yych <= ' ') goto yy301;
-               if (yych == '#') goto yy290;
+               if (yych <= ' ') goto yy296;
+               if (yych == '#') goto yy285;
        }
-yy288:
+yy283:
        YYCURSOR -= 1;
 #line 447 "../src/parse/lex.re"
        {
@@ -1891,133 +1869,133 @@ yy288:
                                        cline++;
                                        goto code;
                                }
-#line 1895 "src/parse/lex.cc"
-yy289:
+#line 1873 "src/parse/lex.cc"
+yy284:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy288;
-yy290:
+       goto yy283;
+yy285:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 16) {
-               goto yy290;
+               goto yy285;
        }
-       if (yych == 'l') goto yy303;
-yy292:
+       if (yych == 'l') goto yy298;
+yy287:
        YYCURSOR = YYMARKER;
        if (yyaccept <= 1) {
                if (yyaccept == 0) {
-                       goto yy280;
+                       goto yy275;
                } else {
-                       goto yy278;
+                       goto yy273;
                }
        } else {
-               goto yy288;
+               goto yy283;
        }
-yy293:
+yy288:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy294:
+yy289:
        if (yybm[0+yych] & 32) {
-               goto yy293;
+               goto yy288;
        }
-       if (yych <= '\n') goto yy292;
-       if (yych >= '#') goto yy297;
-yy295:
+       if (yych <= '\n') goto yy287;
+       if (yych >= '#') goto yy292;
+yy290:
        ++YYCURSOR;
 #line 490 "../src/parse/lex.re"
        {
                                        goto code;
                                }
-#line 1934 "src/parse/lex.cc"
-yy297:
+#line 1912 "src/parse/lex.cc"
+yy292:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy292;
-       goto yy293;
-yy298:
+       if (yych == '\n') goto yy287;
+       goto yy288;
+yy293:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy299:
+yy294:
        if (yybm[0+yych] & 64) {
-               goto yy298;
+               goto yy293;
        }
-       if (yych <= '\n') goto yy292;
-       if (yych <= '\'') goto yy295;
+       if (yych <= '\n') goto yy287;
+       if (yych <= '\'') goto yy290;
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy292;
-       goto yy298;
-yy301:
+       if (yych == '\n') goto yy287;
+       goto yy293;
+yy296:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy301;
-               goto yy292;
+               if (yych == '\t') goto yy296;
+               goto yy287;
        } else {
-               if (yych <= ' ') goto yy301;
-               if (yych == '#') goto yy290;
-               goto yy292;
+               if (yych <= ' ') goto yy296;
+               if (yych == '#') goto yy285;
+               goto yy287;
        }
-yy303:
+yy298:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy292;
+       if (yych != 'i') goto yy287;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy292;
+       if (yych != 'n') goto yy287;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy292;
+       if (yych != 'e') goto yy287;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '0') goto yy308;
-       if (yych <= '9') goto yy292;
-       goto yy308;
-yy307:
+       if (yych <= '0') goto yy303;
+       if (yych <= '9') goto yy287;
+       goto yy303;
+yy302:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy308:
+yy303:
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy307;
-               goto yy292;
+               if (yych == '\t') goto yy302;
+               goto yy287;
        } else {
-               if (yych <= ' ') goto yy307;
-               if (yych <= '0') goto yy292;
-               if (yych >= ':') goto yy292;
+               if (yych <= ' ') goto yy302;
+               if (yych <= '0') goto yy287;
+               if (yych >= ':') goto yy287;
                YYCTXMARKER = YYCURSOR;
        }
-yy309:
+yy304:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy309;
+               goto yy304;
        }
        if (yych <= '\f') {
-               if (yych <= 0x08) goto yy292;
-               if (yych <= '\t') goto yy311;
-               if (yych <= '\n') goto yy313;
-               goto yy292;
+               if (yych <= 0x08) goto yy287;
+               if (yych <= '\t') goto yy306;
+               if (yych <= '\n') goto yy308;
+               goto yy287;
        } else {
-               if (yych <= '\r') goto yy315;
-               if (yych != ' ') goto yy292;
+               if (yych <= '\r') goto yy310;
+               if (yych != ' ') goto yy287;
        }
-yy311:
+yy306:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy311;
-               goto yy292;
+               if (yych == '\t') goto yy306;
+               goto yy287;
        } else {
-               if (yych <= ' ') goto yy311;
-               if (yych == '"') goto yy316;
-               goto yy292;
+               if (yych <= ' ') goto yy306;
+               if (yych == '"') goto yy311;
+               goto yy287;
        }
-yy313:
+yy308:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
 #line 443 "../src/parse/lex.re"
@@ -2025,41 +2003,41 @@ yy313:
                                        set_sourceline ();
                                        goto code;
                                }
-#line 2029 "src/parse/lex.cc"
-yy315:
+#line 2007 "src/parse/lex.cc"
+yy310:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy313;
-       goto yy292;
-yy316:
+       if (yych == '\n') goto yy308;
+       goto yy287;
+yy311:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '!') {
-               if (yych == '\n') goto yy292;
-               goto yy316;
+               if (yych == '\n') goto yy287;
+               goto yy311;
        } else {
-               if (yych <= '"') goto yy318;
-               if (yych == '\\') goto yy319;
-               goto yy316;
+               if (yych <= '"') goto yy313;
+               if (yych == '\\') goto yy314;
+               goto yy311;
        }
-yy318:
+yy313:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy313;
-       if (yych == '\r') goto yy315;
-       goto yy292;
-yy319:
+       if (yych == '\n') goto yy308;
+       if (yych == '\r') goto yy310;
+       goto yy287;
+yy314:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy292;
-       goto yy316;
+       if (yych == '\n') goto yy287;
+       goto yy311;
 }
 #line 496 "../src/parse/lex.re"
 
 
 comment:
 
-#line 2063 "src/parse/lex.cc"
+#line 2041 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2099,13 +2077,13 @@ comment:
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= ')') {
-               if (yych == '\n') goto yy324;
+               if (yych == '\n') goto yy319;
        } else {
-               if (yych <= '*') goto yy326;
-               if (yych == '/') goto yy327;
+               if (yych <= '*') goto yy321;
+               if (yych == '/') goto yy322;
        }
        ++YYCURSOR;
-yy323:
+yy318:
 #line 528 "../src/parse/lex.re"
        {
                                        if (cur == eof)
@@ -2114,14 +2092,14 @@ yy323:
                                        }
                                        goto comment;
                                }
-#line 2118 "src/parse/lex.cc"
-yy324:
+#line 2096 "src/parse/lex.cc"
+yy319:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 32) {
-               goto yy328;
+               goto yy323;
        }
-       if (yych == '#') goto yy331;
-yy325:
+       if (yych == '#') goto yy326;
+yy320:
 #line 519 "../src/parse/lex.re"
        {
                                        if (cur == eof)
@@ -2132,39 +2110,39 @@ yy325:
                                        cline++;
                                        goto comment;
                                }
-#line 2136 "src/parse/lex.cc"
-yy326:
+#line 2114 "src/parse/lex.cc"
+yy321:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '/') goto yy333;
-       goto yy323;
-yy327:
+       if (yych == '/') goto yy328;
+       goto yy318;
+yy322:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '*') goto yy335;
-       goto yy323;
-yy328:
+       if (yych == '*') goto yy330;
+       goto yy318;
+yy323:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 32) {
-               goto yy328;
+               goto yy323;
        }
-       if (yych == '#') goto yy331;
-yy330:
+       if (yych == '#') goto yy326;
+yy325:
        YYCURSOR = YYMARKER;
-       goto yy325;
-yy331:
+       goto yy320;
+yy326:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy331;
-               goto yy330;
+               if (yych == '\t') goto yy326;
+               goto yy325;
        } else {
-               if (yych <= ' ') goto yy331;
-               if (yych == 'l') goto yy337;
-               goto yy330;
+               if (yych <= ' ') goto yy326;
+               if (yych == 'l') goto yy332;
+               goto yy325;
        }
-yy333:
+yy328:
        ++YYCURSOR;
 #line 500 "../src/parse/lex.re"
        {
@@ -2177,8 +2155,8 @@ yy333:
                                                goto comment;
                                        }
                                }
-#line 2181 "src/parse/lex.cc"
-yy335:
+#line 2159 "src/parse/lex.cc"
+yy330:
        ++YYCURSOR;
 #line 510 "../src/parse/lex.re"
        {
@@ -2186,61 +2164,61 @@ yy335:
                                        fatal("ambiguous /* found");
                                        goto comment;
                                }
-#line 2190 "src/parse/lex.cc"
-yy337:
+#line 2168 "src/parse/lex.cc"
+yy332:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy330;
+       if (yych != 'i') goto yy325;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy330;
+       if (yych != 'n') goto yy325;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy330;
+       if (yych != 'e') goto yy325;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '0') goto yy342;
-       if (yych <= '9') goto yy330;
-       goto yy342;
-yy341:
+       if (yych <= '0') goto yy337;
+       if (yych <= '9') goto yy325;
+       goto yy337;
+yy336:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy342:
+yy337:
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy341;
-               goto yy330;
+               if (yych == '\t') goto yy336;
+               goto yy325;
        } else {
-               if (yych <= ' ') goto yy341;
-               if (yych <= '0') goto yy330;
-               if (yych >= ':') goto yy330;
+               if (yych <= ' ') goto yy336;
+               if (yych <= '0') goto yy325;
+               if (yych >= ':') goto yy325;
                YYCTXMARKER = YYCURSOR;
        }
-yy343:
+yy338:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 64) {
-               goto yy343;
+               goto yy338;
        }
        if (yych <= '\f') {
-               if (yych <= 0x08) goto yy330;
-               if (yych <= '\t') goto yy345;
-               if (yych <= '\n') goto yy347;
-               goto yy330;
+               if (yych <= 0x08) goto yy325;
+               if (yych <= '\t') goto yy340;
+               if (yych <= '\n') goto yy342;
+               goto yy325;
        } else {
-               if (yych <= '\r') goto yy349;
-               if (yych != ' ') goto yy330;
+               if (yych <= '\r') goto yy344;
+               if (yych != ' ') goto yy325;
        }
-yy345:
+yy340:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy345;
-               goto yy330;
+               if (yych == '\t') goto yy340;
+               goto yy325;
        } else {
-               if (yych <= ' ') goto yy345;
-               if (yych == '"') goto yy350;
-               goto yy330;
+               if (yych <= ' ') goto yy340;
+               if (yych == '"') goto yy345;
+               goto yy325;
        }
-yy347:
+yy342:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
 #line 515 "../src/parse/lex.re"
@@ -2248,42 +2226,42 @@ yy347:
                                        set_sourceline ();
                                        goto comment;
                                }
-#line 2252 "src/parse/lex.cc"
-yy349:
+#line 2230 "src/parse/lex.cc"
+yy344:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy347;
-       goto yy330;
-yy350:
+       if (yych == '\n') goto yy342;
+       goto yy325;
+yy345:
        ++YYCURSOR;
        if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy350;
+               goto yy345;
        }
-       if (yych <= '\n') goto yy330;
-       if (yych >= '#') goto yy353;
+       if (yych <= '\n') goto yy325;
+       if (yych >= '#') goto yy348;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '\n') goto yy347;
-       if (yych == '\r') goto yy349;
-       goto yy330;
-yy353:
+       if (yych == '\n') goto yy342;
+       if (yych == '\r') goto yy344;
+       goto yy325;
+yy348:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy330;
-       goto yy350;
+       if (yych == '\n') goto yy325;
+       goto yy345;
 }
 #line 535 "../src/parse/lex.re"
 
 
 nextLine:
 
-#line 2282 "src/parse/lex.cc"
+#line 2260 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy358;
+       if (yych == '\n') goto yy353;
        ++YYCURSOR;
 #line 546 "../src/parse/lex.re"
        {  if(cur == eof) {
@@ -2291,8 +2269,8 @@ nextLine:
                }
                goto nextLine;
             }
-#line 2295 "src/parse/lex.cc"
-yy358:
+#line 2273 "src/parse/lex.cc"
+yy353:
        ++YYCURSOR;
 #line 539 "../src/parse/lex.re"
        { if(cur == eof) {
@@ -2302,7 +2280,7 @@ yy358:
                cline++;
                goto scan;
             }
-#line 2306 "src/parse/lex.cc"
+#line 2284 "src/parse/lex.cc"
 }
 #line 551 "../src/parse/lex.re"
 
@@ -2328,41 +2306,41 @@ const RegExp *Scanner::lex_cls(bool neg)
        uint32_t u, l;
 fst:
        
-#line 2332 "src/parse/lex.cc"
+#line 2310 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == ']') goto yy363;
+       if (yych == ']') goto yy358;
 #line 575 "../src/parse/lex.re"
        { l = lex_cls_chr(); goto snd; }
-#line 2340 "src/parse/lex.cc"
-yy363:
+#line 2318 "src/parse/lex.cc"
+yy358:
        ++YYCURSOR;
 #line 574 "../src/parse/lex.re"
        { goto end; }
-#line 2345 "src/parse/lex.cc"
+#line 2323 "src/parse/lex.cc"
 }
 #line 576 "../src/parse/lex.re"
 
 snd:
        
-#line 2351 "src/parse/lex.cc"
+#line 2329 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*(YYMARKER = YYCURSOR);
-       if (yych == '-') goto yy368;
-yy367:
+       if (yych == '-') goto yy363;
+yy362:
 #line 579 "../src/parse/lex.re"
        { u = l; goto add; }
-#line 2360 "src/parse/lex.cc"
-yy368:
+#line 2338 "src/parse/lex.cc"
+yy363:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != ']') goto yy370;
+       if (yych != ']') goto yy365;
        YYCURSOR = YYMARKER;
-       goto yy367;
-yy370:
+       goto yy362;
+yy365:
        ++YYCURSOR;
        YYCURSOR -= 1;
 #line 580 "../src/parse/lex.re"
@@ -2374,7 +2352,7 @@ yy370:
                        }
                        goto add;
                }
-#line 2378 "src/parse/lex.cc"
+#line 2356 "src/parse/lex.cc"
 }
 #line 588 "../src/parse/lex.re"
 
@@ -2395,287 +2373,287 @@ uint32_t Scanner::lex_cls_chr()
 {
        tok = cur;
        
-#line 2399 "src/parse/lex.cc"
+#line 2377 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
        if ((YYLIMIT - YYCURSOR) < 10) YYFILL(10);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy376;
-       if (yych == '\\') goto yy378;
+       if (yych == '\n') goto yy371;
+       if (yych == '\\') goto yy373;
        ++YYCURSOR;
 #line 611 "../src/parse/lex.re"
        { return static_cast<uint8_t>(tok[0]); }
-#line 2410 "src/parse/lex.cc"
-yy376:
+#line 2388 "src/parse/lex.cc"
+yy371:
        ++YYCURSOR;
 #line 606 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error"); }
-#line 2415 "src/parse/lex.cc"
-yy378:
+#line 2393 "src/parse/lex.cc"
+yy373:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) <= '`') {
                if (yych <= '7') {
                        if (yych <= ',') {
-                               if (yych != '\n') goto yy380;
+                               if (yych != '\n') goto yy375;
                        } else {
-                               if (yych <= '-') goto yy382;
-                               if (yych <= '/') goto yy380;
-                               if (yych <= '3') goto yy384;
-                               goto yy386;
+                               if (yych <= '-') goto yy377;
+                               if (yych <= '/') goto yy375;
+                               if (yych <= '3') goto yy379;
+                               goto yy381;
                        }
                } else {
                        if (yych <= 'X') {
-                               if (yych == 'U') goto yy387;
-                               if (yych <= 'W') goto yy380;
-                               goto yy389;
+                               if (yych == 'U') goto yy382;
+                               if (yych <= 'W') goto yy375;
+                               goto yy384;
                        } else {
-                               if (yych <= '[') goto yy380;
-                               if (yych <= '\\') goto yy390;
-                               if (yych <= ']') goto yy392;
-                               goto yy380;
+                               if (yych <= '[') goto yy375;
+                               if (yych <= '\\') goto yy385;
+                               if (yych <= ']') goto yy387;
+                               goto yy375;
                        }
                }
        } else {
                if (yych <= 'q') {
                        if (yych <= 'e') {
-                               if (yych <= 'a') goto yy394;
-                               if (yych <= 'b') goto yy396;
-                               goto yy380;
+                               if (yych <= 'a') goto yy389;
+                               if (yych <= 'b') goto yy391;
+                               goto yy375;
                        } else {
-                               if (yych <= 'f') goto yy398;
-                               if (yych == 'n') goto yy400;
-                               goto yy380;
+                               if (yych <= 'f') goto yy393;
+                               if (yych == 'n') goto yy395;
+                               goto yy375;
                        }
                } else {
                        if (yych <= 'u') {
-                               if (yych <= 'r') goto yy402;
-                               if (yych <= 's') goto yy380;
-                               if (yych <= 't') goto yy404;
-                               goto yy389;
+                               if (yych <= 'r') goto yy397;
+                               if (yych <= 's') goto yy375;
+                               if (yych <= 't') goto yy399;
+                               goto yy384;
                        } else {
-                               if (yych <= 'v') goto yy406;
-                               if (yych == 'x') goto yy408;
-                               goto yy380;
+                               if (yych <= 'v') goto yy401;
+                               if (yych == 'x') goto yy403;
+                               goto yy375;
                        }
                }
        }
 #line 609 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in escape sequence"); }
-#line 2466 "src/parse/lex.cc"
-yy380:
+#line 2444 "src/parse/lex.cc"
+yy375:
        ++YYCURSOR;
 #line 624 "../src/parse/lex.re"
        {
                        warn.useless_escape(tline, tok - pos, tok[1]);
                        return static_cast<uint8_t>(tok[1]);
                }
-#line 2474 "src/parse/lex.cc"
-yy382:
+#line 2452 "src/parse/lex.cc"
+yy377:
        ++YYCURSOR;
 #line 622 "../src/parse/lex.re"
        { return static_cast<uint8_t>('-'); }
-#line 2479 "src/parse/lex.cc"
-yy384:
+#line 2457 "src/parse/lex.cc"
+yy379:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych <= '/') goto yy385;
-       if (yych <= '7') goto yy409;
-yy385:
+       if (yych <= '/') goto yy380;
+       if (yych <= '7') goto yy404;
+yy380:
 #line 608 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); }
-#line 2488 "src/parse/lex.cc"
-yy386:
+#line 2466 "src/parse/lex.cc"
+yy381:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy385;
-yy387:
+       goto yy380;
+yy382:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy388;
-               if (yych <= '9') goto yy411;
+               if (yych <= '/') goto yy383;
+               if (yych <= '9') goto yy406;
        } else {
-               if (yych <= 'F') goto yy411;
-               if (yych <= '`') goto yy388;
-               if (yych <= 'f') goto yy411;
+               if (yych <= 'F') goto yy406;
+               if (yych <= '`') goto yy383;
+               if (yych <= 'f') goto yy406;
        }
-yy388:
+yy383:
 #line 607 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); }
-#line 2506 "src/parse/lex.cc"
-yy389:
+#line 2484 "src/parse/lex.cc"
+yy384:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy388;
-               if (yych <= '9') goto yy412;
-               goto yy388;
+               if (yych <= '/') goto yy383;
+               if (yych <= '9') goto yy407;
+               goto yy383;
        } else {
-               if (yych <= 'F') goto yy412;
-               if (yych <= '`') goto yy388;
-               if (yych <= 'f') goto yy412;
-               goto yy388;
+               if (yych <= 'F') goto yy407;
+               if (yych <= '`') goto yy383;
+               if (yych <= 'f') goto yy407;
+               goto yy383;
        }
-yy390:
+yy385:
        ++YYCURSOR;
 #line 621 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\\'); }
-#line 2524 "src/parse/lex.cc"
-yy392:
+#line 2502 "src/parse/lex.cc"
+yy387:
        ++YYCURSOR;
 #line 623 "../src/parse/lex.re"
        { return static_cast<uint8_t>(']'); }
-#line 2529 "src/parse/lex.cc"
-yy394:
+#line 2507 "src/parse/lex.cc"
+yy389:
        ++YYCURSOR;
 #line 614 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\a'); }
-#line 2534 "src/parse/lex.cc"
-yy396:
+#line 2512 "src/parse/lex.cc"
+yy391:
        ++YYCURSOR;
 #line 615 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\b'); }
-#line 2539 "src/parse/lex.cc"
-yy398:
+#line 2517 "src/parse/lex.cc"
+yy393:
        ++YYCURSOR;
 #line 616 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\f'); }
-#line 2544 "src/parse/lex.cc"
-yy400:
+#line 2522 "src/parse/lex.cc"
+yy395:
        ++YYCURSOR;
 #line 617 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\n'); }
-#line 2549 "src/parse/lex.cc"
-yy402:
+#line 2527 "src/parse/lex.cc"
+yy397:
        ++YYCURSOR;
 #line 618 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\r'); }
-#line 2554 "src/parse/lex.cc"
-yy404:
+#line 2532 "src/parse/lex.cc"
+yy399:
        ++YYCURSOR;
 #line 619 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\t'); }
-#line 2559 "src/parse/lex.cc"
-yy406:
+#line 2537 "src/parse/lex.cc"
+yy401:
        ++YYCURSOR;
 #line 620 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\v'); }
-#line 2564 "src/parse/lex.cc"
-yy408:
+#line 2542 "src/parse/lex.cc"
+yy403:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy388;
-               if (yych <= '9') goto yy413;
-               goto yy388;
+               if (yych <= '/') goto yy383;
+               if (yych <= '9') goto yy408;
+               goto yy383;
        } else {
-               if (yych <= 'F') goto yy413;
-               if (yych <= '`') goto yy388;
-               if (yych <= 'f') goto yy413;
-               goto yy388;
+               if (yych <= 'F') goto yy408;
+               if (yych <= '`') goto yy383;
+               if (yych <= 'f') goto yy408;
+               goto yy383;
        }
-yy409:
+yy404:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '/') goto yy410;
-       if (yych <= '7') goto yy414;
-yy410:
+       if (yych <= '/') goto yy405;
+       if (yych <= '7') goto yy409;
+yy405:
        YYCURSOR = YYMARKER;
        if (yyaccept == 0) {
-               goto yy385;
+               goto yy380;
        } else {
-               goto yy388;
+               goto yy383;
        }
-yy411:
+yy406:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy410;
-               if (yych <= '9') goto yy416;
-               goto yy410;
+               if (yych <= '/') goto yy405;
+               if (yych <= '9') goto yy411;
+               goto yy405;
        } else {
-               if (yych <= 'F') goto yy416;
-               if (yych <= '`') goto yy410;
-               if (yych <= 'f') goto yy416;
-               goto yy410;
+               if (yych <= 'F') goto yy411;
+               if (yych <= '`') goto yy405;
+               if (yych <= 'f') goto yy411;
+               goto yy405;
        }
-yy412:
+yy407:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy410;
-               if (yych <= '9') goto yy417;
-               goto yy410;
+               if (yych <= '/') goto yy405;
+               if (yych <= '9') goto yy412;
+               goto yy405;
        } else {
-               if (yych <= 'F') goto yy417;
-               if (yych <= '`') goto yy410;
-               if (yych <= 'f') goto yy417;
-               goto yy410;
+               if (yych <= 'F') goto yy412;
+               if (yych <= '`') goto yy405;
+               if (yych <= 'f') goto yy412;
+               goto yy405;
        }
-yy413:
+yy408:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy410;
-               if (yych <= '9') goto yy418;
-               goto yy410;
+               if (yych <= '/') goto yy405;
+               if (yych <= '9') goto yy413;
+               goto yy405;
        } else {
-               if (yych <= 'F') goto yy418;
-               if (yych <= '`') goto yy410;
-               if (yych <= 'f') goto yy418;
-               goto yy410;
+               if (yych <= 'F') goto yy413;
+               if (yych <= '`') goto yy405;
+               if (yych <= 'f') goto yy413;
+               goto yy405;
        }
-yy414:
+yy409:
        ++YYCURSOR;
 #line 613 "../src/parse/lex.re"
        { return unesc_oct(tok, cur); }
-#line 2629 "src/parse/lex.cc"
-yy416:
+#line 2607 "src/parse/lex.cc"
+yy411:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy410;
-               if (yych <= '9') goto yy420;
-               goto yy410;
+               if (yych <= '/') goto yy405;
+               if (yych <= '9') goto yy415;
+               goto yy405;
        } else {
-               if (yych <= 'F') goto yy420;
-               if (yych <= '`') goto yy410;
-               if (yych <= 'f') goto yy420;
-               goto yy410;
+               if (yych <= 'F') goto yy415;
+               if (yych <= '`') goto yy405;
+               if (yych <= 'f') goto yy415;
+               goto yy405;
        }
-yy417:
+yy412:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy410;
-               if (yych <= '9') goto yy413;
-               goto yy410;
+               if (yych <= '/') goto yy405;
+               if (yych <= '9') goto yy408;
+               goto yy405;
        } else {
-               if (yych <= 'F') goto yy413;
-               if (yych <= '`') goto yy410;
-               if (yych <= 'f') goto yy413;
-               goto yy410;
+               if (yych <= 'F') goto yy408;
+               if (yych <= '`') goto yy405;
+               if (yych <= 'f') goto yy408;
+               goto yy405;
        }
-yy418:
+yy413:
        ++YYCURSOR;
 #line 612 "../src/parse/lex.re"
        { return unesc_hex(tok, cur); }
-#line 2658 "src/parse/lex.cc"
-yy420:
+#line 2636 "src/parse/lex.cc"
+yy415:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy410;
-               if (yych >= ':') goto yy410;
+               if (yych <= '/') goto yy405;
+               if (yych >= ':') goto yy405;
        } else {
-               if (yych <= 'F') goto yy421;
-               if (yych <= '`') goto yy410;
-               if (yych >= 'g') goto yy410;
+               if (yych <= 'F') goto yy416;
+               if (yych <= '`') goto yy405;
+               if (yych >= 'g') goto yy405;
        }
-yy421:
+yy416:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) <= '@') {
-               if (yych <= '/') goto yy410;
-               if (yych <= '9') goto yy412;
-               goto yy410;
+               if (yych <= '/') goto yy405;
+               if (yych <= '9') goto yy407;
+               goto yy405;
        } else {
-               if (yych <= 'F') goto yy412;
-               if (yych <= '`') goto yy410;
-               if (yych <= 'f') goto yy412;
-               goto yy410;
+               if (yych <= 'F') goto yy407;
+               if (yych <= '`') goto yy405;
+               if (yych <= 'f') goto yy407;
+               goto yy405;
        }
 }
 #line 628 "../src/parse/lex.re"
@@ -2687,75 +2665,75 @@ uint32_t Scanner::lex_str_chr(char quote, bool &end)
        end = false;
        tok = cur;
        
-#line 2691 "src/parse/lex.cc"
+#line 2669 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
        if ((YYLIMIT - YYCURSOR) < 10) YYFILL(10);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy426;
-       if (yych == '\\') goto yy428;
+       if (yych == '\n') goto yy421;
+       if (yych == '\\') goto yy423;
        ++YYCURSOR;
 #line 641 "../src/parse/lex.re"
        {
                        end = tok[0] == quote;
                        return static_cast<uint8_t>(tok[0]);
                }
-#line 2705 "src/parse/lex.cc"
-yy426:
+#line 2683 "src/parse/lex.cc"
+yy421:
        ++YYCURSOR;
 #line 636 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error"); }
-#line 2710 "src/parse/lex.cc"
-yy428:
+#line 2688 "src/parse/lex.cc"
+yy423:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) <= 'a') {
                if (yych <= 'T') {
                        if (yych <= '/') {
-                               if (yych != '\n') goto yy430;
+                               if (yych != '\n') goto yy425;
                        } else {
-                               if (yych <= '3') goto yy432;
-                               if (yych <= '7') goto yy434;
-                               goto yy430;
+                               if (yych <= '3') goto yy427;
+                               if (yych <= '7') goto yy429;
+                               goto yy425;
                        }
                } else {
                        if (yych <= 'X') {
-                               if (yych <= 'U') goto yy435;
-                               if (yych <= 'W') goto yy430;
-                               goto yy437;
+                               if (yych <= 'U') goto yy430;
+                               if (yych <= 'W') goto yy425;
+                               goto yy432;
                        } else {
-                               if (yych == '\\') goto yy438;
-                               if (yych <= '`') goto yy430;
-                               goto yy440;
+                               if (yych == '\\') goto yy433;
+                               if (yych <= '`') goto yy425;
+                               goto yy435;
                        }
                }
        } else {
                if (yych <= 'r') {
                        if (yych <= 'f') {
-                               if (yych <= 'b') goto yy442;
-                               if (yych <= 'e') goto yy430;
-                               goto yy444;
+                               if (yych <= 'b') goto yy437;
+                               if (yych <= 'e') goto yy425;
+                               goto yy439;
                        } else {
-                               if (yych == 'n') goto yy446;
-                               if (yych <= 'q') goto yy430;
-                               goto yy448;
+                               if (yych == 'n') goto yy441;
+                               if (yych <= 'q') goto yy425;
+                               goto yy443;
                        }
                } else {
                        if (yych <= 'u') {
-                               if (yych <= 's') goto yy430;
-                               if (yych <= 't') goto yy450;
-                               goto yy437;
+                               if (yych <= 's') goto yy425;
+                               if (yych <= 't') goto yy445;
+                               goto yy432;
                        } else {
-                               if (yych <= 'v') goto yy452;
-                               if (yych == 'x') goto yy454;
-                               goto yy430;
+                               if (yych <= 'v') goto yy447;
+                               if (yych == 'x') goto yy449;
+                               goto yy425;
                        }
                }
        }
 #line 639 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in escape sequence"); }
-#line 2758 "src/parse/lex.cc"
-yy430:
+#line 2736 "src/parse/lex.cc"
+yy425:
        ++YYCURSOR;
 #line 655 "../src/parse/lex.re"
        {
@@ -2764,202 +2742,202 @@ yy430:
                        }
                        return static_cast<uint8_t>(tok[1]);
                }
-#line 2768 "src/parse/lex.cc"
-yy432:
+#line 2746 "src/parse/lex.cc"
+yy427:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych <= '/') goto yy433;
-       if (yych <= '7') goto yy455;
-yy433:
+       if (yych <= '/') goto yy428;
+       if (yych <= '7') goto yy450;
+yy428:
 #line 638 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); }
-#line 2777 "src/parse/lex.cc"
-yy434:
+#line 2755 "src/parse/lex.cc"
+yy429:
        yych = (YYCTYPE)*++YYCURSOR;
-       goto yy433;
-yy435:
+       goto yy428;
+yy430:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy436;
-               if (yych <= '9') goto yy457;
+               if (yych <= '/') goto yy431;
+               if (yych <= '9') goto yy452;
        } else {
-               if (yych <= 'F') goto yy457;
-               if (yych <= '`') goto yy436;
-               if (yych <= 'f') goto yy457;
+               if (yych <= 'F') goto yy452;
+               if (yych <= '`') goto yy431;
+               if (yych <= 'f') goto yy452;
        }
-yy436:
+yy431:
 #line 637 "../src/parse/lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); }
-#line 2795 "src/parse/lex.cc"
-yy437:
+#line 2773 "src/parse/lex.cc"
+yy432:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy436;
-               if (yych <= '9') goto yy458;
-               goto yy436;
+               if (yych <= '/') goto yy431;
+               if (yych <= '9') goto yy453;
+               goto yy431;
        } else {
-               if (yych <= 'F') goto yy458;
-               if (yych <= '`') goto yy436;
-               if (yych <= 'f') goto yy458;
-               goto yy436;
+               if (yych <= 'F') goto yy453;
+               if (yych <= '`') goto yy431;
+               if (yych <= 'f') goto yy453;
+               goto yy431;
        }
-yy438:
+yy433:
        ++YYCURSOR;
 #line 654 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\\'); }
-#line 2813 "src/parse/lex.cc"
-yy440:
+#line 2791 "src/parse/lex.cc"
+yy435:
        ++YYCURSOR;
 #line 647 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\a'); }
-#line 2818 "src/parse/lex.cc"
-yy442:
+#line 2796 "src/parse/lex.cc"
+yy437:
        ++YYCURSOR;
 #line 648 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\b'); }
-#line 2823 "src/parse/lex.cc"
-yy444:
+#line 2801 "src/parse/lex.cc"
+yy439:
        ++YYCURSOR;
 #line 649 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\f'); }
-#line 2828 "src/parse/lex.cc"
-yy446:
+#line 2806 "src/parse/lex.cc"
+yy441:
        ++YYCURSOR;
 #line 650 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\n'); }
-#line 2833 "src/parse/lex.cc"
-yy448:
+#line 2811 "src/parse/lex.cc"
+yy443:
        ++YYCURSOR;
 #line 651 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\r'); }
-#line 2838 "src/parse/lex.cc"
-yy450:
+#line 2816 "src/parse/lex.cc"
+yy445:
        ++YYCURSOR;
 #line 652 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\t'); }
-#line 2843 "src/parse/lex.cc"
-yy452:
+#line 2821 "src/parse/lex.cc"
+yy447:
        ++YYCURSOR;
 #line 653 "../src/parse/lex.re"
        { return static_cast<uint8_t>('\v'); }
-#line 2848 "src/parse/lex.cc"
-yy454:
+#line 2826 "src/parse/lex.cc"
+yy449:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '@') {
-               if (yych <= '/') goto yy436;
-               if (yych <= '9') goto yy459;
-               goto yy436;
+               if (yych <= '/') goto yy431;
+               if (yych <= '9') goto yy454;
+               goto yy431;
        } else {
-               if (yych <= 'F') goto yy459;
-               if (yych <= '`') goto yy436;
-               if (yych <= 'f') goto yy459;
-               goto yy436;
+               if (yych <= 'F') goto yy454;
+               if (yych <= '`') goto yy431;
+               if (yych <= 'f') goto yy454;
+               goto yy431;
        }
-yy455:
+yy450:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= '/') goto yy456;
-       if (yych <= '7') goto yy460;
-yy456:
+       if (yych <= '/') goto yy451;
+       if (yych <= '7') goto yy455;
+yy451:
        YYCURSOR = YYMARKER;
        if (yyaccept == 0) {
-               goto yy433;
+               goto yy428;
        } else {
-               goto yy436;
+               goto yy431;
        }
-yy457:
+yy452:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy456;
-               if (yych <= '9') goto yy462;
-               goto yy456;
+               if (yych <= '/') goto yy451;
+               if (yych <= '9') goto yy457;
+               goto yy451;
        } else {
-               if (yych <= 'F') goto yy462;
-               if (yych <= '`') goto yy456;
-               if (yych <= 'f') goto yy462;
-               goto yy456;
+               if (yych <= 'F') goto yy457;
+               if (yych <= '`') goto yy451;
+               if (yych <= 'f') goto yy457;
+               goto yy451;
        }
-yy458:
+yy453:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy456;
-               if (yych <= '9') goto yy463;
-               goto yy456;
+               if (yych <= '/') goto yy451;
+               if (yych <= '9') goto yy458;
+               goto yy451;
        } else {
-               if (yych <= 'F') goto yy463;
-               if (yych <= '`') goto yy456;
-               if (yych <= 'f') goto yy463;
-               goto yy456;
+               if (yych <= 'F') goto yy458;
+               if (yych <= '`') goto yy451;
+               if (yych <= 'f') goto yy458;
+               goto yy451;
        }
-yy459:
+yy454:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy456;
-               if (yych <= '9') goto yy464;
-               goto yy456;
+               if (yych <= '/') goto yy451;
+               if (yych <= '9') goto yy459;
+               goto yy451;
        } else {
-               if (yych <= 'F') goto yy464;
-               if (yych <= '`') goto yy456;
-               if (yych <= 'f') goto yy464;
-               goto yy456;
+               if (yych <= 'F') goto yy459;
+               if (yych <= '`') goto yy451;
+               if (yych <= 'f') goto yy459;
+               goto yy451;
        }
-yy460:
+yy455:
        ++YYCURSOR;
 #line 646 "../src/parse/lex.re"
        { return unesc_oct(tok, cur); }
-#line 2913 "src/parse/lex.cc"
-yy462:
+#line 2891 "src/parse/lex.cc"
+yy457:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy456;
-               if (yych <= '9') goto yy466;
-               goto yy456;
+               if (yych <= '/') goto yy451;
+               if (yych <= '9') goto yy461;
+               goto yy451;
        } else {
-               if (yych <= 'F') goto yy466;
-               if (yych <= '`') goto yy456;
-               if (yych <= 'f') goto yy466;
-               goto yy456;
+               if (yych <= 'F') goto yy461;
+               if (yych <= '`') goto yy451;
+               if (yych <= 'f') goto yy461;
+               goto yy451;
        }
-yy463:
+yy458:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy456;
-               if (yych <= '9') goto yy459;
-               goto yy456;
+               if (yych <= '/') goto yy451;
+               if (yych <= '9') goto yy454;
+               goto yy451;
        } else {
-               if (yych <= 'F') goto yy459;
-               if (yych <= '`') goto yy456;
-               if (yych <= 'f') goto yy459;
-               goto yy456;
+               if (yych <= 'F') goto yy454;
+               if (yych <= '`') goto yy451;
+               if (yych <= 'f') goto yy454;
+               goto yy451;
        }
-yy464:
+yy459:
        ++YYCURSOR;
 #line 645 "../src/parse/lex.re"
        { return unesc_hex(tok, cur); }
-#line 2942 "src/parse/lex.cc"
-yy466:
+#line 2920 "src/parse/lex.cc"
+yy461:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
-               if (yych <= '/') goto yy456;
-               if (yych >= ':') goto yy456;
+               if (yych <= '/') goto yy451;
+               if (yych >= ':') goto yy451;
        } else {
-               if (yych <= 'F') goto yy467;
-               if (yych <= '`') goto yy456;
-               if (yych >= 'g') goto yy456;
+               if (yych <= 'F') goto yy462;
+               if (yych <= '`') goto yy451;
+               if (yych >= 'g') goto yy451;
        }
-yy467:
+yy462:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) <= '@') {
-               if (yych <= '/') goto yy456;
-               if (yych <= '9') goto yy458;
-               goto yy456;
+               if (yych <= '/') goto yy451;
+               if (yych <= '9') goto yy453;
+               goto yy451;
        } else {
-               if (yych <= 'F') goto yy458;
-               if (yych <= '`') goto yy456;
-               if (yych <= 'f') goto yy458;
-               goto yy456;
+               if (yych <= 'F') goto yy453;
+               if (yych <= '`') goto yy451;
+               if (yych <= 'f') goto yy453;
+               goto yy451;
        }
 }
 #line 661 "../src/parse/lex.re"
@@ -2983,7 +2961,7 @@ void Scanner::set_sourceline ()
 sourceline:
        tok = cur;
 
-#line 2987 "src/parse/lex.cc"
+#line 2965 "src/parse/lex.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -3023,21 +3001,21 @@ sourceline:
        if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= '!') {
-               if (yych == '\n') goto yy472;
+               if (yych == '\n') goto yy467;
        } else {
-               if (yych <= '"') goto yy474;
-               if (yych <= '0') goto yy470;
-               if (yych <= '9') goto yy475;
+               if (yych <= '"') goto yy469;
+               if (yych <= '0') goto yy465;
+               if (yych <= '9') goto yy470;
        }
-yy470:
+yy465:
        ++YYCURSOR;
-yy471:
+yy466:
 #line 704 "../src/parse/lex.re"
        {
                                        goto sourceline;
                                }
-#line 3040 "src/parse/lex.cc"
-yy472:
+#line 3018 "src/parse/lex.cc"
+yy467:
        ++YYCURSOR;
 #line 692 "../src/parse/lex.re"
        {
@@ -3052,17 +3030,17 @@ yy472:
                                        tok = cur;
                                        return; 
                                }
-#line 3056 "src/parse/lex.cc"
-yy474:
+#line 3034 "src/parse/lex.cc"
+yy469:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == '\n') goto yy471;
-       goto yy479;
-yy475:
+       if (yych == '\n') goto yy466;
+       goto yy474;
+yy470:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yybm[0+yych] & 64) {
-               goto yy475;
+               goto yy470;
        }
 #line 681 "../src/parse/lex.re"
        {
@@ -3072,35 +3050,35 @@ yy475:
                                        }
                                        goto sourceline; 
                                }
-#line 3076 "src/parse/lex.cc"
-yy478:
+#line 3054 "src/parse/lex.cc"
+yy473:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-yy479:
+yy474:
        if (yybm[0+yych] & 128) {
-               goto yy478;
+               goto yy473;
        }
-       if (yych <= '\n') goto yy480;
-       if (yych <= '"') goto yy481;
-       goto yy483;
-yy480:
+       if (yych <= '\n') goto yy475;
+       if (yych <= '"') goto yy476;
+       goto yy478;
+yy475:
        YYCURSOR = YYMARKER;
-       goto yy471;
-yy481:
+       goto yy466;
+yy476:
        ++YYCURSOR;
 #line 688 "../src/parse/lex.re"
        {
                                        escape (in.file_name, std::string (tok + 1, tok_len () - 2)); // -2 to omit quotes
                                        goto sourceline; 
                                }
-#line 3098 "src/parse/lex.cc"
-yy483:
+#line 3076 "src/parse/lex.cc"
+yy478:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == '\n') goto yy480;
-       goto yy478;
+       if (yych == '\n') goto yy475;
+       goto yy473;
 }
 #line 707 "../src/parse/lex.re"
 
index c851a55b721aca5557b04a09f727a40f8b0b4e8a..51a6a6d4b6faf8963423e280f481a639311541e5 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.16 on Tue Apr  5 23:00:02 2016 */
+/* Generated by re2c 0.16 on Tue May 10 13:05:36 2016 */
 #line 1 "../src/parse/lex_conf.re"
 #include "src/util/c99_stdint.h"
 #include <string>
@@ -68,8 +68,9 @@ void Scanner::lex_conf ()
        case 'i':       goto yy7;
        case 'l':       goto yy8;
        case 's':       goto yy9;
-       case 'v':       goto yy10;
-       case 'y':       goto yy11;
+       case 't':       goto yy10;
+       case 'v':       goto yy11;
+       case 'y':       goto yy12;
        default:        goto yy2;
        }
 yy2:
@@ -77,52 +78,57 @@ yy2:
 yy3:
 #line 42 "../src/parse/lex_conf.re"
        { fatal ((tok - pos) - tchar, "unrecognized configuration"); }
-#line 81 "src/parse/lex_conf.cc"
+#line 82 "src/parse/lex_conf.cc"
 yy4:
        yyaccept = 0;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'g') goto yy12;
-       if (yych == 'o') goto yy14;
+       if (yych == 'g') goto yy13;
+       if (yych == 'o') goto yy15;
        goto yy3;
 yy5:
        yyaccept = 0;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'e') goto yy15;
+       if (yych == 'e') goto yy16;
        goto yy3;
 yy6:
        yyaccept = 0;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'l') goto yy16;
+       if (yych == 'l') goto yy17;
        goto yy3;
 yy7:
        yyaccept = 0;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'n') goto yy17;
+       if (yych == 'n') goto yy18;
        goto yy3;
 yy8:
        yyaccept = 0;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'a') goto yy18;
+       if (yych == 'a') goto yy19;
        goto yy3;
 yy9:
        yyaccept = 0;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 't') goto yy19;
+       if (yych == 't') goto yy20;
        goto yy3;
 yy10:
        yyaccept = 0;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'a') goto yy20;
+       if (yych == 'a') goto yy21;
        goto yy3;
 yy11:
        yyaccept = 0;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'y') goto yy21;
+       if (yych == 'a') goto yy22;
        goto yy3;
 yy12:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy22;
+       yyaccept = 0;
+       yych = (unsigned char)*(ptr = ++cur);
+       if (yych == 'y') goto yy23;
+       goto yy3;
 yy13:
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy24;
+yy14:
        cur = ptr;
        if (yyaccept <= 11) {
                if (yyaccept <= 5) {
@@ -131,42 +137,42 @@ yy13:
                                        if (yyaccept == 0) {
                                                goto yy3;
                                        } else {
-                                               goto yy97;
+                                               goto yy100;
                                        }
                                } else {
-                                       goto yy99;
+                                       goto yy102;
                                }
                        } else {
                                if (yyaccept <= 4) {
                                        if (yyaccept == 3) {
-                                               goto yy101;
+                                               goto yy104;
                                        } else {
-                                               goto yy103;
+                                               goto yy106;
                                        }
                                } else {
-                                       goto yy105;
+                                       goto yy108;
                                }
                        }
                } else {
                        if (yyaccept <= 8) {
                                if (yyaccept <= 7) {
                                        if (yyaccept == 6) {
-                                               goto yy109;
-                                       } else {
                                                goto yy112;
+                                       } else {
+                                               goto yy115;
                                        }
                                } else {
-                                       goto yy114;
+                                       goto yy117;
                                }
                        } else {
                                if (yyaccept <= 10) {
                                        if (yyaccept == 9) {
-                                               goto yy116;
+                                               goto yy119;
                                        } else {
-                                               goto yy118;
+                                               goto yy121;
                                        }
                                } else {
-                                       goto yy120;
+                                       goto yy123;
                                }
                        }
                }
@@ -175,1121 +181,1137 @@ yy13:
                        if (yyaccept <= 14) {
                                if (yyaccept <= 13) {
                                        if (yyaccept == 12) {
-                                               goto yy122;
+                                               goto yy125;
                                        } else {
-                                               goto yy181;
+                                               goto yy188;
                                        }
                                } else {
-                                       goto yy273;
+                                       goto yy280;
                                }
                        } else {
                                if (yyaccept <= 16) {
                                        if (yyaccept == 15) {
-                                               goto yy346;
-                                       } else {
                                                goto yy354;
+                                       } else {
+                                               goto yy429;
                                        }
                                } else {
-                                       goto yy426;
+                                       goto yy533;
                                }
                        }
                } else {
                        if (yyaccept <= 20) {
                                if (yyaccept <= 19) {
                                        if (yyaccept == 18) {
-                                               goto yy534;
+                                               goto yy585;
                                        } else {
-                                               goto yy586;
+                                               goto yy624;
                                        }
                                } else {
-                                       goto yy625;
+                                       goto yy630;
                                }
                        } else {
-                               if (yyaccept <= 22) {
-                                       if (yyaccept == 21) {
-                                               goto yy631;
-                                       } else {
-                                               goto yy708;
-                                       }
+                               if (yyaccept == 21) {
+                                       goto yy707;
                                } else {
-                                       goto yy711;
+                                       goto yy710;
                                }
                        }
                }
        }
-yy14:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy23;
-       goto yy13;
 yy15:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy24;
-       goto yy13;
+       if (yych == 'n') goto yy25;
+       goto yy14;
 yy16:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy25;
-       goto yy13;
+       if (yych == 'f') goto yy26;
+       goto yy14;
 yy17:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy26;
-       goto yy13;
+       if (yych == 'a') goto yy27;
+       goto yy14;
 yy18:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy27;
-       goto yy13;
+       if (yych == 'd') goto yy28;
+       goto yy14;
 yy19:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy28;
-       goto yy13;
+       if (yych == 'b') goto yy29;
+       goto yy14;
 yy20:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy29;
-       goto yy13;
+       if (yych == 'a') goto yy30;
+       goto yy14;
 yy21:
        yych = (unsigned char)*++cur;
-       if (yych <= 'c') {
-               if (yych <= 'a') goto yy13;
-               if (yych <= 'b') goto yy30;
-               goto yy31;
-       } else {
-               if (yych == 'f') goto yy32;
-               goto yy13;
-       }
+       if (yych == 'g') goto yy31;
+       goto yy14;
 yy22:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy33;
-       goto yy13;
+       if (yych == 'r') goto yy32;
+       goto yy14;
 yy23:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy34;
-       if (yych == 't') goto yy35;
-       goto yy13;
+       if (yych <= 'c') {
+               if (yych <= 'a') goto yy14;
+               if (yych <= 'b') goto yy33;
+               goto yy34;
+       } else {
+               if (yych == 'f') goto yy35;
+               goto yy14;
+       }
 yy24:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy36;
-       goto yy13;
+       if (yych == 't') goto yy36;
+       goto yy14;
 yy25:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy37;
-       goto yy13;
+       if (yych == 'd') goto yy37;
+       goto yy14;
 yy26:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy38;
-       goto yy13;
+       if (yych == 'i') goto yy38;
+       goto yy14;
 yy27:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy39;
-       goto yy13;
+       if (yych == 'g') goto yy39;
+       goto yy14;
 yy28:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy40;
-       if (yych == 't') goto yy41;
-       goto yy13;
+       if (yych == 'e') goto yy40;
+       goto yy14;
 yy29:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy42;
-       goto yy13;
+       if (yych == 'e') goto yy41;
+       goto yy14;
 yy30:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy43;
-       goto yy13;
+       if (yych == 'r') goto yy42;
+       if (yych == 't') goto yy43;
+       goto yy14;
 yy31:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy44;
-       goto yy13;
+       if (yych == 's') goto yy44;
+       goto yy14;
 yy32:
        yych = (unsigned char)*++cur;
        if (yych == 'i') goto yy45;
-       goto yy13;
+       goto yy14;
 yy33:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy46;
-       goto yy13;
+       if (yych == 'm') goto yy46;
+       goto yy14;
 yy34:
        yych = (unsigned char)*++cur;
-       if (yych <= 'd') {
-               if (yych == ':') goto yy47;
-               goto yy13;
-       } else {
-               if (yych <= 'e') goto yy48;
-               if (yych == 'p') goto yy49;
-               goto yy13;
-       }
+       if (yych == 'h') goto yy47;
+       goto yy14;
 yy35:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy50;
-       goto yy13;
+       if (yych == 'i') goto yy48;
+       goto yy14;
 yy36:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy51;
-       goto yy13;
+       if (yych == 'o') goto yy49;
+       goto yy14;
 yy37:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy52;
-       goto yy13;
+       if (yych <= 'd') {
+               if (yych == ':') goto yy50;
+               goto yy14;
+       } else {
+               if (yych <= 'e') goto yy51;
+               if (yych == 'p') goto yy52;
+               goto yy14;
+       }
 yy38:
        yych = (unsigned char)*++cur;
        if (yych == 'n') goto yy53;
-       goto yy13;
+       goto yy14;
 yy39:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy54;
-       goto yy13;
+       if (yych == 's') goto yy54;
+       goto yy14;
 yy40:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy55;
-       goto yy13;
+       if (yych == 'n') goto yy55;
+       goto yy14;
 yy41:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy56;
-       goto yy13;
+       if (yych == 'l') goto yy56;
+       goto yy14;
 yy42:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy57;
-       goto yy13;
+       if (yych == 't') goto yy57;
+       goto yy14;
 yy43:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy58;
-       goto yy13;
+       if (yych == 'e') goto yy58;
+       goto yy14;
 yy44:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy59;
-       goto yy13;
+       goto yy14;
 yy45:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy60;
-       goto yy13;
+       if (yych == 'a') goto yy60;
+       goto yy14;
 yy46:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy61;
-       goto yy13;
+       goto yy14;
 yy47:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy62;
-       if (yych == 'g') goto yy63;
-       goto yy13;
+       if (yych == ':') goto yy62;
+       goto yy14;
 yy48:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy64;
-       goto yy13;
+       if (yych == 'l') goto yy63;
+       goto yy14;
 yy49:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy65;
-       goto yy13;
+       if (yych == ':') goto yy64;
+       goto yy14;
 yy50:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy66;
-       goto yy13;
+       if (yych == 'd') goto yy65;
+       if (yych == 'g') goto yy66;
+       goto yy14;
 yy51:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy67;
-       goto yy13;
+       if (yych == 'n') goto yy67;
+       goto yy14;
 yy52:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy68;
-       goto yy13;
+       if (yych == 'r') goto yy68;
+       goto yy14;
 yy53:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy69;
-       goto yy13;
+       if (yych == 'e') goto yy69;
+       goto yy14;
 yy54:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy70;
-       if (yych == 'p') goto yy71;
-       goto yy13;
+       goto yy14;
 yy55:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy72;
-       goto yy13;
+       if (yych == 't') goto yy71;
+       goto yy14;
 yy56:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy73;
-       goto yy13;
+       if (yych == ':') goto yy72;
+       if (yych == 'p') goto yy73;
+       goto yy14;
 yy57:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy74;
-       goto yy13;
+       if (yych == 'l') goto yy74;
+       goto yy14;
 yy58:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy75;
-       goto yy13;
+       if (yych == ':') goto yy75;
+       goto yy14;
 yy59:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy76;
-       if (yych == 'e') goto yy77;
-       goto yy13;
+       if (yych == 'e') goto yy76;
+       if (yych == 'p') goto yy77;
+       goto yy14;
 yy60:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy78;
-       goto yy13;
+       if (yych == 'b') goto yy78;
+       goto yy14;
 yy61:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy79;
-       goto yy13;
+       if (yych == 'h') goto yy79;
+       goto yy14;
 yy62:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy80;
-       goto yy13;
+       if (yych == 'c') goto yy80;
+       if (yych == 'e') goto yy81;
+       goto yy14;
 yy63:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy81;
-       goto yy13;
+       if (yych == 'l') goto yy82;
+       goto yy14;
 yy64:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy82;
-       goto yy13;
+       if (yych == 't') goto yy83;
+       goto yy14;
 yy65:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy83;
-       goto yy13;
+       if (yych == 'i') goto yy84;
+       goto yy14;
 yy66:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy84;
-       goto yy13;
+       if (yych == 'o') goto yy85;
+       goto yy14;
 yy67:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy85;
-       goto yy13;
+       if (yych == 'u') goto yy86;
+       goto yy14;
 yy68:
        yych = (unsigned char)*++cur;
-       switch (yych) {
-       case '8':       goto yy86;
-       case 'C':       goto yy88;
-       case 'D':       goto yy90;
-       case 'F':       goto yy92;
-       case 'S':       goto yy94;
-       case 'b':       goto yy96;
-       case 'c':       goto yy98;
-       case 'd':       goto yy100;
-       case 'e':       goto yy102;
-       case 'f':       goto yy104;
-       case 'g':       goto yy106;
-       case 'i':       goto yy108;
-       case 'n':       goto yy110;
-       case 'o':       goto yy111;
-       case 'r':       goto yy113;
-       case 's':       goto yy115;
-       case 't':       goto yy117;
-       case 'u':       goto yy119;
-       case 'w':       goto yy121;
-       case 'x':       goto yy123;
-       default:        goto yy13;
-       }
+       if (yych == 'e') goto yy87;
+       goto yy14;
 yy69:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy125;
-       goto yy13;
+       if (yych == ':') goto yy88;
+       goto yy14;
 yy70:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy126;
-       goto yy13;
+       switch (yych) {
+       case '8':       goto yy89;
+       case 'D':       goto yy91;
+       case 'F':       goto yy93;
+       case 'S':       goto yy95;
+       case 'T':       goto yy97;
+       case 'b':       goto yy99;
+       case 'c':       goto yy101;
+       case 'd':       goto yy103;
+       case 'e':       goto yy105;
+       case 'f':       goto yy107;
+       case 'g':       goto yy109;
+       case 'i':       goto yy111;
+       case 'n':       goto yy113;
+       case 'o':       goto yy114;
+       case 'r':       goto yy116;
+       case 's':       goto yy118;
+       case 't':       goto yy120;
+       case 'u':       goto yy122;
+       case 'w':       goto yy124;
+       case 'x':       goto yy126;
+       default:        goto yy14;
+       }
 yy71:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy127;
-       goto yy13;
+       if (yych == ':') goto yy128;
+       goto yy14;
 yy72:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy128;
-       goto yy13;
+       if (yych == 'y') goto yy129;
+       goto yy14;
 yy73:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy129;
-       if (yych == 'n') goto yy130;
-       goto yy13;
+       if (yych == 'r') goto yy130;
+       goto yy14;
 yy74:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy131;
-       goto yy13;
+       if (yych == 'a') goto yy131;
+       goto yy14;
 yy75:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy132;
-       goto yy13;
+       if (yych == 'a') goto yy132;
+       if (yych == 'n') goto yy133;
+       goto yy14;
 yy76:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy133;
-       goto yy13;
+       if (yych == 'x') goto yy134;
+       goto yy14;
 yy77:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy134;
-       goto yy13;
+       if (yych == 'r') goto yy135;
+       goto yy14;
 yy78:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy135;
-       goto yy13;
+       if (yych == 'l') goto yy136;
+       goto yy14;
 yy79:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy136;
-       goto yy13;
+       if (yych == 'e') goto yy137;
+       goto yy14;
 yy80:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy137;
-       goto yy13;
+       if (yych == 'o') goto yy138;
+       goto yy14;
 yy81:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy138;
-       goto yy13;
+       if (yych == 'm') goto yy139;
+       goto yy14;
 yy82:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy139;
-       goto yy13;
+       if (yych == ':') goto yy140;
+       goto yy14;
 yy83:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy140;
-       goto yy13;
+       if (yych == 'h') goto yy141;
+       goto yy14;
 yy84:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy141;
-       goto yy13;
+       if (yych == 'v') goto yy142;
+       goto yy14;
 yy85:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy142;
-       goto yy13;
+       if (yych == 't') goto yy143;
+       goto yy14;
 yy86:
+       yych = (unsigned char)*++cur;
+       if (yych == 'm') goto yy144;
+       goto yy14;
+yy87:
+       yych = (unsigned char)*++cur;
+       if (yych == 'f') goto yy145;
+       goto yy14;
+yy88:
+       yych = (unsigned char)*++cur;
+       if (yych == 'Y') goto yy146;
+       goto yy14;
+yy89:
        ++cur;
 #line 66 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::UTF8);   return; }
-#line 552 "src/parse/lex_conf.cc"
-yy88:
-       ++cur;
-#line 49 "../src/parse/lex_conf.re"
-       { opts.set_contexts(lex_conf_bool());          return; }
-#line 557 "src/parse/lex_conf.cc"
-yy90:
+#line 562 "src/parse/lex_conf.cc"
+yy91:
        ++cur;
 #line 44 "../src/parse/lex_conf.re"
        { opts.set_target(opt_t::DOT);      lex_conf_semicolon(); return; }
-#line 562 "src/parse/lex_conf.cc"
-yy92:
+#line 567 "src/parse/lex_conf.cc"
+yy93:
        ++cur;
-#line 52 "../src/parse/lex_conf.re"
+#line 51 "../src/parse/lex_conf.re"
        { opts.set_FFlag(lex_conf_bool());             return; }
-#line 567 "src/parse/lex_conf.cc"
-yy94:
+#line 572 "src/parse/lex_conf.cc"
+yy95:
        ++cur;
 #line 45 "../src/parse/lex_conf.re"
        { opts.set_target(opt_t::SKELETON); lex_conf_semicolon(); return; }
-#line 572 "src/parse/lex_conf.cc"
-yy96:
+#line 577 "src/parse/lex_conf.cc"
+yy97:
+       ++cur;
+#line 56 "../src/parse/lex_conf.re"
+       { opts.set_tags(lex_conf_bool());              return; }
+#line 582 "src/parse/lex_conf.cc"
+yy99:
        yyaccept = 1;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'i') goto yy143;
-yy97:
+       if (yych == 'i') goto yy147;
+yy100:
 #line 47 "../src/parse/lex_conf.re"
        { opts.set_bFlag(lex_conf_bool());             return; }
-#line 580 "src/parse/lex_conf.cc"
-yy98:
+#line 590 "src/parse/lex_conf.cc"
+yy101:
        yyaccept = 2;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'a') goto yy144;
-       if (yych == 'o') goto yy145;
-yy99:
+       if (yych == 'a') goto yy148;
+       if (yych == 'o') goto yy149;
+yy102:
 #line 48 "../src/parse/lex_conf.re"
        { opts.set_cFlag(lex_conf_bool());             return; }
-#line 589 "src/parse/lex_conf.cc"
-yy100:
+#line 599 "src/parse/lex_conf.cc"
+yy103:
        yyaccept = 3;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych <= 'd') goto yy101;
-       if (yych <= 'e') goto yy146;
-       if (yych <= 'f') goto yy147;
-yy101:
-#line 50 "../src/parse/lex_conf.re"
+       if (yych <= 'd') goto yy104;
+       if (yych <= 'e') goto yy150;
+       if (yych <= 'f') goto yy151;
+yy104:
+#line 49 "../src/parse/lex_conf.re"
        { opts.set_dFlag(lex_conf_bool());             return; }
-#line 599 "src/parse/lex_conf.cc"
-yy102:
+#line 609 "src/parse/lex_conf.cc"
+yy105:
        yyaccept = 4;
        yych = (unsigned char)*(ptr = ++cur);
        if (yych <= 'l') {
-               if (yych == 'c') goto yy148;
+               if (yych == 'c') goto yy152;
        } else {
-               if (yych <= 'm') goto yy149;
-               if (yych <= 'n') goto yy150;
+               if (yych <= 'm') goto yy153;
+               if (yych <= 'n') goto yy154;
        }
-yy103:
+yy106:
 #line 62 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::EBCDIC); return; }
-#line 612 "src/parse/lex_conf.cc"
-yy104:
+#line 622 "src/parse/lex_conf.cc"
+yy107:
        yyaccept = 5;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'l') goto yy151;
-yy105:
-#line 51 "../src/parse/lex_conf.re"
+       if (yych == 'l') goto yy155;
+yy108:
+#line 50 "../src/parse/lex_conf.re"
        { opts.set_fFlag(lex_conf_bool());             return; }
-#line 620 "src/parse/lex_conf.cc"
-yy106:
+#line 630 "src/parse/lex_conf.cc"
+yy109:
        ++cur;
-#line 53 "../src/parse/lex_conf.re"
+#line 52 "../src/parse/lex_conf.re"
        { opts.set_gFlag(lex_conf_bool());             return; }
-#line 625 "src/parse/lex_conf.cc"
-yy108:
+#line 635 "src/parse/lex_conf.cc"
+yy111:
        yyaccept = 6;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'n') goto yy152;
-yy109:
-#line 54 "../src/parse/lex_conf.re"
+       if (yych == 'n') goto yy156;
+yy112:
+#line 53 "../src/parse/lex_conf.re"
        { opts.set_iFlag(lex_conf_bool());             return; }
-#line 633 "src/parse/lex_conf.cc"
-yy110:
+#line 643 "src/parse/lex_conf.cc"
+yy113:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy153;
-       if (yych == 'o') goto yy154;
-       goto yy13;
-yy111:
+       if (yych == 'e') goto yy157;
+       if (yych == 'o') goto yy158;
+       goto yy14;
+yy114:
        yyaccept = 7;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'u') goto yy155;
-yy112:
+       if (yych == 'u') goto yy159;
+yy115:
 #line 68 "../src/parse/lex_conf.re"
        { if (!opts.output(lex_conf_string())) exit(1); return; }
-#line 646 "src/parse/lex_conf.cc"
-yy113:
+#line 656 "src/parse/lex_conf.cc"
+yy116:
        yyaccept = 8;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'e') goto yy156;
-yy114:
-#line 55 "../src/parse/lex_conf.re"
+       if (yych == 'e') goto yy160;
+yy117:
+#line 54 "../src/parse/lex_conf.re"
        { opts.set_rFlag(lex_conf_bool());             return; }
-#line 654 "src/parse/lex_conf.cc"
-yy115:
+#line 664 "src/parse/lex_conf.cc"
+yy118:
        yyaccept = 9;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'k') goto yy157;
-       if (yych == 't') goto yy158;
-yy116:
-#line 56 "../src/parse/lex_conf.re"
+       if (yych == 'k') goto yy161;
+       if (yych == 't') goto yy162;
+yy119:
+#line 55 "../src/parse/lex_conf.re"
        { opts.set_sFlag(lex_conf_bool());             return; }
-#line 663 "src/parse/lex_conf.cc"
-yy117:
+#line 673 "src/parse/lex_conf.cc"
+yy120:
        yyaccept = 10;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'y') goto yy159;
-yy118:
+       if (yych == 'a') goto yy163;
+       if (yych == 'y') goto yy164;
+yy121:
 #line 69 "../src/parse/lex_conf.re"
        { opts.set_header_file(lex_conf_string()); return; }
-#line 671 "src/parse/lex_conf.cc"
-yy119:
+#line 682 "src/parse/lex_conf.cc"
+yy122:
        yyaccept = 11;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'n') goto yy160;
-       if (yych == 't') goto yy161;
-yy120:
+       if (yych == 'n') goto yy165;
+       if (yych == 't') goto yy166;
+yy123:
 #line 63 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::UTF32);  return; }
-#line 680 "src/parse/lex_conf.cc"
-yy121:
+#line 691 "src/parse/lex_conf.cc"
+yy124:
        yyaccept = 12;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'i') goto yy162;
-yy122:
+       if (yych == 'i') goto yy167;
+yy125:
 #line 64 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::UCS2);   return; }
-#line 688 "src/parse/lex_conf.cc"
-yy123:
+#line 699 "src/parse/lex_conf.cc"
+yy126:
        ++cur;
 #line 65 "../src/parse/lex_conf.re"
        { lex_conf_enc(Enc::UTF16);  return; }
-#line 693 "src/parse/lex_conf.cc"
-yy125:
-       yych = (unsigned char)*++cur;
-       if (yych <= 'r') goto yy13;
-       if (yych <= 's') goto yy163;
-       if (yych <= 't') goto yy164;
-       goto yy13;
-yy126:
-       yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy165;
-       goto yy13;
-yy127:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy166;
-       goto yy13;
+#line 704 "src/parse/lex_conf.cc"
 yy128:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy167;
-       goto yy13;
+       if (yych <= 'r') goto yy14;
+       if (yych <= 's') goto yy168;
+       if (yych <= 't') goto yy169;
+       goto yy14;
 yy129:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy168;
-       goto yy13;
+       if (yych == 'y') goto yy170;
+       goto yy14;
 yy130:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy169;
-       goto yy13;
+       if (yych == 'e') goto yy171;
+       goto yy14;
 yy131:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy170;
-       goto yy13;
+       if (yych == 'b') goto yy172;
+       goto yy14;
 yy132:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy171;
-       goto yy13;
+       if (yych == 'b') goto yy173;
+       goto yy14;
 yy133:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy173;
-       goto yy13;
+       if (yych == 'e') goto yy174;
+       goto yy14;
 yy134:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy174;
-       goto yy13;
+       if (yych == 'p') goto yy175;
+       goto yy14;
 yy135:
        yych = (unsigned char)*++cur;
-       if (yych <= 'd') {
-               if (yych == 'c') goto yy175;
-               goto yy13;
-       } else {
-               if (yych <= 'e') goto yy176;
-               if (yych == 'p') goto yy177;
-               goto yy13;
-       }
+       if (yych == 'e') goto yy176;
+       goto yy14;
 yy136:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy178;
-       goto yy13;
+       if (yych == 'e') goto yy177;
+       goto yy14;
 yy137:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy179;
-       goto yy13;
+       if (yych == 'x') goto yy178;
+       goto yy14;
 yy138:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy180;
-       goto yy13;
+       if (yych == 'n') goto yy180;
+       goto yy14;
 yy139:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy182;
-       goto yy13;
+       if (yych == 'i') goto yy181;
+       goto yy14;
 yy140:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy183;
-       goto yy13;
+       if (yych <= 'd') {
+               if (yych == 'c') goto yy182;
+               goto yy14;
+       } else {
+               if (yych <= 'e') goto yy183;
+               if (yych == 'p') goto yy184;
+               goto yy14;
+       }
 yy141:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy184;
-       goto yy13;
+       if (yych == 'r') goto yy185;
+       goto yy14;
 yy142:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy185;
-       goto yy13;
+       if (yych == 'i') goto yy186;
+       goto yy14;
 yy143:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy186;
-       goto yy13;
+       if (yych == 'o') goto yy187;
+       goto yy14;
 yy144:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy187;
-       goto yy13;
+       if (yych == 'p') goto yy189;
+       goto yy14;
 yy145:
        yych = (unsigned char)*++cur;
-       if (yych <= 'l') goto yy13;
-       if (yych <= 'm') goto yy188;
-       if (yych <= 'n') goto yy189;
-       goto yy13;
+       if (yych == 'i') goto yy190;
+       goto yy14;
 yy146:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy190;
-       goto yy13;
+       if (yych == 'Y') goto yy191;
+       goto yy14;
 yy147:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy191;
-       goto yy13;
+       if (yych == 't') goto yy192;
+       goto yy14;
 yy148:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy192;
-       goto yy13;
+       if (yych == 's') goto yy193;
+       goto yy14;
 yy149:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy193;
-       if (yych == 'p') goto yy194;
-       goto yy13;
+       if (yych == 'm') goto yy194;
+       goto yy14;
 yy150:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy195;
-       goto yy13;
+       if (yych == 'b') goto yy195;
+       goto yy14;
 yy151:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy196;
-       goto yy13;
+       if (yych == 'a') goto yy196;
+       goto yy14;
 yy152:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy197;
-       goto yy13;
+       if (yych == 'b') goto yy197;
+       goto yy14;
 yy153:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy198;
-       goto yy13;
+       if (yych == 'i') goto yy198;
+       if (yych == 'p') goto yy199;
+       goto yy14;
 yy154:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy199;
-       goto yy13;
+       if (yych == 'c') goto yy200;
+       goto yy14;
 yy155:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy200;
-       goto yy13;
+       if (yych == 'e') goto yy201;
+       goto yy14;
 yy156:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy201;
-       goto yy13;
+       if (yych == 'p') goto yy202;
+       goto yy14;
 yy157:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy202;
-       goto yy13;
+       if (yych == 's') goto yy203;
+       goto yy14;
 yy158:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy203;
-       if (yych == 'o') goto yy204;
-       goto yy13;
+       if (yych == '-') goto yy204;
+       goto yy14;
 yy159:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy205;
-       goto yy13;
+       if (yych == 't') goto yy205;
+       goto yy14;
 yy160:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy206;
-       goto yy13;
+       if (yych == 'u') goto yy206;
+       goto yy14;
 yy161:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy207;
-       goto yy13;
+       if (yych == 'e') goto yy207;
+       goto yy14;
 yy162:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy208;
-       goto yy13;
+       if (yych == 'a') goto yy208;
+       if (yych == 'o') goto yy209;
+       goto yy14;
 yy163:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy209;
-       goto yy13;
+       if (yych == 'g') goto yy210;
+       goto yy14;
 yy164:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy210;
-       goto yy13;
+       if (yych == 'p') goto yy211;
+       goto yy14;
 yy165:
        yych = (unsigned char)*++cur;
-       if (yych == 'F') goto yy211;
-       if (yych == 'N') goto yy212;
-       goto yy13;
+       if (yych == 'i') goto yy212;
+       goto yy14;
 yy166:
        yych = (unsigned char)*++cur;
        if (yych == 'f') goto yy213;
-       goto yy13;
+       goto yy14;
 yy167:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy214;
-       goto yy13;
+       if (yych == 'd') goto yy214;
+       goto yy14;
 yy168:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy215;
-       goto yy13;
+       if (yych == 't') goto yy215;
+       goto yy14;
 yy169:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy216;
-       goto yy13;
+       if (yych == 'o') goto yy216;
+       goto yy14;
 yy170:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy217;
-       goto yy13;
+       if (yych == 'F') goto yy217;
+       if (yych == 'N') goto yy218;
+       goto yy14;
 yy171:
-       ++cur;
-#line 102 "../src/parse/lex_conf.re"
-       { opts.set_yybmHexTable (lex_conf_bool()); return; }
-#line 895 "src/parse/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'f') goto yy219;
+       goto yy14;
+yy172:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy220;
+       goto yy14;
 yy173:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy218;
-       goto yy13;
+       if (yych == 'o') goto yy221;
+       goto yy14;
 yy174:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy219;
-       goto yy13;
+       if (yych == 'x') goto yy222;
+       goto yy14;
 yy175:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy221;
-       goto yy13;
+       if (yych == 'r') goto yy223;
+       goto yy14;
 yy176:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy222;
-       goto yy13;
+       if (yych == 'f') goto yy225;
+       goto yy14;
 yy177:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy223;
-       goto yy13;
+       if (yych == ':') goto yy226;
+       goto yy14;
 yy178:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy224;
-       goto yy13;
-yy179:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy225;
-       goto yy13;
+       ++cur;
+#line 102 "../src/parse/lex_conf.re"
+       { opts.set_yybmHexTable (lex_conf_bool()); return; }
+#line 920 "src/parse/lex_conf.cc"
 yy180:
-       yyaccept = 13;
-       yych = (unsigned char)*(ptr = ++cur);
-       if (yych == '@') goto yy226;
+       yych = (unsigned char)*++cur;
+       if (yych == 'v') goto yy227;
+       goto yy14;
 yy181:
-#line 86 "../src/parse/lex_conf.re"
-       { opts.set_condGoto         (lex_conf_string ()); return; }
-#line 931 "src/parse/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy228;
+       goto yy14;
 yy182:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy227;
-       goto yy13;
+       if (yych == 'h') goto yy230;
+       goto yy14;
 yy183:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy228;
-       goto yy13;
+       if (yych == 'n') goto yy231;
+       goto yy14;
 yy184:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy230;
-       if (yych == 'p') goto yy231;
-       goto yy13;
+       if (yych == 'a') goto yy232;
+       goto yy14;
 yy185:
        yych = (unsigned char)*++cur;
-       switch (yych) {
-       case 'B':       goto yy232;
-       case 'C':       goto yy233;
-       case 'D':       goto yy234;
-       case 'F':       goto yy235;
-       case 'G':       goto yy236;
-       case 'L':       goto yy237;
-       case 'M':       goto yy238;
-       case 'P':       goto yy239;
-       case 'R':       goto yy240;
-       case 'S':       goto yy241;
-       default:        goto yy13;
-       }
+       if (yych == 'e') goto yy233;
+       goto yy14;
 yy186:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy242;
-       goto yy13;
+       if (yych == 'd') goto yy234;
+       goto yy14;
 yy187:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy243;
-       goto yy13;
+       yyaccept = 13;
+       yych = (unsigned char)*(ptr = ++cur);
+       if (yych == '@') goto yy235;
 yy188:
-       yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy244;
-       goto yy13;
+#line 86 "../src/parse/lex_conf.re"
+       { opts.set_condGoto         (lex_conf_string ()); return; }
+#line 956 "src/parse/lex_conf.cc"
 yy189:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy245;
-       goto yy13;
+       if (yych == 'r') goto yy236;
+       goto yy14;
 yy190:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy246;
-       goto yy13;
+       if (yych == 'x') goto yy237;
+       goto yy14;
 yy191:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy247;
-       goto yy13;
+       switch (yych) {
+       case 'B':       goto yy239;
+       case 'C':       goto yy240;
+       case 'D':       goto yy241;
+       case 'F':       goto yy242;
+       case 'G':       goto yy243;
+       case 'L':       goto yy244;
+       case 'M':       goto yy245;
+       case 'P':       goto yy246;
+       case 'R':       goto yy247;
+       case 'S':       goto yy248;
+       case 'T':       goto yy249;
+       default:        goto yy14;
+       }
 yy192:
        yych = (unsigned char)*++cur;
-       goto yy103;
+       if (yych == '-') goto yy250;
+       goto yy14;
 yy193:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy248;
-       goto yy13;
+       if (yych == 'e') goto yy251;
+       goto yy14;
 yy194:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy249;
-       goto yy13;
+       if (yych == 'p') goto yy252;
+       goto yy14;
 yy195:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy250;
-       goto yy13;
+       if (yych == 'u') goto yy253;
+       goto yy14;
 yy196:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy251;
-       goto yy13;
+       if (yych == '-') goto yy254;
+       goto yy14;
 yy197:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy252;
-       goto yy13;
+       goto yy106;
 yy198:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy253;
-       goto yy13;
+       if (yych == 't') goto yy255;
+       goto yy14;
 yy199:
        yych = (unsigned char)*++cur;
-       if (yych <= 'f') {
-               if (yych == 'd') goto yy254;
-               goto yy13;
-       } else {
-               if (yych <= 'g') goto yy255;
-               if (yych == 'v') goto yy256;
-               goto yy13;
-       }
+       if (yych == 't') goto yy256;
+       goto yy14;
 yy200:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy257;
-       goto yy13;
+       if (yych == 'o') goto yy257;
+       goto yy14;
 yy201:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy258;
-       goto yy13;
+       if (yych == 'x') goto yy258;
+       goto yy14;
 yy202:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy259;
-       goto yy13;
+       if (yych == 'u') goto yy259;
+       goto yy14;
 yy203:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy260;
-       goto yy13;
+       if (yych == 't') goto yy260;
+       goto yy14;
 yy204:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy261;
-       goto yy13;
+       if (yych <= 'f') {
+               if (yych == 'd') goto yy261;
+               goto yy14;
+       } else {
+               if (yych <= 'g') goto yy262;
+               if (yych == 'v') goto yy263;
+               goto yy14;
+       }
 yy205:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy262;
-       goto yy13;
+       if (yych == 'p') goto yy264;
+       goto yy14;
 yy206:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy263;
-       goto yy13;
+       if (yych == 's') goto yy265;
+       goto yy14;
 yy207:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy264;
-       goto yy13;
+       if (yych == 'l') goto yy266;
+       goto yy14;
 yy208:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy265;
-       goto yy13;
+       if (yych == 'r') goto yy267;
+       goto yy14;
 yy209:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy266;
-       goto yy13;
+       if (yych == 'r') goto yy268;
+       goto yy14;
 yy210:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy267;
-       goto yy13;
+       if (yych == 's') goto yy97;
+       goto yy14;
 yy211:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy269;
-       goto yy13;
+       if (yych == 'e') goto yy269;
+       goto yy14;
 yy212:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy270;
-       goto yy13;
+       if (yych == 'c') goto yy270;
+       goto yy14;
 yy213:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy271;
-       goto yy13;
+       if (yych == '-') goto yy271;
+       goto yy14;
 yy214:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy272;
-       goto yy13;
+       if (yych == 'e') goto yy272;
+       goto yy14;
 yy215:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy274;
-       goto yy13;
+       if (yych == 'r') goto yy273;
+       goto yy14;
 yy216:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy275;
-       goto yy13;
+       if (yych == 'p') goto yy274;
+       goto yy14;
 yy217:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy276;
-       goto yy13;
+       if (yych == 'i') goto yy276;
+       goto yy14;
 yy218:
        yych = (unsigned char)*++cur;
        if (yych == 'e') goto yy277;
-       goto yy13;
+       goto yy14;
 yy219:
-       ++cur;
-#line 150 "../src/parse/lex_conf.re"
-       { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
-#line 1101 "src/parse/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy278;
+       goto yy14;
+yy220:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy279;
+       goto yy14;
 yy221:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy278;
-       goto yy13;
+       if (yych == 'r') goto yy281;
+       goto yy14;
 yy222:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy279;
-       goto yy13;
+       if (yych == 't') goto yy282;
+       goto yy14;
 yy223:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy280;
-       goto yy13;
-yy224:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy281;
-       goto yy13;
+       ++cur;
+#line 131 "../src/parse/lex_conf.re"
+       { opts.set_tags_expr  (lex_conf_string ()); return; }
+#line 1114 "src/parse/lex_conf.cc"
 yy225:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy282;
-       goto yy13;
+       if (yych == 'i') goto yy283;
+       goto yy14;
 yy226:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy283;
-       goto yy13;
+       if (yych == 'y') goto yy284;
+       goto yy14;
 yy227:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy284;
-       goto yy13;
+       if (yych == 'e') goto yy285;
+       goto yy14;
 yy228:
        ++cur;
-#line 82 "../src/parse/lex_conf.re"
-       { opts.set_condPrefix       (lex_conf_string ()); return; }
-#line 1134 "src/parse/lex_conf.cc"
+#line 150 "../src/parse/lex_conf.re"
+       { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
+#line 1131 "src/parse/lex_conf.cc"
 yy230:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy285;
-       goto yy13;
+       if (yych == 'e') goto yy286;
+       goto yy14;
 yy231:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy286;
-       goto yy13;
+       if (yych == 'a') goto yy287;
+       goto yy14;
 yy232:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy287;
-       goto yy13;
+       if (yych == 'r') goto yy288;
+       goto yy14;
 yy233:
        yych = (unsigned char)*++cur;
-       if (yych <= 'S') {
-               if (yych == 'O') goto yy288;
-               goto yy13;
-       } else {
-               if (yych <= 'T') goto yy289;
-               if (yych <= 'U') goto yy290;
-               goto yy13;
-       }
+       if (yych == 's') goto yy289;
+       goto yy14;
 yy234:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy291;
-       if (yych == 'I') goto yy292;
-       goto yy13;
+       if (yych == 'e') goto yy290;
+       goto yy14;
 yy235:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy293;
-       goto yy13;
+       if (yych == 'c') goto yy291;
+       goto yy14;
 yy236:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy294;
-       goto yy13;
+       if (yych == 'e') goto yy292;
+       goto yy14;
 yy237:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy295;
-       if (yych == 'I') goto yy296;
-       goto yy13;
-yy238:
-       yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy297;
-       goto yy13;
+       ++cur;
+#line 82 "../src/parse/lex_conf.re"
+       { opts.set_condPrefix       (lex_conf_string ()); return; }
+#line 1164 "src/parse/lex_conf.cc"
 yy239:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy298;
-       goto yy13;
+       if (yych == 'A') goto yy293;
+       goto yy14;
 yy240:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy299;
-       goto yy13;
+       if (yych <= 'S') {
+               if (yych == 'O') goto yy294;
+               goto yy14;
+       } else {
+               if (yych <= 'T') goto yy295;
+               if (yych <= 'U') goto yy296;
+               goto yy14;
+       }
 yy241:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy300;
-       if (yych == 'K') goto yy301;
-       goto yy13;
+       if (yych == 'E') goto yy297;
+       if (yych == 'I') goto yy298;
+       goto yy14;
 yy242:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy302;
-       goto yy13;
+       if (yych == 'I') goto yy299;
+       goto yy14;
 yy243:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy303;
-       goto yy13;
+       if (yych == 'E') goto yy300;
+       goto yy14;
 yy244:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy304;
-       goto yy13;
+       if (yych == 'E') goto yy301;
+       if (yych == 'I') goto yy302;
+       goto yy14;
 yy245:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy305;
-       goto yy13;
+       if (yych == 'A') goto yy303;
+       goto yy14;
 yy246:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy306;
-       goto yy13;
+       if (yych == 'E') goto yy304;
+       goto yy14;
 yy247:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy307;
-       goto yy13;
+       if (yych == 'E') goto yy305;
+       goto yy14;
 yy248:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy308;
-       goto yy13;
+       if (yych == 'E') goto yy306;
+       if (yych == 'K') goto yy307;
+       goto yy14;
 yy249:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy309;
-       goto yy13;
+       if (yych == 'A') goto yy308;
+       goto yy14;
 yy250:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy310;
-       goto yy13;
+       if (yych == 'v') goto yy309;
+       goto yy14;
 yy251:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy311;
-       goto yy13;
+       if (yych == '-') goto yy310;
+       goto yy14;
 yy252:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy312;
-       goto yy13;
+       if (yych == 'u') goto yy311;
+       goto yy14;
 yy253:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy314;
-       goto yy13;
+       if (yych == 'g') goto yy312;
+       goto yy14;
 yy254:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy315;
-       goto yy13;
+       if (yych == 'm') goto yy313;
+       goto yy14;
 yy255:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy316;
-       goto yy13;
+       if (yych == '-') goto yy314;
+       goto yy14;
 yy256:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy317;
-       goto yy13;
+       if (yych == 'y') goto yy315;
+       goto yy14;
 yy257:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy318;
-       goto yy13;
+       if (yych == 'd') goto yy316;
+       goto yy14;
 yy258:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy319;
-       goto yy13;
+       if (yych == '-') goto yy317;
+       goto yy14;
 yy259:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy320;
-       goto yy13;
+       if (yych == 't') goto yy318;
+       goto yy14;
 yy260:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy321;
-       goto yy13;
+       if (yych == 'e') goto yy320;
+       goto yy14;
 yy261:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy322;
-       goto yy13;
+       if (yych == 'e') goto yy321;
+       goto yy14;
 yy262:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy323;
-       goto yy13;
+       if (yych == 'e') goto yy322;
+       goto yy14;
 yy263:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy324;
-       goto yy13;
+       if (yych == 'e') goto yy323;
+       goto yy14;
 yy264:
        yych = (unsigned char)*++cur;
-       if (yych == '1') goto yy325;
-       if (yych == '8') goto yy86;
-       goto yy13;
+       if (yych == 'u') goto yy324;
+       goto yy14;
 yy265:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy326;
-       goto yy13;
+       if (yych == 'a') goto yy325;
+       goto yy14;
 yy266:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy327;
-       goto yy13;
+       if (yych == 'e') goto yy326;
+       goto yy14;
 yy267:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy327;
+       goto yy14;
+yy268:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy328;
+       goto yy14;
+yy269:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy329;
+       goto yy14;
+yy270:
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy330;
+       goto yy14;
+yy271:
+       yych = (unsigned char)*++cur;
+       if (yych == '1') goto yy331;
+       if (yych == '8') goto yy89;
+       goto yy14;
+yy272:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy332;
+       goto yy14;
+yy273:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy333;
+       goto yy14;
+yy274:
        ++cur;
 #line 135 "../src/parse/lex_conf.re"
        {
@@ -1301,1021 +1323,1004 @@ yy267:
                opts.set_topIndent (static_cast<uint32_t> (n));
                return;
        }
-#line 1305 "src/parse/lex_conf.cc"
-yy269:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy328;
-       goto yy13;
-yy270:
-       yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy329;
-       goto yy13;
-yy271:
-       yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy330;
-       goto yy13;
-yy272:
-       yyaccept = 14;
-       yych = (unsigned char)*(ptr = ++cur);
-       ctx = cur;
-       if (yybm[0+yych] & 64) {
-               goto yy332;
-       }
-       if (yych == '=') goto yy334;
-yy273:
-#line 163 "../src/parse/lex_conf.re"
-       { out.block().user_start_label = lex_conf_string(); return; }
-#line 1329 "src/parse/lex_conf.cc"
-yy274:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy336;
-       goto yy13;
-yy275:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy338;
-       goto yy13;
+#line 1327 "src/parse/lex_conf.cc"
 yy276:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy339;
-       goto yy13;
+       if (yych == 'l') goto yy334;
+       goto yy14;
 yy277:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy340;
-       goto yy13;
+       if (yych == 'x') goto yy335;
+       goto yy14;
 yy278:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy341;
-       goto yy13;
+       if (yych == 'x') goto yy336;
+       goto yy14;
 yy279:
-       yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy342;
-       goto yy13;
+       yyaccept = 14;
+       yych = (unsigned char)*(ptr = ++cur);
+       if (yych <= 0x1F) {
+               if (yych == '\t') {
+                       ctx = cur;
+                       goto yy338;
+               }
+       } else {
+               if (yych <= ' ') {
+                       ctx = cur;
+                       goto yy338;
+               }
+               if (yych == '=') {
+                       ctx = cur;
+                       goto yy340;
+               }
+       }
 yy280:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy343;
-       goto yy13;
+#line 163 "../src/parse/lex_conf.re"
+       { out.block().user_start_label = lex_conf_string(); return; }
+#line 1361 "src/parse/lex_conf.cc"
 yy281:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy344;
-       goto yy13;
+       if (yych == 't') goto yy342;
+       goto yy14;
 yy282:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy345;
-       goto yy13;
+       if (yych == 'l') goto yy344;
+       goto yy14;
 yy283:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy347;
-       goto yy13;
+       if (yych == 'x') goto yy345;
+       goto yy14;
 yy284:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy348;
-       goto yy13;
+       if (yych == 'y') goto yy347;
+       goto yy14;
 yy285:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy349;
-       goto yy13;
+       if (yych == 'r') goto yy348;
+       goto yy14;
 yy286:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy350;
-       goto yy13;
+       if (yych == 'c') goto yy349;
+       goto yy14;
 yy287:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy351;
-       goto yy13;
+       if (yych == 'b') goto yy350;
+       goto yy14;
 yy288:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy352;
-       goto yy13;
+       if (yych == 'a') goto yy351;
+       goto yy14;
 yy289:
        yych = (unsigned char)*++cur;
-       if (yych <= 'W') goto yy13;
-       if (yych <= 'X') goto yy353;
-       if (yych <= 'Y') goto yy355;
-       goto yy13;
+       if (yych == 'h') goto yy352;
+       goto yy14;
 yy290:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy356;
-       goto yy13;
+       if (yych == 'r') goto yy353;
+       goto yy14;
 yy291:
        yych = (unsigned char)*++cur;
-       if (yych == 'B') goto yy357;
-       goto yy13;
+       if (yych == 'o') goto yy355;
+       goto yy14;
 yy292:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy358;
-       goto yy13;
+       if (yych == 'f') goto yy356;
+       goto yy14;
 yy293:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy359;
-       goto yy13;
+       if (yych == 'C') goto yy357;
+       goto yy14;
 yy294:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy360;
-       goto yy13;
+       if (yych == 'N') goto yy358;
+       goto yy14;
 yy295:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy361;
-       goto yy13;
+       if (yych <= 'W') goto yy14;
+       if (yych <= 'X') goto yy359;
+       if (yych <= 'Y') goto yy360;
+       goto yy14;
 yy296:
        yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy362;
-       goto yy13;
+       if (yych == 'R') goto yy361;
+       goto yy14;
 yy297:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy363;
-       goto yy13;
+       if (yych == 'B') goto yy362;
+       goto yy14;
 yy298:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy364;
-       goto yy13;
+       if (yych == 'S') goto yy363;
+       goto yy14;
 yy299:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy365;
-       goto yy13;
+       if (yych == 'L') goto yy364;
+       goto yy14;
 yy300:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy366;
-       goto yy13;
+       if (yych == 'T') goto yy365;
+       goto yy14;
 yy301:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy367;
-       goto yy13;
+       if (yych == 'S') goto yy366;
+       goto yy14;
 yy302:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy368;
-       goto yy13;
+       if (yych == 'M') goto yy367;
+       goto yy14;
 yy303:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy369;
-       goto yy13;
+       if (yych == 'R') goto yy368;
+       goto yy14;
 yy304:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy370;
-       goto yy13;
+       if (yych == 'E') goto yy369;
+       goto yy14;
 yy305:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy371;
-       goto yy13;
+       if (yych == 'S') goto yy370;
+       goto yy14;
 yy306:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy372;
-       goto yy13;
+       if (yych == 'T') goto yy371;
+       goto yy14;
 yy307:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy373;
-       goto yy13;
+       if (yych == 'I') goto yy372;
+       goto yy14;
 yy308:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy374;
-       goto yy13;
+       if (yych == 'G') goto yy373;
+       goto yy14;
 yy309:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy375;
-       goto yy13;
+       if (yych == 'e') goto yy375;
+       goto yy14;
 yy310:
        yych = (unsigned char)*++cur;
        if (yych == 'i') goto yy376;
-       goto yy13;
+       goto yy14;
 yy311:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy377;
-       goto yy13;
+       if (yych == 't') goto yy377;
+       goto yy14;
 yy312:
-       ++cur;
-#line 72 "../src/parse/lex_conf.re"
-       { lex_conf_input();            return; }
-#line 1488 "src/parse/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy378;
+       goto yy14;
+yy313:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy379;
+       goto yy14;
 yy314:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy378;
-       goto yy13;
+       if (yych == 'd') goto yy380;
+       goto yy14;
 yy315:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy379;
-       goto yy13;
+       if (yych == '-') goto yy381;
+       goto yy14;
 yy316:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy380;
-       goto yy13;
+       if (yych == 'i') goto yy382;
+       goto yy14;
 yy317:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy381;
-       goto yy13;
+       if (yych == 's') goto yy383;
+       goto yy14;
 yy318:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy382;
-       goto yy13;
-yy319:
-       yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy383;
-       goto yy13;
+       ++cur;
+#line 72 "../src/parse/lex_conf.re"
+       { lex_conf_input();            return; }
+#line 1516 "src/parse/lex_conf.cc"
 yy320:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy384;
-       goto yy13;
+       if (yych == 'd') goto yy384;
+       goto yy14;
 yy321:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy385;
-       goto yy13;
+       if (yych == 'b') goto yy385;
+       goto yy14;
 yy322:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy386;
-       goto yy13;
+       if (yych == 'n') goto yy386;
+       goto yy14;
 yy323:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy387;
-       goto yy13;
+       if (yych == 'r') goto yy387;
+       goto yy14;
 yy324:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy388;
-       goto yy13;
+       if (yych == 't') goto yy388;
+       goto yy14;
 yy325:
        yych = (unsigned char)*++cur;
-       if (yych == '6') goto yy123;
-       goto yy13;
+       if (yych == 'b') goto yy389;
+       goto yy14;
 yy326:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy389;
-       goto yy13;
+       if (yych == 't') goto yy390;
+       goto yy14;
 yy327:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy390;
-       goto yy13;
+       if (yych == '-') goto yy391;
+       goto yy14;
 yy328:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy391;
-       goto yy13;
+       if (yych == 'b') goto yy392;
+       goto yy14;
 yy329:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy392;
-       goto yy13;
+       if (yych == 'h') goto yy393;
+       goto yy14;
 yy330:
+       yych = (unsigned char)*++cur;
+       if (yych == 'd') goto yy394;
+       goto yy14;
+yy331:
+       yych = (unsigned char)*++cur;
+       if (yych == '6') goto yy126;
+       goto yy14;
+yy332:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy395;
+       goto yy14;
+yy333:
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy396;
+       goto yy14;
+yy334:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy397;
+       goto yy14;
+yy335:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy398;
+       goto yy14;
+yy336:
        ++cur;
 #line 159 "../src/parse/lex_conf.re"
        { opts.set_labelPrefix (lex_conf_string ()); return; }
-#line 1557 "src/parse/lex_conf.cc"
-yy332:
+#line 1585 "src/parse/lex_conf.cc"
+yy338:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 64) {
-               goto yy332;
+               goto yy338;
        }
-       if (yych != '=') goto yy13;
-yy334:
+       if (yych != '=') goto yy14;
+yy340:
        ++cur;
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= ',') {
                if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy13;
-                       goto yy334;
+                       if (yych <= 0x08) goto yy14;
+                       goto yy340;
                } else {
-                       if (yych == ' ') goto yy334;
-                       goto yy13;
+                       if (yych == ' ') goto yy340;
+                       goto yy14;
                }
        } else {
                if (yych <= '/') {
-                       if (yych <= '-') goto yy394;
-                       goto yy13;
+                       if (yych <= '-') goto yy400;
+                       goto yy14;
                } else {
-                       if (yych <= '0') goto yy395;
-                       if (yych <= '9') goto yy397;
-                       goto yy13;
+                       if (yych <= '0') goto yy401;
+                       if (yych <= '9') goto yy403;
+                       goto yy14;
                }
        }
-yy336:
+yy342:
        ++cur;
 #line 97 "../src/parse/lex_conf.re"
        { opts.set_bUseStateAbort  (lex_conf_bool()); return; }
-#line 1592 "src/parse/lex_conf.cc"
-yy338:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy399;
-       goto yy13;
-yy339:
-       yych = (unsigned char)*++cur;
-       if (yych <= 'c') {
-               if (yych <= '`') goto yy13;
-               if (yych <= 'a') goto yy400;
-               if (yych <= 'b') goto yy401;
-               goto yy402;
-       } else {
-               if (yych <= 'r') goto yy13;
-               if (yych <= 's') goto yy403;
-               if (yych <= 't') goto yy404;
-               goto yy13;
-       }
-yy340:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy405;
-       goto yy13;
-yy341:
-       yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy406;
-       goto yy13;
-yy342:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy408;
-       goto yy13;
-yy343:
-       yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy409;
-       goto yy13;
+#line 1620 "src/parse/lex_conf.cc"
 yy344:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy410;
-       goto yy13;
+       if (yych == 'a') goto yy405;
+       goto yy14;
 yy345:
-       yyaccept = 15;
-       yych = (unsigned char)*(ptr = ++cur);
-       if (yych == '@') goto yy411;
-yy346:
-#line 84 "../src/parse/lex_conf.re"
-       { opts.set_condDivider      (lex_conf_string ()); return; }
-#line 1637 "src/parse/lex_conf.cc"
+       ++cur;
+#line 130 "../src/parse/lex_conf.re"
+       { opts.set_tags_prefix(lex_conf_string ()); return; }
+#line 1629 "src/parse/lex_conf.cc"
 yy347:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy412;
-       goto yy13;
+       if (yych <= 'c') {
+               if (yych <= '`') goto yy14;
+               if (yych <= 'a') goto yy406;
+               if (yych <= 'b') goto yy407;
+               goto yy408;
+       } else {
+               if (yych <= 'r') goto yy14;
+               if (yych <= 's') goto yy409;
+               if (yych <= 't') goto yy410;
+               goto yy14;
+       }
 yy348:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy413;
-       goto yy13;
+       if (yych == 's') goto yy411;
+       goto yy14;
 yy349:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy414;
-       goto yy13;
+       if (yych == 'k') goto yy412;
+       goto yy14;
 yy350:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy416;
-       goto yy13;
+       if (yych == 'l') goto yy414;
+       goto yy14;
 yy351:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy417;
-       goto yy13;
+       if (yych == 'm') goto yy415;
+       goto yy14;
 yy352:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy418;
-       goto yy13;
+       if (yych == 'o') goto yy416;
+       goto yy14;
 yy353:
-       yyaccept = 16;
+       yyaccept = 15;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'M') goto yy419;
+       if (yych == '@') goto yy417;
 yy354:
-#line 127 "../src/parse/lex_conf.re"
-       { opts.set_yyctx        (lex_conf_string ()); return; }
-#line 1669 "src/parse/lex_conf.cc"
+#line 84 "../src/parse/lex_conf.re"
+       { opts.set_condDivider      (lex_conf_string ()); return; }
+#line 1670 "src/parse/lex_conf.cc"
 yy355:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy420;
-       goto yy13;
+       if (yych == 'n') goto yy418;
+       goto yy14;
 yy356:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy421;
-       goto yy13;
+       if (yych == 'i') goto yy419;
+       goto yy14;
 yy357:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy422;
-       goto yy13;
+       if (yych == 'K') goto yy420;
+       goto yy14;
 yy358:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy423;
-       goto yy13;
+       if (yych == 'D') goto yy421;
+       goto yy14;
 yy359:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy425;
-       goto yy13;
+       if (yych == 'M') goto yy422;
+       goto yy14;
 yy360:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy427;
-       if (yych == 'S') goto yy428;
-       goto yy13;
+       if (yych == 'P') goto yy423;
+       goto yy14;
 yy361:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy429;
-       goto yy13;
+       if (yych == 'S') goto yy424;
+       goto yy14;
 yy362:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy430;
-       goto yy13;
+       if (yych == 'U') goto yy425;
+       goto yy14;
 yy363:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy431;
-       goto yy13;
+       if (yych == 'T') goto yy426;
+       goto yy14;
 yy364:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy432;
-       goto yy13;
+       if (yych == 'L') goto yy428;
+       goto yy14;
 yy365:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy434;
-       goto yy13;
+       if (yych == 'C') goto yy430;
+       if (yych == 'S') goto yy431;
+       goto yy14;
 yy366:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy435;
-       if (yych == 'S') goto yy436;
-       goto yy13;
+       if (yych == 'S') goto yy432;
+       goto yy14;
 yy367:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy437;
-       goto yy13;
+       if (yych == 'I') goto yy433;
+       goto yy14;
 yy368:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy439;
-       goto yy13;
+       if (yych == 'K') goto yy434;
+       goto yy14;
 yy369:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy440;
-       goto yy13;
+       if (yych == 'K') goto yy435;
+       goto yy14;
 yy370:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy441;
-       goto yy13;
+       if (yych == 'T') goto yy437;
+       goto yy14;
 yy371:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy442;
-       goto yy13;
+       if (yych == 'C') goto yy438;
+       if (yych == 'S') goto yy439;
+       goto yy14;
 yy372:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy443;
-       goto yy13;
+       if (yych == 'P') goto yy440;
+       goto yy14;
 yy373:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy444;
-       goto yy13;
-yy374:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy445;
-       goto yy13;
+       ++cur;
+#line 127 "../src/parse/lex_conf.re"
+       { opts.set_tags_yytag   (lex_conf_string ()); return; }
+#line 1749 "src/parse/lex_conf.cc"
 yy375:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy446;
-       goto yy13;
+       if (yych == 'c') goto yy442;
+       goto yy14;
 yy376:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy447;
-       goto yy13;
+       if (yych == 'n') goto yy443;
+       goto yy14;
 yy377:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy448;
-       goto yy13;
+       if (yych == 'e') goto yy444;
+       goto yy14;
 yy378:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy449;
-       goto yy13;
+       if (yych == 'o') goto yy445;
+       goto yy14;
 yy379:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy450;
-       goto yy13;
+       if (yych == 'n') goto yy446;
+       goto yy14;
 yy380:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy451;
-       goto yy13;
+       if (yych == 'o') goto yy447;
+       goto yy14;
 yy381:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy452;
-       goto yy13;
+       if (yych == 'c') goto yy448;
+       goto yy14;
 yy382:
        yych = (unsigned char)*++cur;
-       goto yy112;
+       if (yych == 'n') goto yy449;
+       goto yy14;
 yy383:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy453;
-       goto yy13;
+       if (yych == 'y') goto yy450;
+       goto yy14;
 yy384:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy454;
-       goto yy13;
+       if (yych == '-') goto yy451;
+       goto yy14;
 yy385:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy455;
-       goto yy13;
+       if (yych == 'u') goto yy452;
+       goto yy14;
 yy386:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy456;
-       goto yy13;
+       if (yych == 'e') goto yy453;
+       goto yy14;
 yy387:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy457;
-       goto yy13;
+       if (yych == 's') goto yy454;
+       goto yy14;
 yy388:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy458;
-       goto yy13;
+       goto yy115;
 yy389:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy459;
-       goto yy13;
+       if (yych == 'l') goto yy455;
+       goto yy14;
 yy390:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy460;
-       goto yy13;
+       if (yych == 'o') goto yy456;
+       goto yy14;
 yy391:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy462;
-       goto yy13;
+       if (yych == 'c') goto yy457;
+       goto yy14;
 yy392:
-       ++cur;
-#line 96 "../src/parse/lex_conf.re"
-       { opts.set_yynext          (lex_conf_string ()); return; }
-#line 1823 "src/parse/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy458;
+       goto yy14;
+yy393:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy459;
+       goto yy14;
 yy394:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy13;
-       if (yych <= '9') goto yy397;
-       goto yy13;
+       if (yych == 'e') goto yy460;
+       goto yy14;
 yy395:
-       ++cur;
+       yych = (unsigned char)*++cur;
+       if (yych == 'h') goto yy461;
+       goto yy14;
 yy396:
-       cur = ctx;
-#line 162 "../src/parse/lex_conf.re"
-       { out.block().force_start_label = lex_conf_bool(); return; }
-#line 1835 "src/parse/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'g') goto yy462;
+       goto yy14;
 yy397:
-       ++cur;
-       if (lim <= cur) fill(1);
-       yych = (unsigned char)*cur;
-       if (yybm[0+yych] & 128) {
-               goto yy397;
-       }
-       goto yy396;
-yy399:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy463;
-       goto yy13;
+       if (yych == 'L') goto yy464;
+       goto yy14;
+yy398:
+       ++cur;
+#line 96 "../src/parse/lex_conf.re"
+       { opts.set_yynext          (lex_conf_string ()); return; }
+#line 1845 "src/parse/lex_conf.cc"
 yy400:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy464;
-       goto yy13;
+       if (yych <= '0') goto yy14;
+       if (yych <= '9') goto yy403;
+       goto yy14;
 yy401:
-       yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy465;
-       goto yy13;
+       ++cur;
 yy402:
-       yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy467;
-       if (yych == 't') goto yy469;
-       goto yy13;
+       cur = ctx;
+#line 162 "../src/parse/lex_conf.re"
+       { out.block().force_start_label = lex_conf_bool(); return; }
+#line 1857 "src/parse/lex_conf.cc"
 yy403:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy470;
-       goto yy13;
-yy404:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy471;
-       goto yy13;
+       ++cur;
+       if (lim <= cur) fill(1);
+       yych = (unsigned char)*cur;
+       if (yybm[0+yych] & 128) {
+               goto yy403;
+       }
+       goto yy402;
 yy405:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy472;
-       goto yy13;
+       if (yych == 'b') goto yy465;
+       goto yy14;
 yy406:
-       ++cur;
-#line 157 "../src/parse/lex_conf.re"
-       { opts.set_fill_check   (lex_conf_bool()); return; }
-#line 1877 "src/parse/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy466;
+       goto yy14;
+yy407:
+       yych = (unsigned char)*++cur;
+       if (yych == 'm') goto yy467;
+       goto yy14;
 yy408:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy473;
-       goto yy13;
+       if (yych == 'h') goto yy469;
+       if (yych == 't') goto yy471;
+       goto yy14;
 yy409:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy475;
-       goto yy13;
+       if (yych == 't') goto yy472;
+       goto yy14;
 yy410:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy476;
-       goto yy13;
+       if (yych == 'a') goto yy473;
+       goto yy14;
 yy411:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy477;
-       goto yy13;
+       if (yych == 'i') goto yy474;
+       goto yy14;
 yy412:
+       ++cur;
+#line 157 "../src/parse/lex_conf.re"
+       { opts.set_fill_check   (lex_conf_bool()); return; }
+#line 1899 "src/parse/lex_conf.cc"
+yy414:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy478;
-       goto yy13;
-yy413:
+       if (yych == 'e') goto yy475;
+       goto yy14;
+yy415:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy480;
-       goto yy13;
-yy414:
-       ++cur;
-#line 131 "../src/parse/lex_conf.re"
-       { opts.set_contexts_expr  (lex_conf_string ()); return; }
-#line 1906 "src/parse/lex_conf.cc"
+       if (yych == 'e') goto yy477;
+       goto yy14;
 yy416:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy482;
-       goto yy13;
+       if (yych == 'l') goto yy478;
+       goto yy14;
 yy417:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy483;
-       goto yy13;
+       if (yych == 'c') goto yy479;
+       goto yy14;
 yy418:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy484;
-       goto yy13;
+       if (yych == 'd') goto yy480;
+       goto yy14;
 yy419:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy485;
-       goto yy13;
+       if (yych == 'x') goto yy482;
+       goto yy14;
 yy420:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy486;
-       goto yy13;
+       if (yych == 'U') goto yy484;
+       goto yy14;
 yy421:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy488;
-       goto yy13;
+       if (yych == 'T') goto yy485;
+       goto yy14;
 yy422:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy489;
-       goto yy13;
+       if (yych == 'A') goto yy486;
+       goto yy14;
 yy423:
+       yych = (unsigned char)*++cur;
+       if (yych == 'E') goto yy487;
+       goto yy14;
+yy424:
+       yych = (unsigned char)*++cur;
+       if (yych == 'O') goto yy489;
+       goto yy14;
+yy425:
+       yych = (unsigned char)*++cur;
+       if (yych == 'G') goto yy490;
+       goto yy14;
+yy426:
        ++cur;
 #line 128 "../src/parse/lex_conf.re"
-       { opts.set_yydist       (lex_conf_string ()); return; }
-#line 1939 "src/parse/lex_conf.cc"
-yy425:
-       yyaccept = 17;
+       { opts.set_tags_yydist  (lex_conf_string ()); return; }
+#line 1952 "src/parse/lex_conf.cc"
+yy428:
+       yyaccept = 16;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == ':') goto yy491;
-       if (yych == '@') goto yy492;
-yy426:
+       if (yych == ':') goto yy492;
+       if (yych == '@') goto yy493;
+yy429:
 #line 152 "../src/parse/lex_conf.re"
        { opts.set_fill         (lex_conf_string ()); return; }
-#line 1948 "src/parse/lex_conf.cc"
-yy427:
-       yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy493;
-       goto yy13;
-yy428:
+#line 1961 "src/parse/lex_conf.cc"
+yy430:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy494;
-       goto yy13;
-yy429:
+       if (yych == 'O') goto yy494;
+       goto yy14;
+yy431:
        yych = (unsigned char)*++cur;
        if (yych == 'T') goto yy495;
-       goto yy13;
-yy430:
+       goto yy14;
+yy432:
        yych = (unsigned char)*++cur;
        if (yych == 'T') goto yy496;
-       goto yy13;
-yy431:
+       goto yy14;
+yy433:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy498;
-       goto yy13;
-yy432:
-       ++cur;
-#line 120 "../src/parse/lex_conf.re"
-       { opts.set_yypeek       (lex_conf_string ()); return; }
-#line 1973 "src/parse/lex_conf.cc"
+       if (yych == 'T') goto yy497;
+       goto yy14;
 yy434:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy499;
-       goto yy13;
+       if (yych == 'E') goto yy499;
+       goto yy14;
 yy435:
+       ++cur;
+#line 120 "../src/parse/lex_conf.re"
+       { opts.set_yypeek       (lex_conf_string ()); return; }
+#line 1986 "src/parse/lex_conf.cc"
+yy437:
        yych = (unsigned char)*++cur;
        if (yych == 'O') goto yy500;
-       goto yy13;
-yy436:
+       goto yy14;
+yy438:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy501;
-       goto yy13;
-yy437:
-       ++cur;
-#line 121 "../src/parse/lex_conf.re"
-       { opts.set_yyskip       (lex_conf_string ()); return; }
-#line 1990 "src/parse/lex_conf.cc"
+       if (yych == 'O') goto yy501;
+       goto yy14;
 yy439:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy502;
-       goto yy13;
+       if (yych == 'T') goto yy502;
+       goto yy14;
 yy440:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy503;
-       if (yych == 'v') goto yy504;
-       goto yy13;
-yy441:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy505;
-       goto yy13;
+       ++cur;
+#line 121 "../src/parse/lex_conf.re"
+       { opts.set_yyskip       (lex_conf_string ()); return; }
+#line 2003 "src/parse/lex_conf.cc"
 yy442:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy88;
-       goto yy13;
+       if (yych == 't') goto yy503;
+       goto yy14;
 yy443:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy506;
-       goto yy13;
+       if (yych == 's') goto yy504;
+       if (yych == 'v') goto yy505;
+       goto yy14;
 yy444:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy507;
-       goto yy13;
+       if (yych == 'd') goto yy506;
+       goto yy14;
 yy445:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy90;
-       goto yy13;
+       if (yych == 'u') goto yy507;
+       goto yy14;
 yy446:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy508;
-       goto yy13;
+       if (yych == 'i') goto yy508;
+       goto yy14;
 yy447:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy509;
-       goto yy13;
+       if (yych == 't') goto yy91;
+       goto yy14;
 yy448:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy510;
-       goto yy13;
+       if (yych == 'l') goto yy509;
+       goto yy14;
 yy449:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy511;
-       goto yy13;
+       if (yych == 'g') goto yy510;
+       goto yy14;
 yy450:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy512;
-       goto yy13;
+       if (yych == 'n') goto yy511;
+       goto yy14;
 yy451:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy513;
-       goto yy13;
+       if (yych == 'i') goto yy512;
+       goto yy14;
 yy452:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy514;
-       goto yy13;
+       if (yych == 'g') goto yy513;
+       goto yy14;
 yy453:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy515;
-       goto yy13;
+       if (yych == 'r') goto yy514;
+       goto yy14;
 yy454:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy94;
-       goto yy13;
+       if (yych == 'i') goto yy515;
+       goto yy14;
 yy455:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy516;
-       goto yy13;
+       if (yych == 'e') goto yy516;
+       goto yy14;
 yy456:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy517;
-       goto yy13;
+       if (yych == 'n') goto yy95;
+       goto yy14;
 yy457:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy518;
-       goto yy13;
+       if (yych == 'o') goto yy517;
+       goto yy14;
 yy458:
        yych = (unsigned char)*++cur;
-       goto yy120;
+       if (yych == 'e') goto yy518;
+       goto yy14;
 yy459:
        yych = (unsigned char)*++cur;
        if (yych == 'a') goto yy519;
-       goto yy13;
+       goto yy14;
 yy460:
+       yych = (unsigned char)*++cur;
+       goto yy123;
+yy461:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy520;
+       goto yy14;
+yy462:
        ++cur;
 #line 133 "../src/parse/lex_conf.re"
        { opts.set_indString (lex_conf_string ()); return; }
-#line 2079 "src/parse/lex_conf.cc"
-yy462:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy520;
-       goto yy13;
-yy463:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy521;
-       goto yy13;
+#line 2088 "src/parse/lex_conf.cc"
 yy464:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy522;
-       goto yy13;
+       if (yych == 'a') goto yy521;
+       goto yy14;
 yy465:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy522;
+       goto yy14;
+yy466:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy523;
+       goto yy14;
+yy467:
        ++cur;
 #line 101 "../src/parse/lex_conf.re"
        { opts.set_yybm         (lex_conf_string ()); return; }
-#line 2096 "src/parse/lex_conf.cc"
-yy467:
+#line 2105 "src/parse/lex_conf.cc"
+yy469:
        ++cur;
 #line 148 "../src/parse/lex_conf.re"
        { opts.set_yych           (lex_conf_string ()); return; }
-#line 2101 "src/parse/lex_conf.cc"
-yy469:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy523;
-       goto yy13;
-yy470:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy524;
-       goto yy13;
+#line 2110 "src/parse/lex_conf.cc"
 yy471:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy525;
-       goto yy13;
+       if (yych == 'a') goto yy524;
+       goto yy14;
 yy472:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy526;
-       goto yy13;
+       if (yych == 'a') goto yy525;
+       goto yy14;
 yy473:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy526;
+       goto yy14;
+yy474:
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy527;
+       goto yy14;
+yy475:
        ++cur;
 #line 153 "../src/parse/lex_conf.re"
        { opts.set_fill_use     (lex_conf_bool()); return; }
-#line 2122 "src/parse/lex_conf.cc"
-yy475:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy527;
-       goto yy13;
-yy476:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy528;
-       goto yy13;
+#line 2131 "src/parse/lex_conf.cc"
 yy477:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy530;
-       goto yy13;
+       if (yych == 't') goto yy528;
+       goto yy14;
 yy478:
+       yych = (unsigned char)*++cur;
+       if (yych == 'd') goto yy529;
+       goto yy14;
+yy479:
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy531;
+       goto yy14;
+yy480:
        ++cur;
 #line 87 "../src/parse/lex_conf.re"
        { opts.set_condGotoParam    (lex_conf_string ()); return; }
-#line 2139 "src/parse/lex_conf.cc"
-yy480:
+#line 2148 "src/parse/lex_conf.cc"
+yy482:
        ++cur;
 #line 83 "../src/parse/lex_conf.re"
        { opts.set_condEnumPrefix   (lex_conf_string ()); return; }
-#line 2144 "src/parse/lex_conf.cc"
-yy482:
-       yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy531;
-       goto yy13;
-yy483:
-       yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy533;
-       goto yy13;
+#line 2153 "src/parse/lex_conf.cc"
 yy484:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy535;
-       goto yy13;
+       if (yych == 'P') goto yy532;
+       goto yy14;
 yy485:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy536;
-       goto yy13;
+       if (yych == 'Y') goto yy534;
+       goto yy14;
 yy486:
+       yych = (unsigned char)*++cur;
+       if (yych == 'R') goto yy535;
+       goto yy14;
+yy487:
        ++cur;
 #line 147 "../src/parse/lex_conf.re"
        { opts.set_yyctype        (lex_conf_string ()); return; }
-#line 2165 "src/parse/lex_conf.cc"
-yy488:
-       yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy537;
-       goto yy13;
+#line 2170 "src/parse/lex_conf.cc"
 yy489:
+       yych = (unsigned char)*++cur;
+       if (yych == 'R') goto yy536;
+       goto yy14;
+yy490:
        ++cur;
 #line 145 "../src/parse/lex_conf.re"
        { opts.set_yydebug (lex_conf_string ()); return; }
-#line 2174 "src/parse/lex_conf.cc"
-yy491:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy539;
-       goto yy13;
+#line 2179 "src/parse/lex_conf.cc"
 yy492:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy540;
-       goto yy13;
+       if (yych == 'n') goto yy538;
+       goto yy14;
 yy493:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy541;
-       goto yy13;
+       if (yych == 'l') goto yy539;
+       goto yy14;
 yy494:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy542;
-       goto yy13;
+       if (yych == 'N') goto yy540;
+       goto yy14;
 yy495:
        yych = (unsigned char)*++cur;
-       if (yych == 'H') goto yy543;
-       goto yy13;
+       if (yych == 'A') goto yy541;
+       goto yy14;
 yy496:
+       yych = (unsigned char)*++cur;
+       if (yych == 'H') goto yy542;
+       goto yy14;
+yy497:
        ++cur;
 #line 118 "../src/parse/lex_conf.re"
        { opts.set_yylimit     (lex_conf_string ()); return; }
-#line 2199 "src/parse/lex_conf.cc"
-yy498:
-       yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy544;
-       goto yy13;
+#line 2204 "src/parse/lex_conf.cc"
 yy499:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy546;
-       goto yy13;
+       if (yych == 'R') goto yy543;
+       goto yy14;
 yy500:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy547;
-       goto yy13;
+       if (yych == 'R') goto yy545;
+       goto yy14;
 yy501:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy548;
-       goto yy13;
+       if (yych == 'N') goto yy546;
+       goto yy14;
 yy502:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy549;
-       goto yy13;
+       if (yych == 'A') goto yy547;
+       goto yy14;
 yy503:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy550;
-       goto yy13;
+       if (yych == 'o') goto yy548;
+       goto yy14;
 yy504:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy551;
-       goto yy13;
+       if (yych == 'e') goto yy549;
+       goto yy14;
 yy505:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy552;
-       goto yy13;
+       if (yych == 'e') goto yy550;
+       goto yy14;
 yy506:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy553;
-       goto yy13;
+       if (yych == '-') goto yy551;
+       goto yy14;
 yy507:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy554;
-       goto yy13;
+       if (yych == 't') goto yy552;
+       goto yy14;
 yy508:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy555;
-       goto yy13;
+       if (yych == 'm') goto yy553;
+       goto yy14;
 yy509:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy556;
-       goto yy13;
+       if (yych == 'a') goto yy554;
+       goto yy14;
 yy510:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy557;
-       goto yy13;
+       if (yych == '-') goto yy555;
+       goto yy14;
 yy511:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy558;
-       goto yy13;
+       if (yych == 't') goto yy556;
+       goto yy14;
 yy512:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy559;
-       goto yy13;
+       if (yych == 'f') goto yy557;
+       goto yy14;
 yy513:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy560;
-       goto yy13;
+       if (yych == '-') goto yy558;
+       goto yy14;
 yy514:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy561;
-       goto yy13;
+       if (yych == 'a') goto yy559;
+       goto yy14;
 yy515:
        yych = (unsigned char)*++cur;
-       goto yy114;
+       if (yych == 'o') goto yy560;
+       goto yy14;
 yy516:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy562;
-       goto yy13;
+       goto yy117;
 yy517:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy563;
-       goto yy13;
+       if (yych == 'n') goto yy561;
+       goto yy14;
 yy518:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy564;
-       goto yy13;
+       if (yych == '-') goto yy562;
+       goto yy14;
 yy519:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy565;
-       goto yy13;
+       if (yych == 'd') goto yy563;
+       goto yy14;
 yy520:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy566;
-       goto yy13;
+       if (yych == 'r') goto yy564;
+       goto yy14;
 yy521:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy567;
-       goto yy13;
+       if (yych == 'b') goto yy565;
+       goto yy14;
 yy522:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy569;
-       goto yy13;
+       if (yych == 'l') goto yy566;
+       goto yy14;
 yy523:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy570;
-       goto yy13;
+       if (yych == 'e') goto yy568;
+       goto yy14;
 yy524:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy571;
-       goto yy13;
+       if (yych == 'b') goto yy569;
+       goto yy14;
 yy525:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy572;
-       goto yy13;
+       if (yych == 'b') goto yy570;
+       goto yy14;
 yy526:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy573;
-       goto yy13;
+       if (yych == 'g') goto yy571;
+       goto yy14;
 yy527:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy575;
-       goto yy13;
+       if (yych == 'n') goto yy572;
+       goto yy14;
 yy528:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy574;
+       goto yy14;
+yy529:
        ++cur;
 #line 104 "../src/parse/lex_conf.re"
        {
@@ -2327,813 +2332,808 @@ yy528:
                opts.set_cGotoThreshold (static_cast<uint32_t> (n));
                return;
        }
-#line 2331 "src/parse/lex_conf.cc"
-yy530:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy576;
-       goto yy13;
+#line 2336 "src/parse/lex_conf.cc"
 yy531:
-       ++cur;
-#line 130 "../src/parse/lex_conf.re"
-       { opts.set_contexts_prefix(lex_conf_string ()); return; }
-#line 2340 "src/parse/lex_conf.cc"
-yy533:
-       yyaccept = 18;
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy575;
+       goto yy14;
+yy532:
+       yyaccept = 17;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'C') goto yy577;
-yy534:
+       if (yych == 'C') goto yy576;
+yy533:
 #line 122 "../src/parse/lex_conf.re"
        { opts.set_yybackup     (lex_conf_string ()); return; }
 #line 2348 "src/parse/lex_conf.cc"
+yy534:
+       yych = (unsigned char)*++cur;
+       if (yych == 'P') goto yy577;
+       goto yy14;
 yy535:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy578;
-       goto yy13;
+       if (yych == 'K') goto yy578;
+       goto yy14;
 yy536:
-       yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy579;
-       goto yy13;
-yy537:
        ++cur;
 #line 115 "../src/parse/lex_conf.re"
        { opts.set_yycursor    (lex_conf_string ()); return; }
 #line 2361 "src/parse/lex_conf.cc"
+yy538:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy579;
+       goto yy14;
 yy539:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy580;
-       goto yy13;
+       if (yych == 'e') goto yy580;
+       goto yy14;
 yy540:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy581;
-       goto yy13;
+       if (yych == 'D') goto yy581;
+       goto yy14;
 yy541:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy582;
-       goto yy13;
+       if (yych == 'T') goto yy582;
+       goto yy14;
 yy542:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy583;
-       goto yy13;
+       if (yych == 'A') goto yy583;
+       goto yy14;
 yy543:
-       yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy584;
-       goto yy13;
-yy544:
        ++cur;
 #line 116 "../src/parse/lex_conf.re"
        { opts.set_yymarker    (lex_conf_string ()); return; }
 #line 2386 "src/parse/lex_conf.cc"
+yy545:
+       yych = (unsigned char)*++cur;
+       if (yych == 'E') goto yy584;
+       goto yy14;
 yy546:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy585;
-       goto yy13;
+       if (yych == 'D') goto yy586;
+       goto yy14;
 yy547:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy587;
-       goto yy13;
+       if (yych == 'T') goto yy587;
+       goto yy14;
 yy548:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy588;
-       goto yy13;
+       if (yych == 'r') goto yy588;
+       goto yy14;
 yy549:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy589;
-       goto yy13;
+       if (yych == 'n') goto yy589;
+       goto yy14;
 yy550:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy590;
-       goto yy13;
+       if (yych == 'r') goto yy590;
+       goto yy14;
 yy551:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy591;
-       goto yy13;
+       if (yych == 'g') goto yy591;
+       goto yy14;
 yy552:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy592;
-       goto yy13;
+       if (yych == 'p') goto yy592;
+       goto yy14;
 yy553:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy593;
-       goto yy13;
+       if (yych == 'i') goto yy593;
+       goto yy14;
 yy554:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy594;
-       goto yy13;
+       if (yych == 's') goto yy594;
+       goto yy14;
 yy555:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy595;
-       goto yy13;
+       if (yych == 'p') goto yy595;
+       goto yy14;
 yy556:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy596;
-       goto yy13;
+       if (yych == 'a') goto yy596;
+       goto yy14;
 yy557:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy597;
-       goto yy13;
+       if (yych == 's') goto yy597;
+       goto yy14;
 yy558:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy598;
-       goto yy13;
+       if (yych == 'i') goto yy598;
+       goto yy14;
 yy559:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy599;
-       goto yy13;
+       if (yych == 't') goto yy599;
+       goto yy14;
 yy560:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy600;
-       goto yy13;
+       if (yych == 'n') goto yy600;
+       goto yy14;
 yy561:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy601;
-       goto yy13;
+       if (yych == 'd') goto yy602;
+       goto yy14;
 yy562:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy603;
-       goto yy13;
+       if (yych == 's') goto yy603;
+       goto yy14;
 yy563:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy604;
-       goto yy13;
+       if (yych == 'e') goto yy604;
+       goto yy14;
 yy564:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy605;
-       goto yy13;
+       if (yych == 's') goto yy605;
+       goto yy14;
 yy565:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy606;
-       goto yy13;
+       if (yych == 'e') goto yy606;
+       goto yy14;
 yy566:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy607;
-       goto yy13;
-yy567:
        ++cur;
 #line 98 "../src/parse/lex_conf.re"
        { opts.set_bUseStateNext   (lex_conf_bool()); return; }
 #line 2475 "src/parse/lex_conf.cc"
+yy568:
+       yych = (unsigned char)*++cur;
+       if (yych == 'p') goto yy607;
+       goto yy14;
 yy569:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy608;
-       goto yy13;
+       if (yych == 'l') goto yy608;
+       goto yy14;
 yy570:
        yych = (unsigned char)*++cur;
        if (yych == 'l') goto yy609;
-       goto yy13;
+       goto yy14;
 yy571:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy610;
-       goto yy13;
+       if (yych == 'e') goto yy610;
+       goto yy14;
 yy572:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy611;
-       goto yy13;
-yy573:
        ++cur;
 #line 149 "../src/parse/lex_conf.re"
        { opts.set_yychConversion (lex_conf_bool()); return; }
 #line 2496 "src/parse/lex_conf.cc"
+yy574:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy611;
+       goto yy14;
 yy575:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy612;
-       goto yy13;
+       if (yych == 'd') goto yy613;
+       goto yy14;
 yy576:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy614;
-       goto yy13;
+       if (yych == 'T') goto yy615;
+       goto yy14;
 yy577:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy616;
-       goto yy13;
+       if (yych == 'E') goto yy616;
+       goto yy14;
 yy578:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy617;
-       goto yy13;
+       if (yych == 'E') goto yy618;
+       goto yy14;
 yy579:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy619;
-       goto yy13;
+       if (yych == 'k') goto yy619;
+       goto yy14;
 yy580:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy620;
-       goto yy13;
+       if (yych == 'n') goto yy620;
+       goto yy14;
 yy581:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy621;
-       goto yy13;
+       if (yych == 'I') goto yy622;
+       goto yy14;
 yy582:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy623;
-       goto yy13;
+       if (yych == 'E') goto yy623;
+       goto yy14;
 yy583:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy624;
-       goto yy13;
+       if (yych == 'N') goto yy625;
+       goto yy14;
 yy584:
-       yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy626;
-       goto yy13;
-yy585:
-       yyaccept = 19;
+       yyaccept = 18;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'C') goto yy628;
-yy586:
+       if (yych == 'C') goto yy627;
+yy585:
 #line 124 "../src/parse/lex_conf.re"
        { opts.set_yyrestore    (lex_conf_string ()); return; }
 #line 2544 "src/parse/lex_conf.cc"
+yy586:
+       yych = (unsigned char)*++cur;
+       if (yych == 'I') goto yy628;
+       goto yy14;
 yy587:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy629;
-       goto yy13;
+       if (yych == 'E') goto yy629;
+       goto yy14;
 yy588:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy630;
-       goto yy13;
+       if (yych == 's') goto yy631;
+       goto yy14;
 yy589:
        yych = (unsigned char)*++cur;
        if (yych == 's') goto yy632;
-       goto yy13;
+       goto yy14;
 yy590:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy633;
-       goto yy13;
+       if (yych == 't') goto yy633;
+       goto yy14;
 yy591:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy634;
-       goto yy13;
+       if (yych == 'o') goto yy634;
+       goto yy14;
 yy592:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy635;
-       goto yy13;
+       if (yych == 'u') goto yy635;
+       goto yy14;
 yy593:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy636;
-       goto yy13;
+       if (yych == 'z') goto yy636;
+       goto yy14;
 yy594:
        yych = (unsigned char)*++cur;
-       if (yych == 'z') goto yy637;
-       goto yy13;
+       if (yych == 's') goto yy637;
+       goto yy14;
 yy595:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy638;
-       goto yy13;
+       if (yych == 'o') goto yy639;
+       goto yy14;
 yy596:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy640;
-       goto yy13;
+       if (yych == 'x') goto yy93;
+       goto yy14;
 yy597:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy92;
-       goto yy13;
+       goto yy119;
 yy598:
        yych = (unsigned char)*++cur;
-       goto yy116;
+       if (yych == 'n') goto yy640;
+       goto yy14;
 yy599:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy641;
-       goto yy13;
+       if (yych == 'i') goto yy641;
+       goto yy14;
 yy600:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy642;
-       goto yy13;
-yy601:
        ++cur;
 #line 58 "../src/parse/lex_conf.re"
        { opts.set_version(!lex_conf_bool());          return; }
 #line 2604 "src/parse/lex_conf.cc"
+yy602:
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy642;
+       goto yy14;
 yy603:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy643;
-       goto yy13;
+       if (yych == 't') goto yy643;
+       goto yy14;
 yy604:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy644;
-       goto yy13;
+       if (yych == 'r') goto yy644;
+       goto yy14;
 yy605:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy645;
-       goto yy13;
+       goto yy125;
 yy606:
        yych = (unsigned char)*++cur;
-       goto yy122;
+       if (yych == 'l') goto yy645;
+       goto yy14;
 yy607:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy646;
-       goto yy13;
+       if (yych == 't') goto yy647;
+       goto yy14;
 yy608:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy648;
-       goto yy13;
+       if (yych == 'e') goto yy649;
+       goto yy14;
 yy609:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy650;
-       goto yy13;
+       if (yych == 'e') goto yy651;
+       goto yy14;
 yy610:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy652;
-       goto yy13;
+       if (yych == 't') goto yy653;
+       goto yy14;
 yy611:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy654;
-       goto yy13;
-yy612:
        ++cur;
 #line 155 "../src/parse/lex_conf.re"
        { opts.set_fill_arg_use (lex_conf_bool()); return; }
 #line 2644 "src/parse/lex_conf.cc"
-yy614:
+yy613:
        ++cur;
 #line 85 "../src/parse/lex_conf.re"
        { opts.set_condDividerParam (lex_conf_string ()); return; }
 #line 2649 "src/parse/lex_conf.cc"
-yy616:
+yy615:
        yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy656;
-       goto yy13;
-yy617:
+       if (yych == 'X') goto yy655;
+       goto yy14;
+yy616:
        ++cur;
 #line 76 "../src/parse/lex_conf.re"
        { opts.set_yycondtype       (lex_conf_string ()); return; }
 #line 2658 "src/parse/lex_conf.cc"
+yy618:
+       yych = (unsigned char)*++cur;
+       if (yych == 'R') goto yy657;
+       goto yy14;
 yy619:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy658;
-       goto yy13;
+       if (yych == 'e') goto yy659;
+       goto yy14;
 yy620:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy660;
-       goto yy13;
-yy621:
        ++cur;
 #line 154 "../src/parse/lex_conf.re"
        { opts.set_fill_arg     (lex_conf_string ()); return; }
 #line 2671 "src/parse/lex_conf.cc"
-yy623:
+yy622:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy661;
-       goto yy13;
-yy624:
-       yyaccept = 20;
+       if (yych == 'T') goto yy660;
+       goto yy14;
+yy623:
+       yyaccept = 19;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == ':') goto yy662;
-yy625:
+       if (yych == ':') goto yy661;
+yy624:
 #line 90 "../src/parse/lex_conf.re"
        { opts.set_state_get       (lex_conf_string ()); return; }
 #line 2683 "src/parse/lex_conf.cc"
-yy626:
+yy625:
        ++cur;
 #line 126 "../src/parse/lex_conf.re"
        { opts.set_yylessthan   (lex_conf_string ()); return; }
 #line 2688 "src/parse/lex_conf.cc"
+yy627:
+       yych = (unsigned char)*++cur;
+       if (yych == 'T') goto yy662;
+       goto yy14;
 yy628:
        yych = (unsigned char)*++cur;
        if (yych == 'T') goto yy663;
-       goto yy13;
+       goto yy14;
 yy629:
-       yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy664;
-       goto yy13;
-yy630:
-       yyaccept = 21;
+       yyaccept = 20;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == ':') goto yy665;
-       if (yych == '@') goto yy666;
-yy631:
+       if (yych == ':') goto yy664;
+       if (yych == '@') goto yy665;
+yy630:
 #line 92 "../src/parse/lex_conf.re"
        { opts.set_state_set       (lex_conf_string ()); return; }
 #line 2705 "src/parse/lex_conf.cc"
+yy631:
+       yych = (unsigned char)*++cur;
+       goto yy100;
 yy632:
        yych = (unsigned char)*++cur;
-       goto yy97;
+       if (yych == 'i') goto yy666;
+       goto yy14;
 yy633:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy667;
-       goto yy13;
+       if (yych == 'e') goto yy667;
+       goto yy14;
 yy634:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy668;
-       goto yy13;
+       if (yych == 't') goto yy668;
+       goto yy14;
 yy635:
        yych = (unsigned char)*++cur;
        if (yych == 't') goto yy669;
-       goto yy13;
+       goto yy14;
 yy636:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy670;
-       goto yy13;
+       if (yych == 'a') goto yy670;
+       goto yy14;
 yy637:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy671;
-       goto yy13;
-yy638:
        ++cur;
 #line 73 "../src/parse/lex_conf.re"
        { lex_conf_empty_class();      return; }
 #line 2733 "src/parse/lex_conf.cc"
+yy639:
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy671;
+       goto yy14;
 yy640:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy672;
-       goto yy13;
+       if (yych == 'f') goto yy672;
+       goto yy14;
 yy641:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy673;
-       goto yy13;
+       if (yych == 'o') goto yy673;
+       goto yy14;
 yy642:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy674;
-       goto yy13;
+       if (yych == 't') goto yy674;
+       goto yy14;
 yy643:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy675;
-       goto yy13;
+       if (yych == 'a') goto yy675;
+       goto yy14;
 yy644:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy676;
-       goto yy13;
+       goto yy121;
 yy645:
-       yych = (unsigned char)*++cur;
-       goto yy118;
-yy646:
        ++cur;
 #line 95 "../src/parse/lex_conf.re"
        { opts.set_yyfilllabel     (lex_conf_string ()); return; }
 #line 2761 "src/parse/lex_conf.cc"
-yy648:
+yy647:
        ++cur;
 #line 99 "../src/parse/lex_conf.re"
        { opts.set_yyaccept        (lex_conf_string ()); return; }
 #line 2766 "src/parse/lex_conf.cc"
-yy650:
+yy649:
        ++cur;
 #line 88 "../src/parse/lex_conf.re"
        { opts.set_yyctable         (lex_conf_string ()); return; }
 #line 2771 "src/parse/lex_conf.cc"
-yy652:
+yy651:
        ++cur;
 #line 166 "../src/parse/lex_conf.re"
        { lex_conf_string (); return; }
 #line 2776 "src/parse/lex_conf.cc"
-yy654:
+yy653:
        ++cur;
 #line 113 "../src/parse/lex_conf.re"
        { opts.set_yytarget (lex_conf_string ()); return; }
 #line 2781 "src/parse/lex_conf.cc"
-yy656:
+yy655:
        ++cur;
 #line 123 "../src/parse/lex_conf.re"
        { opts.set_yybackupctx  (lex_conf_string ()); return; }
 #line 2786 "src/parse/lex_conf.cc"
-yy658:
+yy657:
        ++cur;
 #line 117 "../src/parse/lex_conf.re"
        { opts.set_yyctxmarker (lex_conf_string ()); return; }
 #line 2791 "src/parse/lex_conf.cc"
+yy659:
+       yych = (unsigned char)*++cur;
+       if (yych == 'd') goto yy676;
+       goto yy14;
 yy660:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy677;
-       goto yy13;
+       if (yych == 'I') goto yy678;
+       goto yy14;
 yy661:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy679;
-       goto yy13;
+       if (yych == 'n') goto yy679;
+       goto yy14;
 yy662:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy680;
-       goto yy13;
+       if (yych == 'X') goto yy680;
+       goto yy14;
 yy663:
        yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy681;
-       goto yy13;
+       if (yych == 'I') goto yy682;
+       goto yy14;
 yy664:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy683;
-       goto yy13;
+       if (yych == 'n') goto yy683;
+       goto yy14;
 yy665:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy684;
-       goto yy13;
+       if (yych == 's') goto yy684;
+       goto yy14;
 yy666:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy685;
-       goto yy13;
+       if (yych == 't') goto yy685;
+       goto yy14;
 yy667:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy686;
-       goto yy13;
+       if (yych == 'd') goto yy686;
+       goto yy14;
 yy668:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy687;
-       goto yy13;
+       if (yych == 'o') goto yy688;
+       goto yy14;
 yy669:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy689;
-       goto yy13;
+       goto yy104;
 yy670:
        yych = (unsigned char)*++cur;
-       goto yy101;
+       if (yych == 't') goto yy689;
+       goto yy14;
 yy671:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy690;
-       goto yy13;
+       if (yych == 'i') goto yy690;
+       goto yy14;
 yy672:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy691;
-       goto yy13;
+       if (yych == 'o') goto yy691;
+       goto yy14;
 yy673:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy692;
-       goto yy13;
+       if (yych == 'n') goto yy692;
+       goto yy14;
 yy674:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy693;
-       goto yy13;
+       if (yych == 'i') goto yy693;
+       goto yy14;
 yy675:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy694;
-       goto yy13;
+       if (yych == 't') goto yy694;
+       goto yy14;
 yy676:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy695;
-       goto yy13;
-yy677:
        ++cur;
 #line 156 "../src/parse/lex_conf.re"
        { opts.set_fill_naked   (lex_conf_bool()); return; }
 #line 2863 "src/parse/lex_conf.cc"
+yy678:
+       yych = (unsigned char)*++cur;
+       if (yych == 'O') goto yy695;
+       goto yy14;
 yy679:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy696;
-       goto yy13;
+       if (yych == 'a') goto yy696;
+       goto yy14;
 yy680:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy697;
-       goto yy13;
-yy681:
        ++cur;
 #line 125 "../src/parse/lex_conf.re"
        { opts.set_yyrestorectx (lex_conf_string ()); return; }
 #line 2876 "src/parse/lex_conf.cc"
+yy682:
+       yych = (unsigned char)*++cur;
+       if (yych == 'O') goto yy697;
+       goto yy14;
 yy683:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy698;
-       goto yy13;
+       if (yych == 'a') goto yy698;
+       goto yy14;
 yy684:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy699;
-       goto yy13;
+       if (yych == 't') goto yy699;
+       goto yy14;
 yy685:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy700;
-       goto yy13;
+       if (yych == 'i') goto yy700;
+       goto yy14;
 yy686:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy701;
-       goto yy13;
-yy687:
        ++cur;
 #line 60 "../src/parse/lex_conf.re"
        { opts.set_bCaseInverted(lex_conf_bool());     return; }
 #line 2897 "src/parse/lex_conf.cc"
+yy688:
+       yych = (unsigned char)*++cur;
+       if (yych == 's') goto yy109;
+       goto yy14;
 yy689:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy106;
-       goto yy13;
+       if (yych == 'i') goto yy701;
+       goto yy14;
 yy690:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy702;
-       goto yy13;
+       if (yych == 'c') goto yy702;
+       goto yy14;
 yy691:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy703;
-       goto yy13;
+       goto yy112;
 yy692:
        yych = (unsigned char)*++cur;
-       goto yy109;
+       if (yych == '-') goto yy703;
+       goto yy14;
 yy693:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy704;
-       goto yy13;
+       if (yych == 'o') goto yy704;
+       goto yy14;
 yy694:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy705;
-       goto yy13;
+       if (yych == 'e') goto yy705;
+       goto yy14;
 yy695:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy706;
-       goto yy13;
+       if (yych == 'N') goto yy706;
+       goto yy14;
 yy696:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy707;
-       goto yy13;
+       if (yych == 'k') goto yy708;
+       goto yy14;
 yy697:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy709;
-       goto yy13;
+       if (yych == 'N') goto yy709;
+       goto yy14;
 yy698:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy710;
-       goto yy13;
+       if (yych == 'k') goto yy711;
+       goto yy14;
 yy699:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy712;
-       goto yy13;
+       if (yych == 'a') goto yy712;
+       goto yy14;
 yy700:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy713;
-       goto yy13;
+       if (yych == 'v') goto yy713;
+       goto yy14;
 yy701:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy714;
-       goto yy13;
+       if (yych == 'o') goto yy714;
+       goto yy14;
 yy702:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy715;
-       goto yy13;
+       if (yych == 'y') goto yy715;
+       goto yy14;
 yy703:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy716;
-       goto yy13;
+       if (yych == 'd') goto yy717;
+       goto yy14;
 yy704:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy718;
-       goto yy13;
+       if (yych == 'n') goto yy718;
+       goto yy14;
 yy705:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy719;
-       goto yy13;
+       goto yy108;
 yy706:
-       yych = (unsigned char)*++cur;
-       goto yy105;
-yy707:
-       yyaccept = 22;
+       yyaccept = 21;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == ':') goto yy720;
-yy708:
+       if (yych == ':') goto yy719;
+yy707:
 #line 77 "../src/parse/lex_conf.re"
        { opts.set_cond_get         (lex_conf_string ()); return; }
 #line 2975 "src/parse/lex_conf.cc"
-yy709:
+yy708:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy721;
-       goto yy13;
-yy710:
-       yyaccept = 23;
+       if (yych == 'e') goto yy720;
+       goto yy14;
+yy709:
+       yyaccept = 22;
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == ':') goto yy722;
-       if (yych == '@') goto yy723;
-yy711:
+       if (yych == ':') goto yy721;
+       if (yych == '@') goto yy722;
+yy710:
 #line 79 "../src/parse/lex_conf.re"
        { opts.set_cond_set         (lex_conf_string ()); return; }
 #line 2988 "src/parse/lex_conf.cc"
+yy711:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy723;
+       goto yy14;
 yy712:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy724;
-       goto yy13;
+       if (yych == 't') goto yy724;
+       goto yy14;
 yy713:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy725;
-       goto yy13;
+       if (yych == 'e') goto yy725;
+       goto yy14;
 yy714:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy726;
-       goto yy13;
+       if (yych == 'n') goto yy727;
+       goto yy14;
 yy715:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy728;
-       goto yy13;
-yy716:
        ++cur;
 #line 71 "../src/parse/lex_conf.re"
        { lex_conf_encoding_policy();  return; }
 #line 3009 "src/parse/lex_conf.cc"
+yy717:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy729;
+       goto yy14;
 yy718:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy730;
-       goto yy13;
+       if (yych == 's') goto yy730;
+       goto yy14;
 yy719:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy731;
-       goto yy13;
+       if (yych == 'n') goto yy731;
+       goto yy14;
 yy720:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy732;
-       goto yy13;
+       if (yych == 'd') goto yy732;
+       goto yy14;
 yy721:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy733;
-       goto yy13;
+       if (yych == 'n') goto yy734;
+       goto yy14;
 yy722:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy735;
-       goto yy13;
+       if (yych == 'c') goto yy735;
+       goto yy14;
 yy723:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy736;
-       goto yy13;
+       if (yych == 'd') goto yy736;
+       goto yy14;
 yy724:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy737;
-       goto yy13;
+       if (yych == 'e') goto yy738;
+       goto yy14;
 yy725:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy739;
-       goto yy13;
-yy726:
        ++cur;
 #line 59 "../src/parse/lex_conf.re"
        { opts.set_bCaseInsensitive(lex_conf_bool());  return; }
 #line 3046 "src/parse/lex_conf.cc"
-yy728:
+yy727:
        ++cur;
 #line 74 "../src/parse/lex_conf.re"
        { lex_conf_dfa_minimization(); return; }
 #line 3051 "src/parse/lex_conf.cc"
+yy729:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy740;
+       goto yy14;
 yy730:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy741;
-       goto yy13;
+       goto yy102;
 yy731:
        yych = (unsigned char)*++cur;
-       goto yy99;
+       if (yych == 'a') goto yy741;
+       goto yy14;
 yy732:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy742;
-       goto yy13;
-yy733:
        ++cur;
 #line 91 "../src/parse/lex_conf.re"
        { opts.set_state_get_naked (lex_conf_bool()); return; }
 #line 3067 "src/parse/lex_conf.cc"
+yy734:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy742;
+       goto yy14;
 yy735:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy743;
-       goto yy13;
+       if (yych == 'o') goto yy743;
+       goto yy14;
 yy736:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy744;
-       goto yy13;
-yy737:
        ++cur;
 #line 93 "../src/parse/lex_conf.re"
        { opts.set_state_set_naked (lex_conf_bool()); return; }
 #line 3080 "src/parse/lex_conf.cc"
-yy739:
+yy738:
        ++cur;
 #line 94 "../src/parse/lex_conf.re"
        { opts.set_state_set_arg   (lex_conf_string ()); return; }
 #line 3085 "src/parse/lex_conf.cc"
+yy740:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy744;
+       goto yy14;
 yy741:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy745;
-       goto yy13;
+       if (yych == 'k') goto yy746;
+       goto yy14;
 yy742:
        yych = (unsigned char)*++cur;
        if (yych == 'k') goto yy747;
-       goto yy13;
+       goto yy14;
 yy743:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy748;
-       goto yy13;
+       if (yych == 'n') goto yy748;
+       goto yy14;
 yy744:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy749;
-       goto yy13;
-yy745:
        ++cur;
 #line 57 "../src/parse/lex_conf.re"
        { opts.set_bNoGenerationDate(lex_conf_bool()); return; }
 #line 3106 "src/parse/lex_conf.cc"
+yy746:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy749;
+       goto yy14;
 yy747:
        yych = (unsigned char)*++cur;
        if (yych == 'e') goto yy750;
-       goto yy13;
+       goto yy14;
 yy748:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy751;
-       goto yy13;
+       if (yych == 'd') goto yy751;
+       goto yy14;
 yy749:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy752;
-       goto yy13;
+       if (yych == 'd') goto yy753;
+       goto yy14;
 yy750:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy754;
-       goto yy13;
+       if (yych == 'd') goto yy755;
+       goto yy14;
 yy751:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy756;
-       goto yy13;
-yy752:
        ++cur;
 #line 80 "../src/parse/lex_conf.re"
        { opts.set_cond_set_arg     (lex_conf_string ()); return; }
 #line 3131 "src/parse/lex_conf.cc"
-yy754:
+yy753:
        ++cur;
 #line 78 "../src/parse/lex_conf.re"
        { opts.set_cond_get_naked   (lex_conf_bool()); return; }
 #line 3136 "src/parse/lex_conf.cc"
-yy756:
+yy755:
        ++cur;
 #line 81 "../src/parse/lex_conf.re"
        { opts.set_cond_set_naked   (lex_conf_bool()); return; }
@@ -3153,90 +3153,90 @@ void Scanner::lex_conf_encoding_policy()
        if ((lim - cur) < 10) fill(10);
        yych = (unsigned char)*cur;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy762;
+               if (yych == 'f') goto yy761;
        } else {
-               if (yych <= 'i') goto yy763;
-               if (yych == 's') goto yy764;
+               if (yych <= 'i') goto yy762;
+               if (yych == 's') goto yy763;
        }
        ++cur;
-yy761:
+yy760:
 #line 174 "../src/parse/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'ignore', 'substitute', 'fail')"); }
 #line 3167 "src/parse/lex_conf.cc"
+yy761:
+       yych = (unsigned char)*(ptr = ++cur);
+       if (yych == 'a') goto yy764;
+       goto yy760;
 yy762:
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'a') goto yy765;
-       goto yy761;
+       if (yych == 'g') goto yy766;
+       goto yy760;
 yy763:
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'g') goto yy767;
-       goto yy761;
+       if (yych == 'u') goto yy767;
+       goto yy760;
 yy764:
-       yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'u') goto yy768;
-       goto yy761;
-yy765:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy769;
-yy766:
+       if (yych == 'i') goto yy768;
+yy765:
        cur = ptr;
-       goto yy761;
+       goto yy760;
+yy766:
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy769;
+       goto yy765;
 yy767:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy770;
-       goto yy766;
+       if (yych == 'b') goto yy770;
+       goto yy765;
 yy768:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy771;
-       goto yy766;
+       if (yych == 'l') goto yy771;
+       goto yy765;
 yy769:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy772;
-       goto yy766;
+       if (yych == 'o') goto yy773;
+       goto yy765;
 yy770:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy774;
-       goto yy766;
+       if (yych == 's') goto yy774;
+       goto yy765;
 yy771:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy775;
-       goto yy766;
-yy772:
        ++cur;
 #line 178 "../src/parse/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_FAIL);       return; }
 #line 3210 "src/parse/lex_conf.cc"
+yy773:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy775;
+       goto yy765;
 yy774:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy776;
-       goto yy766;
+       if (yych == 't') goto yy776;
+       goto yy765;
 yy775:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy777;
-       goto yy766;
+       if (yych == 'e') goto yy777;
+       goto yy765;
 yy776:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy778;
-       goto yy766;
+       if (yych == 'i') goto yy779;
+       goto yy765;
 yy777:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy780;
-       goto yy766;
-yy778:
        ++cur;
 #line 176 "../src/parse/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_IGNORE);     return; }
 #line 3231 "src/parse/lex_conf.cc"
-yy780:
+yy779:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy766;
+       if (yych != 't') goto yy765;
        yych = (unsigned char)*++cur;
-       if (yych != 'u') goto yy766;
+       if (yych != 'u') goto yy765;
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy766;
+       if (yych != 't') goto yy765;
        yych = (unsigned char)*++cur;
-       if (yych != 'e') goto yy766;
+       if (yych != 'e') goto yy765;
        ++cur;
 #line 177 "../src/parse/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); return; }
@@ -3255,66 +3255,66 @@ void Scanner::lex_conf_input()
        unsigned char yych;
        if ((lim - cur) < 7) fill(7);
        yych = (unsigned char)*cur;
-       if (yych <= 'b') goto yy788;
-       if (yych <= 'c') goto yy790;
-       if (yych <= 'd') goto yy791;
-yy788:
+       if (yych <= 'b') goto yy787;
+       if (yych <= 'c') goto yy789;
+       if (yych <= 'd') goto yy790;
+yy787:
        ++cur;
-yy789:
+yy788:
 #line 186 "../src/parse/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'default', 'custom')"); }
 #line 3268 "src/parse/lex_conf.cc"
+yy789:
+       yych = (unsigned char)*(ptr = ++cur);
+       if (yych == 'u') goto yy791;
+       goto yy788;
 yy790:
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'u') goto yy792;
-       goto yy789;
+       if (yych == 'e') goto yy793;
+       goto yy788;
 yy791:
-       yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'e') goto yy794;
-       goto yy789;
-yy792:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy795;
-yy793:
+       if (yych == 's') goto yy794;
+yy792:
        cur = ptr;
-       goto yy789;
+       goto yy788;
+yy793:
+       yych = (unsigned char)*++cur;
+       if (yych == 'f') goto yy795;
+       goto yy792;
 yy794:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy796;
-       goto yy793;
+       if (yych == 't') goto yy796;
+       goto yy792;
 yy795:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy797;
-       goto yy793;
+       if (yych == 'a') goto yy797;
+       goto yy792;
 yy796:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy798;
-       goto yy793;
+       if (yych == 'o') goto yy798;
+       goto yy792;
 yy797:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy799;
-       goto yy793;
+       if (yych == 'u') goto yy799;
+       goto yy792;
 yy798:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy800;
-       goto yy793;
+       if (yych == 'm') goto yy800;
+       goto yy792;
 yy799:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy801;
-       goto yy793;
+       if (yych == 'l') goto yy802;
+       goto yy792;
 yy800:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy803;
-       goto yy793;
-yy801:
        ++cur;
 #line 189 "../src/parse/lex_conf.re"
        { opts.set_input_api(InputAPI::CUSTOM);  return; }
 #line 3315 "src/parse/lex_conf.cc"
-yy803:
+yy802:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy793;
+       if (yych != 't') goto yy792;
        ++cur;
 #line 188 "../src/parse/lex_conf.re"
        { opts.set_input_api(InputAPI::DEFAULT); return; }
@@ -3333,94 +3333,94 @@ void Scanner::lex_conf_empty_class()
        unsigned char yych;
        if ((lim - cur) < 11) fill(11);
        yych = (unsigned char)*cur;
-       if (yych == 'e') goto yy810;
-       if (yych == 'm') goto yy811;
+       if (yych == 'e') goto yy809;
+       if (yych == 'm') goto yy810;
        ++cur;
-yy809:
+yy808:
 #line 197 "../src/parse/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'match-empty', 'match-none', 'error')"); }
 #line 3344 "src/parse/lex_conf.cc"
+yy809:
+       yych = (unsigned char)*(ptr = ++cur);
+       if (yych == 'r') goto yy811;
+       goto yy808;
 yy810:
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'r') goto yy812;
-       goto yy809;
+       if (yych == 'a') goto yy813;
+       goto yy808;
 yy811:
-       yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'a') goto yy814;
-       goto yy809;
-yy812:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy815;
-yy813:
+       if (yych == 'r') goto yy814;
+yy812:
        cur = ptr;
-       goto yy809;
+       goto yy808;
+yy813:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy815;
+       goto yy812;
 yy814:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy816;
-       goto yy813;
+       if (yych == 'o') goto yy816;
+       goto yy812;
 yy815:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy817;
-       goto yy813;
+       if (yych == 'c') goto yy817;
+       goto yy812;
 yy816:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy818;
-       goto yy813;
+       if (yych == 'r') goto yy818;
+       goto yy812;
 yy817:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy819;
-       goto yy813;
+       if (yych == 'h') goto yy820;
+       goto yy812;
 yy818:
-       yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy821;
-       goto yy813;
-yy819:
        ++cur;
 #line 201 "../src/parse/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_ERROR);       return; }
 #line 3383 "src/parse/lex_conf.cc"
-yy821:
+yy820:
        yych = (unsigned char)*++cur;
-       if (yych != '-') goto yy813;
+       if (yych != '-') goto yy812;
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy823;
-       if (yych == 'n') goto yy824;
-       goto yy813;
+       if (yych == 'e') goto yy822;
+       if (yych == 'n') goto yy823;
+       goto yy812;
+yy822:
+       yych = (unsigned char)*++cur;
+       if (yych == 'm') goto yy824;
+       goto yy812;
 yy823:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy825;
-       goto yy813;
+       if (yych == 'o') goto yy825;
+       goto yy812;
 yy824:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy826;
-       goto yy813;
+       if (yych == 'p') goto yy826;
+       goto yy812;
 yy825:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy827;
-       goto yy813;
+       if (yych == 'n') goto yy827;
+       goto yy812;
 yy826:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy828;
-       goto yy813;
+       if (yych == 't') goto yy828;
+       goto yy812;
 yy827:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy829;
-       goto yy813;
+       if (yych == 'e') goto yy829;
+       goto yy812;
 yy828:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy830;
-       goto yy813;
+       if (yych == 'y') goto yy831;
+       goto yy812;
 yy829:
-       yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy832;
-       goto yy813;
-yy830:
        ++cur;
 #line 200 "../src/parse/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE);  return; }
 #line 3423 "src/parse/lex_conf.cc"
-yy832:
+yy831:
        ++cur;
 #line 199 "../src/parse/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); return; }
@@ -3439,54 +3439,54 @@ void Scanner::lex_conf_dfa_minimization()
        unsigned char yych;
        if ((lim - cur) < 5) fill(5);
        yych = (unsigned char)*cur;
-       if (yych == 'm') goto yy838;
-       if (yych == 't') goto yy839;
+       if (yych == 'm') goto yy837;
+       if (yych == 't') goto yy838;
        ++cur;
-yy837:
+yy836:
 #line 209 "../src/parse/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'table', 'moore')"); }
 #line 3450 "src/parse/lex_conf.cc"
+yy837:
+       yych = (unsigned char)*(ptr = ++cur);
+       if (yych == 'o') goto yy839;
+       goto yy836;
 yy838:
        yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'o') goto yy840;
-       goto yy837;
+       if (yych == 'a') goto yy841;
+       goto yy836;
 yy839:
-       yych = (unsigned char)*(ptr = ++cur);
-       if (yych == 'a') goto yy842;
-       goto yy837;
-yy840:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy843;
-yy841:
+       if (yych == 'o') goto yy842;
+yy840:
        cur = ptr;
-       goto yy837;
+       goto yy836;
+yy841:
+       yych = (unsigned char)*++cur;
+       if (yych == 'b') goto yy843;
+       goto yy840;
 yy842:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy844;
-       goto yy841;
+       if (yych == 'r') goto yy844;
+       goto yy840;
 yy843:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy845;
-       goto yy841;
+       if (yych == 'l') goto yy845;
+       goto yy840;
 yy844:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy846;
-       goto yy841;
+       if (yych == 'e') goto yy846;
+       goto yy840;
 yy845:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy847;
-       goto yy841;
+       if (yych == 'e') goto yy848;
+       goto yy840;
 yy846:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy849;
-       goto yy841;
-yy847:
        ++cur;
 #line 212 "../src/parse/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_MOORE); return; }
 #line 3489 "src/parse/lex_conf.cc"
-yy849:
+yy848:
        ++cur;
 #line 211 "../src/parse/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_TABLE); return; }
@@ -3551,47 +3551,47 @@ void Scanner::lex_conf_assign ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy855;
+               if (yych == '\t') goto yy854;
        } else {
-               if (yych <= ' ') goto yy855;
-               if (yych == '=') goto yy856;
+               if (yych <= ' ') goto yy854;
+               if (yych == '=') goto yy855;
        }
        ++cur;
-yy854:
+yy853:
 #line 231 "../src/parse/lex_conf.re"
        { fatal ("missing '=' in configuration"); }
 #line 3564 "src/parse/lex_conf.cc"
-yy855:
+yy854:
        yych = (unsigned char)*(ptr = ++cur);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy859;
-               goto yy854;
+               if (yych == '\t') goto yy858;
+               goto yy853;
        } else {
-               if (yych <= ' ') goto yy859;
-               if (yych != '=') goto yy854;
+               if (yych <= ' ') goto yy858;
+               if (yych != '=') goto yy853;
        }
-yy856:
+yy855:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy856;
+               goto yy855;
        }
 #line 232 "../src/parse/lex_conf.re"
        { return; }
 #line 3583 "src/parse/lex_conf.cc"
-yy859:
+yy858:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy859;
+               if (yych == '\t') goto yy858;
        } else {
-               if (yych <= ' ') goto yy859;
-               if (yych == '=') goto yy856;
+               if (yych <= ' ') goto yy858;
+               if (yych == '=') goto yy855;
        }
        cur = ptr;
-       goto yy854;
+       goto yy853;
 }
 #line 233 "../src/parse/lex_conf.re"
 
@@ -3640,37 +3640,37 @@ void Scanner::lex_conf_semicolon ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy866;
+               if (yych == '\t') goto yy865;
        } else {
-               if (yych <= ' ') goto yy866;
-               if (yych == ';') goto yy867;
+               if (yych <= ' ') goto yy865;
+               if (yych == ';') goto yy866;
        }
        ++cur;
-yy865:
+yy864:
 #line 239 "../src/parse/lex_conf.re"
        { fatal ("missing ending ';' in configuration"); }
 #line 3653 "src/parse/lex_conf.cc"
-yy866:
+yy865:
        yych = (unsigned char)*(ptr = ++cur);
        if (yybm[0+yych] & 128) {
-               goto yy869;
+               goto yy868;
        }
-       if (yych != ';') goto yy865;
-yy867:
+       if (yych != ';') goto yy864;
+yy866:
        ++cur;
 #line 240 "../src/parse/lex_conf.re"
        { return; }
 #line 3664 "src/parse/lex_conf.cc"
-yy869:
+yy868:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy869;
+               goto yy868;
        }
-       if (yych == ';') goto yy867;
+       if (yych == ';') goto yy866;
        cur = ptr;
-       goto yy865;
+       goto yy864;
 }
 #line 241 "../src/parse/lex_conf.re"
 
@@ -3726,20 +3726,20 @@ int32_t Scanner::lex_conf_number ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= '/') {
-               if (yych == '-') goto yy875;
+               if (yych == '-') goto yy874;
        } else {
-               if (yych <= '0') goto yy876;
-               if (yych <= '9') goto yy878;
+               if (yych <= '0') goto yy875;
+               if (yych <= '9') goto yy877;
        }
+yy873:
 yy874:
-yy875:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy874;
-       if (yych <= '9') goto yy878;
-       goto yy874;
-yy876:
+       if (yych <= '0') goto yy873;
+       if (yych <= '9') goto yy877;
+       goto yy873;
+yy875:
        ++cur;
-yy877:
+yy876:
 #line 255 "../src/parse/lex_conf.re"
        {
                int32_t n = 0;
@@ -3751,14 +3751,14 @@ yy877:
                return n;
        }
 #line 3754 "src/parse/lex_conf.cc"
-yy878:
+yy877:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy878;
+               goto yy877;
        }
-       goto yy877;
+       goto yy876;
 }
 #line 264 "../src/parse/lex_conf.re"
 
@@ -3811,28 +3811,28 @@ std::string Scanner::lex_conf_string ()
        yych = (unsigned char)*cur;
        if (yych <= '!') {
                if (yych <= '\n') {
-                       if (yych <= 0x08) goto yy883;
+                       if (yych <= 0x08) goto yy882;
                } else {
-                       if (yych != ' ') goto yy883;
+                       if (yych != ' ') goto yy882;
                }
        } else {
                if (yych <= '\'') {
-                       if (yych <= '"') goto yy886;
-                       if (yych <= '&') goto yy883;
-                       goto yy886;
+                       if (yych <= '"') goto yy885;
+                       if (yych <= '&') goto yy882;
+                       goto yy885;
                } else {
-                       if (yych != ';') goto yy883;
+                       if (yych != ';') goto yy882;
                }
        }
 #line 291 "../src/parse/lex_conf.re"
        { goto end; }
 #line 3830 "src/parse/lex_conf.cc"
-yy883:
+yy882:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy883;
+               goto yy882;
        }
 #line 287 "../src/parse/lex_conf.re"
        {
@@ -3840,7 +3840,7 @@ yy883:
                goto end;
        }
 #line 3843 "src/parse/lex_conf.cc"
-yy886:
+yy885:
        ++cur;
 #line 273 "../src/parse/lex_conf.re"
        {
index b60ccc6e2510b20f03a1cc562522b3da33b9dba1..990bc18d297f8bf49520b5d3b1ae8fc06703aaf4 100644 (file)
@@ -209,14 +209,14 @@ void emit_accept(OutputFile &o, uint32_t ind, bool &readCh,
        o.wind(ind).ws("}\n");
 }
 
-static void subst_contexts(std::string &action,
+static void subst_tags(std::string &action,
        const Rule &rule, const std::valarray<Tag> &tags)
 {
        for (size_t i = rule.ltag; i < rule.htag; ++i) {
                const Tag &tag = tags[i];
                const std::string s = tag.type == Tag::VAR
-                       ? opts->input_api.expr_ctx(vartag_expr(tag.name, tag.rule))
-                       : opts->input_api.expr_ctx_fix(tag, tags);
+                       ? opts->input_api.expr_tag(vartag_expr(tag.name, tag.rule))
+                       : opts->input_api.expr_tag_fix(tag, tags);
                strrreplace(action, "@" + *tag.name, s);
        }
 }
@@ -229,7 +229,7 @@ void emit_rule(OutputFile &o, uint32_t ind, const DFA &dfa, size_t rule_idx)
        if (rule.trail != Tag::NONE) {
                const Tag &tag = dfa.tags[rule.trail];
                if (tag.type == Tag::VAR) {
-                       if (dfa.base_ctxmarker) {
+                       if (dfa.basetag) {
                                o.wstring(opts->input_api.stmt_restorectx_var_base(ind,
                                        vartag_expr(tag.name, tag.rule)));
                        } else {
@@ -253,7 +253,7 @@ void emit_rule(OutputFile &o, uint32_t ind, const DFA &dfa, size_t rule_idx)
                                o.wind(ind).wstring(yySetupRule).ws("\n");
                        }
                        std::string action = code->text;
-                       subst_contexts(action, rule, dfa.tags);
+                       subst_tags(action, rule, dfa.tags);
                        o.wline_info(code->loc.line, code->loc.filename.c_str())
                                .wind(ind).wstring(action).ws("\n")
                                .wdelay_line_info();
@@ -388,7 +388,7 @@ void gen_goto(OutputFile &o, uint32_t ind, bool &readCh,
 void gen_settags(OutputFile &o, uint32_t ind, const DFA &dfa, size_t tags)
 {
        if (tags != 0) {
-               if (dfa.base_ctxmarker) {
+               if (dfa.basetag) {
                        o.wstring(opts->input_api.stmt_dist(ind,
                                dfa.tagpool[tags], dfa.tags));
                } else {
index aa6d72996edfa02c3f11fdea86c6711c6afcba57..8d50dd47e86e99d3090043fe0fc77f014bde38df 100644 (file)
@@ -143,15 +143,15 @@ void DFA::emit(Output & output, uint32_t& ind, bool isLastCond, bool& bPrologBra
        OutputFile &o = output.source;
        OutputBlock &ob = o.block();
 
-       std::set<std::string> ctxnames;
-       if (base_ctxmarker) {
+       std::set<std::string> tagnames;
+       if (basetag) {
                for (size_t i = 0; i < tags.size(); ++i) {
                        const Tag &t = tags[i];
                        if (t.type == Tag::VAR && t.var.orig == i) {
-                               ctxnames.insert(vartag_name(t.name, t.rule));
+                               tagnames.insert(vartag_name(t.name, t.rule));
                        }
                }
-               ob.contexts.insert(ctxnames.begin(), ctxnames.end());
+               ob.tags.insert(tagnames.begin(), tagnames.end());
        }
 
        bool bProlog = (!opts->cFlag || !bWroteCondCheck);
@@ -182,7 +182,7 @@ void DFA::emit(Output & output, uint32_t& ind, bool isLastCond, bool& bPrologBra
                {
                        emit_data(*skeleton, o.file_name);
                        emit_start(*skeleton, o, max_fill, need_backup, need_backupctx,
-                               need_accept, base_ctxmarker, ctxnames);
+                               need_accept, basetag, tagnames);
                        uint32_t i = 2;
                        emit_body (o, i, used_labels, initial_label);
                        emit_end(*skeleton, o, need_backup, need_backupctx);
@@ -215,7 +215,7 @@ void DFA::emit(Output & output, uint32_t& ind, bool isLastCond, bool& bPrologBra
                                        o.wind(ind).wstring(opts->yyctype).ws(" ").wstring(opts->yych).ws(";\n");
                                }
                                o.wdelay_yyaccept_init (ind);
-                               o.wdelay_contexts(ind, NULL);
+                               o.wdelay_tags(ind, NULL);
                        }
                        else
                        {
@@ -256,7 +256,7 @@ void DFA::emit(Output & output, uint32_t& ind, bool isLastCond, bool& bPrologBra
                        }
                        o.wstring(opts->condPrefix).wstring(cond).ws(":\n");
                }
-               if (base_ctxmarker) {
+               if (basetag) {
                        o.wstring(opts->input_api.stmt_backupctx(ind));
                }
                if (opts->cFlag && opts->bFlag && BitMap::first)
@@ -370,7 +370,7 @@ void genCondGoto(OutputFile & o, uint32_t ind, const std::vector<std::string> &
 std::string vartag_name(const std::string *name, size_t rule)
 {
        std::ostringstream s;
-       s << opts->contexts_prefix << rule;
+       s << opts->tags_prefix << rule;
        if (name != NULL) {
                s << *name;
        }
@@ -380,7 +380,7 @@ std::string vartag_name(const std::string *name, size_t rule)
 std::string vartag_expr(const std::string *name, size_t rule)
 {
        const std::string s = vartag_name(name, rule);
-       std::string e = opts->contexts_expr;
+       std::string e = opts->tags_expr;
        strrreplace(e, "@@", s);
        return e;
 }
index 1aab82bf52a131a82be0148dccefac775bc5c728..b61269d41b0668aeded5dc99a79a02b56162254f 100644 (file)
@@ -102,7 +102,7 @@ std::string InputAPI::expr_dist () const
                        s = "(" + opts->yycursor + " - " + opts->yyctxmarker + ")";
                        break;
                case CUSTOM:
-                       s = opts->yydist + "()";
+                       s = opts->tags_yydist + "()";
                        break;
        }
        return s;
@@ -121,34 +121,34 @@ std::string InputAPI::stmt_dist (uint32_t ind, const bool *mask,
        return s + expr_dist() + ";\n";
 }
 
-std::string InputAPI::expr_ctx(const std::string &var) const
+std::string InputAPI::expr_tag(const std::string &var) const
 {
        switch (type_) {
                case DEFAULT: return "(" + opts->yyctxmarker + " + " + var + ")";
-               case CUSTOM:  return opts->yyctx + "(" + var + ")";
+               case CUSTOM:  return opts->tags_yytag + "(" + var + ")";
                default:      assert(false);
        }
 }
 
-std::string InputAPI::expr_ctx_fix(const Tag &tag, const std::valarray<Tag> &tags) const
+std::string InputAPI::expr_tag_fix(const Tag &tag, const std::valarray<Tag> &tags) const
 {
        std::ostringstream s;
        if (tag.fix.base == Tag::NONE) {
                switch (type_) {
                        case DEFAULT:
                                // optimize '(YYCTXMARKER + ((YYCURSOR - YCTXMARKER) - yyctx))'
-                               // to       '(YYCURSOR - yyctx)'
+                               // to       '(YYCURSOR - yytag)'
                                s << "(" << opts->yycursor << " - " << tag.fix.dist << ")";
                                break;
                        case CUSTOM:
-                               s << opts->yyctx << "(" << opts->yydist << "() - " << tag.fix.dist << ")";
+                               s << opts->tags_yytag << "(" << opts->tags_yydist << "() - " << tag.fix.dist << ")";
                                break;
                }
                return s.str();
        } else {
                const Tag &t = tags[tags[tag.fix.base].var.orig];
                s << "(" << vartag_expr(t.name, t.rule) << " - " << tag.fix.dist << ")";
-               return expr_ctx(s.str());
+               return expr_tag(s.str());
        }
 }
 
@@ -175,7 +175,7 @@ std::string InputAPI::stmt_restorectx_fix(uint32_t ind, size_t dist) const
                        s << opts->yycursor << " -= " << dist;
                        break;
                case CUSTOM:
-                       s << opts->yyrestorectx << " (" + opts->yydist + "() - " << dist << ")";
+                       s << opts->yyrestorectx << " (" + opts->tags_yydist + "() - " << dist << ")";
                        break;
        }
        return indent(ind) + s.str() + ";\n";
index 47e08f12f32cb9b533be7b1b8d50df5e8528ea96..b05f991160ed55a1ba407513e9ca14ff59192e0d 100644 (file)
@@ -6,7 +6,7 @@
 #include <string>
 #include <valarray>
 
-#include "src/ir/ctx.h"
+#include "src/ir/tag.h"
 
 namespace re2c
 {
@@ -35,8 +35,8 @@ public:
        std::string expr_dist () const;
        std::string stmt_dist (uint32_t ind, const bool *tagmask,
                const std::valarray<Tag> &tags) const;
-       std::string expr_ctx(const std::string &var) const;
-       std::string expr_ctx_fix(const Tag &tag, const std::valarray<Tag> &tags) const;
+       std::string expr_tag(const std::string &var) const;
+       std::string expr_tag_fix(const Tag &tag, const std::valarray<Tag> &tags) const;
        std::string stmt_restore (uint32_t ind) const;
        std::string stmt_restorectx_fix (uint32_t ind, size_t dist) const;
        std::string stmt_restorectx_var (uint32_t ind) const;
index 983a0a93409ae7fcc06ce016a4fdc200e37307ca..b1cfbd7f890f23fb7675d6c253f6f8d97c44715f 100644 (file)
@@ -21,8 +21,8 @@ OutputFragment::OutputFragment (type_t t, uint32_t i)
 
 OutputFragment::~OutputFragment()
 {
-       if (type == CONTEXTS) {
-               delete contexts;
+       if (type == TAGS) {
+               delete tags;
        }
 }
 
@@ -48,7 +48,7 @@ OutputBlock::OutputBlock ()
        , user_start_label ()
        , line (0)
        , types ()
-       , contexts ()
+       , tags ()
 {
        fragments.push_back (new OutputFragment (OutputFragment::CODE, 0));
 }
@@ -67,7 +67,7 @@ OutputFile::OutputFile(const std::string &fn)
        , blocks ()
        , label_counter ()
        , warn_condition_order (!opts->tFlag) // see note [condition order]
-       , default_contexts (true)
+       , default_tags (true)
 {
        new_block ();
 }
@@ -208,12 +208,12 @@ void OutputFile::insert_code ()
        block().fragments.push_back (new OutputFragment (OutputFragment::CODE, 0));
 }
 
-OutputFile &OutputFile::wdelay_contexts(uint32_t ind, const ConfContexts *cf)
+OutputFile &OutputFile::wdelay_tags(uint32_t ind, const ConfTags *cf)
 {
-       OutputFragment *frag = new OutputFragment(OutputFragment::CONTEXTS, ind);
-       frag->contexts = cf;
+       OutputFragment *frag = new OutputFragment(OutputFragment::TAGS, ind);
+       frag->tags = cf;
        if (cf) {
-               default_contexts = false;
+               default_tags = false;
        }
        blocks.back()->fragments.push_back(frag);
        insert_code();
@@ -275,7 +275,7 @@ void OutputFile::new_block ()
 
 void OutputFile::global_lists(
        uniq_vector_t<std::string> &types,
-       std::set<std::string> &contexts) const
+       std::set<std::string> &tags) const
 {
        for (unsigned int i = 0; i < blocks.size(); ++i) {
 
@@ -284,14 +284,14 @@ void OutputFile::global_lists(
                        types.find_or_add(ts[j]);
                }
 
-               const std::set<std::string> &cs = blocks[i]->contexts;
-               contexts.insert(cs.begin(), cs.end());
+               const std::set<std::string> &cs = blocks[i]->tags;
+               tags.insert(cs.begin(), cs.end());
        }
 }
 
 void OutputFile::emit(
        const uniq_vector_t<std::string> &global_types,
-       const std::set<std::string> &global_contexts,
+       const std::set<std::string> &global_tags,
        size_t max_fill)
 {
        if (file != NULL)
@@ -307,19 +307,19 @@ void OutputFile::emit(
                                {
                                        case OutputFragment::CODE:
                                                break;
-                                       case OutputFragment::CONTEXTS:
-                                               if (f.contexts) {
-                                                       output_contexts(f.stream, *f.contexts, global_contexts);
-                                               } else if (default_contexts) {
-                                                       output_contexts_default(f.stream, f.indent, b.contexts);
-                                               }
-                                               break;
                                        case OutputFragment::LINE_INFO:
                                                output_line_info (f.stream, line_count + 1, file_name);
                                                break;
                                        case OutputFragment::STATE_GOTO:
                                                output_state_goto (f.stream, f.indent, 0);
                                                break;
+                                       case OutputFragment::TAGS:
+                                               if (f.tags) {
+                                                       output_tags(f.stream, *f.tags, global_tags);
+                                               } else if (default_tags) {
+                                                       output_tags_default(f.stream, f.indent, b.tags);
+                                               }
+                                               break;
                                        case OutputFragment::TYPES:
                                                output_types (f.stream, f.indent, global_types);
                                                break;
@@ -393,43 +393,39 @@ Output::~Output ()
        if (!warn.error ())
        {
                uniq_vector_t<std::string> types;
-               std::set<std::string> contexts;
-               source.global_lists(types, contexts);
+               std::set<std::string> tags;
+               source.global_lists(types, tags);
 
-               source.emit(types, contexts, max_fill);
+               source.emit(types, tags, max_fill);
                header.emit(types);
        }
 }
 
-void output_contexts(
-       std::ostream &o,
-       const ConfContexts &conf,
-       const std::set<std::string> &contexts)
+void output_tags(std::ostream &o, const ConfTags &conf,
+       const std::set<std::string> &tags)
 {
        std::set<std::string>::const_iterator
-               ctx = contexts.begin(),
-               end = contexts.end();
-       for (;ctx != end;) {
+               tag = tags.begin(),
+               end = tags.end();
+       for (;tag != end;) {
                std::string line = conf.line;
-               strrreplace(line, "@@", *ctx);
+               strrreplace(line, "@@", *tag);
                o << line;
-               if (++ctx == end) {
+               if (++tag == end) {
                        break;
                }
                o << conf.sep;
        }
 }
 
-void output_contexts_default(
-       std::ostream &o,
-       uint32_t ind,
-       const std::set<std::string> &contexts)
+void output_tags_default(std::ostream &o, uint32_t ind,
+       const std::set<std::string> &tags)
 {
        std::set<std::string>::const_iterator
-               ctx = contexts.begin(),
-               end = contexts.end();
-       for (;ctx != end; ++ctx) {
-               o << indent(ind) << "long " << *ctx << ";\n";
+               tag = tags.begin(),
+               end = tags.end();
+       for (;tag != end; ++tag) {
+               o << indent(ind) << "long " << *tag << ";\n";
        }
 }
 
index 63adfa367aefded4f708060e19d3f3e718811df4..1a2fba0a910d6a674c69301da97a0a5c9dd8bb52 100644 (file)
 namespace re2c
 {
 
-struct ConfContexts
+struct ConfTags
 {
        std::string line;
        std::string sep;
-       ConfContexts(): line("long @@;"), sep("") {}
+       ConfTags(): line("long @@;"), sep("") {}
 };
 
 struct OutputFragment
 {
        enum type_t
                { CODE
-               , CONTEXTS
 //             , CONFIG
                , LINE_INFO
                , STATE_GOTO
+               , TAGS
                , TYPES
                , WARN_CONDITION_ORDER
                , YYACCEPT_INIT
@@ -44,7 +44,7 @@ struct OutputFragment
        uint32_t indent;
        union
        {
-               const ConfContexts* contexts;
+               const ConfTags* tags;
        };
 
        OutputFragment (type_t t, uint32_t i);
@@ -60,7 +60,7 @@ struct OutputBlock
        std::string user_start_label;
        uint32_t line;
        std::vector<std::string> types;
-       std::set<std::string> contexts;
+       std::set<std::string> tags;
 
        OutputBlock ();
        ~OutputBlock ();
@@ -78,7 +78,7 @@ private:
 public:
        counter_t<label_t> label_counter;
        bool warn_condition_order;
-       bool default_contexts;
+       bool default_tags;
 
        OutputFile(const std::string &fn);
        ~OutputFile ();
@@ -107,7 +107,7 @@ public:
        OutputFile & wind (uint32_t ind);
 
        // delayed output
-       OutputFile & wdelay_contexts(uint32_t ind, const ConfContexts *cf);
+       OutputFile & wdelay_tags(uint32_t ind, const ConfTags *cf);
        OutputFile & wdelay_line_info ();
        OutputFile & wdelay_state_goto (uint32_t ind);
        OutputFile & wdelay_types ();
@@ -116,10 +116,10 @@ public:
        OutputFile & wdelay_yymaxfill ();
 
        void global_lists(uniq_vector_t<std::string> &types,
-               std::set<std::string> &contexts) const;
+               std::set<std::string> &tags) const;
 
        void emit(const uniq_vector_t<std::string> &global_types,
-               const std::set<std::string> &global_contexts, size_t max_fill);
+               const std::set<std::string> &global_tags, size_t max_fill);
 
        FORBID_COPY (OutputFile);
 };
@@ -150,10 +150,10 @@ struct Output
        ~Output ();
 };
 
-void output_contexts(std::ostream &o, const ConfContexts &conf,
-       const std::set<std::string> &contexts);
-void output_contexts_default(std::ostream &o, uint32_t ind,
-       const std::set<std::string> &contexts);
+void output_tags(std::ostream &o, const ConfTags &conf,
+       const std::set<std::string> &tags);
+void output_tags_default(std::ostream &o, uint32_t ind,
+       const std::set<std::string> &tags);
 void output_line_info (std::ostream &, uint32_t, const std::string&);
 void output_state_goto (std::ostream &, uint32_t, uint32_t);
 void output_types(std::ostream &o, uint32_t, const uniq_vector_t<std::string> &types);
index f89f5bd20d523a5ce008cb2f30d0a8a33c090211..946d3497f2445e2e758b96e09fe4fd88d646177f 100644 (file)
@@ -76,10 +76,10 @@ void opt_t::fix ()
                        state_set = Opt::baseopt.state_set;
                        state_set_arg = Opt::baseopt.state_set_arg;
                        state_set_naked = Opt::baseopt.state_set_naked;
-                       yyctx = Opt::baseopt.yyctx;
-                       yydist = Opt::baseopt.yydist;
-                       contexts_prefix = Opt::baseopt.contexts_prefix;
-                       contexts_expr = Opt::baseopt.contexts_expr;
+                       tags_yytag = Opt::baseopt.tags_yytag;
+                       tags_yydist = Opt::baseopt.tags_yydist;
+                       tags_prefix = Opt::baseopt.tags_prefix;
+                       tags_expr = Opt::baseopt.tags_expr;
                        yyfilllabel = Opt::baseopt.yyfilllabel;
                        yynext = Opt::baseopt.yynext;
                        yyaccept = Opt::baseopt.yyaccept;
@@ -154,12 +154,12 @@ void opt_t::fix ()
                bUseStateAbort = Opt::baseopt.bUseStateAbort;
                bUseStateNext = Opt::baseopt.bUseStateNext;
        }
-       if (!contexts)
+       if (!tags)
        {
-               yyctx = Opt::baseopt.yyctx;
-               yydist = Opt::baseopt.yydist;
-               contexts_prefix = Opt::baseopt.contexts_prefix;
-               contexts_expr = Opt::baseopt.contexts_expr;
+               tags_yytag = Opt::baseopt.tags_yytag;
+               tags_yydist = Opt::baseopt.tags_yydist;
+               tags_prefix = Opt::baseopt.tags_prefix;
+               tags_expr = Opt::baseopt.tags_expr;
        }
        if (!bFlag)
        {
@@ -226,8 +226,8 @@ void opt_t::fix ()
                default:
                        break;
        }
-       if (contexts) {
-               warn.set(Warn::SELFOVERLAPPING_CONTEXTS, Warn::WERROR);
+       if (tags) {
+               warn.set(Warn::NONDETERMINISTIC_TAGS, Warn::WERROR);
        }
        if (bFlag)
        {
@@ -334,8 +334,8 @@ void Opt::reset_mapCodeName ()
        useropt->yyrestore = Opt::baseopt.yyrestore;
        useropt->yyrestorectx = Opt::baseopt.yyrestorectx;
        useropt->yyskip = Opt::baseopt.yyskip;
-       useropt->yyctx = Opt::baseopt.yyctx;
-       useropt->yydist = Opt::baseopt.yydist;
+       useropt->tags_yytag = Opt::baseopt.tags_yytag;
+       useropt->tags_yydist = Opt::baseopt.tags_yydist;
        useropt->yyfilllabel = Opt::baseopt.yyfilllabel;
        useropt->yynext = Opt::baseopt.yynext;
        useropt->yyaccept = Opt::baseopt.yyaccept;
index 31d358bcc0a6df38b9c99362854e092ee0f0b411..667808352e4279ccae46d482f403078696649fdd 100644 (file)
@@ -54,12 +54,12 @@ namespace re2c
        OPT (std::string, yyaccept, "yyaccept") \
        OPT (bool, bUseStateAbort, false) \
        OPT (bool, bUseStateNext, false) \
-       /* contexts */ \
-       OPT (bool, contexts, false) \
-       OPT (std::string, yyctx, "YYCTX") \
-       OPT (std::string, yydist, "YYDIST") \
-       OPT (std::string, contexts_prefix, "yyctx") \
-       OPT (std::string, contexts_expr, "@@") \
+       /* tags */ \
+       OPT (bool, tags, false) \
+       OPT (std::string, tags_yytag, "YYTAG") \
+       OPT (std::string, tags_yydist, "YYDIST") \
+       OPT (std::string, tags_prefix, "yytag") \
+       OPT (std::string, tags_expr, "@@") \
        /* reuse */ \
        OPT (bool, rFlag, false) \
        /* partial flex syntax support */ \
index 43e378f8adf423452d80368858c43e64d802df6e..ebc6f21499ce0b87d1dbfe3196f6b7448a3ba124 100644 (file)
@@ -81,7 +81,7 @@ opt_warn:
        "condition-order"          end { warn.set (Warn::CONDITION_ORDER,          option); goto opt; }
        "empty-character-class"    end { warn.set (Warn::EMPTY_CHARACTER_CLASS,    option); goto opt; }
        "match-empty-string"       end { warn.set (Warn::MATCH_EMPTY_STRING,       option); goto opt; }
-       "selfoverlapping-contexts" end { warn.set (Warn::SELFOVERLAPPING_CONTEXTS, option); goto opt; }
+       "nondeterministic-tags"    end { warn.set (Warn::NONDETERMINISTIC_TAGS,    option); goto opt; }
        "swapped-range"            end { warn.set (Warn::SWAPPED_RANGE,            option); goto opt; }
        "undefined-control-flow"   end { warn.set (Warn::UNDEFINED_CONTROL_FLOW,   option); goto opt; }
        "unreachable-rules"        end { warn.set (Warn::UNREACHABLE_RULES,        option); goto opt; }
@@ -101,7 +101,6 @@ opt_short:
        "V"  { vernum ();  return EXIT_OK; }
        "b" { opts.set_bFlag (true);             goto opt_short; }
        "c" { opts.set_cFlag (true);             goto opt_short; }
-       "C" { opts.set_contexts (true);          goto opt_short; }
        "d" { opts.set_dFlag (true);             goto opt_short; }
        "D" { opts.set_target (opt_t::DOT);      goto opt_short; }
        "f" { opts.set_fFlag (true);             goto opt_short; }
@@ -111,6 +110,7 @@ opt_short:
        "r" { opts.set_rFlag (true);             goto opt_short; }
        "s" { opts.set_sFlag (true);             goto opt_short; }
        "S" { opts.set_target (opt_t::SKELETON); goto opt_short; }
+       "T" { opts.set_tags (true);              goto opt_short; }
        "e" { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt_short; }
        "u" { if (!opts.set_encoding (Enc::UTF32))  { error_encoding (); return EXIT_FAIL; } goto opt_short; }
        "w" { if (!opts.set_encoding (Enc::UCS2))   { error_encoding (); return EXIT_FAIL; } goto opt_short; }
@@ -135,7 +135,6 @@ opt_long:
        "vernum"             end { vernum ();  return EXIT_OK; }
        "bit-vectors"        end { opts.set_bFlag (true);             goto opt; }
        "start-conditions"   end { opts.set_cFlag (true);             goto opt; }
-       "contexts"           end { opts.set_contexts (true);          goto opt; }
        "debug-output"       end { opts.set_dFlag (true);             goto opt; }
        "emit-dot"           end { opts.set_target (opt_t::DOT);      goto opt; }
        "storable-state"     end { opts.set_fFlag (true);             goto opt; }
@@ -149,6 +148,7 @@ opt_long:
        "case-insensitive"   end { opts.set_bCaseInsensitive (true);  goto opt; }
        "case-inverted"      end { opts.set_bCaseInverted (true);     goto opt; }
        "skeleton"           end { opts.set_target (opt_t::SKELETON); goto opt; }
+       "tags"               end { opts.set_tags (true);              goto opt; }
        "ecb"                end { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt; }
        "unicode"            end { if (!opts.set_encoding (Enc::UTF32))  { error_encoding (); return EXIT_FAIL; } goto opt; }
        "wide-chars"         end { if (!opts.set_encoding (Enc::UCS2))   { error_encoding (); return EXIT_FAIL; } goto opt; }
index 8c55a1f2db8b993c0e38120b1aabfbcbf0b94e37..484a3850535747649378b0372906c87f54a6d981 100644 (file)
@@ -118,27 +118,25 @@ void Warn::match_empty_string (uint32_t line)
        }
 }
 
-void Warn::selfoverlapping_contexts(
+void Warn::nondeterministic_tags(
        uint32_t line,
        const std::string &cond,
        const std::string *tagname)
 {
-       if (mask[SELFOVERLAPPING_CONTEXTS] & WARNING)
+       if (mask[NONDETERMINISTIC_TAGS] & WARNING)
        {
-               const bool e = mask[SELFOVERLAPPING_CONTEXTS] & ERROR;
+               const bool e = mask[NONDETERMINISTIC_TAGS] & ERROR;
                error_accuml |= e;
 
-               const char *trail, *name;
                if (tagname == NULL) {
-                       trail = "trailing context";
-                       name = "";
+                       warning(names[NONDETERMINISTIC_TAGS], line, e,
+                               "trailing context %sis nondeterministic",
+                               incond(cond).c_str());
                } else {
-                       trail = "context ";
-                       name = tagname->c_str();
+                       warning(names[NONDETERMINISTIC_TAGS], line, e,
+                               "tag '%s' %sis nondeterministic",
+                               tagname->c_str(), incond(cond).c_str());
                }
-               warning(names[SELFOVERLAPPING_CONTEXTS], line, e,
-                       "%s%s %sis self-overlapping", trail, name,
-                       incond(cond).c_str());
        }
 }
 
index 915c2a0b82b890d0d78141e99fcca54616ab4933..58501c2f923047d0fea5dc785b8e1ee1882bd8ce 100644 (file)
@@ -16,7 +16,7 @@ struct Skeleton;
        W (CONDITION_ORDER,          "condition-order"), \
        W (EMPTY_CHARACTER_CLASS,    "empty-character-class"), \
        W (MATCH_EMPTY_STRING,       "match-empty-string"), \
-       W (SELFOVERLAPPING_CONTEXTS, "selfoverlapping-contexts"), \
+       W (NONDETERMINISTIC_TAGS,    "nondeterministic-tags"), \
        W (SWAPPED_RANGE,            "swapped-range"), \
        W (UNDEFINED_CONTROL_FLOW,   "undefined-control-flow"), \
        W (UNREACHABLE_RULES,        "unreachable-rules"), \
@@ -59,7 +59,7 @@ public:
        void condition_order (uint32_t line);
        void empty_class (uint32_t line);
        void match_empty_string (uint32_t line);
-       void selfoverlapping_contexts(uint32_t line, const std::string &cond, const std::string *tagname);
+       void nondeterministic_tags(uint32_t line, const std::string &cond, const std::string *tagname);
        void swapped_range (uint32_t line, uint32_t l, uint32_t u);
        void undefined_control_flow (const Skeleton &skel, std::vector<path_t> & paths, bool overflow);
        void unreachable_rule (const std::string & cond, const Rule &rule);
index 3054684081398264402135377ccc30a5257aebf6..cd4b7615fdf23db6abe1cfad4b6d9dec8acb11ab 100644 (file)
@@ -44,21 +44,21 @@ DFA::DFA
        , need_backup (false)
 
        // determine if 'YYCTXMARKER' or 'YYBACKUPCTX'/'YYRESTORECTX' pair is used
-       , need_backupctx (used_tags > 0 || opts->contexts)
+       , need_backupctx (used_tags > 0 || opts->tags)
        , need_accept (false)
 
-       // Non-trailing contexts imply the existence of base context marker
+       // Tags (except trailing contexts) imply the existence of base marker
        // that points at the beginning of lexeme. First, it is a feature
        // of re2c API. Second, it simplifies implementation (otherwise
        // it would be hard to mix generic API and fixed-length contexts).
        //
-       // The only case without base context marker is when:
-       //     - only trailing contexts are allowed
-       //     - they don't overlap (one marker is enough for all of them)
-       //     - with generic API fixed-length contexts are forbidden
-       // Note that in this case, if generic API is used, fixed-length
-       // contexts are forbidden (which may cause additional overlaps).
-       , base_ctxmarker (used_tags > 1 || opts->contexts)
+       // The only case without base marker is when:
+       //     - tags are disabled, only trailing contexts are allowed
+       //     - trailing contexts don't overlap (one marker is enough
+       //       for all of them)
+       // If generic API is used, fixed-length contexts are forbidden,
+       // which may cause additional overlaps.
+       , basetag (used_tags > 1 || opts->tags)
 {
        const size_t nstates = dfa.states.size();
        const size_t nchars = dfa.nchars;
index 7c3d82050288327152d3f261889f8a76424616ab..5434fbf7bb6cc73b0df21ec8546877946ffb93c1 100644 (file)
@@ -73,7 +73,7 @@ struct DFA
        bool need_backup;
        bool need_backupctx;
        bool need_accept;
-       bool base_ctxmarker;
+       bool basetag;
 
        DFA     ( const dfa_t &dfa
                , const std::vector<size_t> &fill
index 0a4e4bc0e4b81ab93ce583aac14a69bfe10a710c..73369ad70a782dd417af756266f1c4ec2409609e 100644 (file)
@@ -56,7 +56,7 @@ static smart_ptr<DFA> compile_rules(
 
        nfa_t nfa(rules);
 
-       dfa_t dfa(nfa, cs, line, cond);
+       dfa_t dfa(nfa, cs, cond);
 
        // skeleton must be constructed after DFA construction
        // but prior to any other DFA transformations
@@ -73,7 +73,7 @@ static smart_ptr<DFA> compile_rules(
        fallback_states(dfa, fallback);
 
        // try to minimize the number of tag variables
-       const size_t used_tags = deduplicate_contexts(dfa, fallback);
+       const size_t used_tags = deduplicate_tags(dfa, fallback);
 
        // ADFA stands for 'DFA with actions'
        DFA *adfa = new DFA(dfa, fill, fallback, skeleton, cs,
index 90d5255ea0231d68a775838a14051cebebfd57bf..e91d5fabd6713abed1d89ab33c8d42062749aa44 100644 (file)
@@ -76,12 +76,12 @@ static void closure(kitem_t *const kernel, kitem_t *&kend,
                        closure(kernel, kend, n->value.alt.out2, tags, badtags, ntags);
                        closure(kernel, kend, n->value.alt.out1, tags, badtags, ntags);
                        break;
-               case nfa_state_t::CTX: {
-                       const size_t ctx = n->value.ctx.info;
-                       const bool old = tags[ctx];
-                       tags[ctx] = true;
-                       closure(kernel, kend, n->value.ctx.out, tags, badtags, ntags);
-                       tags[ctx] = old;
+               case nfa_state_t::TAG: {
+                       const size_t t = n->value.tag.info;
+                       const bool old = tags[t];
+                       tags[t] = true;
+                       closure(kernel, kend, n->value.tag.out, tags, badtags, ntags);
+                       tags[t] = old;
                        break;
                }
                case nfa_state_t::RAN:
@@ -128,10 +128,8 @@ static size_t find_state(kitem_t *kernel, kitem_t *kend,
        return kernels.insert(kernel, kcount * sizeof(kitem_t));
 }
 
-dfa_t::dfa_t(
-       const nfa_t &nfa,
+dfa_t::dfa_t(const nfa_t &nfa,
        const charset_t &charset,
-       uint32_t line,
        const std::string &cond)
        : states()
        , nchars(charset.size() - 1) // (n + 1) bounds for n ranges
@@ -226,8 +224,8 @@ dfa_t::dfa_t(
 
        for (size_t i = 0; i < ntags; ++i) {
                if (badtags[i]) {
-                       // TODO: use rule line, add rule reference to context struct
-                       warn.selfoverlapping_contexts(line, cond, tags[i].name);
+                       warn.nondeterministic_tags(rules[tags[i].rule].info->loc.line,
+                               cond, tags[i].name);
                }
        }
 
index a7eda5b97a227133fdcdcbe50a329e3b3d48f5a6..56bebc7a3b8e97e7c2ef6edad1ee869047223023 100644 (file)
@@ -50,7 +50,7 @@ struct dfa_t
        Tagpool &tagpool;
 
        dfa_t(const nfa_t &nfa, const charset_t &charset,
-               uint32_t line, const std::string &cond);
+               const std::string &cond);
        ~dfa_t();
 
        FORBID_COPY(dfa_t);
@@ -65,7 +65,7 @@ enum dfa_minimization_t
 void minimization(dfa_t &dfa);
 void fillpoints(const dfa_t &dfa, std::vector<size_t> &fill);
 void fallback_states(const dfa_t &dfa, std::vector<size_t> &fallback);
-size_t deduplicate_contexts(dfa_t &dfa, const std::vector<size_t> &fallback);
+size_t deduplicate_tags(dfa_t &dfa, const std::vector<size_t> &fallback);
 
 } // namespace re2c
 
index 88b9ae22c7974c36441f18f996f202c39daefefc..c742f7862170df7552ab513062c1487e6e5d8c35 100644 (file)
@@ -18,7 +18,7 @@ namespace re2c
  * The algorithm constructs (strictly lower triangular) boolean matrix
  * indexed by DFA states. Each matrix cell (S1,S2) indicates if states
  * S1 and S2 are distinguishable. Initialy states are distinguished
- * according to their rule and context. One step of the algorithm
+ * according to their rule and tag set. One step of the algorithm
  * updates the matrix as follows: each pair of states S1 and S2 is
  * marked as distinguishable iff exist transitions from S1 and S2 on
  * the same symbol that go to distinguishable states. The algorithm
@@ -38,7 +38,7 @@ static void minimization_table(
                tbl[i + 1] = tbl[i] + i;
        }
 
-       // see note [distinguish states by contexts]
+       // see note [distinguish states by tags]
        for (size_t i = 0; i < count; ++i)
        {
                dfa_state_t *s1 = states[i];
@@ -118,7 +118,7 @@ static void minimization_table(
  *
  * The algorithm maintains partition of DFA states.
  * Initial partition is coarse: states are distinguished according
- * to their rule and context. Partition is gradually refined: each
+ * to their rule and tag set. Partition is gradually refined: each
  * set of states is split into minimal number of subsets such that
  * for all states in a subset transitions on the same symbol go to
  * the same set of states.
@@ -133,7 +133,7 @@ static void minimization_moore(
 
        size_t *next = new size_t[count];
 
-       // see note [distinguish states by contexts]
+       // see note [distinguish states by tags]
        std::map<std::pair<size_t, size_t>, size_t> init;
        for (size_t i = 0; i < count; ++i)
        {
@@ -212,13 +212,16 @@ static void minimization_moore(
        delete[] next;
 }
 
-/* note [distinguish states by contexts]
+/* note [distinguish states by tags]
  *
- * States that differ only in context set must still be distinguished
- * otherwise contexts that start with iteration  will be broken, e.g.:
- *     "" / "b"* {}
- * because first iteration will be merged with other iterations
- * causing context being saved on each iteration.
+ * Final states may have 'rule' tags: tags that must be set when lexer
+ * takes epsilon-transition to the binded action. Final states with
+ * the same rule but different sets on 'rule' tags cannot be merged.
+ *
+ * Compare the following two cases:
+ *     "ac" | "bc"
+ *     "ac" @p | "bc"
+ * Tail "c" can be deduplicated in the 1st case, but not in the 2nd.
  */
 
 void minimization(dfa_t &dfa)
similarity index 96%
rename from re2c/src/ir/dfa/context_deduplication.cc
rename to re2c/src/ir/dfa/tag_deduplication.cc
index 426a7c74c41d9ceb046dfc7440e75753d96a4fd3..9b64d8e2bd6d8dba910cb25ebad9f48672c8d782 100644 (file)
@@ -172,7 +172,7 @@ static void incompatibility_table(const dfa_t &dfa,
 
 /* We have a binary relation on the set of all tags
  * and must construct set decomposition into subsets such that
- * all contexts in the same subset are equivalent.
+ * all tags in the same subset are equivalent.
  *
  * This problem is isomorphic to partitioning graph into cliques
  * (aka finding the 'clique cover' of a graph).
@@ -250,7 +250,7 @@ static void patch_tags(dfa_t &dfa, const std::vector<size_t> &represent)
        }
 }
 
-size_t deduplicate_contexts(dfa_t &dfa,
+size_t deduplicate_tags(dfa_t &dfa,
        const std::vector<size_t> &fallback)
 {
        const size_t ntags = dfa.tags.size();
@@ -258,21 +258,21 @@ size_t deduplicate_contexts(dfa_t &dfa,
                return 0;
        }
 
-       bool *fbctxs = new bool[ntags]();
+       bool *fbtags = new bool[ntags]();
        for (size_t i = 0; i < fallback.size(); ++i) {
                const size_t r = dfa.states[fallback[i]]->rule;
-               add_tags(fbctxs, dfa.rules[r].tags, ntags);
+               add_tags(fbtags, dfa.rules[r].tags, ntags);
        }
 
        const size_t nstates = dfa.states.size();
        bool *visited = new bool[nstates]();
        bool *live = new bool[nstates * ntags]();
-       calc_live(dfa, fbctxs, visited, live, 0);
+       calc_live(dfa, fbtags, visited, live, 0);
 
        mask_dead(dfa, live);
 
        bool *incompattbl = new bool[ntags * ntags]();
-       incompatibility_table(dfa, live, fbctxs, incompattbl);
+       incompatibility_table(dfa, live, fbtags, incompattbl);
 
        std::vector<size_t> represent(ntags, 0);
        equivalence_classes(incompattbl, ntags, represent);
@@ -288,7 +288,7 @@ size_t deduplicate_contexts(dfa_t &dfa,
                patch_tags(dfa, represent);
        }
 
-       delete[] fbctxs;
+       delete[] fbtags;
        delete[] visited;
        delete[] live;
        delete[] incompattbl;
index d1df82b2512205079e654885486b90f9c97b956a..5aaea62052f0cf5e08a4b57c20caedf035abbbc0 100644 (file)
@@ -104,7 +104,7 @@ void make_tags(const std::vector<const RegExpRule*> &rs, std::valarray<Tag> &tag
                // unless tags are explicitly enabled: generic API needs base tag
                // to restore fixed-length trailing context, and base existence
                // is only guaranteed if tags are mandatory
-               if (!opts->contexts && opts->input_api.type() == InputAPI::CUSTOM) {
+               if (!opts->tags && opts->input_api.type() == InputAPI::CUSTOM) {
                        dist = VARDIST;
                }
                make_tags_var_fix(i, tags, tagidx, rs[i]->re, dist, base);
index cccf62ef0b630c7cefc232602bbf8d6244df8559..5d1221fbffe55cf9340f5b8a86e37e467781a591 100644 (file)
@@ -15,13 +15,7 @@ namespace re2c
 
 struct nfa_state_t
 {
-       enum type_t
-       {
-               ALT,
-               RAN,
-               CTX,
-               FIN
-       } type;
+       enum type_t {ALT, RAN, TAG, FIN} type;
        union
        {
                struct
@@ -38,7 +32,7 @@ struct nfa_state_t
                {
                        nfa_state_t *out;
                        size_t info;
-               } ctx;
+               } tag;
        } value;
        size_t rule;
        bool mark;
@@ -59,11 +53,11 @@ struct nfa_state_t
                rule = r;
                mark = false;
        }
-       void ctx(size_t r, nfa_state_t *s, size_t i)
+       void tag(size_t r, nfa_state_t *s, size_t i)
        {
-               type = CTX;
-               value.ctx.out = s;
-               value.ctx.info = i;
+               type = TAG;
+               value.tag.out = s;
+               value.tag.info = i;
                rule = r;
                mark = false;
        }
index 44287771b6ed25c4492e1c4771e069de11b5a5cd..3511ca7be6e9b9534212aa8badf3bb80513b2de1 100644 (file)
@@ -31,7 +31,7 @@ static nfa_state_t *regexp2nfa(nfa_t &nfa, size_t nrule,
                case RegExp::TAG:
                        if ((*nfa.tags)[tagidx].type == Tag::VAR) {
                                s = &nfa.states[nfa.size++];
-                               s->ctx(nrule, t, tagidx);
+                               s->tag(nrule, t, tagidx);
                        } else {
                                s = t;
                        }
index 0056a86916defa43991b62eb60f57d40c2a12c6a..0afadec85c52d9eb09b1dac507c9a75fd3395ce7 100644 (file)
@@ -5,7 +5,7 @@
 #include <string>
 #include <vector>
 
-#include "src/ir/ctx.h"
+#include "src/ir/tag.h"
 #include "src/parse/code.h"
 #include "src/parse/loc.h"
 #include "src/util/forbid_copy.h"
index fda57353c8925f7138282445c4e34412f6a9c15f..b956b61bb8ba2dc4968b4800244ffcb0bbab95b5 100644 (file)
@@ -93,8 +93,8 @@ void emit_prolog(OutputFile &o)
 }
 
 void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill,
-       bool backup, bool backupctx, bool accept, bool base_ctxmarker,
-       const std::set<std::string> &ctxnames)
+       bool backup, bool backupctx, bool accept, bool basetag,
+       const std::set<std::string> &tagnames)
 {
        const size_t
                sizeof_cunit = opts->encoding.szCodeUnit(),
@@ -114,7 +114,7 @@ void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill,
        }
        if (backupctx) {
                o.ws("\n#define YYBACKUPCTX() ctxmarker = cursor");
-               if(base_ctxmarker) {
+               if(basetag) {
                        o.ws("\n#define YYRESTORECTX(dist) cursor = ctxmarker + dist");
                        o.ws("\n#define YYDIST() (cursor - ctxmarker)");
                } else {
@@ -231,9 +231,9 @@ void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill,
        if (accept) {
                o.ws("\n").wind(2).ws("unsigned int yyaccept = 0;");
        }
-       if (!ctxnames.empty()) {
+       if (!tagnames.empty()) {
                o.ws("\n");
-               output_contexts_default(o.stream(), 2, ctxnames);
+               output_tags_default(o.stream(), 2, tagnames);
                o.ws("\n").wstring(opts->input_api.stmt_backupctx(2));
        }
        o.ws("\n");
index 819256fc1f4c6b60ac9b878445aed71fdde84566..ab51c28235eea60348e45d7af0743fd01ca4b284 100644 (file)
@@ -90,8 +90,8 @@ void warn_unreachable_nullable_rules(const Skeleton &skel);
 void emit_data(const Skeleton &skel, const std::string &fname);
 void emit_prolog(OutputFile & o);
 void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill,
-       bool backup, bool backupctx, bool accept, bool base_ctxmarker,
-       const std::set<std::string> &ctxnames);
+       bool backup, bool backupctx, bool accept, bool basetag,
+       const std::set<std::string> &tagnames);
 void emit_end(const Skeleton &skel, OutputFile &o, bool backup, bool backupctx);
 void emit_epilog(OutputFile &o, const std::set<std::string> &names);
 void emit_action(const Skeleton &skel, OutputFile &o, uint32_t ind,
similarity index 96%
rename from re2c/src/ir/ctx.cc
rename to re2c/src/ir/tag.cc
index 43a0bb0d4840515cfb4bf51421cdaa733099f302..6b650800cc956dffb82f6f30ee13c5c757381beb 100644 (file)
@@ -2,7 +2,7 @@
 #include <sstream>
 
 #include "src/conf/opt.h"
-#include "src/ir/ctx.h"
+#include "src/ir/tag.h"
 #include "src/util/strrreplace.h"
 #include "src/globals.h"
 
similarity index 87%
rename from re2c/src/ir/ctx.h
rename to re2c/src/ir/tag.h
index b982d31951fddc6bbe54da2ec86769f76dcb9656..bfe0ab4cc75177ea24cc63c0ccc7ac7e95b4c5d9 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef _RE2C_IR_CTX_
-#define _RE2C_IR_CTX_
+#ifndef _RE2C_IR_TAG_
+#define _RE2C_IR_TAG_
 
 #include <string>
 
@@ -37,4 +37,4 @@ void init_fix_tag(Tag &tag, size_t r, const std::string *n, size_t b, size_t d);
 
 } // namespace re2c
 
-#endif // _RE2C_IR_CTX_
+#endif // _RE2C_IR_TAG_
index 8d925f72e016c3fb03976d60077414d55c073685..a92aac4826ecc9d96932f3509ef78960158bfc47 100644 (file)
@@ -142,11 +142,11 @@ echo:
                goto echo;
        }
 
-       "/*!contexts:re2c" {
+       "/*!tags:re2c" {
                if (opts->target == opt_t::CODE) {
                        out.wraw(tok, start);
                }
-               lex_contexts();
+               lex_tags();
                goto echo;
        }
 
@@ -193,9 +193,9 @@ void Scanner::lex_end_of_comment()
        */}
 }
 
-void Scanner::lex_contexts()
+void Scanner::lex_tags()
 {
-       ConfContexts conf;
+       ConfTags conf;
        for (;;) {/*!re2c
                *      { fatal("unrecognized configuration"); }
 
@@ -206,8 +206,8 @@ void Scanner::lex_contexts()
                eol    { ++cline; continue; }
                eoc    {
                        if (opts->target == opt_t::CODE) {
-                               out.wdelay_contexts(opts->topIndent,
-                                       new ConfContexts(conf));
+                               out.wdelay_tags(opts->topIndent,
+                                       new ConfTags(conf));
                        }
                        tok = pos = cur;
                        return;
@@ -273,7 +273,7 @@ start:
                                }
 
        "@" name {
-               if (!opts->contexts) {
+               if (!opts->tags) {
                        fatal("tags are only allowed with '-T, --tags' option");
                }
                const std::string *name = new std::string(tok + 1, tok_len() - 1);
index bcc6647979d4812b33ce3525d24429ab9b2683cb..08876d48691c66f3914b94d47ef86812220b1025 100644 (file)
@@ -46,7 +46,6 @@ void Scanner::lex_conf ()
 
        "flags:" ("b" | "bit-vectors")       { opts.set_bFlag(lex_conf_bool());             return; }
        "flags:" ("c" | "start-conditions")  { opts.set_cFlag(lex_conf_bool());             return; }
-       "flags:" ("C" | "contexts")          { opts.set_contexts(lex_conf_bool());          return; }
        "flags:" ("d" | "debug-output")      { opts.set_dFlag(lex_conf_bool());             return; }
        "flags:" ("f" | "storable-state")    { opts.set_fFlag(lex_conf_bool());             return; }
        "flags:" ("F" | "flex-syntax")       { opts.set_FFlag(lex_conf_bool());             return; }
@@ -54,6 +53,7 @@ void Scanner::lex_conf ()
        "flags:" ("i" | "no-debug-info")     { opts.set_iFlag(lex_conf_bool());             return; }
        "flags:" ("r" | "reusable")          { opts.set_rFlag(lex_conf_bool());             return; }
        "flags:" ("s" | "nested-ifs")        { opts.set_sFlag(lex_conf_bool());             return; }
+       "flags:" ("T" | "tags")              { opts.set_tags(lex_conf_bool());              return; }
        "flags:no-generation-date"           { opts.set_bNoGenerationDate(lex_conf_bool()); return; }
        "flags:no-version"                   { opts.set_version(!lex_conf_bool());          return; }
        "flags:case-insensitive"             { opts.set_bCaseInsensitive(lex_conf_bool());  return; }
@@ -124,11 +124,11 @@ void Scanner::lex_conf ()
        "define:YYRESTORE"    { opts.set_yyrestore    (lex_conf_string ()); return; }
        "define:YYRESTORECTX" { opts.set_yyrestorectx (lex_conf_string ()); return; }
        "define:YYLESSTHAN"   { opts.set_yylessthan   (lex_conf_string ()); return; }
-       "define:YYCTX"        { opts.set_yyctx        (lex_conf_string ()); return; }
-       "define:YYDIST"       { opts.set_yydist       (lex_conf_string ()); return; }
+       "define:YYTAG"        { opts.set_tags_yytag   (lex_conf_string ()); return; }
+       "define:YYDIST"       { opts.set_tags_yydist  (lex_conf_string ()); return; }
 
-       "contexts:prefix" { opts.set_contexts_prefix(lex_conf_string ()); return; }
-       "contexts:expr"   { opts.set_contexts_expr  (lex_conf_string ()); return; }
+       "tags:prefix" { opts.set_tags_prefix(lex_conf_string ()); return; }
+       "tags:expr"   { opts.set_tags_expr  (lex_conf_string ()); return; }
 
        "indent:string" { opts.set_indString (lex_conf_string ()); return; }
        "indent:top"
index ef9f0c29b34d2f100ce7ba98f189b2254b615b65..b2f9506c05cd70a46f5268cdadcd2db80c721bb8 100644 (file)
@@ -60,7 +60,7 @@ public:
 private:
        void fill (uint32_t);
        void lex_end_of_comment();
-       void lex_contexts();
+       void lex_tags();
        void set_sourceline ();
        uint32_t lex_cls_chr();
        uint32_t lex_str_chr(char quote, bool &end);
diff --git a/re2c/test/contexts/selfoverlap1.i--contexts.c b/re2c/test/contexts/selfoverlap1.i--contexts.c
deleted file mode 100644 (file)
index ba449f6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-re2c: error: line 19: context p1 is self-overlapping [-Werror-selfoverlapping-contexts]
diff --git a/re2c/test/contexts/selfoverlap1_trail.i--contexts.c b/re2c/test/contexts/selfoverlap1_trail.i--contexts.c
deleted file mode 100644 (file)
index 92b3545..0000000
+++ /dev/null
@@ -1 +0,0 @@
-re2c: error: line 19: trailing context is self-overlapping [-Werror-selfoverlapping-contexts]
index 14a3c09f4bfb72fc538e8b2a0f57266d8c341b45..0799a24a22cc3596e860a26e6eb806243b791989 100644 (file)
@@ -102,7 +102,7 @@ digraph re2c {
 49 -> 50
 50 -> 13 [label="[0x00-0x08][0x0A-0x1F][!-0][:-0xFF]"]
 50 -> 49 [label="[0x09][ ]"]
-50 -> 57 [label="[1-9]<yyctx9>"]
+50 -> 57 [label="[1-9]<yytag9>"]
 51 -> 13 [label="[0x00-s][u-0xFF]"]
 51 -> 59 [label="[t]"]
 52 -> 13 [label="[0x00-q][s-0xFF]"]
@@ -327,10 +327,10 @@ digraph re2c {
 165 -> 166
 166 [label="scanner_re2c_default.--emit-dot.re:331"]
 167 -> 144 [label="[0x00-0x08][0x0A-0x1F][!-9][;-<][>-z][|-0xFF]"]
-167 -> 193 [label="[0x09][ ]<yyctx13>"]
-167 -> 195 [label="[:]<yyctx13>"]
-167 -> 196 [label="[=]<yyctx13>"]
-167 -> 197 [label="[{]<yyctx13>"]
+167 -> 193 [label="[0x09][ ]<yytag13>"]
+167 -> 195 [label="[:]<yytag13>"]
+167 -> 196 [label="[=]<yytag13>"]
+167 -> 197 [label="[{]<yytag13>"]
 168 -> 169
 169 [label="scanner_re2c_default.--emit-dot.re:403"]
 170 -> 202
@@ -338,8 +338,8 @@ digraph re2c {
 172 [label="scanner_re2c_default.--emit-dot.re:397"]
 173 -> 174
 174 -> 168 [label="[0x00-0x08][0x0A-0x1F][!-+][--/][:-<][?-@][[-^][`][{-0xFF]"]
-174 -> 170 [label="[0x09][ ]<yyctx13>"]
-174 -> 171 [label="[,][=->]<yyctx13>"]
+174 -> 170 [label="[0x09][ ]<yytag13>"]
+174 -> 171 [label="[,][=->]<yytag13>"]
 174 -> 173 [label="[0-9][A-Z][_][a-z]"]
 175 -> 176
 176 -> 175 [label="[0x00-0x09][0x0B-[][^-0xFF]"]
@@ -437,7 +437,7 @@ digraph re2c {
 229 -> 230
 230 -> 144 [label="[0x00-0x08][0x0A-0x1F][!-0][:-0xFF]"]
 230 -> 229 [label="[0x09][ ]"]
-230 -> 233 [label="[1-9]<yyctx13>"]
+230 -> 233 [label="[1-9]<yytag13>"]
 231 -> 144 [label="[0x00-@][[-^][`][{-0xFF]"]
 231 -> 226 [label="[A-Z][_][a-z]"]
 232 -> 144 [label="[0x00-@][[-^][`][{-0xFF]"]
@@ -538,7 +538,7 @@ digraph re2c {
 280 -> 281
 281 -> 265 [label="[0x00-0x08][0x0A-0x1F][!-0][:-0xFF]"]
 281 -> 280 [label="[0x09][ ]"]
-281 -> 282 [label="[1-9]<yyctx2>"]
+281 -> 282 [label="[1-9]<yytag2>"]
 282 -> 283
 283 -> 265 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-/][:-0xFF]"]
 283 -> 284 [label="[0x09][ ]"]
@@ -603,7 +603,7 @@ digraph re2c {
 314 -> 315
 315 -> 303 [label="[0x00-0x08][0x0A-0x1F][!-0][:-0xFF]"]
 315 -> 314 [label="[0x09][ ]"]
-315 -> 316 [label="[1-9]<yyctx2>"]
+315 -> 316 [label="[1-9]<yytag2>"]
 316 -> 317
 317 -> 303 [label="[0x00-0x08][0x0B-0x0C][0x0E-0x1F][!-/][:-0xFF]"]
 317 -> 318 [label="[0x09][ ]"]
similarity index 94%
rename from re2c/test/contexts/conf1.i--contexts--input(custom).re
rename to re2c/test/tags/conf1.i--tags--input(custom).re
index 8acf5ccebb65d75bffbecda6cf13e54945230963..cd5b845c3bc7f69e992147c63bbc02b477390b87 100644 (file)
@@ -43,9 +43,9 @@ static void lex(const char *s)
             return;
         }
 
-        re2c:define:YYCTX = "ZZ_CTX";
+        re2c:define:YYTAG = "ZZ_CTX";
         re2c:define:YYDIST = "ZZ_DIST";
-        re2c:contexts:prefix = "zz_";
+        re2c:tags:prefix = "zz_";
     */
 }
 
similarity index 96%
rename from re2c/test/contexts/conf1.i--contexts.re
rename to re2c/test/tags/conf1.i--tags.re
index a91756a0bcf02d59ef02afe43d693cbaa35c9337..a39f96f07cd1f4a361ad572381f33832dfcabd21 100644 (file)
@@ -35,7 +35,7 @@ static void lex(const char *YYCURSOR)
             return;
         }
 
-        re2c:contexts:prefix = "zz_";
+        re2c:tags:prefix = "zz_";
     */
 }
 
similarity index 92%
rename from re2c/test/contexts/conf2.i--contexts--input(custom).re
rename to re2c/test/tags/conf2.i--tags--input(custom).re
index 033eb037e20d5063cade920370f16383a579cf22..d03d7d950a42f5345192b8a7726f9e59533f3862 100644 (file)
@@ -22,13 +22,13 @@ static void lex(const char *s)
 #define ZZ_DIST()          (s - basectx)
     const char *marker;
     const char *basectx;
-    /*!contexts:re2c*/
+    /*!tags:re2c*/
     /*!re2c
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
-        re2c:define:YYCTX = "ZZ_CTX";
+        re2c:define:YYTAG = "ZZ_CTX";
         re2c:define:YYDIST = "ZZ_DIST";
-        re2c:contexts:prefix = "zz_";
+        re2c:tags:prefix = "zz_";
 
         oct = [0-9]{1,3};
         d   = ".";
similarity index 93%
rename from re2c/test/contexts/conf2.i--contexts.re
rename to re2c/test/tags/conf2.i--tags.re
index 219378b43ba013bec1bed8cf21abb26c5cb9a956..3fdb86cf7df9d3a2f41276c698578cfb9b3fb2ab 100644 (file)
@@ -14,11 +14,11 @@ static void lex(const char *YYCURSOR)
 {
     const char *YYMARKER;
     const char *YYCTXMARKER;
-    /*!contexts:re2c*/
+    /*!tags:re2c*/
     /*!re2c
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
-        re2c:contexts:prefix = "zz_";
+        re2c:tags:prefix = "zz_";
 
         oct = [0-9]{1,3};
         d   = ".";
similarity index 85%
rename from re2c/test/contexts/conf3.i--contexts--input(custom).re
rename to re2c/test/tags/conf3.i--tags--input(custom).re
index 59f181dcd570738cd60f3aaa771ab5864d736f6b..58502263e86b4f122cd843dae6b72815be1cfcc7 100644 (file)
@@ -22,14 +22,14 @@ static void lex(const char *s)
 #define ZZ_DIST()          (s - basectx)
     const char *marker;
     const char *basectx;
-    /*!contexts:re2c sep="\n"; line="long @@ = 0;"; line=; sep=; */
-    ptrdiff_t /*!contexts:re2c sep=", "; line="@@ = 0"; */;
+    /*!tags:re2c sep="\n"; line="long @@ = 0;"; line=; sep=; */
+    ptrdiff_t /*!tags:re2c sep=", "; line="@@ = 0"; */;
     /*!re2c
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
-        re2c:define:YYCTX = "ZZ_CTX";
+        re2c:define:YYTAG = "ZZ_CTX";
         re2c:define:YYDIST = "ZZ_DIST";
-        re2c:contexts:prefix = "zz_";
+        re2c:tags:prefix = "zz_";
 
         oct = [0-9]{1,3};
         d   = ".";
similarity index 84%
rename from re2c/test/contexts/conf3.i--contexts.re
rename to re2c/test/tags/conf3.i--tags.re
index 8f762680592a7fa639909d45ecab2851ee0a5428..ca3eeab5f10872f62a411f1e0992203a1384348c 100644 (file)
@@ -14,12 +14,12 @@ static void lex(const char *YYCURSOR)
 {
     const char *YYMARKER;
     const char *YYCTXMARKER;
-    /*!contexts:re2c sep="\n"; line="long @@ = 0;"; line=; sep=; */
-    ptrdiff_t /*!contexts:re2c sep=", "; line="@@ = 0"; */;
+    /*!tags:re2c sep="\n"; line="long @@ = 0;"; line=; sep=; */
+    ptrdiff_t /*!tags:re2c sep=", "; line="@@ = 0"; */;
     /*!re2c
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
-        re2c:contexts:prefix = "zz_";
+        re2c:tags:prefix = "zz_";
 
         oct = [0-9]{1,3};
         d   = ".";
similarity index 74%
rename from re2c/test/contexts/conf4.i--contexts--input(custom).re
rename to re2c/test/tags/conf4.i--tags--input(custom).re
index b2a087c200e84177f39359ca6f296b4b02ddd15a..b5f48ab718c23d58877fdc93ec15c34e6aca35e3 100644 (file)
@@ -12,16 +12,16 @@ static inline unsigned parse_oct(const char *s, const char *e)
 
 struct contexts_t
 {
-    /*!contexts:re2c line="long @@;"; */
+    /*!tags:re2c line="long @@;"; */
 
-    contexts_t(): /*!contexts:re2c line="@@(0)"; sep=","; */ {}
-    void push(/*!contexts:re2c line="long arg_@@"; sep=","; */)
+    contexts_t(): /*!tags:re2c line="@@(0)"; sep=","; */ {}
+    void push(/*!tags:re2c line="long arg_@@"; sep=","; */)
     {
-        /*!contexts:re2c line="@@ = arg_@@;"; */
+        /*!tags:re2c line="@@ = arg_@@;"; */
     }
-    void pop(/*!contexts:re2c line="long &arg_@@"; sep=","; */)
+    void pop(/*!tags:re2c line="long &arg_@@"; sep=","; */)
     {
-        /*!contexts:re2c line="arg_@@ = @@;"; */
+        /*!tags:re2c line="arg_@@ = @@;"; */
     }
 };
 
@@ -42,10 +42,10 @@ static void lex(const char *s)
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
 
-        re2c:define:YYCTX = "ZZ_CTX";
+        re2c:define:YYTAG = "ZZ_CTX";
         re2c:define:YYDIST = "ZZ_DIST";
-        re2c:contexts:prefix = "zz_";
-        re2c:contexts:expr = "ctxs.@@";
+        re2c:tags:prefix = "zz_";
+        re2c:tags:expr = "ctxs.@@";
 
         oct = [0-9]{1,3};
         d   = ".";
similarity index 70%
rename from re2c/test/contexts/conf4.i--contexts.re
rename to re2c/test/tags/conf4.i--tags.re
index 570517646ab061469e28ba176685a227782abe72..f538c961d25e01e6ded2fb02dcf244484ace95a7 100644 (file)
@@ -12,16 +12,16 @@ static inline unsigned parse_oct(const char *s, const char *e)
 
 struct contexts_t
 {
-    /*!contexts:re2c line="long @@;"; */
+    /*!tags:re2c line="long @@;"; */
 
-    contexts_t(): /*!contexts:re2c line="@@(0)"; sep=","; */ {}
-    void push(/*!contexts:re2c line="long arg_@@"; sep=","; */)
+    contexts_t(): /*!tags:re2c line="@@(0)"; sep=","; */ {}
+    void push(/*!tags:re2c line="long arg_@@"; sep=","; */)
     {
-        /*!contexts:re2c line="@@ = arg_@@;"; */
+        /*!tags:re2c line="@@ = arg_@@;"; */
     }
-    void pop(/*!contexts:re2c line="long &arg_@@"; sep=","; */)
+    void pop(/*!tags:re2c line="long &arg_@@"; sep=","; */)
     {
-        /*!contexts:re2c line="arg_@@ = @@;"; */
+        /*!tags:re2c line="arg_@@ = @@;"; */
     }
 };
 
@@ -34,8 +34,8 @@ static void lex(const char *YYCURSOR)
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
 
-        re2c:contexts:prefix = "zz_";
-        re2c:contexts:expr = "ctxs.@@";
+        re2c:tags:prefix = "zz_";
+        re2c:tags:expr = "ctxs.@@";
 
         oct = [0-9]{1,3};
         d   = ".";
similarity index 68%
rename from re2c/test/contexts/conf5.i--contexts--input(custom).re
rename to re2c/test/tags/conf5.i--tags--input(custom).re
index 3a48449df8b72cb54b30073cfd50c82199db8a9e..5144f9b37099a204dcb8e758fad5fd9396b9b364 100644 (file)
@@ -12,11 +12,11 @@ static inline unsigned parse_oct(const char *s, const char *e)
 
 struct contexts_t
 {
-    /*!contexts:re2c line="long @@;"; */
+    /*!tags:re2c line="long @@;"; */
 
     contexts_t();
-    void push(/*!contexts:re2c line="long arg_@@"; sep=","; */);
-    void pop(/*!contexts:re2c line="long &arg_@@"; sep=","; */);
+    void push(/*!tags:re2c line="long arg_@@"; sep=","; */);
+    void pop(/*!tags:re2c line="long &arg_@@"; sep=","; */);
 };
 
 static void lex(const char *s)
@@ -36,10 +36,10 @@ static void lex(const char *s)
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
 
-        re2c:define:YYCTX = "ZZ_CTX";
+        re2c:define:YYTAG = "ZZ_CTX";
         re2c:define:YYDIST = "ZZ_DIST";
-        re2c:contexts:prefix = "zz_";
-        re2c:contexts:expr = "ctxs.@@";
+        re2c:tags:prefix = "zz_";
+        re2c:tags:expr = "ctxs.@@";
 
         oct = [0-9]{1,3};
         d   = ".";
@@ -60,16 +60,16 @@ static void lex(const char *s)
     */
 }
 
-contexts_t::contexts_t(): /*!contexts:re2c line="@@(0)"; sep=","; */ {}
+contexts_t::contexts_t(): /*!tags:re2c line="@@(0)"; sep=","; */ {}
 
-void contexts_t::push(/*!contexts:re2c line="long arg_@@"; sep=","; */)
+void contexts_t::push(/*!tags:re2c line="long arg_@@"; sep=","; */)
 {
-    /*!contexts:re2c line="@@ = arg_@@;"; */
+    /*!tags:re2c line="@@ = arg_@@;"; */
 }
 
-void contexts_t::pop(/*!contexts:re2c line="long &arg_@@"; sep=","; */)
+void contexts_t::pop(/*!tags:re2c line="long &arg_@@"; sep=","; */)
 {
-    /*!contexts:re2c line="arg_@@ = @@;"; */
+    /*!tags:re2c line="arg_@@ = @@;"; */
 }
 
 int main(int argc, char **argv)
similarity index 64%
rename from re2c/test/contexts/conf5.i--contexts.re
rename to re2c/test/tags/conf5.i--tags.re
index 936092e201a9f9c73c0eb36ff2f498cc9fdc64d4..7ea42a5364e805593740975f10382326ad3eb143 100644 (file)
@@ -12,11 +12,11 @@ static inline unsigned parse_oct(const char *s, const char *e)
 
 struct contexts_t
 {
-    /*!contexts:re2c line="long @@;"; */
+    /*!tags:re2c line="long @@;"; */
 
     contexts_t();
-    void push(/*!contexts:re2c line="long arg_@@"; sep=","; */);
-    void pop(/*!contexts:re2c line="long &arg_@@"; sep=","; */);
+    void push(/*!tags:re2c line="long arg_@@"; sep=","; */);
+    void pop(/*!tags:re2c line="long &arg_@@"; sep=","; */);
 };
 
 static void lex(const char *YYCURSOR)
@@ -28,8 +28,8 @@ static void lex(const char *YYCURSOR)
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
 
-        re2c:contexts:prefix = "zz_";
-        re2c:contexts:expr = "ctxs.@@";
+        re2c:tags:prefix = "zz_";
+        re2c:tags:expr = "ctxs.@@";
 
         oct = [0-9]{1,3};
         d   = ".";
@@ -50,16 +50,16 @@ static void lex(const char *YYCURSOR)
     */
 }
 
-contexts_t::contexts_t(): /*!contexts:re2c line="@@(0)"; sep=","; */ {}
+contexts_t::contexts_t(): /*!tags:re2c line="@@(0)"; sep=","; */ {}
 
-void contexts_t::push(/*!contexts:re2c line="long arg_@@"; sep=","; */)
+void contexts_t::push(/*!tags:re2c line="long arg_@@"; sep=","; */)
 {
-    /*!contexts:re2c line="@@ = arg_@@;"; */
+    /*!tags:re2c line="@@ = arg_@@;"; */
 }
 
-void contexts_t::pop(/*!contexts:re2c line="long &arg_@@"; sep=","; */)
+void contexts_t::pop(/*!tags:re2c line="long &arg_@@"; sep=","; */)
 {
-    /*!contexts:re2c line="arg_@@ = @@;"; */
+    /*!tags:re2c line="arg_@@ = @@;"; */
 }
 
 int main(int argc, char **argv)
similarity index 92%
rename from re2c/test/contexts/conf6.--contexts--input(custom).c
rename to re2c/test/tags/conf6.--tags--input(custom).c
index 1a6914f610ed452b9830163802195478238dd3da..9af4d34ca487cf4505921ffb3a3ae763b5ba114b 100644 (file)
@@ -1,5 +1,5 @@
 /* Generated by re2c */
-#line 1 "contexts/conf6.--contexts--input(custom).re"
+#line 1 "tags/conf6.--tags--input(custom).re"
 #include <stddef.h>
 #include <stdio.h>
 
@@ -35,7 +35,7 @@ static void lex(const char *s)
     const char *basectx;
     contexts_t ctxs;
     
-#line 39 "contexts/conf6.--contexts--input(custom).c"
+#line 39 "tags/conf6.--tags--input(custom).c"
 {
        char yych;
        YYBACKUPCTX ();
@@ -56,9 +56,9 @@ static void lex(const char *s)
 yy2:
        YYSKIP ();
 yy3:
-#line 55 "contexts/conf6.--contexts--input(custom).re"
+#line 55 "tags/conf6.--tags--input(custom).re"
        { printf("error\n"); return; }
-#line 62 "contexts/conf6.--contexts--input(custom).c"
+#line 62 "tags/conf6.--tags--input(custom).c"
 yy4:
        YYSKIP ();
        YYBACKUP ();
@@ -259,7 +259,7 @@ yy16:
        default:        goto yy17;
        }
 yy17:
-#line 60 "contexts/conf6.--contexts--input(custom).re"
+#line 60 "tags/conf6.--tags--input(custom).re"
        {
             printf("%u.%u.%u.%u\n",
                 parse_oct(basectx, ZZ_CTX(ctxs.zz_0p1)),
@@ -268,7 +268,7 @@ yy17:
                 parse_oct(ZZ_CTX(ctxs.zz_0p3) + 1, s));
             return;
         }
-#line 272 "contexts/conf6.--contexts--input(custom).c"
+#line 272 "tags/conf6.--tags--input(custom).c"
 yy18:
        YYSKIP ();
        yych = YYPEEK ();
@@ -299,7 +299,7 @@ yy20:
        yych = YYPEEK ();
        goto yy17;
 }
-#line 68 "contexts/conf6.--contexts--input(custom).re"
+#line 68 "tags/conf6.--tags--input(custom).re"
 
 }
 
similarity index 82%
rename from re2c/test/contexts/conf6.--contexts--input(custom).re
rename to re2c/test/tags/conf6.--tags--input(custom).re
index a3cae62fc05263d55045fcb17091e46d24c97e85..c9dbcfd4cbc234d67e0b14a14a29126da10ae303 100644 (file)
@@ -12,16 +12,16 @@ static inline unsigned parse_oct(const char *s, const char *e)
 
 struct contexts_t
 {
-    /*!contexts:re2c
+    /*!tags:re2c
         line = "long @@;";
     */
 
     contexts_t();
-    void push(/*!contexts:re2c
+    void push(/*!tags:re2c
         line = "long arg_@@";
         sep = ",";
     */);
-    void pop(/*!contexts:re2c
+    void pop(/*!tags:re2c
         line = "long &arg_@@";
         sep = ",";
     */);
@@ -44,10 +44,10 @@ static void lex(const char *s)
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
 
-        re2c:define:YYCTX = "ZZ_CTX";
+        re2c:define:YYTAG = "ZZ_CTX";
         re2c:define:YYDIST = "ZZ_DIST";
-        re2c:contexts:prefix = "zz_";
-        re2c:contexts:expr = "ctxs.@@";
+        re2c:tags:prefix = "zz_";
+        re2c:tags:expr = "ctxs.@@";
 
         oct = [0-9]{1,3};
         d   = ".";
@@ -68,24 +68,24 @@ static void lex(const char *s)
     */
 }
 
-contexts_t::contexts_t(): /*!contexts:re2c
+contexts_t::contexts_t(): /*!tags:re2c
     line = "@@(0)";
     sep = ",";
 */ {}
 
-void contexts_t::push(/*!contexts:re2c
+void contexts_t::push(/*!tags:re2c
     line = "long arg_@@";
     sep = ",";
 */)
-{/*!contexts:re2c
+{/*!tags:re2c
     line = "@@ = arg_@@;";
 */}
 
-void contexts_t::pop(/*!contexts:re2c
+void contexts_t::pop(/*!tags:re2c
     line = "long &arg_@@";
     sep = ",";
 */)
-{/*!contexts:re2c
+{/*!tags:re2c
     line = "arg_@@ = @@;";
 */}
 
similarity index 94%
rename from re2c/test/contexts/conf6.--contexts.c
rename to re2c/test/tags/conf6.--tags.c
index 187b783758d57a9945cdfacd8c57f5c054feee3b..059c122a91b878653985b23ce9c7b49c96c1e8f3 100644 (file)
@@ -1,5 +1,5 @@
 /* Generated by re2c */
-#line 1 "contexts/conf6.--contexts.re"
+#line 1 "tags/conf6.--tags.re"
 #include <stddef.h>
 #include <stdio.h>
 
@@ -27,7 +27,7 @@ static void lex(const char *YYCURSOR)
     const char *YYCTXMARKER;
     contexts_t ctxs;
     
-#line 31 "contexts/conf6.--contexts.c"
+#line 31 "tags/conf6.--tags.c"
 {
        char yych;
        YYCTXMARKER = YYCURSOR;
@@ -48,9 +48,9 @@ static void lex(const char *YYCURSOR)
 yy2:
        ++YYCURSOR;
 yy3:
-#line 45 "contexts/conf6.--contexts.re"
+#line 45 "tags/conf6.--tags.re"
        { printf("error\n"); return; }
-#line 54 "contexts/conf6.--contexts.c"
+#line 54 "tags/conf6.--tags.c"
 yy4:
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
@@ -239,7 +239,7 @@ yy16:
        default:        goto yy17;
        }
 yy17:
-#line 50 "contexts/conf6.--contexts.re"
+#line 50 "tags/conf6.--tags.re"
        {
             printf("%u.%u.%u.%u\n",
                 parse_oct(YYCTXMARKER, (YYCTXMARKER + ctxs.zz_0p1)),
@@ -248,7 +248,7 @@ yy17:
                 parse_oct((YYCTXMARKER + ctxs.zz_0p3) + 1, YYCURSOR));
             return;
         }
-#line 252 "contexts/conf6.--contexts.c"
+#line 252 "tags/conf6.--tags.c"
 yy18:
        yych = *++YYCURSOR;
        switch (yych) {
@@ -277,7 +277,7 @@ yy20:
        yych = *YYCURSOR;
        goto yy17;
 }
-#line 58 "contexts/conf6.--contexts.re"
+#line 58 "tags/conf6.--tags.re"
 
 }
 
similarity index 80%
rename from re2c/test/contexts/conf6.--contexts.re
rename to re2c/test/tags/conf6.--tags.re
index 9208a5a7f92a4b0f5225b16cb25c4c790707d27f..dd75d755b2a596318301818a32b48adf2d89ba3c 100644 (file)
@@ -12,16 +12,16 @@ static inline unsigned parse_oct(const char *s, const char *e)
 
 struct contexts_t
 {
-    /*!contexts:re2c
+    /*!tags:re2c
         line = "long @@;";
     */
 
     contexts_t();
-    void push(/*!contexts:re2c
+    void push(/*!tags:re2c
         line = "long arg_@@";
         sep = ",";
     */);
-    void pop(/*!contexts:re2c
+    void pop(/*!tags:re2c
         line = "long &arg_@@";
         sep = ",";
     */);
@@ -36,8 +36,8 @@ static void lex(const char *YYCURSOR)
         re2c:define:YYCTYPE = char;
         re2c:yyfill:enable = 0;
 
-        re2c:contexts:prefix = "zz_";
-        re2c:contexts:expr = "ctxs.@@";
+        re2c:tags:prefix = "zz_";
+        re2c:tags:expr = "ctxs.@@";
 
         oct = [0-9]{1,3};
         d   = ".";
@@ -58,24 +58,24 @@ static void lex(const char *YYCURSOR)
     */
 }
 
-contexts_t::contexts_t(): /*!contexts:re2c
+contexts_t::contexts_t(): /*!tags:re2c
     line = "@@(0)";
     sep = ",";
 */ {}
 
-void contexts_t::push(/*!contexts:re2c
+void contexts_t::push(/*!tags:re2c
     line = "long arg_@@";
     sep = ",";
 */)
-{/*!contexts:re2c
+{/*!tags:re2c
     line = "@@ = arg_@@;";
 */}
 
-void contexts_t::pop(/*!contexts:re2c
+void contexts_t::pop(/*!tags:re2c
     line = "long &arg_@@";
     sep = ",";
 */)
-{/*!contexts:re2c
+{/*!tags:re2c
     line = "arg_@@ = @@;";
 */}
 
similarity index 89%
rename from re2c/test/contexts/fix2_trail.i--contexts--input(custom).c
rename to re2c/test/tags/fix2_trail.i--tags--input(custom).c
index 90e209b2425c59723eb3ba988af96aaa072c9484..55c999e648e226a8861ef72cd04751e63deebb1f 100644 (file)
@@ -126,10 +126,10 @@ yy19:
        YYRESTORECTX (YYDIST() - 5);
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
-                YYCTX(YYDIST() - 9) - YYCTXMARKER, YYCTXMARKER,
-                YYCTX(YYDIST() - 7) - YYCTX(YYDIST() - 9), YYCTX(YYDIST() - 9),
-                YYCTX(YYDIST() - 4) - YYCTX(YYDIST() - 7), YYCTX(YYDIST() - 7),
-                YYCURSOR - YYCTX(YYDIST() - 4), YYCTX(YYDIST() - 4),
+                YYTAG(YYDIST() - 9) - YYCTXMARKER, YYCTXMARKER,
+                YYTAG(YYDIST() - 7) - YYTAG(YYDIST() - 9), YYTAG(YYDIST() - 9),
+                YYTAG(YYDIST() - 4) - YYTAG(YYDIST() - 7), YYTAG(YYDIST() - 7),
+                YYCURSOR - YYTAG(YYDIST() - 4), YYTAG(YYDIST() - 4),
                 YYCURSOR);
                 return;
         }
similarity index 51%
rename from re2c/test/contexts/fix3.i--contexts.c
rename to re2c/test/tags/fix3.i--tags.c
index e02091d95989e1baf67b0e7fe0393317a0ac55e7..db8881fdd14e424ee246287e86833398508fb13b 100644 (file)
@@ -9,36 +9,36 @@ static void lex(const char *YYCURSOR)
     
 {
        char yych;
-       long yyctx0p1;
-       long yyctx0p2;
-       long yyctx0p3;
-       long yyctx0p4;
+       long yytag0p1;
+       long yytag0p2;
+       long yytag0p3;
+       long yytag0p4;
        YYCTXMARKER = YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
        case '0':       goto yy5;
        case '1':
-               yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy7;
        case '2':
-               yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy9;
        case '3':
-               yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        case '4':
-               yyctx0p4 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p4 = yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:        goto yy3;
        }
 yy2:
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
-                (YYCTXMARKER + yyctx0p1) - YYCTXMARKER, YYCTXMARKER,
-                (YYCTXMARKER + yyctx0p2) - (YYCTXMARKER + yyctx0p1), (YYCTXMARKER + yyctx0p1),
-                (YYCTXMARKER + yyctx0p3) - (YYCTXMARKER + yyctx0p2), (YYCTXMARKER + yyctx0p2),
-                (YYCTXMARKER + yyctx0p4) - (YYCTXMARKER + yyctx0p3), (YYCTXMARKER + yyctx0p3),
-                YYCURSOR - (YYCTXMARKER + yyctx0p4), (YYCTXMARKER + yyctx0p4));
+                (YYCTXMARKER + yytag0p1) - YYCTXMARKER, YYCTXMARKER,
+                (YYCTXMARKER + yytag0p2) - (YYCTXMARKER + yytag0p1), (YYCTXMARKER + yytag0p1),
+                (YYCTXMARKER + yytag0p3) - (YYCTXMARKER + yytag0p2), (YYCTXMARKER + yytag0p2),
+                (YYCTXMARKER + yytag0p4) - (YYCTXMARKER + yytag0p3), (YYCTXMARKER + yytag0p3),
+                YYCURSOR - (YYCTXMARKER + yytag0p4), (YYCTXMARKER + yytag0p4));
                 return;
         }
 yy3:
@@ -50,19 +50,19 @@ yy5:
        switch (yych) {
        case '0':       goto yy5;
        case '1':
-               yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy7;
        case '2':
-               yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy9;
        case '3':
-               yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        case '4':
-               yyctx0p4 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p4 = yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:
-               yyctx0p4 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p4 = yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy2;
        }
 yy7:
@@ -71,16 +71,16 @@ yy7:
        switch (yych) {
        case '1':       goto yy7;
        case '2':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy9;
        case '3':
-               yyctx0p3 = yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        case '4':
-               yyctx0p4 = yyctx0p3 = yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p4 = yytag0p3 = yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:
-               yyctx0p4 = yyctx0p3 = yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p4 = yytag0p3 = yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy2;
        }
 yy9:
@@ -89,13 +89,13 @@ yy9:
        switch (yych) {
        case '2':       goto yy9;
        case '3':
-               yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        case '4':
-               yyctx0p4 = yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0p4 = yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:
-               yyctx0p4 = yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0p4 = yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy2;
        }
 yy11:
@@ -104,10 +104,10 @@ yy11:
        switch (yych) {
        case '3':       goto yy11;
        case '4':
-               yyctx0p4 = (YYCURSOR - YYCTXMARKER);
+               yytag0p4 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:
-               yyctx0p4 = (YYCURSOR - YYCTXMARKER);
+               yytag0p4 = (YYCURSOR - YYCTXMARKER);
                goto yy2;
        }
 yy13:
similarity index 60%
rename from re2c/test/contexts/fix3_trail.i--contexts--input(custom).c
rename to re2c/test/tags/fix3_trail.i--tags--input(custom).c
index 582ec07d6fa6ff7fb43e58ac210a84f621596484..d7292270212cecdc78500bc5ad0c54970e4ee21b 100644 (file)
@@ -9,36 +9,36 @@ static void lex(const char *YYCURSOR)
     
 {
        char yych;
-       long yyctx0;
-       long yyctx0p1;
-       long yyctx0p2;
-       long yyctx0p3;
+       long yytag0;
+       long yytag0p1;
+       long yytag0p2;
+       long yytag0p3;
        YYBACKUPCTX ();
        yych = YYPEEK ();
        switch (yych) {
        case '0':       goto yy5;
        case '1':
-               yyctx0p1 = YYDIST();
+               yytag0p1 = YYDIST();
                goto yy7;
        case '2':
-               yyctx0p2 = yyctx0p1 = YYDIST();
+               yytag0p2 = yytag0p1 = YYDIST();
                goto yy9;
        case '3':
-               yyctx0p3 = yyctx0p2 = yyctx0p1 = YYDIST();
+               yytag0p3 = yytag0p2 = yytag0p1 = YYDIST();
                goto yy11;
        case '4':
-               yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = YYDIST();
+               yytag0 = yytag0p3 = yytag0p2 = yytag0p1 = YYDIST();
                goto yy13;
        default:        goto yy3;
        }
 yy2:
-       YYRESTORECTX (yyctx0);
+       YYRESTORECTX (yytag0);
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
-                YYCTX(yyctx0p1) - YYCTXMARKER, YYCTXMARKER,
-                YYCTX(yyctx0p2) - YYCTX(yyctx0p1), YYCTX(yyctx0p1),
-                YYCTX(yyctx0p3) - YYCTX(yyctx0p2), YYCTX(yyctx0p2),
-                YYCURSOR - YYCTX(yyctx0p3), YYCTX(yyctx0p3),
+                YYTAG(yytag0p1) - YYCTXMARKER, YYCTXMARKER,
+                YYTAG(yytag0p2) - YYTAG(yytag0p1), YYTAG(yytag0p1),
+                YYTAG(yytag0p3) - YYTAG(yytag0p2), YYTAG(yytag0p2),
+                YYCURSOR - YYTAG(yytag0p3), YYTAG(yytag0p3),
                 YYCURSOR);
                 return;
         }
@@ -51,19 +51,19 @@ yy5:
        switch (yych) {
        case '0':       goto yy5;
        case '1':
-               yyctx0p1 = YYDIST();
+               yytag0p1 = YYDIST();
                goto yy7;
        case '2':
-               yyctx0p2 = yyctx0p1 = YYDIST();
+               yytag0p2 = yytag0p1 = YYDIST();
                goto yy9;
        case '3':
-               yyctx0p3 = yyctx0p2 = yyctx0p1 = YYDIST();
+               yytag0p3 = yytag0p2 = yytag0p1 = YYDIST();
                goto yy11;
        case '4':
-               yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = YYDIST();
+               yytag0 = yytag0p3 = yytag0p2 = yytag0p1 = YYDIST();
                goto yy13;
        default:
-               yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = YYDIST();
+               yytag0 = yytag0p3 = yytag0p2 = yytag0p1 = YYDIST();
                goto yy2;
        }
 yy7:
@@ -72,16 +72,16 @@ yy7:
        switch (yych) {
        case '1':       goto yy7;
        case '2':
-               yyctx0p2 = YYDIST();
+               yytag0p2 = YYDIST();
                goto yy9;
        case '3':
-               yyctx0p3 = yyctx0p2 = YYDIST();
+               yytag0p3 = yytag0p2 = YYDIST();
                goto yy11;
        case '4':
-               yyctx0 = yyctx0p3 = yyctx0p2 = YYDIST();
+               yytag0 = yytag0p3 = yytag0p2 = YYDIST();
                goto yy13;
        default:
-               yyctx0 = yyctx0p3 = yyctx0p2 = YYDIST();
+               yytag0 = yytag0p3 = yytag0p2 = YYDIST();
                goto yy2;
        }
 yy9:
@@ -90,13 +90,13 @@ yy9:
        switch (yych) {
        case '2':       goto yy9;
        case '3':
-               yyctx0p3 = YYDIST();
+               yytag0p3 = YYDIST();
                goto yy11;
        case '4':
-               yyctx0 = yyctx0p3 = YYDIST();
+               yytag0 = yytag0p3 = YYDIST();
                goto yy13;
        default:
-               yyctx0 = yyctx0p3 = YYDIST();
+               yytag0 = yytag0p3 = YYDIST();
                goto yy2;
        }
 yy11:
@@ -105,10 +105,10 @@ yy11:
        switch (yych) {
        case '3':       goto yy11;
        case '4':
-               yyctx0 = YYDIST();
+               yytag0 = YYDIST();
                goto yy13;
        default:
-               yyctx0 = YYDIST();
+               yytag0 = YYDIST();
                goto yy2;
        }
 yy13:
similarity index 53%
rename from re2c/test/contexts/fix3_trail.i--contexts.c
rename to re2c/test/tags/fix3_trail.i--tags.c
index 0e81aa66f057059d83a4a58c2a54c41229d58c78..4f3eea41f283d102436d3d8b77ae8667b4f1421c 100644 (file)
@@ -9,36 +9,36 @@ static void lex(const char *YYCURSOR)
     
 {
        char yych;
-       long yyctx0;
-       long yyctx0p1;
-       long yyctx0p2;
-       long yyctx0p3;
+       long yytag0;
+       long yytag0p1;
+       long yytag0p2;
+       long yytag0p3;
        YYCTXMARKER = YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
        case '0':       goto yy5;
        case '1':
-               yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy7;
        case '2':
-               yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy9;
        case '3':
-               yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        case '4':
-               yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0 = yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:        goto yy3;
        }
 yy2:
-       YYCURSOR = YYCTXMARKER + yyctx0;
+       YYCURSOR = YYCTXMARKER + yytag0;
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
-                (YYCTXMARKER + yyctx0p1) - YYCTXMARKER, YYCTXMARKER,
-                (YYCTXMARKER + yyctx0p2) - (YYCTXMARKER + yyctx0p1), (YYCTXMARKER + yyctx0p1),
-                (YYCTXMARKER + yyctx0p3) - (YYCTXMARKER + yyctx0p2), (YYCTXMARKER + yyctx0p2),
-                YYCURSOR - (YYCTXMARKER + yyctx0p3), (YYCTXMARKER + yyctx0p3),
+                (YYCTXMARKER + yytag0p1) - YYCTXMARKER, YYCTXMARKER,
+                (YYCTXMARKER + yytag0p2) - (YYCTXMARKER + yytag0p1), (YYCTXMARKER + yytag0p1),
+                (YYCTXMARKER + yytag0p3) - (YYCTXMARKER + yytag0p2), (YYCTXMARKER + yytag0p2),
+                YYCURSOR - (YYCTXMARKER + yytag0p3), (YYCTXMARKER + yytag0p3),
                 YYCURSOR);
                 return;
         }
@@ -51,19 +51,19 @@ yy5:
        switch (yych) {
        case '0':       goto yy5;
        case '1':
-               yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy7;
        case '2':
-               yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy9;
        case '3':
-               yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        case '4':
-               yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0 = yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:
-               yyctx0 = yyctx0p3 = yyctx0p2 = yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0 = yytag0p3 = yytag0p2 = yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy2;
        }
 yy7:
@@ -72,16 +72,16 @@ yy7:
        switch (yych) {
        case '1':       goto yy7;
        case '2':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy9;
        case '3':
-               yyctx0p3 = yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        case '4':
-               yyctx0 = yyctx0p3 = yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0 = yytag0p3 = yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:
-               yyctx0 = yyctx0p3 = yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0 = yytag0p3 = yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy2;
        }
 yy9:
@@ -90,13 +90,13 @@ yy9:
        switch (yych) {
        case '2':       goto yy9;
        case '3':
-               yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        case '4':
-               yyctx0 = yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0 = yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:
-               yyctx0 = yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0 = yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy2;
        }
 yy11:
@@ -105,10 +105,10 @@ yy11:
        switch (yych) {
        case '3':       goto yy11;
        case '4':
-               yyctx0 = (YYCURSOR - YYCTXMARKER);
+               yytag0 = (YYCURSOR - YYCTXMARKER);
                goto yy13;
        default:
-               yyctx0 = (YYCURSOR - YYCTXMARKER);
+               yytag0 = (YYCURSOR - YYCTXMARKER);
                goto yy2;
        }
 yy13:
similarity index 67%
rename from re2c/test/contexts/fix4.i--contexts.c
rename to re2c/test/tags/fix4.i--tags.c
index 2d46e396d3e657b6f445ed84aa627bdbefa8c630..9d80f96d10e815f91ca309563257d438d790ffb2 100644 (file)
@@ -9,8 +9,8 @@ static void lex(const char *YYCURSOR)
     
 {
        char yych;
-       long yyctx0p1;
-       long yyctx0p3;
+       long yytag0p1;
+       long yytag0p3;
        YYCTXMARKER = YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
@@ -25,10 +25,10 @@ yy4:
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case '1':
-               yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy5;
        case '2':
-               yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy8;
        default:        goto yy3;
        }
@@ -47,10 +47,10 @@ yy8:
        yych = *++YYCURSOR;
        switch (yych) {
        case '3':
-               yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy9;
        case '4':
-               yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        default:        goto yy7;
        }
@@ -66,10 +66,10 @@ yy11:
        ++YYCURSOR;
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
-                (YYCTXMARKER + yyctx0p1) - YYCTXMARKER, YYCTXMARKER,
-                (YYCTXMARKER + (yyctx0p3 - 1)) - (YYCTXMARKER + yyctx0p1), (YYCTXMARKER + yyctx0p1),
-                (YYCTXMARKER + yyctx0p3) - (YYCTXMARKER + (yyctx0p3 - 1)), (YYCTXMARKER + (yyctx0p3 - 1)),
-                (YYCURSOR - 1) - (YYCTXMARKER + yyctx0p3), (YYCTXMARKER + yyctx0p3),
+                (YYCTXMARKER + yytag0p1) - YYCTXMARKER, YYCTXMARKER,
+                (YYCTXMARKER + (yytag0p3 - 1)) - (YYCTXMARKER + yytag0p1), (YYCTXMARKER + yytag0p1),
+                (YYCTXMARKER + yytag0p3) - (YYCTXMARKER + (yytag0p3 - 1)), (YYCTXMARKER + (yytag0p3 - 1)),
+                (YYCURSOR - 1) - (YYCTXMARKER + yytag0p3), (YYCTXMARKER + yytag0p3),
                 YYCURSOR - (YYCURSOR - 1), (YYCURSOR - 1));
                 return;
         }
similarity index 74%
rename from re2c/test/contexts/fix4_trail.i--contexts--input(custom).c
rename to re2c/test/tags/fix4_trail.i--tags--input(custom).c
index 15150e978c6f94d6bc6431702fcab34b5adcc298..16254fbf611e8adcde91efa27e57c5c453d675cf 100644 (file)
@@ -9,8 +9,8 @@ static void lex(const char *YYCURSOR)
     
 {
        char yych;
-       long yyctx0p1;
-       long yyctx0p3;
+       long yytag0p1;
+       long yytag0p3;
        YYBACKUPCTX ();
        yych = YYPEEK ();
        switch (yych) {
@@ -27,10 +27,10 @@ yy4:
        yych = YYPEEK ();
        switch (yych) {
        case '1':
-               yyctx0p1 = YYDIST();
+               yytag0p1 = YYDIST();
                goto yy5;
        case '2':
-               yyctx0p1 = YYDIST();
+               yytag0p1 = YYDIST();
                goto yy8;
        default:        goto yy3;
        }
@@ -50,10 +50,10 @@ yy8:
        yych = YYPEEK ();
        switch (yych) {
        case '3':
-               yyctx0p3 = YYDIST();
+               yytag0p3 = YYDIST();
                goto yy9;
        case '4':
-               yyctx0p3 = YYDIST();
+               yytag0p3 = YYDIST();
                goto yy11;
        default:        goto yy7;
        }
@@ -70,10 +70,10 @@ yy11:
        YYRESTORECTX (YYDIST() - 1);
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
-                YYCTX(yyctx0p1) - YYCTXMARKER, YYCTXMARKER,
-                YYCTX((yyctx0p3 - 1)) - YYCTX(yyctx0p1), YYCTX(yyctx0p1),
-                YYCTX(yyctx0p3) - YYCTX((yyctx0p3 - 1)), YYCTX((yyctx0p3 - 1)),
-                YYCURSOR - YYCTX(yyctx0p3), YYCTX(yyctx0p3),
+                YYTAG(yytag0p1) - YYCTXMARKER, YYCTXMARKER,
+                YYTAG((yytag0p3 - 1)) - YYTAG(yytag0p1), YYTAG(yytag0p1),
+                YYTAG(yytag0p3) - YYTAG((yytag0p3 - 1)), YYTAG((yytag0p3 - 1)),
+                YYCURSOR - YYTAG(yytag0p3), YYTAG(yytag0p3),
                 YYCURSOR);
                 return;
         }
similarity index 67%
rename from re2c/test/contexts/fix4_trail.i--contexts.c
rename to re2c/test/tags/fix4_trail.i--tags.c
index f57b8ce1c0056c11bebdd4c8095951d6da851289..c60160d6a56b240838dc1634ca0314cca1054ce7 100644 (file)
@@ -9,8 +9,8 @@ static void lex(const char *YYCURSOR)
     
 {
        char yych;
-       long yyctx0p1;
-       long yyctx0p3;
+       long yytag0p1;
+       long yytag0p3;
        YYCTXMARKER = YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
@@ -25,10 +25,10 @@ yy4:
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case '1':
-               yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy5;
        case '2':
-               yyctx0p1 = (YYCURSOR - YYCTXMARKER);
+               yytag0p1 = (YYCURSOR - YYCTXMARKER);
                goto yy8;
        default:        goto yy3;
        }
@@ -47,10 +47,10 @@ yy8:
        yych = *++YYCURSOR;
        switch (yych) {
        case '3':
-               yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy9;
        case '4':
-               yyctx0p3 = (YYCURSOR - YYCTXMARKER);
+               yytag0p3 = (YYCURSOR - YYCTXMARKER);
                goto yy11;
        default:        goto yy7;
        }
@@ -67,10 +67,10 @@ yy11:
        YYCURSOR -= 1;
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
-                (YYCTXMARKER + yyctx0p1) - YYCTXMARKER, YYCTXMARKER,
-                (YYCTXMARKER + (yyctx0p3 - 1)) - (YYCTXMARKER + yyctx0p1), (YYCTXMARKER + yyctx0p1),
-                (YYCTXMARKER + yyctx0p3) - (YYCTXMARKER + (yyctx0p3 - 1)), (YYCTXMARKER + (yyctx0p3 - 1)),
-                YYCURSOR - (YYCTXMARKER + yyctx0p3), (YYCTXMARKER + yyctx0p3),
+                (YYCTXMARKER + yytag0p1) - YYCTXMARKER, YYCTXMARKER,
+                (YYCTXMARKER + (yytag0p3 - 1)) - (YYCTXMARKER + yytag0p1), (YYCTXMARKER + yytag0p1),
+                (YYCTXMARKER + yytag0p3) - (YYCTXMARKER + (yytag0p3 - 1)), (YYCTXMARKER + (yytag0p3 - 1)),
+                YYCURSOR - (YYCTXMARKER + yytag0p3), (YYCTXMARKER + yytag0p3),
                 YYCURSOR);
                 return;
         }
similarity index 66%
rename from re2c/test/contexts/fix5.i--contexts.c
rename to re2c/test/tags/fix5.i--tags.c
index d3c157acfeb816bc047cbcba57aad2d3f94cbc42..29724b5a51bb9ac03912b1d663ddff593f1c53f1 100644 (file)
@@ -9,8 +9,8 @@ static void lex(const char *YYCURSOR)
     
 {
        char yych;
-       long yyctx0p2;
-       long yyctx0p4;
+       long yytag0p2;
+       long yytag0p4;
        YYCTXMARKER = YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
@@ -33,10 +33,10 @@ yy5:
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case '2':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy10;
        case '3':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy12;
        default:        goto yy3;
        }
@@ -56,10 +56,10 @@ yy9:
        yych = *++YYCURSOR;
        switch (yych) {
        case '2':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy10;
        case '3':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy12;
        default:        goto yy8;
        }
@@ -73,17 +73,17 @@ yy10:
        }
 yy12:
        ++YYCURSOR;
-       yyctx0p4 = (YYCURSOR - YYCTXMARKER);
+       yytag0p4 = (YYCURSOR - YYCTXMARKER);
        yych = *YYCURSOR;
        goto yy15;
 yy13:
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%.*s'\n",
-                (YYCTXMARKER + (yyctx0p2 - 1)) - YYCTXMARKER, YYCTXMARKER,
-                (YYCTXMARKER + yyctx0p2) - (YYCTXMARKER + (yyctx0p2 - 1)), (YYCTXMARKER + (yyctx0p2 - 1)),
-                (YYCTXMARKER + (yyctx0p4 - 1)) - (YYCTXMARKER + yyctx0p2), (YYCTXMARKER + yyctx0p2),
-                (YYCTXMARKER + yyctx0p4) - (YYCTXMARKER + (yyctx0p4 - 1)), (YYCTXMARKER + (yyctx0p4 - 1)),
-                YYCURSOR - (YYCTXMARKER + yyctx0p4), (YYCTXMARKER + yyctx0p4));
+                (YYCTXMARKER + (yytag0p2 - 1)) - YYCTXMARKER, YYCTXMARKER,
+                (YYCTXMARKER + yytag0p2) - (YYCTXMARKER + (yytag0p2 - 1)), (YYCTXMARKER + (yytag0p2 - 1)),
+                (YYCTXMARKER + (yytag0p4 - 1)) - (YYCTXMARKER + yytag0p2), (YYCTXMARKER + yytag0p2),
+                (YYCTXMARKER + yytag0p4) - (YYCTXMARKER + (yytag0p4 - 1)), (YYCTXMARKER + (yytag0p4 - 1)),
+                YYCURSOR - (YYCTXMARKER + yytag0p4), (YYCTXMARKER + yytag0p4));
                 return;
         }
 yy14:
similarity index 76%
rename from re2c/test/contexts/fix5_trail.i--contexts--input(custom).c
rename to re2c/test/tags/fix5_trail.i--tags--input(custom).c
index 88c385a5fc0aa7efc578b5bd654e13c79b04c217..2ed70528057cc81222e4d817f2ca9f5d2b98401e 100644 (file)
@@ -9,8 +9,8 @@ static void lex(const char *YYCURSOR)
     
 {
        char yych;
-       long yyctx0;
-       long yyctx0p2;
+       long yytag0;
+       long yytag0p2;
        YYBACKUPCTX ();
        yych = YYPEEK ();
        switch (yych) {
@@ -37,10 +37,10 @@ yy5:
        yych = YYPEEK ();
        switch (yych) {
        case '2':
-               yyctx0p2 = YYDIST();
+               yytag0p2 = YYDIST();
                goto yy10;
        case '3':
-               yyctx0p2 = YYDIST();
+               yytag0p2 = YYDIST();
                goto yy12;
        default:        goto yy3;
        }
@@ -61,10 +61,10 @@ yy9:
        yych = YYPEEK ();
        switch (yych) {
        case '2':
-               yyctx0p2 = YYDIST();
+               yytag0p2 = YYDIST();
                goto yy10;
        case '3':
-               yyctx0p2 = YYDIST();
+               yytag0p2 = YYDIST();
                goto yy12;
        default:        goto yy8;
        }
@@ -78,17 +78,17 @@ yy10:
        }
 yy12:
        YYSKIP ();
-       yyctx0 = YYDIST();
+       yytag0 = YYDIST();
        yych = YYPEEK ();
        goto yy15;
 yy13:
-       YYRESTORECTX (yyctx0);
+       YYRESTORECTX (yytag0);
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
-                YYCTX((yyctx0p2 - 1)) - YYCTXMARKER, YYCTXMARKER,
-                YYCTX(yyctx0p2) - YYCTX((yyctx0p2 - 1)), YYCTX((yyctx0p2 - 1)),
-                YYCTX((yyctx0 - 1)) - YYCTX(yyctx0p2), YYCTX(yyctx0p2),
-                YYCURSOR - YYCTX((yyctx0 - 1)), YYCTX((yyctx0 - 1)),
+                YYTAG((yytag0p2 - 1)) - YYCTXMARKER, YYCTXMARKER,
+                YYTAG(yytag0p2) - YYTAG((yytag0p2 - 1)), YYTAG((yytag0p2 - 1)),
+                YYTAG((yytag0 - 1)) - YYTAG(yytag0p2), YYTAG(yytag0p2),
+                YYCURSOR - YYTAG((yytag0 - 1)), YYTAG((yytag0 - 1)),
                 YYCURSOR);
                 return;
         }
similarity index 69%
rename from re2c/test/contexts/fix5_trail.i--contexts.c
rename to re2c/test/tags/fix5_trail.i--tags.c
index 1d3469150853a66ecff52d00a6ad7a87f7b882dc..57075c3ab4ed95796f8d02fb0d2221077552d2c6 100644 (file)
@@ -9,8 +9,8 @@ static void lex(const char *YYCURSOR)
     
 {
        char yych;
-       long yyctx0;
-       long yyctx0p2;
+       long yytag0;
+       long yytag0p2;
        YYCTXMARKER = YYCURSOR;
        yych = *YYCURSOR;
        switch (yych) {
@@ -33,10 +33,10 @@ yy5:
        yych = *(YYMARKER = ++YYCURSOR);
        switch (yych) {
        case '2':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy10;
        case '3':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy12;
        default:        goto yy3;
        }
@@ -56,10 +56,10 @@ yy9:
        yych = *++YYCURSOR;
        switch (yych) {
        case '2':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy10;
        case '3':
-               yyctx0p2 = (YYCURSOR - YYCTXMARKER);
+               yytag0p2 = (YYCURSOR - YYCTXMARKER);
                goto yy12;
        default:        goto yy8;
        }
@@ -73,17 +73,17 @@ yy10:
        }
 yy12:
        ++YYCURSOR;
-       yyctx0 = (YYCURSOR - YYCTXMARKER);
+       yytag0 = (YYCURSOR - YYCTXMARKER);
        yych = *YYCURSOR;
        goto yy15;
 yy13:
-       YYCURSOR = YYCTXMARKER + yyctx0;
+       YYCURSOR = YYCTXMARKER + yytag0;
        {
             printf("'%.*s', '%.*s', '%.*s', '%.*s', '%s'\n",
-                (YYCTXMARKER + (yyctx0p2 - 1)) - YYCTXMARKER, YYCTXMARKER,
-                (YYCTXMARKER + yyctx0p2) - (YYCTXMARKER + (yyctx0p2 - 1)), (YYCTXMARKER + (yyctx0p2 - 1)),
-                (YYCTXMARKER + (yyctx0 - 1)) - (YYCTXMARKER + yyctx0p2), (YYCTXMARKER + yyctx0p2),
-                YYCURSOR - (YYCTXMARKER + (yyctx0 - 1)), (YYCTXMARKER + (yyctx0 - 1)),
+                (YYCTXMARKER + (yytag0p2 - 1)) - YYCTXMARKER, YYCTXMARKER,
+                (YYCTXMARKER + yytag0p2) - (YYCTXMARKER + (yytag0p2 - 1)), (YYCTXMARKER + (yytag0p2 - 1)),
+                (YYCTXMARKER + (yytag0 - 1)) - (YYCTXMARKER + yytag0p2), (YYCTXMARKER + yytag0p2),
+                YYCURSOR - (YYCTXMARKER + (yytag0 - 1)), (YYCTXMARKER + (yytag0 - 1)),
                 YYCURSOR);
                 return;
         }
diff --git a/re2c/test/tags/nondeterministic1.i--tags.c b/re2c/test/tags/nondeterministic1.i--tags.c
new file mode 100644 (file)
index 0000000..6647a34
--- /dev/null
@@ -0,0 +1 @@
+re2c: error: line 13: tag 'p1' is nondeterministic [-Werror-nondeterministic-tags]
diff --git a/re2c/test/tags/nondeterministic1_trail.i--tags.c b/re2c/test/tags/nondeterministic1_trail.i--tags.c
new file mode 100644 (file)
index 0000000..4844e83
--- /dev/null
@@ -0,0 +1 @@
+re2c: error: line 13: trailing context is nondeterministic [-Werror-nondeterministic-tags]
similarity index 90%
rename from re2c/test/contexts/selfoverlap1_trail.i.c
rename to re2c/test/tags/nondeterministic1_trail.i.c
index 5d910e1d08a94389cc727778853842581359661d..7dbebbc4670562182074245cb3d9f7d07e95ff60 100644 (file)
@@ -54,4 +54,4 @@ int main(int argc, char **argv)
     }
     return 0;
 }
-re2c: warning: line 19: trailing context is self-overlapping [-Wselfoverlapping-contexts]
+re2c: warning: line 13: trailing context is nondeterministic [-Wnondeterministic-tags]