]> granicus.if.org Git - re2c/commitdiff
Forbid configuration of certain options.
authorUlya Trofimovich <skvadrik@gmail.com>
Tue, 7 Mar 2017 18:51:29 +0000 (18:51 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Tue, 7 Mar 2017 18:51:29 +0000 (18:51 +0000)
Configuration of these options either makes little sense (like changing
target on the fly) or is technically impossible to implement (the only
example is '-F, --flex-syntax' option which non-trivially affects the way
RE2C parses programs).

re2c/bootstrap/src/ast/lex_conf.cc
re2c/src/ast/lex_conf.re
re2c/test/config/flags.c
re2c/test/config/flags.re
re2c/test/config/flags_output.c [deleted file]
re2c/test/config/flags_output.re [deleted file]
re2c/test/config/flags_type-header.c [deleted file]
re2c/test/config/flags_type-header.re [deleted file]
re2c/test/config12_error1.c

index 619df70c0af9f1a50baae9b3c22bf0d2618d2faf..658aaad1ef4eeb624e70c56445d0dbcf28ee2489 100644 (file)
@@ -1,9 +1,10 @@
-/* Generated by re2c 0.16 on Tue Mar  7 18:21:20 2017 */
+/* Generated by re2c 0.16 on Tue Mar  7 18:49:39 2017 */
 #line 1 "../src/ast/lex_conf.re"
 #include "src/util/c99_stdint.h"
 #include <string>
 
 #include "src/code/output.h"
+#include "src/conf/msg.h"
 #include "src/re/encoding/enc.h"
 #include "src/ast/scanner.h"
 #include "src/util/s_to_n32_unsafe.h"
@@ -12,14 +13,14 @@ namespace re2c
 {
 
 // global re2c config (affects the whole file)
-#line 34 "../src/ast/lex_conf.re"
+#line 35 "../src/ast/lex_conf.re"
 
 
 void Scanner::lex_conf ()
 {
        tok = cur;
 
-#line 23 "src/ast/lex_conf.cc"
+#line 24 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        unsigned int yyaccept = 0;
@@ -29,17 +30,17 @@ void Scanner::lex_conf ()
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
                 64,   0,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0, 
-               128, 128, 128, 128, 128, 128, 128, 128
-               128, 128,   0,   0,   0,   0,   0,   0, 
-                 0,   0,   0,   0,   0,   0,   0,   0
-                 0,   0,   0,   0,   0,   0,   0,   0
-                 0,   0,   0,   0,   0,   0,   0,   0
-                 0,   0,   0,   0,   0,   0,   0,   0
-                 0,   0,   0,   0,   0,   0,   0,   0
-                 0,   0,   0,   0,   0,   0,   0,   0
-                 0,   0,   0,   0,   0,   0,   0,   0
-                 0,   0,   0,   0,   0,   0,   0,   0, 
+                 0,   0,   0,   0,   0,  32,   0,   0, 
+               160, 160, 160, 160, 160, 160, 160, 160
+               160, 160,  32,   0,   0,   0,   0,   0, 
+                 0,  32,  32,  32,  32,  32,  32,  32
+                32,  32,  32,  32,  32,  32,  32,  32
+                32,  32,  32,  32,  32,  32,  32,  32
+                32,  32,  32,   0,   0,   0,   0,  32
+                 0,  32,  32,  32,  32,  32,  32,  32
+                32,  32,  32,  32,  32,  32,  32,  32
+                32,  32,  32,  32,  32,  32,  32,  32
+                32,  32,  32,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
@@ -57,3300 +58,3221 @@ void Scanner::lex_conf ()
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
        };
-       if ((lim - cur) < 27) fill(27);
+       if ((lim - cur) < 28) fill(28);
        yych = (unsigned char)*cur;
-       switch (yych) {
-       case 'c':       goto yy4;
-       case 'd':       goto yy5;
-       case 'f':       goto yy6;
-       case 'i':       goto yy7;
-       case 'l':       goto yy8;
-       case 's':       goto yy9;
-       case 't':       goto yy10;
-       case 'v':       goto yy11;
-       case 'y':       goto yy12;
-       default:        goto yy2;
+       if (yych <= 'e') {
+               if (yych <= 'Z') {
+                       if (yych <= '/') {
+                               if (yych == '-') goto yy3;
+                       } else {
+                               if (yych <= ':') goto yy3;
+                               if (yych >= 'A') goto yy3;
+                       }
+               } else {
+                       if (yych <= '`') {
+                               if (yych == '_') goto yy3;
+                       } else {
+                               if (yych <= 'b') goto yy3;
+                               if (yych <= 'c') goto yy5;
+                               if (yych <= 'd') goto yy6;
+                               goto yy3;
+                       }
+               }
+       } else {
+               if (yych <= 's') {
+                       if (yych <= 'i') {
+                               if (yych <= 'f') goto yy7;
+                               if (yych <= 'h') goto yy3;
+                               goto yy8;
+                       } else {
+                               if (yych == 'l') goto yy9;
+                               if (yych <= 'r') goto yy3;
+                               goto yy10;
+                       }
+               } else {
+                       if (yych <= 'v') {
+                               if (yych <= 't') goto yy11;
+                               if (yych <= 'u') goto yy3;
+                               goto yy12;
+                       } else {
+                               if (yych == 'y') goto yy13;
+                               if (yych <= 'z') goto yy3;
+                       }
+               }
        }
 yy2:
-       ++cur;
+#line 158 "../src/ast/lex_conf.re"
+       {
+               fatal_error(cline, get_column(),
+                       "unrecognized configuration '%.*s'",
+                       static_cast<int>(cur - tok), tok);
+       }
+#line 111 "src/ast/lex_conf.cc"
 yy3:
-#line 40 "../src/ast/lex_conf.re"
-       { fatal(get_column() - tchar, "unrecognized configuration"); }
-#line 80 "src/ast/lex_conf.cc"
+       ++cur;
+       if (lim <= cur) fill(1);
+       yych = (unsigned char)*cur;
 yy4:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'g') goto yy13;
-       if (yych == 'o') goto yy15;
-       goto yy3;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy2;
 yy5:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'e') goto yy16;
-       goto yy3;
+       yych = (unsigned char)*++cur;
+       if (yych == 'g') goto yy14;
+       if (yych == 'o') goto yy15;
+       goto yy4;
 yy6:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'l') goto yy17;
-       goto yy3;
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy16;
+       goto yy4;
 yy7:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'n') goto yy18;
-       goto yy3;
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy17;
+       goto yy4;
 yy8:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy19;
-       goto yy3;
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy18;
+       goto yy4;
 yy9:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 't') goto yy20;
-       goto yy3;
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy19;
+       goto yy4;
 yy10:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy21;
-       goto yy3;
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy20;
+       goto yy4;
 yy11:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy22;
-       goto yy3;
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy21;
+       goto yy4;
 yy12:
-       yyaccept = 0;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'y') goto yy23;
-       goto yy3;
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy22;
+       goto yy4;
 yy13:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy24;
+       if (yych == 'y') goto yy23;
+       goto yy4;
 yy14:
-       cur = mar;
-       if (yyaccept <= 11) {
-               if (yyaccept <= 5) {
-                       if (yyaccept <= 2) {
-                               if (yyaccept <= 1) {
-                                       if (yyaccept == 0) {
-                                               goto yy3;
-                                       } else {
-                                               goto yy101;
-                                       }
-                               } else {
-                                       goto yy103;
-                               }
-                       } else {
-                               if (yyaccept <= 4) {
-                                       if (yyaccept == 3) {
-                                               goto yy105;
-                                       } else {
-                                               goto yy107;
-                                       }
-                               } else {
-                                       goto yy109;
-                               }
-                       }
-               } else {
-                       if (yyaccept <= 8) {
-                               if (yyaccept <= 7) {
-                                       if (yyaccept == 6) {
-                                               goto yy113;
-                                       } else {
-                                               goto yy116;
-                                       }
-                               } else {
-                                       goto yy119;
-                               }
-                       } else {
-                               if (yyaccept <= 10) {
-                                       if (yyaccept == 9) {
-                                               goto yy121;
-                                       } else {
-                                               goto yy123;
-                                       }
-                               } else {
-                                       goto yy125;
-                               }
-                       }
-               }
-       } else {
-               if (yyaccept <= 17) {
-                       if (yyaccept <= 14) {
-                               if (yyaccept <= 13) {
-                                       if (yyaccept == 12) {
-                                               goto yy127;
-                                       } else {
-                                               goto yy194;
-                                       }
-                               } else {
-                                       goto yy290;
-                               }
-                       } else {
-                               if (yyaccept <= 16) {
-                                       if (yyaccept == 15) {
-                                               goto yy369;
-                                       } else {
-                                               goto yy447;
-                                       }
-                               } else {
-                                       goto yy560;
-                               }
-                       }
-               } else {
-                       if (yyaccept <= 20) {
-                               if (yyaccept <= 19) {
-                                       if (yyaccept == 18) {
-                                               goto yy621;
-                                       } else {
-                                               goto yy665;
-                                       }
-                               } else {
-                                       goto yy672;
-                               }
-                       } else {
-                               if (yyaccept == 21) {
-                                       goto yy762;
-                               } else {
-                                       goto yy765;
-                               }
-                       }
-               }
-       }
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy24;
+       goto yy4;
 yy15:
        yych = (unsigned char)*++cur;
        if (yych == 'n') goto yy25;
-       goto yy14;
+       goto yy4;
 yy16:
        yych = (unsigned char)*++cur;
        if (yych == 'f') goto yy26;
-       goto yy14;
+       goto yy4;
 yy17:
        yych = (unsigned char)*++cur;
        if (yych == 'a') goto yy27;
-       goto yy14;
+       goto yy4;
 yy18:
        yych = (unsigned char)*++cur;
        if (yych == 'd') goto yy28;
-       goto yy14;
+       goto yy4;
 yy19:
        yych = (unsigned char)*++cur;
        if (yych == 'b') goto yy29;
-       goto yy14;
+       goto yy4;
 yy20:
        yych = (unsigned char)*++cur;
        if (yych == 'a') goto yy30;
-       goto yy14;
+       goto yy4;
 yy21:
        yych = (unsigned char)*++cur;
        if (yych == 'g') goto yy31;
-       goto yy14;
+       goto yy4;
 yy22:
        yych = (unsigned char)*++cur;
        if (yych == 'r') goto yy32;
-       goto yy14;
+       goto yy4;
 yy23:
        yych = (unsigned char)*++cur;
        if (yych <= 'c') {
-               if (yych <= 'a') goto yy14;
+               if (yych <= 'a') goto yy4;
                if (yych <= 'b') goto yy33;
                goto yy34;
        } else {
                if (yych == 'f') goto yy35;
-               goto yy14;
+               goto yy4;
        }
 yy24:
        yych = (unsigned char)*++cur;
        if (yych == 't') goto yy36;
-       goto yy14;
+       goto yy4;
 yy25:
        yych = (unsigned char)*++cur;
        if (yych == 'd') goto yy37;
-       goto yy14;
+       goto yy4;
 yy26:
        yych = (unsigned char)*++cur;
        if (yych == 'i') goto yy38;
-       goto yy14;
+       goto yy4;
 yy27:
        yych = (unsigned char)*++cur;
        if (yych == 'g') goto yy39;
-       goto yy14;
+       goto yy4;
 yy28:
        yych = (unsigned char)*++cur;
        if (yych == 'e') goto yy40;
-       goto yy14;
+       goto yy4;
 yy29:
        yych = (unsigned char)*++cur;
        if (yych == 'e') goto yy41;
-       goto yy14;
+       goto yy4;
 yy30:
        yych = (unsigned char)*++cur;
        if (yych == 'r') goto yy42;
        if (yych == 't') goto yy43;
-       goto yy14;
+       goto yy4;
 yy31:
        yych = (unsigned char)*++cur;
        if (yych == 's') goto yy44;
-       goto yy14;
+       goto yy4;
 yy32:
        yych = (unsigned char)*++cur;
        if (yych == 'i') goto yy45;
-       goto yy14;
+       goto yy4;
 yy33:
        yych = (unsigned char)*++cur;
        if (yych == 'm') goto yy46;
-       goto yy14;
+       goto yy4;
 yy34:
        yych = (unsigned char)*++cur;
        if (yych == 'h') goto yy47;
-       goto yy14;
+       goto yy4;
 yy35:
        yych = (unsigned char)*++cur;
        if (yych == 'i') goto yy48;
-       goto yy14;
+       goto yy4;
 yy36:
        yych = (unsigned char)*++cur;
        if (yych == 'o') goto yy49;
-       goto yy14;
+       goto yy4;
 yy37:
        yych = (unsigned char)*++cur;
        if (yych <= 'd') {
                if (yych == ':') goto yy50;
-               goto yy14;
+               goto yy4;
        } else {
                if (yych <= 'e') goto yy51;
                if (yych == 'p') goto yy52;
-               goto yy14;
+               goto yy4;
        }
 yy38:
        yych = (unsigned char)*++cur;
        if (yych == 'n') goto yy53;
-       goto yy14;
+       goto yy4;
 yy39:
        yych = (unsigned char)*++cur;
        if (yych == 's') goto yy54;
-       goto yy14;
+       goto yy4;
 yy40:
        yych = (unsigned char)*++cur;
        if (yych == 'n') goto yy55;
-       goto yy14;
+       goto yy4;
 yy41:
        yych = (unsigned char)*++cur;
        if (yych == 'l') goto yy56;
-       goto yy14;
+       goto yy4;
 yy42:
        yych = (unsigned char)*++cur;
        if (yych == 't') goto yy57;
-       goto yy14;
+       goto yy4;
 yy43:
        yych = (unsigned char)*++cur;
        if (yych == 'e') goto yy58;
-       goto yy14;
+       goto yy4;
 yy44:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy59;
-       goto yy14;
+       goto yy4;
 yy45:
        yych = (unsigned char)*++cur;
        if (yych == 'a') goto yy60;
-       goto yy14;
+       goto yy4;
 yy46:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy61;
-       goto yy14;
+       goto yy4;
 yy47:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy62;
-       goto yy14;
+       goto yy4;
 yy48:
        yych = (unsigned char)*++cur;
        if (yych == 'l') goto yy63;
-       goto yy14;
+       goto yy4;
 yy49:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy64;
-       goto yy14;
+       goto yy4;
 yy50:
        yych = (unsigned char)*++cur;
        if (yych == 'd') goto yy65;
        if (yych == 'g') goto yy66;
-       goto yy14;
+       goto yy4;
 yy51:
        yych = (unsigned char)*++cur;
        if (yych == 'n') goto yy67;
-       goto yy14;
+       goto yy4;
 yy52:
        yych = (unsigned char)*++cur;
        if (yych == 'r') goto yy68;
-       goto yy14;
+       goto yy4;
 yy53:
        yych = (unsigned char)*++cur;
        if (yych == 'e') goto yy69;
-       goto yy14;
+       goto yy4;
 yy54:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy70;
-       goto yy14;
+       goto yy4;
 yy55:
        yych = (unsigned char)*++cur;
        if (yych == 't') goto yy71;
-       goto yy14;
+       goto yy4;
 yy56:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy72;
        if (yych == 'p') goto yy73;
-       goto yy14;
+       goto yy4;
 yy57:
        yych = (unsigned char)*++cur;
        if (yych == 'l') goto yy74;
-       goto yy14;
+       goto yy4;
 yy58:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy75;
-       goto yy14;
+       goto yy4;
 yy59:
        yych = (unsigned char)*++cur;
        if (yych <= 'e') {
-               if (yych <= 'c') goto yy14;
+               if (yych <= 'c') goto yy4;
                if (yych <= 'd') goto yy76;
                goto yy77;
        } else {
                if (yych == 'p') goto yy78;
-               goto yy14;
+               goto yy4;
        }
 yy60:
        yych = (unsigned char)*++cur;
        if (yych == 'b') goto yy79;
-       goto yy14;
+       goto yy4;
 yy61:
        yych = (unsigned char)*++cur;
        if (yych == 'h') goto yy80;
-       goto yy14;
+       goto yy4;
 yy62:
        yych = (unsigned char)*++cur;
        if (yych == 'c') goto yy81;
        if (yych == 'e') goto yy82;
-       goto yy14;
+       goto yy4;
 yy63:
        yych = (unsigned char)*++cur;
        if (yych == 'l') goto yy83;
-       goto yy14;
+       goto yy4;
 yy64:
        yych = (unsigned char)*++cur;
        if (yych == 't') goto yy84;
-       goto yy14;
+       goto yy4;
 yy65:
        yych = (unsigned char)*++cur;
        if (yych == 'i') goto yy85;
-       goto yy14;
+       goto yy4;
 yy66:
        yych = (unsigned char)*++cur;
        if (yych == 'o') goto yy86;
-       goto yy14;
+       goto yy4;
 yy67:
        yych = (unsigned char)*++cur;
        if (yych == 'u') goto yy87;
-       goto yy14;
+       goto yy4;
 yy68:
        yych = (unsigned char)*++cur;
        if (yych == 'e') goto yy88;
-       goto yy14;
+       goto yy4;
 yy69:
        yych = (unsigned char)*++cur;
        if (yych == ':') goto yy89;
-       goto yy14;
+       goto yy4;
 yy70:
        yych = (unsigned char)*++cur;
        switch (yych) {
        case '8':       goto yy90;
-       case 'D':       goto yy92;
-       case 'F':       goto yy94;
-       case 'S':       goto yy96;
-       case 'T':       goto yy98;
-       case 'b':       goto yy100;
-       case 'c':       goto yy102;
-       case 'd':       goto yy104;
-       case 'e':       goto yy106;
-       case 'f':       goto yy108;
-       case 'g':       goto yy110;
-       case 'i':       goto yy112;
-       case 'n':       goto yy114;
-       case 'o':       goto yy115;
-       case 'p':       goto yy117;
-       case 'r':       goto yy118;
-       case 's':       goto yy120;
-       case 't':       goto yy122;
-       case 'u':       goto yy124;
-       case 'w':       goto yy126;
-       case 'x':       goto yy128;
-       default:        goto yy14;
+       case 'T':       goto yy92;
+       case 'b':       goto yy94;
+       case 'c':       goto yy96;
+       case 'd':       goto yy97;
+       case 'e':       goto yy99;
+       case 'g':       goto yy101;
+       case 'i':       goto yy103;
+       case 'n':       goto yy105;
+       case 'p':       goto yy106;
+       case 's':       goto yy107;
+       case 't':       goto yy109;
+       case 'u':       goto yy110;
+       case 'w':       goto yy112;
+       case 'x':       goto yy114;
+       default:        goto yy4;
        }
 yy71:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy130;
-       goto yy14;
+       if (yych == ':') goto yy116;
+       goto yy4;
 yy72:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy131;
-       goto yy14;
+       if (yych == 'y') goto yy117;
+       goto yy4;
 yy73:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy132;
-       goto yy14;
+       if (yych == 'r') goto yy118;
+       goto yy4;
 yy74:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy133;
-       goto yy14;
+       if (yych == 'a') goto yy119;
+       goto yy4;
 yy75:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy134;
-       if (yych == 'n') goto yy135;
-       goto yy14;
+       if (yych == 'a') goto yy120;
+       if (yych == 'n') goto yy121;
+       goto yy4;
 yy76:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy136;
-       goto yy14;
+       if (yych == 'e') goto yy122;
+       goto yy4;
 yy77:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy137;
-       goto yy14;
+       if (yych == 'x') goto yy123;
+       goto yy4;
 yy78:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy138;
-       goto yy14;
+       if (yych == 'r') goto yy124;
+       goto yy4;
 yy79:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy139;
-       goto yy14;
+       if (yych == 'l') goto yy125;
+       goto yy4;
 yy80:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy140;
-       goto yy14;
+       if (yych == 'e') goto yy126;
+       goto yy4;
 yy81:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy141;
-       goto yy14;
+       if (yych == 'o') goto yy127;
+       goto yy4;
 yy82:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy142;
-       goto yy14;
+       if (yych == 'm') goto yy128;
+       goto yy4;
 yy83:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy143;
-       goto yy14;
+       if (yych == ':') goto yy129;
+       goto yy4;
 yy84:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy144;
-       goto yy14;
+       if (yych == 'h') goto yy130;
+       goto yy4;
 yy85:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy145;
-       goto yy14;
+       if (yych == 'v') goto yy131;
+       goto yy4;
 yy86:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy146;
-       goto yy14;
+       if (yych == 't') goto yy132;
+       goto yy4;
 yy87:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy147;
-       goto yy14;
+       if (yych == 'm') goto yy133;
+       goto yy4;
 yy88:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy148;
-       goto yy14;
+       if (yych == 'f') goto yy134;
+       goto yy4;
 yy89:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy149;
-       goto yy14;
+       if (yych == 'Y') goto yy135;
+       goto yy4;
 yy90:
-       ++cur;
-#line 67 "../src/ast/lex_conf.re"
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 57 "../src/ast/lex_conf.re"
        { lex_conf_enc(Enc::UTF8);   return; }
-#line 570 "src/ast/lex_conf.cc"
+#line 508 "src/ast/lex_conf.cc"
 yy92:
-       ++cur;
-#line 42 "../src/ast/lex_conf.re"
-       { opts.set_target(TARGET_DOT);      lex_conf_semicolon(); return; }
-#line 575 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 46 "../src/ast/lex_conf.re"
+       { opts.set_tags(lex_conf_bool());               return; }
+#line 516 "src/ast/lex_conf.cc"
 yy94:
-       ++cur;
-#line 49 "../src/ast/lex_conf.re"
-       { opts.set_FFlag(lex_conf_bool());              return; }
-#line 580 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych <= 'Z') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= ':') goto yy3;
+                       if (yych >= 'A') goto yy3;
+               }
+       } else {
+               if (yych <= '`') {
+                       if (yych == '_') goto yy3;
+               } else {
+                       if (yych == 'i') goto yy136;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
+yy95:
+#line 41 "../src/ast/lex_conf.re"
+       { opts.set_bFlag(lex_conf_bool());              return; }
+#line 537 "src/ast/lex_conf.cc"
 yy96:
-       ++cur;
-#line 43 "../src/ast/lex_conf.re"
-       { opts.set_target(TARGET_SKELETON); lex_conf_semicolon(); return; }
-#line 585 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy137;
+       if (yych == 'o') goto yy138;
+       goto yy4;
+yy97:
+       yych = (unsigned char)*++cur;
+       if (yych <= '^') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= ':') goto yy3;
+                       if (yych <= '@') goto yy98;
+                       if (yych <= 'Z') goto yy3;
+               }
+       } else {
+               if (yych <= 'd') {
+                       if (yych != '`') goto yy3;
+               } else {
+                       if (yych <= 'e') goto yy139;
+                       if (yych <= 'f') goto yy140;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
 yy98:
-       ++cur;
-#line 54 "../src/ast/lex_conf.re"
-       { opts.set_tags(lex_conf_bool());               return; }
-#line 590 "src/ast/lex_conf.cc"
+#line 42 "../src/ast/lex_conf.re"
+       { opts.set_dFlag(lex_conf_bool());              return; }
+#line 565 "src/ast/lex_conf.cc"
+yy99:
+       yych = (unsigned char)*++cur;
+       if (yych <= '_') {
+               if (yych <= ':') {
+                       if (yych == '-') goto yy3;
+                       if (yych >= '0') goto yy3;
+               } else {
+                       if (yych <= '@') goto yy100;
+                       if (yych <= 'Z') goto yy3;
+                       if (yych >= '_') goto yy3;
+               }
+       } else {
+               if (yych <= 'c') {
+                       if (yych <= '`') goto yy100;
+                       if (yych <= 'a') goto yy141;
+                       if (yych <= 'b') goto yy3;
+                       goto yy142;
+               } else {
+                       if (yych <= 'm') {
+                               if (yych <= 'l') goto yy3;
+                               goto yy143;
+                       } else {
+                               if (yych <= 'n') goto yy144;
+                               if (yych <= 'z') goto yy3;
+                       }
+               }
+       }
 yy100:
-       yyaccept = 1;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'i') goto yy150;
+#line 53 "../src/ast/lex_conf.re"
+       { lex_conf_enc(Enc::EBCDIC); return; }
+#line 596 "src/ast/lex_conf.cc"
 yy101:
-#line 45 "../src/ast/lex_conf.re"
-       { opts.set_bFlag(lex_conf_bool());              return; }
-#line 598 "src/ast/lex_conf.cc"
-yy102:
-       yyaccept = 2;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy151;
-       if (yych == 'o') goto yy152;
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 43 "../src/ast/lex_conf.re"
+       { opts.set_gFlag(lex_conf_bool());              return; }
+#line 604 "src/ast/lex_conf.cc"
 yy103:
-#line 46 "../src/ast/lex_conf.re"
-       { opts.set_cFlag(lex_conf_bool());              return; }
-#line 607 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych <= 'Z') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= ':') goto yy3;
+                       if (yych >= 'A') goto yy3;
+               }
+       } else {
+               if (yych <= '`') {
+                       if (yych == '_') goto yy3;
+               } else {
+                       if (yych == 'n') goto yy145;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
 yy104:
-       yyaccept = 3;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych <= 'd') goto yy105;
-       if (yych <= 'e') goto yy153;
-       if (yych <= 'f') goto yy154;
+#line 44 "../src/ast/lex_conf.re"
+       { opts.set_iFlag(lex_conf_bool());              return; }
+#line 625 "src/ast/lex_conf.cc"
 yy105:
-#line 47 "../src/ast/lex_conf.re"
-       { opts.set_dFlag(lex_conf_bool());              return; }
-#line 617 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy146;
+       if (yych == 'o') goto yy147;
+       goto yy4;
 yy106:
-       yyaccept = 4;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych <= 'c') {
-               if (yych == 'a') goto yy155;
-               if (yych >= 'c') goto yy156;
-       } else {
-               if (yych <= 'l') goto yy107;
-               if (yych <= 'm') goto yy157;
-               if (yych <= 'n') goto yy158;
-       }
+       yych = (unsigned char)*++cur;
+       if (yych == 'o') goto yy148;
+       goto yy4;
 yy107:
-#line 63 "../src/ast/lex_conf.re"
-       { lex_conf_enc(Enc::EBCDIC); return; }
-#line 632 "src/ast/lex_conf.cc"
-yy108:
-       yyaccept = 5;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'l') goto yy159;
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 45 "../src/ast/lex_conf.re"
+       { opts.set_sFlag(lex_conf_bool());              return; }
+#line 642 "src/ast/lex_conf.cc"
 yy109:
-#line 48 "../src/ast/lex_conf.re"
-       { opts.set_fFlag(lex_conf_bool());              return; }
-#line 640 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy149;
+       goto yy4;
 yy110:
-       ++cur;
-#line 50 "../src/ast/lex_conf.re"
-       { opts.set_gFlag(lex_conf_bool());              return; }
-#line 645 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych <= '^') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= ':') goto yy3;
+                       if (yych <= '@') goto yy111;
+                       if (yych <= 'Z') goto yy3;
+               }
+       } else {
+               if (yych <= 'n') {
+                       if (yych == '`') goto yy111;
+                       if (yych <= 'm') goto yy3;
+                       goto yy150;
+               } else {
+                       if (yych == 't') goto yy151;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
+yy111:
+#line 54 "../src/ast/lex_conf.re"
+       { lex_conf_enc(Enc::UTF32);  return; }
+#line 670 "src/ast/lex_conf.cc"
 yy112:
-       yyaccept = 6;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'n') goto yy160;
+       yych = (unsigned char)*++cur;
+       if (yych <= 'Z') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= ':') goto yy3;
+                       if (yych >= 'A') goto yy3;
+               }
+       } else {
+               if (yych <= '`') {
+                       if (yych == '_') goto yy3;
+               } else {
+                       if (yych == 'i') goto yy152;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
 yy113:
-#line 51 "../src/ast/lex_conf.re"
-       { opts.set_iFlag(lex_conf_bool());              return; }
-#line 653 "src/ast/lex_conf.cc"
+#line 55 "../src/ast/lex_conf.re"
+       { lex_conf_enc(Enc::UCS2);   return; }
+#line 691 "src/ast/lex_conf.cc"
 yy114:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy161;
-       if (yych == 'o') goto yy162;
-       goto yy14;
-yy115:
-       yyaccept = 7;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy163;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 56 "../src/ast/lex_conf.re"
+       { lex_conf_enc(Enc::UTF16);  return; }
+#line 699 "src/ast/lex_conf.cc"
 yy116:
-#line 69 "../src/ast/lex_conf.re"
-       { opts.set_output_file(lex_conf_string()); return; }
-#line 666 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych <= 'r') goto yy4;
+       if (yych <= 's') goto yy153;
+       if (yych <= 't') goto yy154;
+       goto yy4;
 yy117:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy164;
-       goto yy14;
+       if (yych == 'y') goto yy155;
+       goto yy4;
 yy118:
-       yyaccept = 8;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'e') goto yy165;
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy156;
+       goto yy4;
 yy119:
-#line 52 "../src/ast/lex_conf.re"
-       { opts.set_rFlag(lex_conf_bool());              return; }
-#line 678 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'b') goto yy157;
+       goto yy4;
 yy120:
-       yyaccept = 9;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'k') goto yy166;
-       if (yych == 't') goto yy167;
+       yych = (unsigned char)*++cur;
+       if (yych == 'b') goto yy158;
+       goto yy4;
 yy121:
-#line 53 "../src/ast/lex_conf.re"
-       { opts.set_sFlag(lex_conf_bool());              return; }
-#line 687 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy159;
+       goto yy4;
 yy122:
-       yyaccept = 10;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy168;
-       if (yych == 'y') goto yy169;
+       yych = (unsigned char)*++cur;
+       if (yych == 'f') goto yy160;
+       goto yy4;
 yy123:
-#line 70 "../src/ast/lex_conf.re"
-       { opts.set_header_file(lex_conf_string()); return; }
-#line 696 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'p') goto yy161;
+       goto yy4;
 yy124:
-       yyaccept = 11;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'n') goto yy170;
-       if (yych == 't') goto yy171;
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy162;
+       goto yy4;
 yy125:
-#line 64 "../src/ast/lex_conf.re"
-       { lex_conf_enc(Enc::UTF32);  return; }
-#line 705 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy163;
+       goto yy4;
 yy126:
-       yyaccept = 12;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'i') goto yy172;
+       yych = (unsigned char)*++cur;
+       if (yych == 'x') goto yy164;
+       goto yy4;
 yy127:
-#line 65 "../src/ast/lex_conf.re"
-       { lex_conf_enc(Enc::UCS2);   return; }
-#line 713 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy166;
+       goto yy4;
 yy128:
-       ++cur;
-#line 66 "../src/ast/lex_conf.re"
-       { lex_conf_enc(Enc::UTF16);  return; }
-#line 718 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy167;
+       goto yy4;
+yy129:
+       yych = (unsigned char)*++cur;
+       if (yych <= 'd') {
+               if (yych == 'c') goto yy168;
+               goto yy4;
+       } else {
+               if (yych <= 'e') goto yy169;
+               if (yych == 'p') goto yy170;
+               goto yy4;
+       }
 yy130:
        yych = (unsigned char)*++cur;
-       if (yych <= 'r') goto yy14;
-       if (yych <= 's') goto yy173;
-       if (yych <= 't') goto yy174;
-       goto yy14;
+       if (yych == 'r') goto yy171;
+       goto yy4;
 yy131:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy175;
-       goto yy14;
+       if (yych == 'i') goto yy172;
+       goto yy4;
 yy132:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy176;
-       goto yy14;
+       if (yych == 'o') goto yy173;
+       goto yy4;
 yy133:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy177;
-       goto yy14;
+       if (yych == 'p') goto yy175;
+       goto yy4;
 yy134:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy178;
-       goto yy14;
+       if (yych == 'i') goto yy176;
+       goto yy4;
 yy135:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy179;
-       goto yy14;
+       if (yych == 'Y') goto yy177;
+       goto yy4;
 yy136:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy180;
-       goto yy14;
+       if (yych == 't') goto yy178;
+       goto yy4;
 yy137:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy181;
-       goto yy14;
+       if (yych == 's') goto yy179;
+       goto yy4;
 yy138:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy182;
-       goto yy14;
+       if (yych == 'm') goto yy180;
+       goto yy4;
 yy139:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy183;
-       goto yy14;
+       if (yych == 'b') goto yy181;
+       goto yy4;
 yy140:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy184;
-       goto yy14;
+       if (yych == 'a') goto yy182;
+       goto yy4;
 yy141:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy186;
-       goto yy14;
+       if (yych == 'g') goto yy183;
+       goto yy4;
 yy142:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy187;
-       goto yy14;
+       if (yych == 'b') goto yy184;
+       goto yy4;
 yy143:
        yych = (unsigned char)*++cur;
-       if (yych <= 'd') {
-               if (yych == 'c') goto yy188;
-               goto yy14;
-       } else {
-               if (yych <= 'e') goto yy189;
-               if (yych == 'p') goto yy190;
-               goto yy14;
-       }
+       if (yych == 'p') goto yy185;
+       goto yy4;
 yy144:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy191;
-       goto yy14;
+       if (yych == 'c') goto yy186;
+       goto yy4;
 yy145:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy192;
-       goto yy14;
+       if (yych == 'p') goto yy187;
+       goto yy4;
 yy146:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy193;
-       goto yy14;
+       if (yych == 's') goto yy188;
+       goto yy4;
 yy147:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy195;
-       goto yy14;
+       if (yych == '-') goto yy189;
+       goto yy4;
 yy148:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy196;
-       goto yy14;
+       if (yych == 's') goto yy190;
+       goto yy4;
 yy149:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy197;
-       goto yy14;
+       if (yych == 'g') goto yy191;
+       goto yy4;
 yy150:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy198;
-       goto yy14;
+       if (yych == 'i') goto yy192;
+       goto yy4;
 yy151:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy199;
-       goto yy14;
+       if (yych == 'f') goto yy193;
+       goto yy4;
 yy152:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy200;
-       goto yy14;
+       if (yych == 'd') goto yy194;
+       goto yy4;
 yy153:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy201;
-       goto yy14;
+       if (yych == 't') goto yy195;
+       goto yy4;
 yy154:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy202;
-       goto yy14;
+       if (yych == 'o') goto yy196;
+       goto yy4;
 yy155:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy203;
-       goto yy14;
+       if (yych == 'F') goto yy197;
+       if (yych == 'N') goto yy198;
+       goto yy4;
 yy156:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy204;
-       goto yy14;
+       if (yych == 'f') goto yy199;
+       goto yy4;
 yy157:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy205;
-       if (yych == 'p') goto yy206;
-       goto yy14;
+       if (yych == 'e') goto yy200;
+       goto yy4;
 yy158:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy207;
-       goto yy14;
+       if (yych == 'o') goto yy201;
+       goto yy4;
 yy159:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy208;
-       goto yy14;
+       if (yych == 'x') goto yy202;
+       goto yy4;
 yy160:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy209;
-       goto yy14;
+       if (yych == 'a') goto yy203;
+       goto yy4;
 yy161:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy210;
-       goto yy14;
+       if (yych == 'r') goto yy204;
+       goto yy4;
 yy162:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy211;
-       goto yy14;
+       if (yych == 'f') goto yy205;
+       goto yy4;
 yy163:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy212;
-       goto yy14;
+       if (yych == ':') goto yy206;
+       goto yy4;
 yy164:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy213;
-       goto yy14;
-yy165:
-       yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy214;
-       goto yy14;
-yy166:
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 90 "../src/ast/lex_conf.re"
+       { opts.set_yybmHexTable (lex_conf_bool()); return; }
+#line 908 "src/ast/lex_conf.cc"
+yy166:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy215;
-       goto yy14;
+       if (yych == 'v') goto yy207;
+       goto yy4;
 yy167:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy216;
-       if (yych == 'o') goto yy217;
-       goto yy14;
+       if (yych == 't') goto yy208;
+       goto yy4;
 yy168:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy218;
-       goto yy14;
+       if (yych == 'h') goto yy210;
+       goto yy4;
 yy169:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy219;
-       goto yy14;
+       if (yych == 'n') goto yy211;
+       goto yy4;
 yy170:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy220;
-       goto yy14;
+       if (yych == 'a') goto yy212;
+       goto yy4;
 yy171:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy221;
-       goto yy14;
+       if (yych == 'e') goto yy213;
+       goto yy4;
 yy172:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy222;
-       goto yy14;
+       if (yych == 'd') goto yy214;
+       goto yy4;
 yy173:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy223;
-       goto yy14;
+       yyaccept = 0;
+       yych = (unsigned char)*(mar = ++cur);
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       if (yych == '@') goto yy215;
 yy174:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy224;
-       goto yy14;
+#line 74 "../src/ast/lex_conf.re"
+       { opts.set_condGoto         (lex_conf_string ()); return; }
+#line 947 "src/ast/lex_conf.cc"
 yy175:
        yych = (unsigned char)*++cur;
-       if (yych == 'F') goto yy225;
-       if (yych == 'N') goto yy226;
-       goto yy14;
+       if (yych == 'r') goto yy217;
+       goto yy4;
 yy176:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy227;
-       goto yy14;
+       if (yych == 'x') goto yy218;
+       goto yy4;
 yy177:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy228;
-       goto yy14;
+       switch (yych) {
+       case 'B':       goto yy220;
+       case 'C':       goto yy221;
+       case 'D':       goto yy222;
+       case 'F':       goto yy223;
+       case 'G':       goto yy224;
+       case 'L':       goto yy225;
+       case 'M':       goto yy226;
+       case 'P':       goto yy227;
+       case 'R':       goto yy228;
+       case 'S':       goto yy229;
+       default:        goto yy4;
+       }
 yy178:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy229;
-       goto yy14;
+       if (yych == '-') goto yy230;
+       goto yy4;
 yy179:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy230;
-       goto yy14;
+       if (yych == 'e') goto yy231;
+       goto yy4;
 yy180:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy231;
-       goto yy14;
+       if (yych == 'p') goto yy232;
+       goto yy4;
 yy181:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy232;
-       goto yy14;
+       if (yych == 'u') goto yy233;
+       goto yy4;
 yy182:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy233;
-       goto yy14;
+       if (yych == '-') goto yy234;
+       goto yy4;
 yy183:
        yych = (unsigned char)*++cur;
-       if (yych == ':') goto yy234;
-       goto yy14;
+       if (yych == 'e') goto yy235;
+       goto yy4;
 yy184:
-       ++cur;
-#line 103 "../src/ast/lex_conf.re"
-       { opts.set_yybmHexTable (lex_conf_bool()); return; }
-#line 950 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy100;
+yy185:
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy236;
+       goto yy4;
 yy186:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy235;
-       goto yy14;
+       if (yych == 'o') goto yy237;
+       goto yy4;
 yy187:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy236;
-       goto yy14;
+       if (yych == 'u') goto yy238;
+       goto yy4;
 yy188:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy238;
-       goto yy14;
+       if (yych == 't') goto yy239;
+       goto yy4;
 yy189:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy239;
-       goto yy14;
+       if (yych == 'd') goto yy240;
+       if (yych == 'l') goto yy241;
+       goto yy4;
 yy190:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy240;
-       goto yy14;
+       if (yych == 'i') goto yy242;
+       goto yy4;
 yy191:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy241;
-       goto yy14;
+       if (yych == 's') goto yy92;
+       goto yy4;
 yy192:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy242;
-       goto yy14;
+       if (yych == 'c') goto yy243;
+       goto yy4;
 yy193:
-       yyaccept = 13;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == '@') goto yy243;
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy244;
+       goto yy4;
 yy194:
-#line 87 "../src/ast/lex_conf.re"
-       { opts.set_condGoto         (lex_conf_string ()); return; }
-#line 986 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy245;
+       goto yy4;
 yy195:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy244;
-       goto yy14;
+       if (yych == 'r') goto yy246;
+       goto yy4;
 yy196:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy245;
-       goto yy14;
+       if (yych == 'p') goto yy247;
+       goto yy4;
 yy197:
        yych = (unsigned char)*++cur;
-       switch (yych) {
-       case 'B':       goto yy247;
-       case 'C':       goto yy248;
-       case 'D':       goto yy249;
-       case 'F':       goto yy250;
-       case 'G':       goto yy251;
-       case 'L':       goto yy252;
-       case 'M':       goto yy253;
-       case 'P':       goto yy254;
-       case 'R':       goto yy255;
-       case 'S':       goto yy256;
-       default:        goto yy14;
-       }
+       if (yych == 'i') goto yy249;
+       goto yy4;
 yy198:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy257;
-       goto yy14;
+       if (yych == 'e') goto yy250;
+       goto yy4;
 yy199:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy258;
-       goto yy14;
+       if (yych == 'i') goto yy251;
+       goto yy4;
 yy200:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy259;
-       goto yy14;
+       if (yych == 'l') goto yy252;
+       goto yy4;
 yy201:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy260;
-       goto yy14;
+       if (yych == 'r') goto yy254;
+       goto yy4;
 yy202:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy261;
-       goto yy14;
+       if (yych == 't') goto yy255;
+       goto yy4;
 yy203:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy262;
-       goto yy14;
+       if (yych == 'u') goto yy256;
+       goto yy4;
 yy204:
-       ++cur;
-       goto yy107;
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy257;
+       goto yy4;
 yy205:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy263;
-       goto yy14;
+       if (yych == 'i') goto yy258;
+       goto yy4;
 yy206:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy264;
-       goto yy14;
+       if (yych == 'y') goto yy259;
+       goto yy4;
 yy207:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy265;
-       goto yy14;
+       if (yych == 'e') goto yy260;
+       goto yy4;
 yy208:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy266;
-       goto yy14;
-yy209:
-       yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy267;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 140 "../src/ast/lex_conf.re"
+       { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
+#line 1101 "src/ast/lex_conf.cc"
 yy210:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy268;
-       goto yy14;
+       if (yych == 'e') goto yy261;
+       goto yy4;
 yy211:
        yych = (unsigned char)*++cur;
-       switch (yych) {
-       case 'd':       goto yy269;
-       case 'g':       goto yy270;
-       case 'l':       goto yy271;
-       case 'v':       goto yy272;
-       default:        goto yy14;
-       }
+       if (yych == 'a') goto yy262;
+       goto yy4;
 yy212:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy273;
-       goto yy14;
+       if (yych == 'r') goto yy263;
+       goto yy4;
 yy213:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy274;
-       goto yy14;
+       if (yych == 's') goto yy264;
+       goto yy4;
 yy214:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy275;
-       goto yy14;
+       if (yych == 'e') goto yy265;
+       goto yy4;
 yy215:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy276;
-       goto yy14;
+       if (yych == 'c') goto yy266;
 yy216:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy277;
-       goto yy14;
+       cur = mar;
+       if (yyaccept <= 2) {
+               if (yyaccept <= 1) {
+                       if (yyaccept == 0) {
+                               goto yy174;
+                       } else {
+                               goto yy253;
+                       }
+               } else {
+                       goto yy322;
+               }
+       } else {
+               if (yyaccept <= 4) {
+                       if (yyaccept == 3) {
+                               goto yy390;
+                       } else {
+                               goto yy585;
+                       }
+               } else {
+                       goto yy665;
+               }
+       }
 yy217:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy278;
-       goto yy14;
+       if (yych == 'e') goto yy267;
+       goto yy4;
 yy218:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy98;
-       goto yy14;
-yy219:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy279;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 70 "../src/ast/lex_conf.re"
+       { opts.set_condPrefix       (lex_conf_string ()); return; }
+#line 1159 "src/ast/lex_conf.cc"
 yy220:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy280;
-       goto yy14;
+       if (yych == 'A') goto yy268;
+       goto yy4;
 yy221:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy281;
-       goto yy14;
+       if (yych <= 'S') {
+               if (yych == 'O') goto yy269;
+               goto yy4;
+       } else {
+               if (yych <= 'T') goto yy270;
+               if (yych <= 'U') goto yy271;
+               goto yy4;
+       }
 yy222:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy282;
-       goto yy14;
+       if (yych == 'E') goto yy272;
+       goto yy4;
 yy223:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy283;
-       goto yy14;
+       if (yych == 'I') goto yy273;
+       goto yy4;
 yy224:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy284;
-       goto yy14;
+       if (yych == 'E') goto yy274;
+       goto yy4;
 yy225:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy286;
-       goto yy14;
+       if (yych == 'E') goto yy275;
+       if (yych == 'I') goto yy276;
+       goto yy4;
 yy226:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy287;
-       goto yy14;
+       if (yych == 'A') goto yy277;
+       goto yy4;
 yy227:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy288;
-       goto yy14;
+       if (yych == 'E') goto yy278;
+       goto yy4;
 yy228:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy289;
-       goto yy14;
+       if (yych == 'E') goto yy279;
+       goto yy4;
 yy229:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy291;
-       goto yy14;
+       if (yych == 'E') goto yy280;
+       if (yych == 'K') goto yy281;
+       goto yy4;
 yy230:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy292;
-       goto yy14;
+       if (yych == 'v') goto yy282;
+       goto yy4;
 yy231:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy293;
-       goto yy14;
+       if (yych == '-') goto yy283;
+       goto yy4;
 yy232:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy294;
-       goto yy14;
+       if (yych == 'u') goto yy284;
+       goto yy4;
 yy233:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy295;
-       goto yy14;
+       if (yych == 'g') goto yy285;
+       goto yy4;
 yy234:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy296;
-       goto yy14;
+       if (yych == 'm') goto yy286;
+       goto yy4;
 yy235:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy297;
-       goto yy14;
+       if (yych == 'r') goto yy287;
+       goto yy4;
 yy236:
-       ++cur;
-#line 153 "../src/ast/lex_conf.re"
-       { opts.set_bEmitYYCh      (lex_conf_bool()); return; }
-#line 1170 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'y') goto yy288;
+       goto yy4;
+yy237:
+       yych = (unsigned char)*++cur;
+       if (yych == 'd') goto yy289;
+       goto yy4;
 yy238:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy298;
-       goto yy14;
+       if (yych == 't') goto yy290;
+       goto yy4;
 yy239:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy299;
-       goto yy14;
+       if (yych == 'e') goto yy292;
+       goto yy4;
 yy240:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy300;
-       goto yy14;
+       if (yych == 'e') goto yy293;
+       goto yy4;
 yy241:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy301;
-       goto yy14;
+       if (yych == 'o') goto yy294;
+       goto yy4;
 yy242:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy302;
-       goto yy14;
+       if (yych == 'x') goto yy295;
+       goto yy4;
 yy243:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy303;
-       goto yy14;
+       if (yych == 'o') goto yy296;
+       goto yy4;
 yy244:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy304;
-       goto yy14;
+       if (yych == '1') goto yy297;
+       if (yych == '8') goto yy90;
+       goto yy4;
 yy245:
-       ++cur;
-#line 83 "../src/ast/lex_conf.re"
-       { opts.set_condPrefix       (lex_conf_string ()); return; }
-#line 1203 "src/ast/lex_conf.cc"
-yy247:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy305;
-       goto yy14;
-yy248:
+       if (yych == '-') goto yy298;
+       goto yy4;
+yy246:
        yych = (unsigned char)*++cur;
-       if (yych <= 'S') {
-               if (yych == 'O') goto yy306;
-               goto yy14;
-       } else {
-               if (yych <= 'T') goto yy307;
-               if (yych <= 'U') goto yy308;
-               goto yy14;
+       if (yych == 'i') goto yy299;
+       goto yy4;
+yy247:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 125 "../src/ast/lex_conf.re"
+       {
+               const int32_t n = lex_conf_number ();
+               if (n < 0)
+               {
+                       fatal ("configuration 'indent:top' must be nonnegative");
+               }
+               opts.set_topIndent (static_cast<uint32_t> (n));
+               return;
        }
+#line 1292 "src/ast/lex_conf.cc"
 yy249:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy309;
-       goto yy14;
+       if (yych == 'l') goto yy300;
+       goto yy4;
 yy250:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy310;
-       goto yy14;
+       if (yych == 'x') goto yy301;
+       goto yy4;
 yy251:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy311;
-       goto yy14;
+       if (yych == 'x') goto yy302;
+       goto yy4;
 yy252:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy312;
-       if (yych == 'I') goto yy313;
-       goto yy14;
+       yyaccept = 1;
+       yych = (unsigned char)*(mar = ++cur);
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       if (yych <= 0x1F) {
+               if (yych == '\t') {
+                       ctx = cur;
+                       goto yy304;
+               }
+       } else {
+               if (yych <= ' ') {
+                       ctx = cur;
+                       goto yy304;
+               }
+               if (yych == '=') {
+                       ctx = cur;
+                       goto yy306;
+               }
+       }
 yy253:
-       yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy314;
-       goto yy14;
+#line 153 "../src/ast/lex_conf.re"
+       { opts.set_startlabel       (lex_conf_string()); return; }
+#line 1329 "src/ast/lex_conf.cc"
 yy254:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy315;
-       goto yy14;
+       if (yych == 't') goto yy308;
+       goto yy4;
 yy255:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy316;
-       goto yy14;
+       if (yych == 'l') goto yy310;
+       goto yy4;
 yy256:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy317;
-       if (yych == 'K') goto yy318;
-       goto yy14;
+       if (yych == 'l') goto yy311;
+       goto yy4;
 yy257:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy319;
-       goto yy14;
+       if (yych == 's') goto yy312;
+       goto yy4;
 yy258:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy320;
-       goto yy14;
+       if (yych == 'x') goto yy313;
+       goto yy4;
 yy259:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy321;
-       goto yy14;
+       if (yych == 'y') goto yy315;
+       goto yy4;
 yy260:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy322;
-       goto yy14;
+       if (yych == 'r') goto yy316;
+       goto yy4;
 yy261:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy323;
-       goto yy14;
+       if (yych == 'c') goto yy317;
+       goto yy4;
 yy262:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy324;
-       goto yy14;
+       if (yych == 'b') goto yy318;
+       goto yy4;
 yy263:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy325;
-       goto yy14;
+       if (yych == 'a') goto yy319;
+       goto yy4;
 yy264:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy326;
-       goto yy14;
+       if (yych == 'h') goto yy320;
+       goto yy4;
 yy265:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy327;
-       goto yy14;
+       if (yych == 'r') goto yy321;
+       goto yy4;
 yy266:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy328;
-       goto yy14;
+       if (yych == 'o') goto yy323;
+       goto yy216;
 yy267:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy329;
-       goto yy14;
+       if (yych == 'f') goto yy324;
+       goto yy4;
 yy268:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy331;
-       goto yy14;
+       if (yych == 'C') goto yy325;
+       goto yy4;
 yy269:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy332;
-       goto yy14;
+       if (yych == 'N') goto yy326;
+       if (yych == 'P') goto yy327;
+       goto yy4;
 yy270:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy333;
-       goto yy14;
+       if (yych <= 'W') goto yy4;
+       if (yych <= 'X') goto yy328;
+       if (yych <= 'Y') goto yy329;
+       goto yy4;
 yy271:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy334;
-       goto yy14;
+       if (yych == 'R') goto yy330;
+       goto yy4;
 yy272:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy335;
-       goto yy14;
+       if (yych == 'B') goto yy331;
+       goto yy4;
 yy273:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy336;
-       goto yy14;
+       if (yych == 'L') goto yy332;
+       goto yy4;
 yy274:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy337;
-       goto yy14;
+       if (yych == 'T') goto yy333;
+       goto yy4;
 yy275:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy338;
-       goto yy14;
+       if (yych == 'S') goto yy334;
+       goto yy4;
 yy276:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy339;
-       goto yy14;
+       if (yych == 'M') goto yy335;
+       goto yy4;
 yy277:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy340;
-       goto yy14;
+       if (yych == 'R') goto yy336;
+       goto yy4;
 yy278:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy341;
-       goto yy14;
+       if (yych == 'E') goto yy337;
+       goto yy4;
 yy279:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy342;
-       goto yy14;
+       if (yych == 'S') goto yy338;
+       goto yy4;
 yy280:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy343;
-       goto yy14;
+       if (yych == 'T') goto yy339;
+       goto yy4;
 yy281:
        yych = (unsigned char)*++cur;
-       if (yych == '1') goto yy344;
-       if (yych == '8') goto yy90;
-       goto yy14;
+       if (yych == 'I') goto yy340;
+       goto yy4;
 yy282:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy345;
-       goto yy14;
+       if (yych == 'e') goto yy341;
+       goto yy4;
 yy283:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy346;
-       goto yy14;
+       if (yych == 'i') goto yy342;
+       goto yy4;
 yy284:
-       ++cur;
-#line 138 "../src/ast/lex_conf.re"
-       {
-               const int32_t n = lex_conf_number ();
-               if (n < 0)
-               {
-                       fatal ("configuration 'indent:top' must be nonnegative");
-               }
-               opts.set_topIndent (static_cast<uint32_t> (n));
-               return;
-       }
-#line 1373 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy343;
+       goto yy4;
+yy285:
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy344;
+       goto yy4;
 yy286:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy347;
-       goto yy14;
+       if (yych == 'i') goto yy345;
+       goto yy4;
 yy287:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy348;
-       goto yy14;
+       if (yych == '-') goto yy346;
+       goto yy4;
 yy288:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy349;
-       goto yy14;
+       if (yych == '-') goto yy347;
+       goto yy4;
 yy289:
-       yyaccept = 14;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych <= 0x1F) {
-               if (yych == '\t') {
-                       ctx = cur;
-                       goto yy351;
-               }
-       } else {
-               if (yych <= ' ') {
-                       ctx = cur;
-                       goto yy351;
-               }
-               if (yych == '=') {
-                       ctx = cur;
-                       goto yy353;
-               }
-       }
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy348;
+       goto yy4;
 yy290:
-#line 166 "../src/ast/lex_conf.re"
-       { opts.set_startlabel       (lex_conf_string()); return; }
-#line 1407 "src/ast/lex_conf.cc"
-yy291:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy355;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 60 "../src/ast/lex_conf.re"
+       { lex_conf_input();            return; }
+#line 1484 "src/ast/lex_conf.cc"
 yy292:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy357;
-       goto yy14;
+       if (yych == 'd') goto yy349;
+       goto yy4;
 yy293:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy358;
-       goto yy14;
+       if (yych == 'b') goto yy350;
+       goto yy4;
 yy294:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy359;
-       goto yy14;
+       if (yych == 'o') goto yy351;
+       goto yy4;
 yy295:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy360;
-       goto yy14;
+       if (yych == '-') goto yy352;
+       goto yy4;
 yy296:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy362;
-       goto yy14;
+       if (yych == 'd') goto yy353;
+       goto yy4;
 yy297:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy363;
-       goto yy14;
+       if (yych == '6') goto yy114;
+       goto yy4;
 yy298:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy364;
-       goto yy14;
+       if (yych == 'c') goto yy354;
+       goto yy4;
 yy299:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy365;
-       goto yy14;
+       if (yych == 'n') goto yy355;
+       goto yy4;
 yy300:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy366;
-       goto yy14;
+       if (yych == 'l') goto yy356;
+       goto yy4;
 yy301:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy367;
-       goto yy14;
+       if (yych == 't') goto yy357;
+       goto yy4;
 yy302:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy368;
-       goto yy14;
-yy303:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy370;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 149 "../src/ast/lex_conf.re"
+       { opts.set_labelPrefix (lex_conf_string ()); return; }
+#line 1532 "src/ast/lex_conf.cc"
 yy304:
-       yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy371;
-       goto yy14;
-yy305:
-       yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy372;
-       goto yy14;
+       ++cur;
+       if (lim <= cur) fill(1);
+       yych = (unsigned char)*cur;
+       if (yybm[0+yych] & 64) {
+               goto yy304;
+       }
+       if (yych != '=') goto yy216;
 yy306:
-       yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy373;
-       if (yych == 'P') goto yy374;
-       goto yy14;
-yy307:
-       yych = (unsigned char)*++cur;
-       if (yych <= 'W') goto yy14;
-       if (yych <= 'X') goto yy375;
-       if (yych <= 'Y') goto yy376;
-       goto yy14;
+       ++cur;
+       if ((lim - cur) < 2) fill(2);
+       yych = (unsigned char)*cur;
+       if (yych <= ',') {
+               if (yych <= '\t') {
+                       if (yych <= 0x08) goto yy216;
+                       goto yy306;
+               } else {
+                       if (yych == ' ') goto yy306;
+                       goto yy216;
+               }
+       } else {
+               if (yych <= '/') {
+                       if (yych <= '-') goto yy359;
+                       goto yy216;
+               } else {
+                       if (yych <= '0') goto yy360;
+                       if (yych <= '9') goto yy362;
+                       goto yy216;
+               }
+       }
 yy308:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy377;
-       goto yy14;
-yy309:
-       yych = (unsigned char)*++cur;
-       if (yych == 'B') goto yy378;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 85 "../src/ast/lex_conf.re"
+       { opts.set_bUseStateAbort  (lex_conf_bool()); return; }
+#line 1570 "src/ast/lex_conf.cc"
 yy310:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy379;
-       goto yy14;
+       if (yych == 'a') goto yy364;
+       goto yy4;
 yy311:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy380;
-       goto yy14;
+       if (yych == 't') goto yy365;
+       goto yy4;
 yy312:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy381;
-       goto yy14;
+       if (yych == 's') goto yy367;
+       goto yy4;
 yy313:
        yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy382;
-       goto yy14;
-yy314:
-       yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy383;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 120 "../src/ast/lex_conf.re"
+       { opts.set_tags_prefix    (lex_conf_string ()); return; }
+#line 1590 "src/ast/lex_conf.cc"
 yy315:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy384;
-       goto yy14;
+       if (yych <= 'c') {
+               if (yych <= '`') goto yy4;
+               if (yych <= 'a') goto yy368;
+               if (yych <= 'b') goto yy369;
+               goto yy370;
+       } else {
+               if (yych <= 'r') goto yy4;
+               if (yych <= 's') goto yy371;
+               if (yych <= 't') goto yy372;
+               goto yy4;
+       }
 yy316:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy385;
-       goto yy14;
+       if (yych == 's') goto yy373;
+       goto yy4;
 yy317:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy386;
-       goto yy14;
+       if (yych == 'k') goto yy374;
+       goto yy4;
 yy318:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy387;
-       goto yy14;
+       if (yych == 'l') goto yy376;
+       goto yy4;
 yy319:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy388;
-       goto yy14;
+       if (yych == 'm') goto yy377;
+       goto yy4;
 yy320:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy389;
-       goto yy14;
+       if (yych == 'o') goto yy378;
+       goto yy4;
 yy321:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy390;
-       goto yy14;
+       yyaccept = 2;
+       yych = (unsigned char)*(mar = ++cur);
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       if (yych == '@') goto yy379;
 yy322:
-       yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy391;
-       goto yy14;
+#line 72 "../src/ast/lex_conf.re"
+       { opts.set_condDivider      (lex_conf_string ()); return; }
+#line 1634 "src/ast/lex_conf.cc"
 yy323:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy392;
-       goto yy14;
+       if (yych == 'n') goto yy380;
+       goto yy216;
 yy324:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy393;
-       goto yy14;
+       if (yych == 'i') goto yy381;
+       goto yy4;
 yy325:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy394;
-       goto yy14;
+       if (yych == 'K') goto yy382;
+       goto yy4;
 yy326:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy395;
-       goto yy14;
+       if (yych == 'D') goto yy383;
+       goto yy4;
 yy327:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy396;
-       goto yy14;
+       if (yych == 'Y') goto yy384;
+       goto yy4;
 yy328:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy397;
-       goto yy14;
+       if (yych == 'M') goto yy385;
+       goto yy4;
 yy329:
-       ++cur;
-#line 73 "../src/ast/lex_conf.re"
-       { lex_conf_input();            return; }
-#line 1567 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'P') goto yy386;
+       goto yy4;
+yy330:
+       yych = (unsigned char)*++cur;
+       if (yych == 'S') goto yy387;
+       goto yy4;
 yy331:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy398;
-       goto yy14;
+       if (yych == 'U') goto yy388;
+       goto yy4;
 yy332:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy399;
-       goto yy14;
+       if (yych == 'L') goto yy389;
+       goto yy4;
 yy333:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy400;
-       goto yy14;
+       if (yych == 'C') goto yy391;
+       if (yych == 'S') goto yy392;
+       goto yy4;
 yy334:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy401;
-       goto yy14;
+       if (yych == 'S') goto yy393;
+       goto yy4;
 yy335:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy402;
-       goto yy14;
+       if (yych == 'I') goto yy394;
+       goto yy4;
 yy336:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy403;
-       goto yy14;
+       if (yych == 'K') goto yy395;
+       goto yy4;
 yy337:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy404;
-       goto yy14;
+       if (yych == 'K') goto yy396;
+       goto yy4;
 yy338:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy405;
-       goto yy14;
+       if (yych == 'T') goto yy398;
+       goto yy4;
 yy339:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy406;
-       goto yy14;
+       if (yych == 'C') goto yy399;
+       if (yych == 'S') goto yy400;
+       goto yy4;
 yy340:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy407;
-       goto yy14;
+       if (yych == 'P') goto yy401;
+       goto yy4;
 yy341:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy408;
-       goto yy14;
+       if (yych == 'c') goto yy403;
+       goto yy4;
 yy342:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy409;
-       goto yy14;
+       if (yych == 'n') goto yy404;
+       goto yy4;
 yy343:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy410;
-       goto yy14;
+       if (yych == 'e') goto yy405;
+       goto yy4;
 yy344:
        yych = (unsigned char)*++cur;
-       if (yych == '6') goto yy128;
-       goto yy14;
+       if (yych == 'o') goto yy406;
+       goto yy4;
 yy345:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy411;
-       goto yy14;
+       if (yych == 'n') goto yy407;
+       goto yy4;
 yy346:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy412;
-       goto yy14;
+       if (yych == 's') goto yy408;
+       goto yy4;
 yy347:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy413;
-       goto yy14;
+       if (yych == 'c') goto yy409;
+       goto yy4;
 yy348:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy414;
-       goto yy14;
+       if (yych == 'n') goto yy410;
+       goto yy4;
 yy349:
-       ++cur;
-#line 162 "../src/ast/lex_conf.re"
-       { opts.set_labelPrefix (lex_conf_string ()); return; }
-#line 1644 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == '-') goto yy411;
+       goto yy4;
+yy350:
+       yych = (unsigned char)*++cur;
+       if (yych == 'u') goto yy412;
+       goto yy4;
 yy351:
-       ++cur;
-       if (lim <= cur) fill(1);
-       yych = (unsigned char)*cur;
-       if (yybm[0+yych] & 64) {
-               goto yy351;
-       }
-       if (yych != '=') goto yy14;
+       yych = (unsigned char)*++cur;
+       if (yych == 'k') goto yy413;
+       goto yy4;
+yy352:
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy414;
+       goto yy4;
 yy353:
-       ++cur;
-       if ((lim - cur) < 2) fill(2);
-       yych = (unsigned char)*cur;
-       if (yych <= ',') {
-               if (yych <= '\t') {
-                       if (yych <= 0x08) goto yy14;
-                       goto yy353;
-               } else {
-                       if (yych == ' ') goto yy353;
-                       goto yy14;
-               }
-       } else {
-               if (yych <= '/') {
-                       if (yych <= '-') goto yy416;
-                       goto yy14;
-               } else {
-                       if (yych <= '0') goto yy417;
-                       if (yych <= '9') goto yy419;
-                       goto yy14;
-               }
-       }
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy415;
+       goto yy4;
+yy354:
+       yych = (unsigned char)*++cur;
+       if (yych == 'h') goto yy416;
+       goto yy4;
 yy355:
-       ++cur;
-#line 98 "../src/ast/lex_conf.re"
-       { opts.set_bUseStateAbort  (lex_conf_bool()); return; }
-#line 1679 "src/ast/lex_conf.cc"
-yy357:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy421;
-       goto yy14;
-yy358:
+       if (yych == 'g') goto yy417;
+       goto yy4;
+yy356:
+       yych = (unsigned char)*++cur;
+       if (yych == 'L') goto yy419;
+       goto yy4;
+yy357:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy422;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 84 "../src/ast/lex_conf.re"
+       { opts.set_yynext          (lex_conf_string ()); return; }
+#line 1780 "src/ast/lex_conf.cc"
 yy359:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy424;
-       goto yy14;
+       if (yych <= '0') goto yy216;
+       if (yych <= '9') goto yy362;
+       goto yy216;
 yy360:
        ++cur;
-#line 133 "../src/ast/lex_conf.re"
-       { opts.set_tags_prefix    (lex_conf_string ()); return; }
-#line 1696 "src/ast/lex_conf.cc"
+yy361:
+       cur = ctx;
+#line 152 "../src/ast/lex_conf.re"
+       { opts.set_startlabel_force (lex_conf_bool());   return; }
+#line 1792 "src/ast/lex_conf.cc"
 yy362:
-       yych = (unsigned char)*++cur;
-       if (yych <= 'c') {
-               if (yych <= '`') goto yy14;
-               if (yych <= 'a') goto yy425;
-               if (yych <= 'b') goto yy426;
-               goto yy427;
-       } else {
-               if (yych <= 'r') goto yy14;
-               if (yych <= 's') goto yy428;
-               if (yych <= 't') goto yy429;
-               goto yy14;
+       ++cur;
+       if (lim <= cur) fill(1);
+       yych = (unsigned char)*cur;
+       if (yybm[0+yych] & 128) {
+               goto yy362;
        }
-yy363:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy430;
-       goto yy14;
+       goto yy361;
 yy364:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy431;
-       goto yy14;
+       if (yych == 'b') goto yy420;
+       goto yy4;
 yy365:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy433;
-       goto yy14;
-yy366:
-       yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy434;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 119 "../src/ast/lex_conf.re"
+       { opts.set_tags_default   (lex_conf_string ()); return; }
+#line 1812 "src/ast/lex_conf.cc"
 yy367:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy435;
-       goto yy14;
+       if (yych == 'i') goto yy421;
+       goto yy4;
 yy368:
-       yyaccept = 15;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == '@') goto yy436;
+       yych = (unsigned char)*++cur;
+       if (yych == 'c') goto yy422;
+       goto yy4;
 yy369:
-#line 85 "../src/ast/lex_conf.re"
-       { opts.set_condDivider      (lex_conf_string ()); return; }
-#line 1737 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'm') goto yy423;
+       goto yy4;
 yy370:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy437;
-       goto yy14;
+       if (yych == 'h') goto yy425;
+       if (yych == 't') goto yy427;
+       goto yy4;
 yy371:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy438;
-       goto yy14;
+       if (yych == 't') goto yy428;
+       goto yy4;
 yy372:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy439;
-       goto yy14;
+       if (yych == 'a') goto yy429;
+       goto yy4;
 yy373:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy440;
-       goto yy14;
+       if (yych == 'i') goto yy430;
+       goto yy4;
 yy374:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy441;
-       goto yy14;
-yy375:
-       yych = (unsigned char)*++cur;
-       if (yych == 'M') goto yy442;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 147 "../src/ast/lex_conf.re"
+       { opts.set_fill_check   (lex_conf_bool()); return; }
+#line 1849 "src/ast/lex_conf.cc"
 yy376:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy443;
-       goto yy14;
+       if (yych == 'e') goto yy431;
+       goto yy4;
 yy377:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy444;
-       goto yy14;
+       if (yych == 'e') goto yy433;
+       goto yy4;
 yy378:
        yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy445;
-       goto yy14;
+       if (yych == 'l') goto yy434;
+       goto yy4;
 yy379:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy446;
-       goto yy14;
+       if (yych == 'c') goto yy435;
+       goto yy216;
 yy380:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy448;
-       if (yych == 'S') goto yy449;
-       goto yy14;
+       if (yych == 'd') goto yy436;
+       goto yy216;
 yy381:
        yych = (unsigned char)*++cur;
-       if (yych == 'S') goto yy450;
-       goto yy14;
+       if (yych == 'x') goto yy438;
+       goto yy4;
 yy382:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy451;
-       goto yy14;
+       if (yych == 'U') goto yy440;
+       goto yy4;
 yy383:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy452;
-       goto yy14;
+       if (yych == 'T') goto yy441;
+       goto yy4;
 yy384:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy453;
-       goto yy14;
+       if (yych == 'T') goto yy442;
+       goto yy4;
 yy385:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy455;
-       goto yy14;
+       if (yych == 'A') goto yy443;
+       goto yy4;
 yy386:
        yych = (unsigned char)*++cur;
-       if (yych == 'C') goto yy456;
-       if (yych == 'S') goto yy457;
-       goto yy14;
+       if (yych == 'E') goto yy444;
+       goto yy4;
 yy387:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy458;
-       goto yy14;
+       if (yych == 'O') goto yy446;
+       goto yy4;
 yy388:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy460;
-       goto yy14;
+       if (yych == 'G') goto yy447;
+       goto yy4;
 yy389:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy461;
-       goto yy14;
+       yyaccept = 3;
+       yych = (unsigned char)*(mar = ++cur);
+       if (yych <= '?') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= '9') goto yy3;
+                       if (yych <= ':') goto yy449;
+               }
+       } else {
+               if (yych <= '^') {
+                       if (yych <= '@') goto yy450;
+                       if (yych <= 'Z') goto yy3;
+               } else {
+                       if (yych == '`') goto yy390;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
 yy390:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy462;
-       goto yy14;
+#line 142 "../src/ast/lex_conf.re"
+       { opts.set_fill         (lex_conf_string ()); return; }
+#line 1924 "src/ast/lex_conf.cc"
 yy391:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy463;
-       goto yy14;
+       if (yych == 'O') goto yy451;
+       goto yy4;
 yy392:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy464;
-       goto yy14;
+       if (yych == 'T') goto yy452;
+       goto yy4;
 yy393:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy465;
-       goto yy14;
+       if (yych == 'T') goto yy453;
+       goto yy4;
 yy394:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy466;
-       goto yy14;
+       if (yych == 'T') goto yy454;
+       goto yy4;
 yy395:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy467;
-       goto yy14;
+       if (yych == 'E') goto yy456;
+       goto yy4;
 yy396:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy468;
-       goto yy14;
-yy397:
-       yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy469;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 108 "../src/ast/lex_conf.re"
+       { opts.set_yypeek       (lex_conf_string ()); return; }
+#line 1952 "src/ast/lex_conf.cc"
 yy398:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy470;
-       goto yy14;
+       if (yych == 'O') goto yy457;
+       goto yy4;
 yy399:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy471;
-       goto yy14;
+       if (yych == 'O') goto yy458;
+       goto yy4;
 yy400:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy472;
-       goto yy14;
+       if (yych == 'T') goto yy459;
+       goto yy4;
 yy401:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy473;
-       goto yy14;
-yy402:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy474;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 109 "../src/ast/lex_conf.re"
+       { opts.set_yyskip       (lex_conf_string ()); return; }
+#line 1972 "src/ast/lex_conf.cc"
 yy403:
-       ++cur;
-       goto yy116;
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy460;
+       goto yy4;
 yy404:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy475;
-       goto yy14;
+       if (yych == 's') goto yy461;
+       if (yych == 'v') goto yy462;
+       goto yy4;
 yy405:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy476;
-       goto yy14;
+       if (yych == 'd') goto yy463;
+       goto yy4;
 yy406:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy477;
-       goto yy14;
+       if (yych == 'u') goto yy464;
+       goto yy4;
 yy407:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy478;
-       goto yy14;
+       if (yych == 'i') goto yy465;
+       goto yy4;
 yy408:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy479;
-       goto yy14;
+       if (yych == 'k') goto yy466;
+       goto yy4;
 yy409:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy480;
-       goto yy14;
+       if (yych == 'l') goto yy467;
+       goto yy4;
 yy410:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy481;
-       goto yy14;
+       if (yych == 'g') goto yy468;
+       goto yy4;
 yy411:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy482;
-       goto yy14;
+       if (yych == 'i') goto yy469;
+       goto yy4;
 yy412:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy483;
-       goto yy14;
+       if (yych == 'g') goto yy470;
+       goto yy4;
 yy413:
        yych = (unsigned char)*++cur;
-       if (yych == 'L') goto yy485;
-       goto yy14;
+       if (yych == 'a') goto yy471;
+       goto yy4;
 yy414:
-       ++cur;
-#line 97 "../src/ast/lex_conf.re"
-       { opts.set_yynext          (lex_conf_string ()); return; }
-#line 1919 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy472;
+       goto yy4;
+yy415:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy111;
 yy416:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy14;
-       if (yych <= '9') goto yy419;
-       goto yy14;
+       if (yych == 'a') goto yy473;
+       goto yy4;
 yy417:
-       ++cur;
-yy418:
-       cur = ctx;
-#line 165 "../src/ast/lex_conf.re"
-       { opts.set_startlabel_force (lex_conf_bool());   return; }
-#line 1931 "src/ast/lex_conf.cc"
-yy419:
-       ++cur;
-       if (lim <= cur) fill(1);
-       yych = (unsigned char)*cur;
-       if (yybm[0+yych] & 128) {
-               goto yy419;
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
        }
-       goto yy418;
+#line 123 "../src/ast/lex_conf.re"
+       { opts.set_indString (lex_conf_string ()); return; }
+#line 2039 "src/ast/lex_conf.cc"
+yy419:
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy474;
+       goto yy4;
+yy420:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy475;
+       goto yy4;
 yy421:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy486;
-       goto yy14;
+       if (yych == 'o') goto yy476;
+       goto yy4;
 yy422:
-       ++cur;
-#line 132 "../src/ast/lex_conf.re"
-       { opts.set_tags_default   (lex_conf_string ()); return; }
-#line 1948 "src/ast/lex_conf.cc"
-yy424:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy487;
-       goto yy14;
-yy425:
+       if (yych == 'c') goto yy477;
+       goto yy4;
+yy423:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy488;
-       goto yy14;
-yy426:
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 89 "../src/ast/lex_conf.re"
+       { opts.set_yybm         (lex_conf_string ()); return; }
+#line 2063 "src/ast/lex_conf.cc"
+yy425:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy489;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 138 "../src/ast/lex_conf.re"
+       { opts.set_yych           (lex_conf_string ()); return; }
+#line 2071 "src/ast/lex_conf.cc"
 yy427:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy491;
-       if (yych == 't') goto yy493;
-       goto yy14;
+       if (yych == 'a') goto yy478;
+       goto yy4;
 yy428:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy494;
-       goto yy14;
+       if (yych == 'a') goto yy479;
+       goto yy4;
 yy429:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy495;
-       goto yy14;
+       if (yych == 'r') goto yy480;
+       goto yy4;
 yy430:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy496;
-       goto yy14;
+       if (yych == 'o') goto yy481;
+       goto yy4;
 yy431:
-       ++cur;
-#line 160 "../src/ast/lex_conf.re"
-       { opts.set_fill_check   (lex_conf_bool()); return; }
-#line 1982 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 143 "../src/ast/lex_conf.re"
+       { opts.set_fill_use     (lex_conf_bool()); return; }
+#line 2095 "src/ast/lex_conf.cc"
 yy433:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy497;
-       goto yy14;
+       if (yych == 't') goto yy482;
+       goto yy4;
 yy434:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy499;
-       goto yy14;
+       if (yych == 'd') goto yy483;
+       goto yy4;
 yy435:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy500;
-       goto yy14;
+       if (yych == 'o') goto yy485;
+       goto yy216;
 yy436:
-       yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy501;
-       goto yy14;
-yy437:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy502;
-       goto yy14;
+       ++cur;
+#line 75 "../src/ast/lex_conf.re"
+       { opts.set_condGotoParam    (lex_conf_string ()); return; }
+#line 2112 "src/ast/lex_conf.cc"
 yy438:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy504;
-       goto yy14;
-yy439:
-       yych = (unsigned char)*++cur;
-       if (yych == 'U') goto yy506;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 71 "../src/ast/lex_conf.re"
+       { opts.set_condEnumPrefix   (lex_conf_string ()); return; }
+#line 2120 "src/ast/lex_conf.cc"
 yy440:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy507;
-       goto yy14;
+       if (yych == 'P') goto yy486;
+       goto yy4;
 yy441:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy508;
-       goto yy14;
+       if (yych == 'Y') goto yy488;
+       goto yy4;
 yy442:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy509;
-       goto yy14;
+       if (yych == 'A') goto yy489;
+       goto yy4;
 yy443:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy510;
-       goto yy14;
+       if (yych == 'R') goto yy490;
+       goto yy4;
 yy444:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy512;
-       goto yy14;
-yy445:
-       yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy513;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 137 "../src/ast/lex_conf.re"
+       { opts.set_yyctype        (lex_conf_string ()); return; }
+#line 2144 "src/ast/lex_conf.cc"
 yy446:
-       yyaccept = 16;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == ':') goto yy515;
-       if (yych == '@') goto yy516;
+       yych = (unsigned char)*++cur;
+       if (yych == 'R') goto yy491;
+       goto yy4;
 yy447:
-#line 155 "../src/ast/lex_conf.re"
-       { opts.set_fill         (lex_conf_string ()); return; }
-#line 2043 "src/ast/lex_conf.cc"
-yy448:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy517;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 135 "../src/ast/lex_conf.re"
+       { opts.set_yydebug (lex_conf_string ()); return; }
+#line 2156 "src/ast/lex_conf.cc"
 yy449:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy518;
-       goto yy14;
+       if (yych == 'n') goto yy493;
+       goto yy4;
 yy450:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy519;
-       goto yy14;
+       if (yych == 'l') goto yy494;
+       goto yy216;
 yy451:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy520;
-       goto yy14;
+       if (yych == 'N') goto yy495;
+       goto yy4;
 yy452:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy522;
-       goto yy14;
+       if (yych == 'A') goto yy496;
+       goto yy4;
 yy453:
-       ++cur;
-#line 121 "../src/ast/lex_conf.re"
-       { opts.set_yypeek       (lex_conf_string ()); return; }
-#line 2068 "src/ast/lex_conf.cc"
-yy455:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy523;
-       goto yy14;
+       if (yych == 'H') goto yy497;
+       goto yy4;
+yy454:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 106 "../src/ast/lex_conf.re"
+       { opts.set_yylimit     (lex_conf_string ()); return; }
+#line 2184 "src/ast/lex_conf.cc"
 yy456:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy524;
-       goto yy14;
+       if (yych == 'R') goto yy498;
+       goto yy4;
 yy457:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy525;
-       goto yy14;
+       if (yych == 'R') goto yy500;
+       goto yy4;
 yy458:
-       ++cur;
-#line 122 "../src/ast/lex_conf.re"
-       { opts.set_yyskip       (lex_conf_string ()); return; }
-#line 2085 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'N') goto yy501;
+       goto yy4;
+yy459:
+       yych = (unsigned char)*++cur;
+       if (yych == 'A') goto yy502;
+       goto yy4;
 yy460:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy526;
-       goto yy14;
+       if (yych == 'o') goto yy503;
+       goto yy4;
 yy461:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy527;
-       if (yych == 'v') goto yy528;
-       goto yy14;
+       if (yych == 'e') goto yy504;
+       goto yy4;
 yy462:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy529;
-       goto yy14;
+       if (yych == 'e') goto yy505;
+       goto yy4;
 yy463:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy530;
-       goto yy14;
+       if (yych == '-') goto yy506;
+       goto yy4;
 yy464:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy531;
-       goto yy14;
+       if (yych == 't') goto yy507;
+       goto yy4;
 yy465:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy532;
-       goto yy14;
+       if (yych == 'm') goto yy508;
+       goto yy4;
 yy466:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy92;
-       goto yy14;
+       if (yych == 'i') goto yy509;
+       goto yy4;
 yy467:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy533;
-       goto yy14;
+       if (yych == 'a') goto yy510;
+       goto yy4;
 yy468:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy534;
-       goto yy14;
+       if (yych == '-') goto yy511;
+       goto yy4;
 yy469:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy535;
-       goto yy14;
+       if (yych == 'f') goto yy512;
+       goto yy4;
 yy470:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy536;
-       goto yy14;
+       if (yych == '-') goto yy513;
+       goto yy4;
 yy471:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy537;
-       goto yy14;
+       if (yych == 'h') goto yy514;
+       goto yy4;
 yy472:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy538;
-       goto yy14;
+       if (yych == 'p') goto yy515;
+       goto yy4;
 yy473:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy539;
-       goto yy14;
+       if (yych == 'r') goto yy516;
+       goto yy4;
 yy474:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy540;
-       goto yy14;
+       if (yych == 'b') goto yy517;
+       goto yy4;
 yy475:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy541;
-       goto yy14;
+       if (yych == 'l') goto yy518;
+       goto yy4;
 yy476:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy542;
-       goto yy14;
+       if (yych == 'n') goto yy520;
+       goto yy4;
 yy477:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy96;
-       goto yy14;
+       if (yych == 'e') goto yy522;
+       goto yy4;
 yy478:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy543;
-       goto yy14;
+       if (yych == 'b') goto yy523;
+       goto yy4;
 yy479:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy544;
-       goto yy14;
+       if (yych == 'b') goto yy524;
+       goto yy4;
 yy480:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy545;
-       goto yy14;
+       if (yych == 'g') goto yy525;
+       goto yy4;
 yy481:
-       ++cur;
-       goto yy125;
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy526;
+       goto yy4;
 yy482:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy546;
-       goto yy14;
+       if (yych == 'e') goto yy528;
+       goto yy4;
 yy483:
-       ++cur;
-#line 136 "../src/ast/lex_conf.re"
-       { opts.set_indString (lex_conf_string ()); return; }
-#line 2182 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 92 "../src/ast/lex_conf.re"
+       {
+               const int32_t n = lex_conf_number ();
+               if (n < 0)
+               {
+                       fatal ("configuration 'cgoto:threshold' must be nonnegative");
+               }
+               opts.set_cGotoThreshold (static_cast<uint32_t> (n));
+               return;
+       }
+#line 2308 "src/ast/lex_conf.cc"
 yy485:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy547;
-       goto yy14;
+       if (yych == 'n') goto yy529;
+       goto yy216;
 yy486:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy548;
-       goto yy14;
+       if (yych <= 'C') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= ':') goto yy3;
+                       if (yych <= '@') goto yy487;
+                       if (yych <= 'B') goto yy3;
+                       goto yy530;
+               }
+       } else {
+               if (yych <= '^') {
+                       if (yych == 'T') goto yy531;
+                       if (yych <= 'Z') goto yy3;
+               } else {
+                       if (yych == '`') goto yy487;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
 yy487:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy549;
-       goto yy14;
+#line 110 "../src/ast/lex_conf.re"
+       { opts.set_yybackup     (lex_conf_string ()); return; }
+#line 2336 "src/ast/lex_conf.cc"
 yy488:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy550;
-       goto yy14;
+       if (yych == 'P') goto yy532;
+       goto yy4;
 yy489:
-       ++cur;
-#line 102 "../src/ast/lex_conf.re"
-       { opts.set_yybm         (lex_conf_string ()); return; }
-#line 2203 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'G') goto yy533;
+       goto yy4;
+yy490:
+       yych = (unsigned char)*++cur;
+       if (yych == 'K') goto yy535;
+       goto yy4;
 yy491:
-       ++cur;
-#line 151 "../src/ast/lex_conf.re"
-       { opts.set_yych           (lex_conf_string ()); return; }
-#line 2208 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 103 "../src/ast/lex_conf.re"
+       { opts.set_yycursor    (lex_conf_string ()); return; }
+#line 2356 "src/ast/lex_conf.cc"
 yy493:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy551;
-       goto yy14;
+       if (yych == 'a') goto yy536;
+       goto yy4;
 yy494:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy552;
-       goto yy14;
+       if (yych == 'e') goto yy537;
+       goto yy216;
 yy495:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy553;
-       goto yy14;
+       if (yych == 'D') goto yy538;
+       goto yy4;
 yy496:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy554;
-       goto yy14;
+       if (yych == 'T') goto yy539;
+       goto yy4;
 yy497:
-       ++cur;
-#line 156 "../src/ast/lex_conf.re"
-       { opts.set_fill_use     (lex_conf_bool()); return; }
-#line 2229 "src/ast/lex_conf.cc"
-yy499:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy555;
-       goto yy14;
+       if (yych == 'A') goto yy540;
+       goto yy4;
+yy498:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 104 "../src/ast/lex_conf.re"
+       { opts.set_yymarker    (lex_conf_string ()); return; }
+#line 2384 "src/ast/lex_conf.cc"
 yy500:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy556;
-       goto yy14;
+       if (yych == 'E') goto yy541;
+       goto yy4;
 yy501:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy558;
-       goto yy14;
+       if (yych == 'D') goto yy543;
+       goto yy4;
 yy502:
-       ++cur;
-#line 88 "../src/ast/lex_conf.re"
-       { opts.set_condGotoParam    (lex_conf_string ()); return; }
-#line 2246 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'T') goto yy544;
+       goto yy4;
+yy503:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy545;
+       goto yy4;
 yy504:
-       ++cur;
-#line 84 "../src/ast/lex_conf.re"
-       { opts.set_condEnumPrefix   (lex_conf_string ()); return; }
-#line 2251 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy546;
+       goto yy4;
+yy505:
+       yych = (unsigned char)*++cur;
+       if (yych == 'r') goto yy547;
+       goto yy4;
 yy506:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy559;
-       goto yy14;
+       if (yych == 'g') goto yy548;
+       goto yy4;
 yy507:
        yych = (unsigned char)*++cur;
-       if (yych == 'Y') goto yy561;
-       goto yy14;
+       if (yych == 'p') goto yy549;
+       goto yy4;
 yy508:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy562;
-       goto yy14;
+       if (yych == 'i') goto yy550;
+       goto yy4;
 yy509:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy563;
-       goto yy14;
+       if (yych == 'p') goto yy551;
+       goto yy4;
 yy510:
-       ++cur;
-#line 150 "../src/ast/lex_conf.re"
-       { opts.set_yyctype        (lex_conf_string ()); return; }
-#line 2272 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 's') goto yy553;
+       goto yy4;
+yy511:
+       yych = (unsigned char)*++cur;
+       if (yych == 'p') goto yy554;
+       goto yy4;
 yy512:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy564;
-       goto yy14;
+       if (yych == 's') goto yy107;
+       goto yy4;
 yy513:
-       ++cur;
-#line 148 "../src/ast/lex_conf.re"
-       { opts.set_yydebug (lex_conf_string ()); return; }
-#line 2281 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'i') goto yy555;
+       goto yy4;
+yy514:
+       yych = (unsigned char)*++cur;
+       if (yych == 'e') goto yy556;
+       goto yy4;
 yy515:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy566;
-       goto yy14;
+       if (yych == 't') goto yy557;
+       goto yy4;
 yy516:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy567;
-       goto yy14;
+       if (yych == 's') goto yy558;
+       goto yy4;
 yy517:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy568;
-       goto yy14;
+       if (yych == 'e') goto yy559;
+       goto yy4;
 yy518:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy569;
-       goto yy14;
-yy519:
-       yych = (unsigned char)*++cur;
-       if (yych == 'H') goto yy570;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 86 "../src/ast/lex_conf.re"
+       { opts.set_bUseStateNext   (lex_conf_bool()); return; }
+#line 2464 "src/ast/lex_conf.cc"
 yy520:
-       ++cur;
-#line 119 "../src/ast/lex_conf.re"
-       { opts.set_yylimit     (lex_conf_string ()); return; }
-#line 2306 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 121 "../src/ast/lex_conf.re"
+       { opts.set_tags_expression(lex_conf_string ()); return; }
+#line 2472 "src/ast/lex_conf.cc"
 yy522:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy571;
-       goto yy14;
+       if (yych == 'p') goto yy560;
+       goto yy4;
 yy523:
        yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy573;
-       goto yy14;
+       if (yych == 'l') goto yy561;
+       goto yy4;
 yy524:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy574;
-       goto yy14;
+       if (yych == 'l') goto yy562;
+       goto yy4;
 yy525:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy575;
-       goto yy14;
+       if (yych == 'e') goto yy563;
+       goto yy4;
 yy526:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy576;
-       goto yy14;
-yy527:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy577;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 139 "../src/ast/lex_conf.re"
+       { opts.set_yychConversion (lex_conf_bool()); return; }
+#line 2496 "src/ast/lex_conf.cc"
 yy528:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy578;
-       goto yy14;
+       if (yych == 'r') goto yy564;
+       goto yy4;
 yy529:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy579;
-       goto yy14;
+       if (yych == 'd') goto yy566;
+       goto yy216;
 yy530:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy580;
-       goto yy14;
+       if (yych == 'T') goto yy568;
+       goto yy4;
 yy531:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy581;
-       goto yy14;
+       if (yych == 'A') goto yy569;
+       goto yy4;
 yy532:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy582;
-       goto yy14;
+       if (yych == 'E') goto yy570;
+       goto yy4;
 yy533:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy583;
-       goto yy14;
-yy534:
-       yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy584;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 116 "../src/ast/lex_conf.re"
+       { opts.set_yycopytag    (lex_conf_string ()); return; }
+#line 2524 "src/ast/lex_conf.cc"
 yy535:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy585;
-       goto yy14;
+       if (yych == 'E') goto yy572;
+       goto yy4;
 yy536:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy586;
-       goto yy14;
+       if (yych == 'k') goto yy573;
+       goto yy4;
 yy537:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy587;
-       goto yy14;
+       if (yych == 'n') goto yy574;
+       goto yy216;
 yy538:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy588;
-       goto yy14;
+       if (yych == 'I') goto yy576;
+       goto yy4;
 yy539:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy589;
-       goto yy14;
+       if (yych == 'E') goto yy577;
+       goto yy4;
 yy540:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy590;
-       goto yy14;
+       if (yych == 'N') goto yy579;
+       goto yy4;
 yy541:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy591;
-       goto yy14;
+       if (yych <= 'C') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= ':') goto yy3;
+                       if (yych <= '@') goto yy542;
+                       if (yych <= 'B') goto yy3;
+                       goto yy581;
+               }
+       } else {
+               if (yych <= '^') {
+                       if (yych == 'T') goto yy582;
+                       if (yych <= 'Z') goto yy3;
+               } else {
+                       if (yych == '`') goto yy542;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
 yy542:
-       ++cur;
-       goto yy119;
+#line 113 "../src/ast/lex_conf.re"
+       { opts.set_yyrestore    (lex_conf_string ()); return; }
+#line 2572 "src/ast/lex_conf.cc"
 yy543:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy592;
-       goto yy14;
+       if (yych == 'I') goto yy583;
+       goto yy4;
 yy544:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy593;
-       goto yy14;
+       if (yych == 'E') goto yy584;
+       goto yy4;
 yy545:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy594;
-       goto yy14;
+       if (yych == 's') goto yy586;
+       goto yy4;
 yy546:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy595;
-       goto yy14;
+       if (yych == 's') goto yy587;
+       goto yy4;
 yy547:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy596;
-       goto yy14;
+       if (yych == 't') goto yy588;
+       goto yy4;
 yy548:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy597;
-       goto yy14;
+       if (yych == 'o') goto yy589;
+       goto yy4;
 yy549:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy599;
-       goto yy14;
+       if (yych == 'u') goto yy590;
+       goto yy4;
 yy550:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy601;
-       goto yy14;
+       if (yych == 'z') goto yy591;
+       goto yy4;
 yy551:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy602;
-       goto yy14;
-yy552:
-       yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy603;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 51 "../src/ast/lex_conf.re"
+       { opts.set_eager_skip(lex_conf_bool());         return; }
+#line 2612 "src/ast/lex_conf.cc"
 yy553:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy604;
-       goto yy14;
+       if (yych == 's') goto yy592;
+       goto yy4;
 yy554:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy605;
-       goto yy14;
+       if (yych == 'o') goto yy594;
+       goto yy4;
 yy555:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy607;
-       goto yy14;
+       if (yych == 'n') goto yy595;
+       goto yy4;
 yy556:
-       ++cur;
-#line 105 "../src/ast/lex_conf.re"
-       {
-               const int32_t n = lex_conf_number ();
-               if (n < 0)
-               {
-                       fatal ("configuration 'cgoto:threshold' must be nonnegative");
-               }
-               opts.set_cGotoThreshold (static_cast<uint32_t> (n));
-               return;
-       }
-#line 2454 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 'a') goto yy596;
+       goto yy4;
+yy557:
+       yych = (unsigned char)*++cur;
+       if (yych == 'u') goto yy597;
+       goto yy4;
 yy558:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy608;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy113;
 yy559:
-       yyaccept = 17;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'C') goto yy609;
-       if (yych == 'T') goto yy610;
+       yych = (unsigned char)*++cur;
+       if (yych == 'l') goto yy598;
+       goto yy4;
 yy560:
-#line 123 "../src/ast/lex_conf.re"
-       { opts.set_yybackup     (lex_conf_string ()); return; }
-#line 2467 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 't') goto yy600;
+       goto yy4;
 yy561:
        yych = (unsigned char)*++cur;
-       if (yych == 'P') goto yy611;
-       goto yy14;
+       if (yych == 'e') goto yy602;
+       goto yy4;
 yy562:
        yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy612;
-       goto yy14;
+       if (yych == 'e') goto yy604;
+       goto yy4;
 yy563:
        yych = (unsigned char)*++cur;
-       if (yych == 'K') goto yy614;
-       goto yy14;
+       if (yych == 't') goto yy606;
+       goto yy4;
 yy564:
-       ++cur;
-#line 116 "../src/ast/lex_conf.re"
-       { opts.set_yycursor    (lex_conf_string ()); return; }
-#line 2484 "src/ast/lex_conf.cc"
-yy566:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy615;
-       goto yy14;
-yy567:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy616;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 145 "../src/ast/lex_conf.re"
+       { opts.set_fill_arg_use (lex_conf_bool()); return; }
+#line 2666 "src/ast/lex_conf.cc"
+yy566:
+       ++cur;
+#line 73 "../src/ast/lex_conf.re"
+       { opts.set_condDividerParam (lex_conf_string ()); return; }
+#line 2671 "src/ast/lex_conf.cc"
 yy568:
        yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy617;
-       goto yy14;
+       if (yych == 'X') goto yy608;
+       goto yy4;
 yy569:
        yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy618;
-       goto yy14;
+       if (yych == 'G') goto yy610;
+       goto yy4;
 yy570:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy619;
-       goto yy14;
-yy571:
-       ++cur;
-#line 117 "../src/ast/lex_conf.re"
-       { opts.set_yymarker    (lex_conf_string ()); return; }
-#line 2509 "src/ast/lex_conf.cc"
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 64 "../src/ast/lex_conf.re"
+       { opts.set_yycondtype       (lex_conf_string ()); return; }
+#line 2687 "src/ast/lex_conf.cc"
+yy572:
+       yych = (unsigned char)*++cur;
+       if (yych == 'R') goto yy612;
+       goto yy4;
 yy573:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy620;
-       goto yy14;
+       if (yych == 'e') goto yy614;
+       goto yy4;
 yy574:
-       yych = (unsigned char)*++cur;
-       if (yych == 'D') goto yy622;
-       goto yy14;
-yy575:
-       yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy623;
-       goto yy14;
+       ++cur;
+#line 144 "../src/ast/lex_conf.re"
+       { opts.set_fill_arg     (lex_conf_string ()); return; }
+#line 2700 "src/ast/lex_conf.cc"
 yy576:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy624;
-       goto yy14;
+       if (yych == 'T') goto yy615;
+       goto yy4;
 yy577:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy625;
-       goto yy14;
+       if (yych <= '@') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= '9') goto yy3;
+                       if (yych <= ':') goto yy616;
+               }
+       } else {
+               if (yych <= '_') {
+                       if (yych <= 'Z') goto yy3;
+                       if (yych >= '_') goto yy3;
+               } else {
+                       if (yych <= '`') goto yy578;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
 yy578:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy626;
-       goto yy14;
+#line 78 "../src/ast/lex_conf.re"
+       { opts.set_state_get       (lex_conf_string ()); return; }
+#line 2726 "src/ast/lex_conf.cc"
 yy579:
        yych = (unsigned char)*++cur;
-       if (yych == 'g') goto yy627;
-       goto yy14;
-yy580:
-       yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy628;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 117 "../src/ast/lex_conf.re"
+       { opts.set_yylessthan   (lex_conf_string ()); return; }
+#line 2734 "src/ast/lex_conf.cc"
 yy581:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy629;
-       goto yy14;
+       if (yych == 'T') goto yy617;
+       goto yy4;
 yy582:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy630;
-       goto yy14;
+       if (yych == 'A') goto yy618;
+       goto yy4;
 yy583:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy632;
-       goto yy14;
+       if (yych == 'T') goto yy619;
+       goto yy4;
 yy584:
-       yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy633;
-       goto yy14;
+       yyaccept = 4;
+       yych = (unsigned char)*(mar = ++cur);
+       if (yych <= '?') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= '9') goto yy3;
+                       if (yych <= ':') goto yy620;
+               }
+       } else {
+               if (yych <= '^') {
+                       if (yych <= '@') goto yy621;
+                       if (yych <= 'Z') goto yy3;
+               } else {
+                       if (yych == '`') goto yy585;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
 yy585:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy634;
-       goto yy14;
+#line 80 "../src/ast/lex_conf.re"
+       { opts.set_state_set       (lex_conf_string ()); return; }
+#line 2769 "src/ast/lex_conf.cc"
 yy586:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy635;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy95;
 yy587:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy636;
-       goto yy14;
+       if (yych == 'i') goto yy622;
+       goto yy4;
 yy588:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy637;
-       goto yy14;
+       if (yych == 'e') goto yy623;
+       goto yy4;
 yy589:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy638;
-       goto yy14;
+       if (yych == 't') goto yy624;
+       goto yy4;
 yy590:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy639;
-       goto yy14;
+       if (yych == 't') goto yy625;
+       goto yy4;
 yy591:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy641;
-       goto yy14;
+       if (yych == 'a') goto yy626;
+       goto yy4;
 yy592:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy642;
-       goto yy14;
-yy593:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy643;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 61 "../src/ast/lex_conf.re"
+       { lex_conf_empty_class();      return; }
+#line 2803 "src/ast/lex_conf.cc"
 yy594:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy644;
-       goto yy14;
+       if (yych == 'l') goto yy627;
+       goto yy4;
 yy595:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy645;
-       goto yy14;
+       if (yych == 'f') goto yy628;
+       goto yy4;
 yy596:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy646;
-       goto yy14;
+       if (yych == 'd') goto yy629;
+       goto yy4;
 yy597:
-       ++cur;
-#line 99 "../src/ast/lex_conf.re"
-       { opts.set_bUseStateNext   (lex_conf_bool()); return; }
-#line 2610 "src/ast/lex_conf.cc"
-yy599:
-       ++cur;
-#line 134 "../src/ast/lex_conf.re"
-       { opts.set_tags_expression(lex_conf_string ()); return; }
-#line 2615 "src/ast/lex_conf.cc"
-yy601:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy647;
-       goto yy14;
-yy602:
+       if (yych == 'r') goto yy631;
+       goto yy4;
+yy598:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 83 "../src/ast/lex_conf.re"
+       { opts.set_yyfilllabel     (lex_conf_string ()); return; }
+#line 2827 "src/ast/lex_conf.cc"
+yy600:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy648;
-       goto yy14;
-yy603:
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 87 "../src/ast/lex_conf.re"
+       { opts.set_yyaccept        (lex_conf_string ()); return; }
+#line 2835 "src/ast/lex_conf.cc"
+yy602:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy649;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 76 "../src/ast/lex_conf.re"
+       { opts.set_yyctable         (lex_conf_string ()); return; }
+#line 2843 "src/ast/lex_conf.cc"
 yy604:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy650;
-       goto yy14;
-yy605:
-       ++cur;
-#line 152 "../src/ast/lex_conf.re"
-       { opts.set_yychConversion (lex_conf_bool()); return; }
-#line 2636 "src/ast/lex_conf.cc"
-yy607:
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 156 "../src/ast/lex_conf.re"
+       { lex_conf_string (); return; }
+#line 2851 "src/ast/lex_conf.cc"
+yy606:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy651;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 101 "../src/ast/lex_conf.re"
+       { opts.set_yytarget (lex_conf_string ()); return; }
+#line 2859 "src/ast/lex_conf.cc"
 yy608:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy653;
-       goto yy14;
-yy609:
-       yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy655;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 111 "../src/ast/lex_conf.re"
+       { opts.set_yybackupctx  (lex_conf_string ()); return; }
+#line 2867 "src/ast/lex_conf.cc"
 yy610:
        yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy656;
-       goto yy14;
-yy611:
-       yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy657;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 112 "../src/ast/lex_conf.re"
+       { opts.set_yybackuptag  (lex_conf_string ()); return; }
+#line 2875 "src/ast/lex_conf.cc"
 yy612:
-       ++cur;
-#line 129 "../src/ast/lex_conf.re"
-       { opts.set_yycopytag    (lex_conf_string ()); return; }
-#line 2661 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 105 "../src/ast/lex_conf.re"
+       { opts.set_yyctxmarker (lex_conf_string ()); return; }
+#line 2883 "src/ast/lex_conf.cc"
 yy614:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy659;
-       goto yy14;
+       if (yych == 'd') goto yy632;
+       goto yy4;
 yy615:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy660;
-       goto yy14;
+       if (yych == 'I') goto yy634;
+       goto yy4;
 yy616:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy661;
-       goto yy14;
+       if (yych == 'n') goto yy635;
+       goto yy4;
 yy617:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy663;
-       goto yy14;
+       if (yych == 'X') goto yy636;
+       goto yy4;
 yy618:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy664;
-       goto yy14;
+       if (yych == 'G') goto yy638;
+       goto yy4;
 yy619:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy666;
-       goto yy14;
+       if (yych == 'I') goto yy640;
+       goto yy4;
 yy620:
-       yyaccept = 18;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'C') goto yy668;
-       if (yych == 'T') goto yy669;
+       yych = (unsigned char)*++cur;
+       if (yych == 'n') goto yy641;
+       goto yy4;
 yy621:
-#line 126 "../src/ast/lex_conf.re"
-       { opts.set_yyrestore    (lex_conf_string ()); return; }
-#line 2694 "src/ast/lex_conf.cc"
+       yych = (unsigned char)*++cur;
+       if (yych == 's') goto yy642;
+       goto yy216;
 yy622:
        yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy670;
-       goto yy14;
+       if (yych == 't') goto yy643;
+       goto yy4;
 yy623:
        yych = (unsigned char)*++cur;
-       if (yych == 'E') goto yy671;
-       goto yy14;
+       if (yych == 'd') goto yy644;
+       goto yy4;
 yy624:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy673;
-       goto yy14;
+       if (yych == 'o') goto yy646;
+       goto yy4;
 yy625:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy674;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy98;
 yy626:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy675;
-       goto yy14;
+       if (yych == 't') goto yy647;
+       goto yy4;
 yy627:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy676;
-       goto yy14;
+       if (yych == 'i') goto yy648;
+       goto yy4;
 yy628:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy677;
-       goto yy14;
+       if (yych == 'o') goto yy649;
+       goto yy4;
 yy629:
        yych = (unsigned char)*++cur;
-       if (yych == 'z') goto yy678;
-       goto yy14;
-yy630:
-       ++cur;
-#line 61 "../src/ast/lex_conf.re"
-       { opts.set_eager_skip(lex_conf_bool());         return; }
-#line 2731 "src/ast/lex_conf.cc"
-yy632:
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 50 "../src/ast/lex_conf.re"
+       { opts.set_lookahead(!lex_conf_bool());         return; }
+#line 2953 "src/ast/lex_conf.cc"
+yy631:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy679;
-       goto yy14;
-yy633:
+       if (yych == 'e') goto yy650;
+       goto yy4;
+yy632:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy681;
-       goto yy14;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 146 "../src/ast/lex_conf.re"
+       { opts.set_fill_naked   (lex_conf_bool()); return; }
+#line 2965 "src/ast/lex_conf.cc"
 yy634:
        yych = (unsigned char)*++cur;
-       if (yych == 'x') goto yy94;
-       goto yy14;
+       if (yych == 'O') goto yy651;
+       goto yy4;
 yy635:
-       ++cur;
-       goto yy121;
-yy636:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy682;
-       goto yy14;
-yy637:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy683;
-       goto yy14;
-yy638:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy684;
-       goto yy14;
-yy639:
-       ++cur;
-#line 57 "../src/ast/lex_conf.re"
-       { opts.set_version(!lex_conf_bool());           return; }
-#line 2763 "src/ast/lex_conf.cc"
-yy641:
-       yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy685;
-       goto yy14;
-yy642:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy686;
-       goto yy14;
-yy643:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy687;
-       goto yy14;
-yy644:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy688;
-       goto yy14;
-yy645:
-       ++cur;
-       goto yy127;
-yy646:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy689;
-       goto yy14;
-yy647:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy691;
-       goto yy14;
-yy648:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy693;
-       goto yy14;
-yy649:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy695;
-       goto yy14;
-yy650:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy697;
-       goto yy14;
-yy651:
-       ++cur;
-#line 158 "../src/ast/lex_conf.re"
-       { opts.set_fill_arg_use (lex_conf_bool()); return; }
-#line 2807 "src/ast/lex_conf.cc"
-yy653:
-       ++cur;
-#line 86 "../src/ast/lex_conf.re"
-       { opts.set_condDividerParam (lex_conf_string ()); return; }
-#line 2812 "src/ast/lex_conf.cc"
-yy655:
-       yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy699;
-       goto yy14;
-yy656:
-       yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy701;
-       goto yy14;
-yy657:
-       ++cur;
-#line 77 "../src/ast/lex_conf.re"
-       { opts.set_yycondtype       (lex_conf_string ()); return; }
-#line 2825 "src/ast/lex_conf.cc"
-yy659:
-       yych = (unsigned char)*++cur;
-       if (yych == 'R') goto yy703;
-       goto yy14;
-yy660:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy705;
-       goto yy14;
-yy661:
-       ++cur;
-#line 157 "../src/ast/lex_conf.re"
-       { opts.set_fill_arg     (lex_conf_string ()); return; }
-#line 2838 "src/ast/lex_conf.cc"
-yy663:
-       yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy706;
-       goto yy14;
-yy664:
-       yyaccept = 19;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == ':') goto yy707;
-yy665:
-#line 91 "../src/ast/lex_conf.re"
-       { opts.set_state_get       (lex_conf_string ()); return; }
-#line 2850 "src/ast/lex_conf.cc"
-yy666:
-       ++cur;
-#line 130 "../src/ast/lex_conf.re"
-       { opts.set_yylessthan   (lex_conf_string ()); return; }
-#line 2855 "src/ast/lex_conf.cc"
-yy668:
-       yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy708;
-       goto yy14;
-yy669:
-       yych = (unsigned char)*++cur;
-       if (yych == 'A') goto yy709;
-       goto yy14;
-yy670:
-       yych = (unsigned char)*++cur;
-       if (yych == 'T') goto yy710;
-       goto yy14;
-yy671:
-       yyaccept = 20;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == ':') goto yy711;
-       if (yych == '@') goto yy712;
-yy672:
-#line 93 "../src/ast/lex_conf.re"
-       { opts.set_state_set       (lex_conf_string ()); return; }
-#line 2876 "src/ast/lex_conf.cc"
-yy673:
-       ++cur;
-       goto yy101;
-yy674:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy713;
-       goto yy14;
-yy675:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy714;
-       goto yy14;
-yy676:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy715;
-       goto yy14;
-yy677:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy716;
-       goto yy14;
-yy678:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy717;
-       goto yy14;
-yy679:
-       ++cur;
-#line 74 "../src/ast/lex_conf.re"
-       { lex_conf_empty_class();      return; }
-#line 2904 "src/ast/lex_conf.cc"
-yy681:
-       yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy718;
-       goto yy14;
-yy682:
-       yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy719;
-       goto yy14;
-yy683:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy720;
-       goto yy14;
-yy684:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy721;
-       goto yy14;
-yy685:
-       yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy723;
-       goto yy14;
-yy686:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy724;
-       goto yy14;
-yy687:
-       yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy725;
-       goto yy14;
-yy688:
-       ++cur;
-       goto yy123;
-yy689:
-       ++cur;
-#line 96 "../src/ast/lex_conf.re"
-       { opts.set_yyfilllabel     (lex_conf_string ()); return; }
-#line 2940 "src/ast/lex_conf.cc"
-yy691:
-       ++cur;
-#line 100 "../src/ast/lex_conf.re"
-       { opts.set_yyaccept        (lex_conf_string ()); return; }
-#line 2945 "src/ast/lex_conf.cc"
-yy693:
-       ++cur;
-#line 89 "../src/ast/lex_conf.re"
-       { opts.set_yyctable         (lex_conf_string ()); return; }
-#line 2950 "src/ast/lex_conf.cc"
-yy695:
-       ++cur;
-#line 169 "../src/ast/lex_conf.re"
-       { lex_conf_string (); return; }
-#line 2955 "src/ast/lex_conf.cc"
-yy697:
-       ++cur;
-#line 114 "../src/ast/lex_conf.re"
-       { opts.set_yytarget (lex_conf_string ()); return; }
-#line 2960 "src/ast/lex_conf.cc"
-yy699:
-       ++cur;
-#line 124 "../src/ast/lex_conf.re"
-       { opts.set_yybackupctx  (lex_conf_string ()); return; }
-#line 2965 "src/ast/lex_conf.cc"
-yy701:
-       ++cur;
-#line 125 "../src/ast/lex_conf.re"
-       { opts.set_yybackuptag  (lex_conf_string ()); return; }
-#line 2970 "src/ast/lex_conf.cc"
-yy703:
-       ++cur;
-#line 118 "../src/ast/lex_conf.re"
-       { opts.set_yyctxmarker (lex_conf_string ()); return; }
-#line 2975 "src/ast/lex_conf.cc"
-yy705:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy726;
-       goto yy14;
-yy706:
-       yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy728;
-       goto yy14;
-yy707:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy729;
-       goto yy14;
-yy708:
-       yych = (unsigned char)*++cur;
-       if (yych == 'X') goto yy730;
-       goto yy14;
-yy709:
-       yych = (unsigned char)*++cur;
-       if (yych == 'G') goto yy732;
-       goto yy14;
-yy710:
-       yych = (unsigned char)*++cur;
-       if (yych == 'I') goto yy734;
-       goto yy14;
-yy711:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy735;
-       goto yy14;
-yy712:
-       yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy736;
-       goto yy14;
-yy713:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy737;
-       goto yy14;
-yy714:
-       yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy738;
-       goto yy14;
-yy715:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy740;
-       goto yy14;
-yy716:
-       ++cur;
-       goto yy105;
-yy717:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy741;
-       goto yy14;
-yy718:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy742;
-       goto yy14;
-yy719:
-       yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy743;
-       goto yy14;
-yy720:
-       yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy744;
-       goto yy14;
-yy721:
-       ++cur;
-#line 60 "../src/ast/lex_conf.re"
-       { opts.set_lookahead(!lex_conf_bool());         return; }
-#line 3043 "src/ast/lex_conf.cc"
-yy723:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy745;
-       goto yy14;
-yy724:
-       yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy746;
-       goto yy14;
-yy725:
-       yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy747;
-       goto yy14;
-yy726:
-       ++cur;
-#line 159 "../src/ast/lex_conf.re"
-       { opts.set_fill_naked   (lex_conf_bool()); return; }
-#line 3060 "src/ast/lex_conf.cc"
-yy728:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy748;
-       goto yy14;
-yy729:
+       if (yych == 'a') goto yy652;
+       goto yy4;
+yy636:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy749;
-       goto yy14;
-yy730:
-       ++cur;
-#line 127 "../src/ast/lex_conf.re"
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 114 "../src/ast/lex_conf.re"
        { opts.set_yyrestorectx (lex_conf_string ()); return; }
-#line 3073 "src/ast/lex_conf.cc"
-yy732:
-       ++cur;
-#line 128 "../src/ast/lex_conf.re"
-       { opts.set_yyrestoretag (lex_conf_string ()); return; }
-#line 3078 "src/ast/lex_conf.cc"
-yy734:
+#line 2981 "src/ast/lex_conf.cc"
+yy638:
        yych = (unsigned char)*++cur;
-       if (yych == 'O') goto yy750;
-       goto yy14;
-yy735:
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 115 "../src/ast/lex_conf.re"
+       { opts.set_yyrestoretag (lex_conf_string ()); return; }
+#line 2989 "src/ast/lex_conf.cc"
+yy640:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy751;
-       goto yy14;
-yy736:
+       if (yych == 'O') goto yy653;
+       goto yy4;
+yy641:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy752;
-       goto yy14;
-yy737:
+       if (yych == 'a') goto yy654;
+       goto yy4;
+yy642:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy753;
-       goto yy14;
-yy738:
-       ++cur;
-#line 59 "../src/ast/lex_conf.re"
-       { opts.set_bCaseInverted(lex_conf_bool());      return; }
-#line 3099 "src/ast/lex_conf.cc"
-yy740:
+       if (yych == 't') goto yy655;
+       goto yy216;
+yy643:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy110;
-       goto yy14;
-yy741:
+       if (yych == 'i') goto yy656;
+       goto yy4;
+yy644:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy754;
-       goto yy14;
-yy742:
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 49 "../src/ast/lex_conf.re"
+       { opts.set_bCaseInverted(lex_conf_bool());      return; }
+#line 3013 "src/ast/lex_conf.cc"
+yy646:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy755;
-       goto yy14;
-yy743:
-       ++cur;
-       goto yy113;
-yy744:
+       if (yych == 's') goto yy101;
+       goto yy4;
+yy647:
        yych = (unsigned char)*++cur;
-       if (yych == '-') goto yy756;
-       goto yy14;
-yy745:
+       if (yych == 'i') goto yy657;
+       goto yy4;
+yy648:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy757;
-       goto yy14;
-yy746:
+       if (yych == 'c') goto yy658;
+       goto yy4;
+yy649:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy759;
-       goto yy14;
-yy747:
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+       goto yy104;
+yy650:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy760;
-       goto yy14;
-yy748:
+       if (yych == 's') goto yy659;
+       goto yy4;
+yy651:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy761;
-       goto yy14;
-yy749:
+       if (yych == 'N') goto yy661;
+       goto yy4;
+yy652:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy763;
-       goto yy14;
-yy750:
+       if (yych == 'k') goto yy663;
+       goto yy4;
+yy653:
        yych = (unsigned char)*++cur;
-       if (yych == 'N') goto yy764;
-       goto yy14;
-yy751:
+       if (yych == 'N') goto yy664;
+       goto yy4;
+yy654:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy766;
-       goto yy14;
-yy752:
+       if (yych == 'k') goto yy666;
+       goto yy4;
+yy655:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy767;
-       goto yy14;
-yy753:
+       if (yych == 'a') goto yy667;
+       goto yy216;
+yy656:
        yych = (unsigned char)*++cur;
-       if (yych == 'v') goto yy768;
-       goto yy14;
-yy754:
+       if (yych == 'v') goto yy668;
+       goto yy4;
+yy657:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy769;
-       goto yy14;
-yy755:
+       if (yych == 'o') goto yy669;
+       goto yy4;
+yy658:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy770;
-       goto yy14;
-yy756:
+       if (yych == 'y') goto yy670;
+       goto yy4;
+yy659:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy772;
-       goto yy14;
-yy757:
-       ++cur;
-#line 55 "../src/ast/lex_conf.re"
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 47 "../src/ast/lex_conf.re"
        { opts.set_posix_captures(lex_conf_bool());     return; }
-#line 3171 "src/ast/lex_conf.cc"
-yy759:
+#line 3075 "src/ast/lex_conf.cc"
+yy661:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy773;
-       goto yy14;
-yy760:
-       ++cur;
-       goto yy109;
-yy761:
-       yyaccept = 21;
-       yych = (unsigned char)*(mar = ++cur);
-       if (yych == ':') goto yy774;
-yy762:
-#line 78 "../src/ast/lex_conf.re"
+       if (yych <= '@') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= '9') goto yy3;
+                       if (yych <= ':') goto yy672;
+               }
+       } else {
+               if (yych <= '_') {
+                       if (yych <= 'Z') goto yy3;
+                       if (yych >= '_') goto yy3;
+               } else {
+                       if (yych <= '`') goto yy662;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
+yy662:
+#line 65 "../src/ast/lex_conf.re"
        { opts.set_cond_get         (lex_conf_string ()); return; }
-#line 3186 "src/ast/lex_conf.cc"
-yy763:
+#line 3097 "src/ast/lex_conf.cc"
+yy663:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy775;
-       goto yy14;
-yy764:
-       yyaccept = 22;
+       if (yych == 'e') goto yy673;
+       goto yy4;
+yy664:
+       yyaccept = 5;
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == ':') goto yy776;
-       if (yych == '@') goto yy777;
-yy765:
-#line 80 "../src/ast/lex_conf.re"
+       if (yych <= '?') {
+               if (yych <= '/') {
+                       if (yych == '-') goto yy3;
+               } else {
+                       if (yych <= '9') goto yy3;
+                       if (yych <= ':') goto yy674;
+               }
+       } else {
+               if (yych <= '^') {
+                       if (yych <= '@') goto yy675;
+                       if (yych <= 'Z') goto yy3;
+               } else {
+                       if (yych == '`') goto yy665;
+                       if (yych <= 'z') goto yy3;
+               }
+       }
+yy665:
+#line 67 "../src/ast/lex_conf.re"
        { opts.set_cond_set         (lex_conf_string ()); return; }
-#line 3199 "src/ast/lex_conf.cc"
-yy766:
+#line 3124 "src/ast/lex_conf.cc"
+yy666:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy778;
-       goto yy14;
-yy767:
+       if (yych == 'e') goto yy676;
+       goto yy4;
+yy667:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy779;
-       goto yy14;
-yy768:
+       if (yych == 't') goto yy677;
+       goto yy216;
+yy668:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy780;
-       goto yy14;
-yy769:
+       if (yych == 'e') goto yy678;
+       goto yy4;
+yy669:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy782;
-       goto yy14;
-yy770:
-       ++cur;
-#line 72 "../src/ast/lex_conf.re"
-       { lex_conf_encoding_policy();  return; }
-#line 3220 "src/ast/lex_conf.cc"
-yy772:
+       if (yych == 'n') goto yy680;
+       goto yy4;
+yy670:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy784;
-       goto yy14;
-yy773:
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 59 "../src/ast/lex_conf.re"
+       { lex_conf_encoding_policy();  return; }
+#line 3148 "src/ast/lex_conf.cc"
+yy672:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy785;
-       goto yy14;
-yy774:
+       if (yych == 'n') goto yy682;
+       goto yy4;
+yy673:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy786;
-       goto yy14;
-yy775:
+       if (yych == 'd') goto yy683;
+       goto yy4;
+yy674:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy787;
-       goto yy14;
-yy776:
+       if (yych == 'n') goto yy685;
+       goto yy4;
+yy675:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy789;
-       goto yy14;
-yy777:
+       if (yych == 'c') goto yy686;
+       goto yy216;
+yy676:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy790;
-       goto yy14;
-yy778:
+       if (yych == 'd') goto yy687;
+       goto yy4;
+yy677:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy791;
-       goto yy14;
-yy779:
+       if (yych == 'e') goto yy689;
+       goto yy216;
+yy678:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy793;
-       goto yy14;
-yy780:
-       ++cur;
-#line 58 "../src/ast/lex_conf.re"
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 48 "../src/ast/lex_conf.re"
        { opts.set_bCaseInsensitive(lex_conf_bool());   return; }
-#line 3257 "src/ast/lex_conf.cc"
-yy782:
-       ++cur;
-#line 75 "../src/ast/lex_conf.re"
+#line 3180 "src/ast/lex_conf.cc"
+yy680:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 62 "../src/ast/lex_conf.re"
        { lex_conf_dfa_minimization(); return; }
-#line 3262 "src/ast/lex_conf.cc"
-yy784:
+#line 3188 "src/ast/lex_conf.cc"
+yy682:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy795;
-       goto yy14;
-yy785:
-       ++cur;
-       goto yy103;
-yy786:
+       if (yych == 'a') goto yy691;
+       goto yy4;
+yy683:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy796;
-       goto yy14;
-yy787:
-       ++cur;
-#line 92 "../src/ast/lex_conf.re"
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 79 "../src/ast/lex_conf.re"
        { opts.set_state_get_naked (lex_conf_bool()); return; }
-#line 3278 "src/ast/lex_conf.cc"
-yy789:
+#line 3200 "src/ast/lex_conf.cc"
+yy685:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy797;
-       goto yy14;
-yy790:
+       if (yych == 'a') goto yy692;
+       goto yy4;
+yy686:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy798;
-       goto yy14;
-yy791:
-       ++cur;
-#line 94 "../src/ast/lex_conf.re"
+       if (yych == 'o') goto yy693;
+       goto yy216;
+yy687:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 81 "../src/ast/lex_conf.re"
        { opts.set_state_set_naked (lex_conf_bool()); return; }
-#line 3291 "src/ast/lex_conf.cc"
-yy793:
+#line 3216 "src/ast/lex_conf.cc"
+yy689:
        ++cur;
-#line 95 "../src/ast/lex_conf.re"
+#line 82 "../src/ast/lex_conf.re"
        { opts.set_state_set_arg   (lex_conf_string ()); return; }
-#line 3296 "src/ast/lex_conf.cc"
-yy795:
-       yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy799;
-       goto yy14;
-yy796:
+#line 3221 "src/ast/lex_conf.cc"
+yy691:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy801;
-       goto yy14;
-yy797:
+       if (yych == 'k') goto yy694;
+       goto yy4;
+yy692:
        yych = (unsigned char)*++cur;
-       if (yych == 'k') goto yy802;
-       goto yy14;
-yy798:
+       if (yych == 'k') goto yy695;
+       goto yy4;
+yy693:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy803;
-       goto yy14;
-yy799:
-       ++cur;
-#line 56 "../src/ast/lex_conf.re"
-       { opts.set_bNoGenerationDate(lex_conf_bool());  return; }
-#line 3317 "src/ast/lex_conf.cc"
-yy801:
+       if (yych == 'n') goto yy696;
+       goto yy216;
+yy694:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy804;
-       goto yy14;
-yy802:
+       if (yych == 'e') goto yy697;
+       goto yy4;
+yy695:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy805;
-       goto yy14;
-yy803:
+       if (yych == 'e') goto yy698;
+       goto yy4;
+yy696:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy806;
-       goto yy14;
-yy804:
+       if (yych == 'd') goto yy699;
+       goto yy216;
+yy697:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy808;
-       goto yy14;
-yy805:
+       if (yych == 'd') goto yy701;
+       goto yy4;
+yy698:
        yych = (unsigned char)*++cur;
-       if (yych == 'd') goto yy810;
-       goto yy14;
-yy806:
+       if (yych == 'd') goto yy703;
+       goto yy4;
+yy699:
        ++cur;
-#line 81 "../src/ast/lex_conf.re"
+#line 68 "../src/ast/lex_conf.re"
        { opts.set_cond_set_arg     (lex_conf_string ()); return; }
-#line 3342 "src/ast/lex_conf.cc"
-yy808:
-       ++cur;
-#line 79 "../src/ast/lex_conf.re"
+#line 3258 "src/ast/lex_conf.cc"
+yy701:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 66 "../src/ast/lex_conf.re"
        { opts.set_cond_get_naked   (lex_conf_bool()); return; }
-#line 3347 "src/ast/lex_conf.cc"
-yy810:
-       ++cur;
-#line 82 "../src/ast/lex_conf.re"
+#line 3266 "src/ast/lex_conf.cc"
+yy703:
+       yych = (unsigned char)*++cur;
+       if (yybm[0+yych] & 32) {
+               goto yy3;
+       }
+#line 69 "../src/ast/lex_conf.re"
        { opts.set_cond_set_naked   (lex_conf_bool()); return; }
-#line 3352 "src/ast/lex_conf.cc"
+#line 3274 "src/ast/lex_conf.cc"
 }
-#line 170 "../src/ast/lex_conf.re"
+#line 163 "../src/ast/lex_conf.re"
 
 }
 
@@ -3358,102 +3280,102 @@ void Scanner::lex_conf_encoding_policy()
 {
        lex_conf_assign ();
 
-#line 3362 "src/ast/lex_conf.cc"
+#line 3284 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 10) fill(10);
        yych = (unsigned char)*cur;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy816;
+               if (yych == 'f') goto yy709;
        } else {
-               if (yych <= 'i') goto yy817;
-               if (yych == 's') goto yy818;
+               if (yych <= 'i') goto yy710;
+               if (yych == 's') goto yy711;
        }
        ++cur;
-yy815:
-#line 177 "../src/ast/lex_conf.re"
+yy708:
+#line 170 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'ignore', 'substitute', 'fail')"); }
-#line 3378 "src/ast/lex_conf.cc"
-yy816:
+#line 3300 "src/ast/lex_conf.cc"
+yy709:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy819;
-       goto yy815;
-yy817:
+       if (yych == 'a') goto yy712;
+       goto yy708;
+yy710:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'g') goto yy821;
-       goto yy815;
-yy818:
+       if (yych == 'g') goto yy714;
+       goto yy708;
+yy711:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy822;
-       goto yy815;
-yy819:
+       if (yych == 'u') goto yy715;
+       goto yy708;
+yy712:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy823;
-yy820:
+       if (yych == 'i') goto yy716;
+yy713:
        cur = mar;
-       goto yy815;
-yy821:
+       goto yy708;
+yy714:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy824;
-       goto yy820;
-yy822:
+       if (yych == 'n') goto yy717;
+       goto yy713;
+yy715:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy825;
-       goto yy820;
-yy823:
+       if (yych == 'b') goto yy718;
+       goto yy713;
+yy716:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy826;
-       goto yy820;
-yy824:
+       if (yych == 'l') goto yy719;
+       goto yy713;
+yy717:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy828;
-       goto yy820;
-yy825:
+       if (yych == 'o') goto yy721;
+       goto yy713;
+yy718:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy829;
-       goto yy820;
-yy826:
+       if (yych == 's') goto yy722;
+       goto yy713;
+yy719:
        ++cur;
-#line 181 "../src/ast/lex_conf.re"
+#line 174 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_FAIL);       goto end; }
-#line 3421 "src/ast/lex_conf.cc"
-yy828:
+#line 3343 "src/ast/lex_conf.cc"
+yy721:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy830;
-       goto yy820;
-yy829:
+       if (yych == 'r') goto yy723;
+       goto yy713;
+yy722:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy831;
-       goto yy820;
-yy830:
+       if (yych == 't') goto yy724;
+       goto yy713;
+yy723:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy832;
-       goto yy820;
-yy831:
+       if (yych == 'e') goto yy725;
+       goto yy713;
+yy724:
        yych = (unsigned char)*++cur;
-       if (yych == 'i') goto yy834;
-       goto yy820;
-yy832:
+       if (yych == 'i') goto yy727;
+       goto yy713;
+yy725:
        ++cur;
-#line 179 "../src/ast/lex_conf.re"
+#line 172 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_IGNORE);     goto end; }
-#line 3442 "src/ast/lex_conf.cc"
-yy834:
+#line 3364 "src/ast/lex_conf.cc"
+yy727:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy820;
+       if (yych != 't') goto yy713;
        yych = (unsigned char)*++cur;
-       if (yych != 'u') goto yy820;
+       if (yych != 'u') goto yy713;
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy820;
+       if (yych != 't') goto yy713;
        yych = (unsigned char)*++cur;
-       if (yych != 'e') goto yy820;
+       if (yych != 'e') goto yy713;
        ++cur;
-#line 180 "../src/ast/lex_conf.re"
+#line 173 "../src/ast/lex_conf.re"
        { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); goto end; }
-#line 3455 "src/ast/lex_conf.cc"
+#line 3377 "src/ast/lex_conf.cc"
 }
-#line 182 "../src/ast/lex_conf.re"
+#line 175 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3463,77 +3385,77 @@ void Scanner::lex_conf_input()
 {
        lex_conf_assign ();
 
-#line 3467 "src/ast/lex_conf.cc"
+#line 3389 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 7) fill(7);
        yych = (unsigned char)*cur;
-       if (yych <= 'b') goto yy842;
-       if (yych <= 'c') goto yy844;
-       if (yych <= 'd') goto yy845;
-yy842:
+       if (yych <= 'b') goto yy735;
+       if (yych <= 'c') goto yy737;
+       if (yych <= 'd') goto yy738;
+yy735:
        ++cur;
-yy843:
-#line 191 "../src/ast/lex_conf.re"
+yy736:
+#line 184 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'default', 'custom')"); }
-#line 3481 "src/ast/lex_conf.cc"
-yy844:
+#line 3403 "src/ast/lex_conf.cc"
+yy737:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'u') goto yy846;
-       goto yy843;
-yy845:
+       if (yych == 'u') goto yy739;
+       goto yy736;
+yy738:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'e') goto yy848;
-       goto yy843;
-yy846:
+       if (yych == 'e') goto yy741;
+       goto yy736;
+yy739:
        yych = (unsigned char)*++cur;
-       if (yych == 's') goto yy849;
-yy847:
+       if (yych == 's') goto yy742;
+yy740:
        cur = mar;
-       goto yy843;
-yy848:
+       goto yy736;
+yy741:
        yych = (unsigned char)*++cur;
-       if (yych == 'f') goto yy850;
-       goto yy847;
-yy849:
+       if (yych == 'f') goto yy743;
+       goto yy740;
+yy742:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy851;
-       goto yy847;
-yy850:
+       if (yych == 't') goto yy744;
+       goto yy740;
+yy743:
        yych = (unsigned char)*++cur;
-       if (yych == 'a') goto yy852;
-       goto yy847;
-yy851:
+       if (yych == 'a') goto yy745;
+       goto yy740;
+yy744:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy853;
-       goto yy847;
-yy852:
+       if (yych == 'o') goto yy746;
+       goto yy740;
+yy745:
        yych = (unsigned char)*++cur;
-       if (yych == 'u') goto yy854;
-       goto yy847;
-yy853:
+       if (yych == 'u') goto yy747;
+       goto yy740;
+yy746:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy855;
-       goto yy847;
-yy854:
+       if (yych == 'm') goto yy748;
+       goto yy740;
+yy747:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy857;
-       goto yy847;
-yy855:
+       if (yych == 'l') goto yy750;
+       goto yy740;
+yy748:
        ++cur;
-#line 194 "../src/ast/lex_conf.re"
+#line 187 "../src/ast/lex_conf.re"
        { opts.set_input_api(INPUT_CUSTOM);  goto end; }
-#line 3528 "src/ast/lex_conf.cc"
-yy857:
+#line 3450 "src/ast/lex_conf.cc"
+yy750:
        yych = (unsigned char)*++cur;
-       if (yych != 't') goto yy847;
+       if (yych != 't') goto yy740;
        ++cur;
-#line 193 "../src/ast/lex_conf.re"
+#line 186 "../src/ast/lex_conf.re"
        { opts.set_input_api(INPUT_DEFAULT); goto end; }
-#line 3535 "src/ast/lex_conf.cc"
+#line 3457 "src/ast/lex_conf.cc"
 }
-#line 195 "../src/ast/lex_conf.re"
+#line 188 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3543,105 +3465,105 @@ void Scanner::lex_conf_empty_class()
 {
        lex_conf_assign ();
 
-#line 3547 "src/ast/lex_conf.cc"
+#line 3469 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 11) fill(11);
        yych = (unsigned char)*cur;
-       if (yych == 'e') goto yy864;
-       if (yych == 'm') goto yy865;
+       if (yych == 'e') goto yy757;
+       if (yych == 'm') goto yy758;
        ++cur;
-yy863:
-#line 204 "../src/ast/lex_conf.re"
+yy756:
+#line 197 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'match-empty', 'match-none', 'error')"); }
-#line 3559 "src/ast/lex_conf.cc"
-yy864:
+#line 3481 "src/ast/lex_conf.cc"
+yy757:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'r') goto yy866;
-       goto yy863;
-yy865:
+       if (yych == 'r') goto yy759;
+       goto yy756;
+yy758:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy868;
-       goto yy863;
-yy866:
+       if (yych == 'a') goto yy761;
+       goto yy756;
+yy759:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy869;
-yy867:
+       if (yych == 'r') goto yy762;
+yy760:
        cur = mar;
-       goto yy863;
-yy868:
+       goto yy756;
+yy761:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy870;
-       goto yy867;
-yy869:
+       if (yych == 't') goto yy763;
+       goto yy760;
+yy762:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy871;
-       goto yy867;
-yy870:
+       if (yych == 'o') goto yy764;
+       goto yy760;
+yy763:
        yych = (unsigned char)*++cur;
-       if (yych == 'c') goto yy872;
-       goto yy867;
-yy871:
+       if (yych == 'c') goto yy765;
+       goto yy760;
+yy764:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy873;
-       goto yy867;
-yy872:
+       if (yych == 'r') goto yy766;
+       goto yy760;
+yy765:
        yych = (unsigned char)*++cur;
-       if (yych == 'h') goto yy875;
-       goto yy867;
-yy873:
+       if (yych == 'h') goto yy768;
+       goto yy760;
+yy766:
        ++cur;
-#line 208 "../src/ast/lex_conf.re"
+#line 201 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_ERROR);       goto end; }
-#line 3598 "src/ast/lex_conf.cc"
-yy875:
+#line 3520 "src/ast/lex_conf.cc"
+yy768:
        yych = (unsigned char)*++cur;
-       if (yych != '-') goto yy867;
+       if (yych != '-') goto yy760;
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy877;
-       if (yych == 'n') goto yy878;
-       goto yy867;
-yy877:
+       if (yych == 'e') goto yy770;
+       if (yych == 'n') goto yy771;
+       goto yy760;
+yy770:
        yych = (unsigned char)*++cur;
-       if (yych == 'm') goto yy879;
-       goto yy867;
-yy878:
+       if (yych == 'm') goto yy772;
+       goto yy760;
+yy771:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy880;
-       goto yy867;
-yy879:
+       if (yych == 'o') goto yy773;
+       goto yy760;
+yy772:
        yych = (unsigned char)*++cur;
-       if (yych == 'p') goto yy881;
-       goto yy867;
-yy880:
+       if (yych == 'p') goto yy774;
+       goto yy760;
+yy773:
        yych = (unsigned char)*++cur;
-       if (yych == 'n') goto yy882;
-       goto yy867;
-yy881:
+       if (yych == 'n') goto yy775;
+       goto yy760;
+yy774:
        yych = (unsigned char)*++cur;
-       if (yych == 't') goto yy883;
-       goto yy867;
-yy882:
+       if (yych == 't') goto yy776;
+       goto yy760;
+yy775:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy884;
-       goto yy867;
-yy883:
+       if (yych == 'e') goto yy777;
+       goto yy760;
+yy776:
        yych = (unsigned char)*++cur;
-       if (yych == 'y') goto yy886;
-       goto yy867;
-yy884:
+       if (yych == 'y') goto yy779;
+       goto yy760;
+yy777:
        ++cur;
-#line 207 "../src/ast/lex_conf.re"
+#line 200 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE);  goto end; }
-#line 3638 "src/ast/lex_conf.cc"
-yy886:
+#line 3560 "src/ast/lex_conf.cc"
+yy779:
        ++cur;
-#line 206 "../src/ast/lex_conf.re"
+#line 199 "../src/ast/lex_conf.re"
        { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); goto end; }
-#line 3643 "src/ast/lex_conf.cc"
+#line 3565 "src/ast/lex_conf.cc"
 }
-#line 209 "../src/ast/lex_conf.re"
+#line 202 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3651,65 +3573,65 @@ void Scanner::lex_conf_dfa_minimization()
 {
        lex_conf_assign ();
 
-#line 3655 "src/ast/lex_conf.cc"
+#line 3577 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        if ((lim - cur) < 5) fill(5);
        yych = (unsigned char)*cur;
-       if (yych == 'm') goto yy892;
-       if (yych == 't') goto yy893;
+       if (yych == 'm') goto yy785;
+       if (yych == 't') goto yy786;
        ++cur;
-yy891:
-#line 218 "../src/ast/lex_conf.re"
+yy784:
+#line 211 "../src/ast/lex_conf.re"
        { fatal("bad configuration value"
                " (expected: 'table', 'moore')"); }
-#line 3667 "src/ast/lex_conf.cc"
-yy892:
+#line 3589 "src/ast/lex_conf.cc"
+yy785:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'o') goto yy894;
-       goto yy891;
-yy893:
+       if (yych == 'o') goto yy787;
+       goto yy784;
+yy786:
        yych = (unsigned char)*(mar = ++cur);
-       if (yych == 'a') goto yy896;
-       goto yy891;
-yy894:
+       if (yych == 'a') goto yy789;
+       goto yy784;
+yy787:
        yych = (unsigned char)*++cur;
-       if (yych == 'o') goto yy897;
-yy895:
+       if (yych == 'o') goto yy790;
+yy788:
        cur = mar;
-       goto yy891;
-yy896:
+       goto yy784;
+yy789:
        yych = (unsigned char)*++cur;
-       if (yych == 'b') goto yy898;
-       goto yy895;
-yy897:
+       if (yych == 'b') goto yy791;
+       goto yy788;
+yy790:
        yych = (unsigned char)*++cur;
-       if (yych == 'r') goto yy899;
-       goto yy895;
-yy898:
+       if (yych == 'r') goto yy792;
+       goto yy788;
+yy791:
        yych = (unsigned char)*++cur;
-       if (yych == 'l') goto yy900;
-       goto yy895;
-yy899:
+       if (yych == 'l') goto yy793;
+       goto yy788;
+yy792:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy901;
-       goto yy895;
-yy900:
+       if (yych == 'e') goto yy794;
+       goto yy788;
+yy793:
        yych = (unsigned char)*++cur;
-       if (yych == 'e') goto yy903;
-       goto yy895;
-yy901:
+       if (yych == 'e') goto yy796;
+       goto yy788;
+yy794:
        ++cur;
-#line 221 "../src/ast/lex_conf.re"
+#line 214 "../src/ast/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_MOORE); goto end; }
-#line 3706 "src/ast/lex_conf.cc"
-yy903:
+#line 3628 "src/ast/lex_conf.cc"
+yy796:
        ++cur;
-#line 220 "../src/ast/lex_conf.re"
+#line 213 "../src/ast/lex_conf.re"
        { opts.set_dfa_minimization(DFA_MINIMIZATION_TABLE); goto end; }
-#line 3711 "src/ast/lex_conf.cc"
+#line 3633 "src/ast/lex_conf.cc"
 }
-#line 222 "../src/ast/lex_conf.re"
+#line 215 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon();
@@ -3727,7 +3649,7 @@ void Scanner::lex_conf_enc(Enc::type_t enc)
 void Scanner::lex_conf_assign ()
 {
 
-#line 3731 "src/ast/lex_conf.cc"
+#line 3653 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3767,56 +3689,56 @@ void Scanner::lex_conf_assign ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy909;
+               if (yych == '\t') goto yy802;
        } else {
-               if (yych <= ' ') goto yy909;
-               if (yych == '=') goto yy910;
+               if (yych <= ' ') goto yy802;
+               if (yych == '=') goto yy803;
        }
        ++cur;
-yy908:
-#line 239 "../src/ast/lex_conf.re"
+yy801:
+#line 232 "../src/ast/lex_conf.re"
        { fatal ("missing '=' in configuration"); }
-#line 3780 "src/ast/lex_conf.cc"
-yy909:
+#line 3702 "src/ast/lex_conf.cc"
+yy802:
        yych = (unsigned char)*(mar = ++cur);
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy913;
-               goto yy908;
+               if (yych == '\t') goto yy806;
+               goto yy801;
        } else {
-               if (yych <= ' ') goto yy913;
-               if (yych != '=') goto yy908;
+               if (yych <= ' ') goto yy806;
+               if (yych != '=') goto yy801;
        }
-yy910:
+yy803:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy910;
+               goto yy803;
        }
-#line 240 "../src/ast/lex_conf.re"
+#line 233 "../src/ast/lex_conf.re"
        { return; }
-#line 3799 "src/ast/lex_conf.cc"
-yy913:
+#line 3721 "src/ast/lex_conf.cc"
+yy806:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy913;
+               if (yych == '\t') goto yy806;
        } else {
-               if (yych <= ' ') goto yy913;
-               if (yych == '=') goto yy910;
+               if (yych <= ' ') goto yy806;
+               if (yych == '=') goto yy803;
        }
        cur = mar;
-       goto yy908;
+       goto yy801;
 }
-#line 241 "../src/ast/lex_conf.re"
+#line 234 "../src/ast/lex_conf.re"
 
 }
 
 void Scanner::lex_conf_semicolon ()
 {
 
-#line 3820 "src/ast/lex_conf.cc"
+#line 3742 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3856,39 +3778,39 @@ void Scanner::lex_conf_semicolon ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= 0x1F) {
-               if (yych == '\t') goto yy920;
+               if (yych == '\t') goto yy813;
        } else {
-               if (yych <= ' ') goto yy920;
-               if (yych == ';') goto yy921;
+               if (yych <= ' ') goto yy813;
+               if (yych == ';') goto yy814;
        }
        ++cur;
-yy919:
-#line 247 "../src/ast/lex_conf.re"
+yy812:
+#line 240 "../src/ast/lex_conf.re"
        { fatal ("missing ending ';' in configuration"); }
-#line 3869 "src/ast/lex_conf.cc"
-yy920:
+#line 3791 "src/ast/lex_conf.cc"
+yy813:
        yych = (unsigned char)*(mar = ++cur);
        if (yybm[0+yych] & 128) {
-               goto yy923;
+               goto yy816;
        }
-       if (yych != ';') goto yy919;
-yy921:
+       if (yych != ';') goto yy812;
+yy814:
        ++cur;
-#line 248 "../src/ast/lex_conf.re"
+#line 241 "../src/ast/lex_conf.re"
        { return; }
-#line 3880 "src/ast/lex_conf.cc"
-yy923:
+#line 3802 "src/ast/lex_conf.cc"
+yy816:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy923;
+               goto yy816;
        }
-       if (yych == ';') goto yy921;
+       if (yych == ';') goto yy814;
        cur = mar;
-       goto yy919;
+       goto yy812;
 }
-#line 249 "../src/ast/lex_conf.re"
+#line 242 "../src/ast/lex_conf.re"
 
 }
 
@@ -3902,7 +3824,7 @@ int32_t Scanner::lex_conf_number ()
        lex_conf_assign ();
        tok = cur;
 
-#line 3906 "src/ast/lex_conf.cc"
+#line 3828 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -3942,21 +3864,21 @@ int32_t Scanner::lex_conf_number ()
        if ((lim - cur) < 2) fill(2);
        yych = (unsigned char)*cur;
        if (yych <= '/') {
-               if (yych == '-') goto yy929;
+               if (yych == '-') goto yy822;
        } else {
-               if (yych <= '0') goto yy930;
-               if (yych <= '9') goto yy932;
+               if (yych <= '0') goto yy823;
+               if (yych <= '9') goto yy825;
        }
-yy928:
-yy929:
+yy821:
+yy822:
        yych = (unsigned char)*++cur;
-       if (yych <= '0') goto yy928;
-       if (yych <= '9') goto yy932;
-       goto yy928;
-yy930:
+       if (yych <= '0') goto yy821;
+       if (yych <= '9') goto yy825;
+       goto yy821;
+yy823:
        ++cur;
-yy931:
-#line 263 "../src/ast/lex_conf.re"
+yy824:
+#line 256 "../src/ast/lex_conf.re"
        {
                int32_t n = 0;
                if (!s_to_i32_unsafe (tok, cur, n))
@@ -3966,17 +3888,17 @@ yy931:
                lex_conf_semicolon ();
                return n;
        }
-#line 3970 "src/ast/lex_conf.cc"
-yy932:
+#line 3892 "src/ast/lex_conf.cc"
+yy825:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy932;
+               goto yy825;
        }
-       goto yy931;
+       goto yy824;
 }
-#line 272 "../src/ast/lex_conf.re"
+#line 265 "../src/ast/lex_conf.re"
 
 }
 
@@ -3986,7 +3908,7 @@ std::string Scanner::lex_conf_string ()
        std::string s;
        tok = cur;
 
-#line 3990 "src/ast/lex_conf.cc"
+#line 3912 "src/ast/lex_conf.cc"
 {
        unsigned char yych;
        static const unsigned char yybm[] = {
@@ -4027,38 +3949,38 @@ std::string Scanner::lex_conf_string ()
        yych = (unsigned char)*cur;
        if (yych <= '!') {
                if (yych <= '\n') {
-                       if (yych <= 0x08) goto yy937;
+                       if (yych <= 0x08) goto yy830;
                } else {
-                       if (yych != ' ') goto yy937;
+                       if (yych != ' ') goto yy830;
                }
        } else {
                if (yych <= '\'') {
-                       if (yych <= '"') goto yy940;
-                       if (yych <= '&') goto yy937;
-                       goto yy940;
+                       if (yych <= '"') goto yy833;
+                       if (yych <= '&') goto yy830;
+                       goto yy833;
                } else {
-                       if (yych != ';') goto yy937;
+                       if (yych != ';') goto yy830;
                }
        }
-#line 299 "../src/ast/lex_conf.re"
+#line 292 "../src/ast/lex_conf.re"
        { goto end; }
-#line 4046 "src/ast/lex_conf.cc"
-yy937:
+#line 3968 "src/ast/lex_conf.cc"
+yy830:
        ++cur;
        if (lim <= cur) fill(1);
        yych = (unsigned char)*cur;
        if (yybm[0+yych] & 128) {
-               goto yy937;
+               goto yy830;
        }
-#line 295 "../src/ast/lex_conf.re"
+#line 288 "../src/ast/lex_conf.re"
        {
                s = std::string(tok, tok_len());
                goto end;
        }
-#line 4059 "src/ast/lex_conf.cc"
-yy940:
+#line 3981 "src/ast/lex_conf.cc"
+yy833:
        ++cur;
-#line 281 "../src/ast/lex_conf.re"
+#line 274 "../src/ast/lex_conf.re"
        {
                const char quote = tok[0];
                for (bool end;;) {
@@ -4073,9 +3995,9 @@ yy940:
                        }
                }
        }
-#line 4077 "src/ast/lex_conf.cc"
+#line 3999 "src/ast/lex_conf.cc"
 }
-#line 300 "../src/ast/lex_conf.re"
+#line 293 "../src/ast/lex_conf.re"
 
 end:
        lex_conf_semicolon ();
index edb14b386b0b5da4cd643df7db8c1fa280606bc1..a6b46400e64ed5d89d900c9e3a2378fd5c29c63e 100644 (file)
@@ -2,6 +2,7 @@
 #include <string>
 
 #include "src/code/output.h"
+#include "src/conf/msg.h"
 #include "src/re/encoding/enc.h"
 #include "src/ast/scanner.h"
 #include "src/util/s_to_n32_unsafe.h"
@@ -37,24 +38,13 @@ void Scanner::lex_conf ()
 {
        tok = cur;
 /*!re2c
-       * { fatal(get_column() - tchar, "unrecognized configuration"); }
-
-       "flags:" ("D" | "emit-dot") { opts.set_target(TARGET_DOT);      lex_conf_semicolon(); return; }
-       "flags:" ("S" | "skeleton") { opts.set_target(TARGET_SKELETON); lex_conf_semicolon(); return; }
-
        "flags:" ("b" | "bit-vectors")       { opts.set_bFlag(lex_conf_bool());              return; }
-       "flags:" ("c" | "start-conditions")  { opts.set_cFlag(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; }
        "flags:" ("g" | "computed-gotos")    { opts.set_gFlag(lex_conf_bool());              return; }
        "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:" ("posix-captures")          { opts.set_posix_captures(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; }
        "flags:case-inverted"                { opts.set_bCaseInverted(lex_conf_bool());      return; }
        "flags:no-lookahead"                 { opts.set_lookahead(!lex_conf_bool());         return; }
@@ -66,9 +56,6 @@ void Scanner::lex_conf ()
        "flags:" ("x" | "utf-16")     { lex_conf_enc(Enc::UTF16);  return; }
        "flags:" ("8" | "utf-8")      { lex_conf_enc(Enc::UTF8);   return; }
 
-       "flags:" ("o" | "output")      { opts.set_output_file(lex_conf_string()); return; }
-       "flags:" ("t" | "type-header") { opts.set_header_file(lex_conf_string()); return; }
-
        "flags:encoding-policy"  { lex_conf_encoding_policy();  return; }
        "flags:input"            { lex_conf_input();            return; }
        "flags:empty-class"      { lex_conf_empty_class();      return; }
@@ -167,6 +154,12 @@ void Scanner::lex_conf ()
 
        // deprecated
        "variable:yystable" { lex_conf_string (); return; }
+
+       [a-zA-Z0-9_:-]* {
+               fatal_error(cline, get_column(),
+                       "unrecognized configuration '%.*s'",
+                       static_cast<int>(cur - tok), tok);
+       }
 */
 }
 
index c7248d924bd34b4ae7a3e178679bdb26f9d518a3..8d5fcb7e98722e47281d473fdc3dd4a0e3d9a8e2 100644 (file)
@@ -1,7 +1,3 @@
 /* Generated by re2c */
 #line 1 "config/flags.re"
 
-int main()
-{
-    return 0;
-}
index b8fdc5d098b32255e78c5cd27b41478849aa16eb..d1370b0e137b3c186bd1fbb859ae71f96c8ec171 100644 (file)
@@ -1,33 +1,20 @@
 /*!re2c
-    re2c:flags:D;
-    re2c:flags:emit-dot;
-    re2c:flags:S;
-    re2c:flags:skeleton;
-
     re2c:flags:b = 0;
     re2c:flags:bit-vectors = 1;
-    re2c:flags:c = 0;
-    re2c:flags:start-conditions = 1;
     re2c:flags:d = 0;
     re2c:flags:debug-output = 1;
-    re2c:flags:f = 0;
-    re2c:flags:storable-state = 1;
-    re2c:flags:F = 0;
-    re2c:flags:flex-syntax = 1;
     re2c:flags:g = 0;
     re2c:flags:computed-gotos = 1;
     re2c:flags:i = 0;
     re2c:flags:no-debug-info = 1;
-    re2c:flags:r = 0;
-    re2c:flags:reusable = 1;
     re2c:flags:s = 0;
     re2c:flags:nested-ifs = 1;
     re2c:flags:T = 0;
     re2c:flags:tags = 1;
-    re2c:flags:no-generation-date = 0;
-    re2c:flags:no-version = 1;
     re2c:flags:case-insensitive = 0;
     re2c:flags:case-inverted = 1;
+    re2c:flags:no-lookahead = 1;
+    re2c:flags:eager-skip = 1;
 
     re2c:flags:e = 1;
     re2c:flags:ecb = 0;
     re2c:flags:8 = 1;
     re2c:flags:utf-8 = 0;
 
-    re2c:flags:o = "flags_x.c";
-    re2c:flags:output = "flags.c";
-    re2c:flags:t = "flags_x.h";
-    re2c:flags:type-header = "flags.h";
-
     re2c:flags:encoding-policy = ignore;
     re2c:flags:encoding-policy = substitute;
     re2c:flags:encoding-policy = fail;
diff --git a/re2c/test/config/flags_output.c b/re2c/test/config/flags_output.c
deleted file mode 100644 (file)
index 14a7c3c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Generated by re2c */
-#line 1 "config/flags_output.re"
-#line 5 "config/flags_output.re"
-
diff --git a/re2c/test/config/flags_output.re b/re2c/test/config/flags_output.re
deleted file mode 100644 (file)
index 1e8f2c7..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-/*!re2c
-    // 2nd configuration overrides 1st
-    re2c:flags:o = "flags_output_x.c";
-    re2c:flags:output = "flags_output.c";
-*/
diff --git a/re2c/test/config/flags_type-header.c b/re2c/test/config/flags_type-header.c
deleted file mode 100644 (file)
index 6e4b9b2..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-/* Generated by re2c */
-#line 1 "config/flags_type-header.re"
-#line 6 "config/flags_type-header.re"
-
-/* Generated by re2c */
-#line 3 "flags_type-header.h"
-
-enum YYCONDTYPE {
-};
diff --git a/re2c/test/config/flags_type-header.re b/re2c/test/config/flags_type-header.re
deleted file mode 100644 (file)
index a0956e8..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!re2c
-    // 2nd configuration overrides 1st
-    re2c:flags:t = "flags_type-header_x.h";
-    re2c:flags:type-header = "flags_type-header.h";
-    re2c:flags:c = 1;
-*/
index af2a4f4c176ea45aa01818e3ac08b23d0ffac66c..fb53b64e725da0e433f822cc764485024d2d8181 100644 (file)
@@ -1 +1 @@
-re2c: error: line 3, column 7: unrecognized configuration
+re2c: error: line 3, column 6: unrecognized configuration 'define:YYBACKU'