From: Ulya Trofimovich Date: Tue, 5 Apr 2016 11:38:53 +0000 (+0100) Subject: Added configurations for all command-line options. X-Git-Tag: 1.0~39^2~330 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6cc8a34108b22bf1ecd2753511212c0cbc5d70d1;p=re2c Added configurations for all command-line options. --- diff --git a/re2c/bootstrap/src/parse/lex_conf.cc b/re2c/bootstrap/src/parse/lex_conf.cc index dc04017e..48ba8d2f 100644 --- a/re2c/bootstrap/src/parse/lex_conf.cc +++ b/re2c/bootstrap/src/parse/lex_conf.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 0.16 on Sat Apr 2 18:14:17 2016 */ +/* Generated by re2c 0.16 on Tue Apr 5 11:39:03 2016 */ #line 1 "../src/parse/lex_conf.re" #include "src/util/c99_stdint.h" #include @@ -124,48 +124,96 @@ yy12: if (yych == 'o') goto yy22; yy13: cur = ptr; - if (yyaccept <= 5) { - if (yyaccept <= 2) { - if (yyaccept <= 1) { - if (yyaccept == 0) { - goto yy3; + if (yyaccept <= 11) { + if (yyaccept <= 5) { + if (yyaccept <= 2) { + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy3; + } else { + goto yy97; + } } else { - goto yy124; + goto yy99; } } else { - goto yy169; + if (yyaccept <= 4) { + if (yyaccept == 3) { + goto yy101; + } else { + goto yy103; + } + } else { + goto yy105; + } } } else { - if (yyaccept <= 4) { - if (yyaccept == 3) { - goto yy217; + if (yyaccept <= 8) { + if (yyaccept <= 7) { + if (yyaccept == 6) { + goto yy109; + } else { + goto yy112; + } } else { - goto yy225; + goto yy114; } } else { - goto yy275; + if (yyaccept <= 10) { + if (yyaccept == 9) { + goto yy116; + } else { + goto yy118; + } + } else { + goto yy120; + } } } } else { - if (yyaccept <= 8) { - if (yyaccept <= 7) { - if (yyaccept == 6) { - goto yy344; + if (yyaccept <= 17) { + if (yyaccept <= 14) { + if (yyaccept <= 13) { + if (yyaccept == 12) { + goto yy122; + } else { + goto yy181; + } } else { - goto yy379; + goto yy273; } } else { - goto yy400; + if (yyaccept <= 16) { + if (yyaccept == 15) { + goto yy346; + } else { + goto yy354; + } + } else { + goto yy426; + } } } else { - if (yyaccept <= 10) { - if (yyaccept == 9) { - goto yy406; + if (yyaccept <= 20) { + if (yyaccept <= 19) { + if (yyaccept == 18) { + goto yy534; + } else { + goto yy586; + } } else { - goto yy443; + goto yy625; } } else { - goto yy446; + if (yyaccept <= 22) { + if (yyaccept == 21) { + goto yy631; + } else { + goto yy708; + } + } else { + goto yy711; + } } } } @@ -404,1625 +452,3066 @@ yy67: goto yy13; yy68: yych = (unsigned char)*++cur; - if (yych <= 'e') { - if (yych == '8') goto yy86; - if (yych <= 'd') goto yy13; - goto yy86; - } else { - if (yych <= 'u') { - if (yych <= 't') goto yy13; - goto yy86; - } else { - if (yych <= 'v') goto yy13; - if (yych <= 'x') goto yy86; - goto yy13; - } + switch (yych) { + case '8': goto yy86; + case 'C': goto yy88; + case 'D': goto yy90; + case 'F': goto yy92; + case 'S': goto yy94; + case 'b': goto yy96; + case 'c': goto yy98; + case 'd': goto yy100; + case 'e': goto yy102; + case 'f': goto yy104; + case 'g': goto yy106; + case 'i': goto yy108; + case 'n': goto yy110; + case 'o': goto yy111; + case 'r': goto yy113; + case 's': goto yy115; + case 't': goto yy117; + case 'u': goto yy119; + case 'w': goto yy121; + case 'x': goto yy123; + default: goto yy13; } yy69: yych = (unsigned char)*++cur; - if (yych == ':') goto yy88; + if (yych == ':') goto yy125; goto yy13; yy70: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy89; + if (yych == 'y') goto yy126; goto yy13; yy71: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy90; + if (yych == 'r') goto yy127; goto yy13; yy72: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy91; + if (yych == 'a') goto yy128; goto yy13; yy73: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy92; - if (yych == 'n') goto yy93; + if (yych == 'a') goto yy129; + if (yych == 'n') goto yy130; goto yy13; yy74: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy94; + if (yych == 'l') goto yy131; goto yy13; yy75: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy95; + if (yych == 'e') goto yy132; goto yy13; yy76: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy96; + if (yych == 'o') goto yy133; goto yy13; yy77: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy97; + if (yych == 'm') goto yy134; goto yy13; yy78: yych = (unsigned char)*++cur; - if (yych == ':') goto yy98; + if (yych == ':') goto yy135; goto yy13; yy79: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy99; + if (yych == 'h') goto yy136; goto yy13; yy80: yych = (unsigned char)*++cur; - if (yych == 'v') goto yy100; + if (yych == 'v') goto yy137; goto yy13; yy81: yych = (unsigned char)*++cur; - if (yych == 't') goto yy101; + if (yych == 't') goto yy138; goto yy13; yy82: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy102; + if (yych == 'm') goto yy139; goto yy13; yy83: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy103; + if (yych == 'f') goto yy140; goto yy13; yy84: yych = (unsigned char)*++cur; - if (yych == 's') goto yy104; + if (yych == 's') goto yy141; goto yy13; yy85: yych = (unsigned char)*++cur; - if (yych == 'Y') goto yy105; + if (yych == 'Y') goto yy142; goto yy13; yy86: ++cur; -#line 45 "../src/parse/lex_conf.re" - { - Enc::type_t enc = Enc::ASCII; - switch (cur[-1]) - { - case 'e': enc = Enc::EBCDIC; break; - case 'w': enc = Enc::UCS2; break; - case 'x': enc = Enc::UTF16; break; - case 'u': enc = Enc::UTF32; break; - case '8': enc = Enc::UTF8; break; - } - const int32_t n = lex_conf_number (); - if (n == 0) - { - opts.unset_encoding (enc); - } - else if (!opts.set_encoding (enc)) - { - fatalf ("Cannot set %s encoding: please reset %s encoding first" - , Enc::name (enc) - , Enc::name (opts->encoding.type ())); - } - return; - } -#line 517 "src/parse/lex_conf.cc" +#line 66 "../src/parse/lex_conf.re" + { lex_conf_enc(Enc::UTF8); return; } +#line 552 "src/parse/lex_conf.cc" yy88: - yych = (unsigned char)*++cur; - if (yych <= 'r') goto yy13; - if (yych <= 's') goto yy106; - if (yych <= 't') goto yy107; - goto yy13; -yy89: - yych = (unsigned char)*++cur; - if (yych == 'y') goto yy108; - goto yy13; + ++cur; +#line 49 "../src/parse/lex_conf.re" + { opts.set_contexts(lex_conf_bool()); return; } +#line 557 "src/parse/lex_conf.cc" yy90: - yych = (unsigned char)*++cur; - if (yych == 'e') goto yy109; - goto yy13; -yy91: - yych = (unsigned char)*++cur; - if (yych == 'b') goto yy110; - goto yy13; + ++cur; +#line 44 "../src/parse/lex_conf.re" + { opts.set_target(opt_t::DOT); lex_conf_semicolon(); return; } +#line 562 "src/parse/lex_conf.cc" yy92: - yych = (unsigned char)*++cur; - if (yych == 'b') goto yy111; - goto yy13; -yy93: - yych = (unsigned char)*++cur; - if (yych == 'e') goto yy112; - goto yy13; + ++cur; +#line 52 "../src/parse/lex_conf.re" + { opts.set_FFlag(lex_conf_bool()); return; } +#line 567 "src/parse/lex_conf.cc" yy94: - yych = (unsigned char)*++cur; - if (yych == 'e') goto yy113; - goto yy13; -yy95: - yych = (unsigned char)*++cur; - if (yych == 'x') goto yy114; - goto yy13; + ++cur; +#line 45 "../src/parse/lex_conf.re" + { opts.set_target(opt_t::SKELETON); lex_conf_semicolon(); return; } +#line 572 "src/parse/lex_conf.cc" yy96: - yych = (unsigned char)*++cur; - if (yych == 'n') goto yy116; - goto yy13; + yyaccept = 1; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'i') goto yy143; yy97: - yych = (unsigned char)*++cur; - if (yych == 'i') goto yy117; - goto yy13; +#line 47 "../src/parse/lex_conf.re" + { opts.set_bFlag(lex_conf_bool()); return; } +#line 580 "src/parse/lex_conf.cc" yy98: - yych = (unsigned char)*++cur; - if (yych <= 'd') { - if (yych == 'c') goto yy118; - goto yy13; - } else { - if (yych <= 'e') goto yy119; - if (yych == 'p') goto yy120; - goto yy13; - } + yyaccept = 2; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'a') goto yy144; + if (yych == 'o') goto yy145; yy99: - yych = (unsigned char)*++cur; - if (yych == 'r') goto yy121; - goto yy13; +#line 48 "../src/parse/lex_conf.re" + { opts.set_cFlag(lex_conf_bool()); return; } +#line 589 "src/parse/lex_conf.cc" yy100: - yych = (unsigned char)*++cur; - if (yych == 'i') goto yy122; - goto yy13; + yyaccept = 3; + yych = (unsigned char)*(ptr = ++cur); + if (yych <= 'd') goto yy101; + if (yych <= 'e') goto yy146; + if (yych <= 'f') goto yy147; yy101: - yych = (unsigned char)*++cur; - if (yych == 'o') goto yy123; - goto yy13; +#line 50 "../src/parse/lex_conf.re" + { opts.set_dFlag(lex_conf_bool()); return; } +#line 599 "src/parse/lex_conf.cc" yy102: - yych = (unsigned char)*++cur; - if (yych == 'p') goto yy125; - goto yy13; + yyaccept = 4; + yych = (unsigned char)*(ptr = ++cur); + if (yych <= 'l') { + if (yych == 'c') goto yy148; + } else { + if (yych <= 'm') goto yy149; + if (yych <= 'n') goto yy150; + } yy103: - yych = (unsigned char)*++cur; - if (yych == 'i') goto yy126; - goto yy13; +#line 62 "../src/parse/lex_conf.re" + { lex_conf_enc(Enc::EBCDIC); return; } +#line 612 "src/parse/lex_conf.cc" yy104: - yych = (unsigned char)*++cur; - if (yych == ':') goto yy127; - goto yy13; + yyaccept = 5; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'l') goto yy151; yy105: - yych = (unsigned char)*++cur; - if (yych == 'Y') goto yy128; - goto yy13; +#line 51 "../src/parse/lex_conf.re" + { opts.set_fFlag(lex_conf_bool()); return; } +#line 620 "src/parse/lex_conf.cc" yy106: - yych = (unsigned char)*++cur; - if (yych == 't') goto yy129; - goto yy13; -yy107: - yych = (unsigned char)*++cur; - if (yych == 'o') goto yy130; - goto yy13; + ++cur; +#line 53 "../src/parse/lex_conf.re" + { opts.set_gFlag(lex_conf_bool()); return; } +#line 625 "src/parse/lex_conf.cc" yy108: - yych = (unsigned char)*++cur; - if (yych == 'F') goto yy131; - if (yych == 'N') goto yy132; - goto yy13; + yyaccept = 6; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'n') goto yy152; yy109: - yych = (unsigned char)*++cur; - if (yych == 'f') goto yy133; - goto yy13; +#line 54 "../src/parse/lex_conf.re" + { opts.set_iFlag(lex_conf_bool()); return; } +#line 633 "src/parse/lex_conf.cc" yy110: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy134; + if (yych == 'e') goto yy153; + if (yych == 'o') goto yy154; goto yy13; yy111: - yych = (unsigned char)*++cur; - if (yych == 'o') goto yy135; - goto yy13; + yyaccept = 7; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'u') goto yy155; yy112: - yych = (unsigned char)*++cur; - if (yych == 'x') goto yy136; - goto yy13; +#line 68 "../src/parse/lex_conf.re" + { if (!opts.output(lex_conf_string())) exit(1); return; } +#line 646 "src/parse/lex_conf.cc" yy113: - yych = (unsigned char)*++cur; - if (yych == ':') goto yy137; - goto yy13; + yyaccept = 8; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'e') goto yy156; yy114: - ++cur; -#line 95 "../src/parse/lex_conf.re" - { opts.set_yybmHexTable (lex_conf_number () != 0); return; } -#line 635 "src/parse/lex_conf.cc" +#line 55 "../src/parse/lex_conf.re" + { opts.set_rFlag(lex_conf_bool()); return; } +#line 654 "src/parse/lex_conf.cc" +yy115: + yyaccept = 9; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'k') goto yy157; + if (yych == 't') goto yy158; yy116: - yych = (unsigned char)*++cur; - if (yych == 'v') goto yy138; - goto yy13; +#line 56 "../src/parse/lex_conf.re" + { opts.set_sFlag(lex_conf_bool()); return; } +#line 663 "src/parse/lex_conf.cc" yy117: - yych = (unsigned char)*++cur; - if (yych == 't') goto yy139; - goto yy13; + yyaccept = 10; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'y') goto yy159; yy118: - yych = (unsigned char)*++cur; - if (yych == 'h') goto yy141; - goto yy13; +#line 69 "../src/parse/lex_conf.re" + { opts.set_header_file(lex_conf_string()); return; } +#line 671 "src/parse/lex_conf.cc" yy119: - yych = (unsigned char)*++cur; - if (yych == 'n') goto yy142; - goto yy13; + yyaccept = 11; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'n') goto yy160; + if (yych == 't') goto yy161; yy120: - yych = (unsigned char)*++cur; - if (yych == 'a') goto yy143; - goto yy13; +#line 63 "../src/parse/lex_conf.re" + { lex_conf_enc(Enc::UTF32); return; } +#line 680 "src/parse/lex_conf.cc" yy121: - yych = (unsigned char)*++cur; - if (yych == 'e') goto yy144; - goto yy13; + yyaccept = 12; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'i') goto yy162; yy122: - yych = (unsigned char)*++cur; - if (yych == 'd') goto yy145; - goto yy13; +#line 64 "../src/parse/lex_conf.re" + { lex_conf_enc(Enc::UCS2); return; } +#line 688 "src/parse/lex_conf.cc" yy123: - yyaccept = 1; - yych = (unsigned char)*(ptr = ++cur); - if (yych == '@') goto yy146; -yy124: -#line 79 "../src/parse/lex_conf.re" - { opts.set_condGoto (lex_conf_string ()); return; } -#line 671 "src/parse/lex_conf.cc" + ++cur; +#line 65 "../src/parse/lex_conf.re" + { lex_conf_enc(Enc::UTF16); return; } +#line 693 "src/parse/lex_conf.cc" yy125: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy147; + if (yych <= 'r') goto yy13; + if (yych <= 's') goto yy163; + if (yych <= 't') goto yy164; goto yy13; yy126: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy148; + if (yych == 'y') goto yy165; goto yy13; yy127: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy150; - if (yych == 'p') goto yy151; + if (yych == 'e') goto yy166; goto yy13; yy128: yych = (unsigned char)*++cur; - switch (yych) { - case 'B': goto yy152; - case 'C': goto yy153; - case 'D': goto yy154; - case 'F': goto yy155; - case 'G': goto yy156; - case 'L': goto yy157; - case 'M': goto yy158; - case 'P': goto yy159; - case 'R': goto yy160; - case 'S': goto yy161; - default: goto yy13; - } + if (yych == 'b') goto yy167; + goto yy13; yy129: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy162; + if (yych == 'b') goto yy168; goto yy13; yy130: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy163; + if (yych == 'e') goto yy169; goto yy13; yy131: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy165; + if (yych == 'e') goto yy170; goto yy13; yy132: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy166; + if (yych == 'x') goto yy171; goto yy13; yy133: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy167; + if (yych == 'n') goto yy173; goto yy13; yy134: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy168; + if (yych == 'i') goto yy174; goto yy13; yy135: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy170; - goto yy13; + if (yych <= 'd') { + if (yych == 'c') goto yy175; + goto yy13; + } else { + if (yych <= 'e') goto yy176; + if (yych == 'p') goto yy177; + goto yy13; + } yy136: yych = (unsigned char)*++cur; - if (yych == 't') goto yy171; + if (yych == 'r') goto yy178; goto yy13; yy137: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy172; + if (yych == 'i') goto yy179; goto yy13; yy138: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy173; + if (yych == 'o') goto yy180; goto yy13; yy139: - ++cur; -#line 143 "../src/parse/lex_conf.re" - { opts.set_bEmitYYCh (lex_conf_number () != 0); return; } -#line 744 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'p') goto yy182; + goto yy13; +yy140: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy183; + goto yy13; yy141: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy174; + if (yych == ':') goto yy184; goto yy13; yy142: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy175; + if (yych == 'Y') goto yy185; goto yy13; yy143: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy176; + if (yych == 't') goto yy186; goto yy13; yy144: yych = (unsigned char)*++cur; - if (yych == 's') goto yy177; + if (yych == 's') goto yy187; goto yy13; yy145: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy178; + if (yych <= 'l') goto yy13; + if (yych <= 'm') goto yy188; + if (yych <= 'n') goto yy189; goto yy13; yy146: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy179; + if (yych == 'b') goto yy190; goto yy13; yy147: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy180; + if (yych == 'a') goto yy191; goto yy13; yy148: - ++cur; -#line 75 "../src/parse/lex_conf.re" - { opts.set_condPrefix (lex_conf_string ()); return; } -#line 777 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy192; + goto yy13; +yy149: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy193; + if (yych == 'p') goto yy194; + goto yy13; yy150: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy181; + if (yych == 'c') goto yy195; goto yy13; yy151: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy182; + if (yych == 'e') goto yy196; goto yy13; yy152: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy183; + if (yych == 'p') goto yy197; goto yy13; yy153: yych = (unsigned char)*++cur; - if (yych <= 'S') { - if (yych == 'O') goto yy184; - goto yy13; - } else { - if (yych <= 'T') goto yy185; - if (yych <= 'U') goto yy186; - goto yy13; - } + if (yych == 's') goto yy198; + goto yy13; yy154: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy187; - if (yych == 'I') goto yy188; + if (yych == '-') goto yy199; goto yy13; yy155: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy189; + if (yych == 't') goto yy200; goto yy13; yy156: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy190; + if (yych == 'u') goto yy201; goto yy13; yy157: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy191; - if (yych == 'I') goto yy192; + if (yych == 'e') goto yy202; goto yy13; yy158: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy193; + if (yych == 'a') goto yy203; + if (yych == 'o') goto yy204; goto yy13; yy159: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy194; + if (yych == 'p') goto yy205; goto yy13; yy160: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy195; + if (yych == 'i') goto yy206; goto yy13; yy161: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy196; - if (yych == 'K') goto yy197; + if (yych == 'f') goto yy207; goto yy13; yy162: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy198; + if (yych == 'd') goto yy208; goto yy13; yy163: - ++cur; -#line 128 "../src/parse/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 (n)); - return; - } -#line 851 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 't') goto yy209; + goto yy13; +yy164: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy210; + goto yy13; yy165: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy199; + if (yych == 'F') goto yy211; + if (yych == 'N') goto yy212; goto yy13; yy166: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy200; + if (yych == 'f') goto yy213; goto yy13; yy167: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy201; + if (yych == 'e') goto yy214; goto yy13; yy168: - yyaccept = 2; - yych = (unsigned char)*(ptr = ++cur); - ctx = cur; - if (yybm[0+yych] & 64) { - goto yy203; - } - if (yych == '=') goto yy205; -yy169: -#line 156 "../src/parse/lex_conf.re" - { out.set_user_start_label (lex_conf_string ()); return; } -#line 875 "src/parse/lex_conf.cc" -yy170: yych = (unsigned char)*++cur; - if (yych == 't') goto yy207; + if (yych == 'o') goto yy215; goto yy13; -yy171: +yy169: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy209; + if (yych == 'x') goto yy216; goto yy13; -yy172: +yy170: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy210; + if (yych == ':') goto yy217; goto yy13; +yy171: + ++cur; +#line 102 "../src/parse/lex_conf.re" + { opts.set_yybmHexTable (lex_conf_bool()); return; } +#line 895 "src/parse/lex_conf.cc" yy173: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy211; + if (yych == 'v') goto yy218; goto yy13; yy174: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy212; + if (yych == 't') goto yy219; goto yy13; yy175: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy213; + if (yych == 'h') goto yy221; goto yy13; yy176: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy214; + if (yych == 'n') goto yy222; goto yy13; yy177: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy215; + if (yych == 'a') goto yy223; goto yy13; yy178: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy216; + if (yych == 'e') goto yy224; goto yy13; yy179: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy218; + if (yych == 'd') goto yy225; goto yy13; yy180: - yych = (unsigned char)*++cur; - if (yych == 'f') goto yy219; - goto yy13; + yyaccept = 13; + yych = (unsigned char)*(ptr = ++cur); + if (yych == '@') goto yy226; yy181: - yych = (unsigned char)*++cur; - if (yych == 'p') goto yy220; - goto yy13; +#line 86 "../src/parse/lex_conf.re" + { opts.set_condGoto (lex_conf_string ()); return; } +#line 931 "src/parse/lex_conf.cc" yy182: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy221; + if (yych == 'r') goto yy227; goto yy13; yy183: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy222; + if (yych == 'x') goto yy228; goto yy13; yy184: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy223; + if (yych == 'e') goto yy230; + if (yych == 'p') goto yy231; goto yy13; yy185: yych = (unsigned char)*++cur; - if (yych <= 'W') goto yy13; - if (yych <= 'X') goto yy224; - if (yych <= 'Y') goto yy226; - goto yy13; + switch (yych) { + case 'B': goto yy232; + case 'C': goto yy233; + case 'D': goto yy234; + case 'F': goto yy235; + case 'G': goto yy236; + case 'L': goto yy237; + case 'M': goto yy238; + case 'P': goto yy239; + case 'R': goto yy240; + case 'S': goto yy241; + default: goto yy13; + } yy186: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy227; + if (yych == '-') goto yy242; goto yy13; yy187: yych = (unsigned char)*++cur; - if (yych == 'B') goto yy228; + if (yych == 'e') goto yy243; goto yy13; yy188: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy229; + if (yych == 'p') goto yy244; goto yy13; yy189: yych = (unsigned char)*++cur; - if (yych == 'L') goto yy230; + if (yych == 't') goto yy245; goto yy13; yy190: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy231; + if (yych == 'u') goto yy246; goto yy13; yy191: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy232; + if (yych == '-') goto yy247; goto yy13; yy192: yych = (unsigned char)*++cur; - if (yych == 'M') goto yy233; - goto yy13; + goto yy103; yy193: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy234; + if (yych == 't') goto yy248; goto yy13; yy194: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy235; + if (yych == 't') goto yy249; goto yy13; yy195: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy236; + if (yych == 'o') goto yy250; goto yy13; yy196: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy237; + if (yych == 'x') goto yy251; goto yy13; yy197: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy238; + if (yych == 'u') goto yy252; goto yy13; yy198: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy239; + if (yych == 't') goto yy253; goto yy13; yy199: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy240; - goto yy13; + if (yych <= 'f') { + if (yych == 'd') goto yy254; + goto yy13; + } else { + if (yych <= 'g') goto yy255; + if (yych == 'v') goto yy256; + goto yy13; + } yy200: yych = (unsigned char)*++cur; - if (yych == 't') goto yy241; + if (yych == 'p') goto yy257; goto yy13; yy201: - ++cur; -#line 152 "../src/parse/lex_conf.re" - { opts.set_labelPrefix (lex_conf_string ()); return; } -#line 1006 "src/parse/lex_conf.cc" -yy203: - ++cur; - if (lim <= cur) fill(1); - yych = (unsigned char)*cur; - if (yybm[0+yych] & 64) { - goto yy203; - } - if (yych != '=') goto yy13; -yy205: - ++cur; - if ((lim - cur) < 2) fill(2); - yych = (unsigned char)*cur; - if (yych <= ',') { - if (yych <= '\t') { - if (yych <= 0x08) goto yy13; - goto yy205; - } else { - if (yych == ' ') goto yy205; - goto yy13; - } - } else { - if (yych <= '/') { - if (yych <= '-') goto yy243; - goto yy13; - } else { - if (yych <= '0') goto yy244; - if (yych <= '9') goto yy246; - goto yy13; - } - } -yy207: - ++cur; -#line 90 "../src/parse/lex_conf.re" - { opts.set_bUseStateAbort (lex_conf_number () != 0); return; } -#line 1041 "src/parse/lex_conf.cc" -yy209: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy248; + if (yych == 's') goto yy258; goto yy13; -yy210: +yy202: yych = (unsigned char)*++cur; - if (yych <= 'c') { - if (yych <= '`') goto yy13; - if (yych <= 'a') goto yy249; - if (yych <= 'b') goto yy250; - goto yy251; - } else { - if (yych <= 'r') goto yy13; - if (yych <= 's') goto yy252; - if (yych <= 't') goto yy253; - goto yy13; - } -yy211: + if (yych == 'l') goto yy259; + goto yy13; +yy203: yych = (unsigned char)*++cur; - if (yych == 's') goto yy254; + if (yych == 'r') goto yy260; goto yy13; -yy212: +yy204: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy255; + if (yych == 'r') goto yy261; goto yy13; -yy213: +yy205: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy257; + if (yych == 'e') goto yy262; + goto yy13; +yy206: + yych = (unsigned char)*++cur; + if (yych == 'c') goto yy263; + goto yy13; +yy207: + yych = (unsigned char)*++cur; + if (yych == '-') goto yy264; + goto yy13; +yy208: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy265; + goto yy13; +yy209: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy266; + goto yy13; +yy210: + yych = (unsigned char)*++cur; + if (yych == 'p') goto yy267; + goto yy13; +yy211: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy269; + goto yy13; +yy212: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy270; + goto yy13; +yy213: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy271; goto yy13; yy214: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy258; + if (yych == 'l') goto yy272; goto yy13; yy215: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy259; + if (yych == 'r') goto yy274; goto yy13; yy216: - yyaccept = 3; - yych = (unsigned char)*(ptr = ++cur); - if (yych == '@') goto yy260; -yy217: -#line 77 "../src/parse/lex_conf.re" - { opts.set_condDivider (lex_conf_string ()); return; } -#line 1086 "src/parse/lex_conf.cc" -yy218: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy261; + if (yych == 't') goto yy275; goto yy13; -yy219: +yy217: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy262; + if (yych == 'y') goto yy276; goto yy13; -yy220: +yy218: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy263; + if (yych == 'e') goto yy277; goto yy13; +yy219: + ++cur; +#line 150 "../src/parse/lex_conf.re" + { opts.set_bEmitYYCh (lex_conf_bool()); return; } +#line 1101 "src/parse/lex_conf.cc" yy221: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy265; + if (yych == 'e') goto yy278; goto yy13; yy222: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy266; + if (yych == 'a') goto yy279; goto yy13; yy223: yych = (unsigned char)*++cur; - if (yych == 'D') goto yy267; + if (yych == 'r') goto yy280; goto yy13; yy224: - yyaccept = 4; - yych = (unsigned char)*(ptr = ++cur); - if (yych == 'M') goto yy268; -yy225: -#line 120 "../src/parse/lex_conf.re" - { opts.set_yyctx (lex_conf_string ()); return; } -#line 1118 "src/parse/lex_conf.cc" -yy226: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy269; + if (yych == 's') goto yy281; goto yy13; -yy227: +yy225: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy270; + if (yych == 'e') goto yy282; goto yy13; -yy228: +yy226: yych = (unsigned char)*++cur; - if (yych == 'U') goto yy271; + if (yych == 'c') goto yy283; goto yy13; -yy229: +yy227: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy272; + if (yych == 'e') goto yy284; goto yy13; +yy228: + ++cur; +#line 82 "../src/parse/lex_conf.re" + { opts.set_condPrefix (lex_conf_string ()); return; } +#line 1134 "src/parse/lex_conf.cc" yy230: yych = (unsigned char)*++cur; - if (yych == 'L') goto yy274; + if (yych == 'x') goto yy285; goto yy13; yy231: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy276; - if (yych == 'S') goto yy277; + if (yych == 'r') goto yy286; goto yy13; yy232: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy278; + if (yych == 'A') goto yy287; goto yy13; yy233: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy279; - goto yy13; + if (yych <= 'S') { + if (yych == 'O') goto yy288; + goto yy13; + } else { + if (yych <= 'T') goto yy289; + if (yych <= 'U') goto yy290; + goto yy13; + } yy234: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy280; + if (yych == 'E') goto yy291; + if (yych == 'I') goto yy292; goto yy13; yy235: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy281; + if (yych == 'I') goto yy293; goto yy13; yy236: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy283; + if (yych == 'E') goto yy294; goto yy13; yy237: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy284; - if (yych == 'S') goto yy285; + if (yych == 'E') goto yy295; + if (yych == 'I') goto yy296; goto yy13; yy238: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy286; + if (yych == 'A') goto yy297; goto yy13; yy239: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy288; + if (yych == 'E') goto yy298; goto yy13; yy240: yych = (unsigned char)*++cur; - if (yych == 'L') goto yy290; + if (yych == 'E') goto yy299; goto yy13; yy241: - ++cur; -#line 89 "../src/parse/lex_conf.re" - { opts.set_yynext (lex_conf_string ()); return; } -#line 1185 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy300; + if (yych == 'K') goto yy301; + goto yy13; +yy242: + yych = (unsigned char)*++cur; + if (yych == 'v') goto yy302; + goto yy13; yy243: yych = (unsigned char)*++cur; - if (yych <= '0') goto yy13; - if (yych <= '9') goto yy246; + if (yych == '-') goto yy303; goto yy13; yy244: - ++cur; + yych = (unsigned char)*++cur; + if (yych == 'u') goto yy304; + goto yy13; yy245: - cur = ctx; -#line 155 "../src/parse/lex_conf.re" - { out.set_force_start_label (lex_conf_number () != 0); return; } -#line 1197 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy305; + goto yy13; yy246: - ++cur; - if (lim <= cur) fill(1); - yych = (unsigned char)*cur; - if (yybm[0+yych] & 128) { - goto yy246; - } - goto yy245; + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy306; + goto yy13; +yy247: + yych = (unsigned char)*++cur; + if (yych == 'm') goto yy307; + goto yy13; yy248: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy291; + if (yych == '-') goto yy308; goto yy13; yy249: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy292; + if (yych == 'y') goto yy309; goto yy13; yy250: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy293; + if (yych == 'd') goto yy310; goto yy13; yy251: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy295; - if (yych == 't') goto yy297; + if (yych == '-') goto yy311; goto yy13; yy252: yych = (unsigned char)*++cur; - if (yych == 't') goto yy298; + if (yych == 't') goto yy312; goto yy13; yy253: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy299; + if (yych == 'e') goto yy314; goto yy13; yy254: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy300; + if (yych == 'e') goto yy315; goto yy13; yy255: - ++cur; -#line 150 "../src/parse/lex_conf.re" - { opts.set_fill_check (lex_conf_number () != 0); return; } -#line 1239 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy316; + goto yy13; +yy256: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy317; + goto yy13; yy257: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy301; + if (yych == 'u') goto yy318; goto yy13; yy258: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy303; + if (yych == 'a') goto yy319; goto yy13; yy259: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy304; + if (yych == 'e') goto yy320; goto yy13; yy260: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy305; + if (yych == 't') goto yy321; goto yy13; yy261: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy306; + if (yych == 'a') goto yy322; goto yy13; yy262: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy308; + if (yych == '-') goto yy323; goto yy13; yy263: - ++cur; -#line 124 "../src/parse/lex_conf.re" - { opts.set_contexts_expr (lex_conf_string ()); return; } -#line 1268 "src/parse/lex_conf.cc" -yy265: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy310; + if (yych == 'o') goto yy324; goto yy13; -yy266: +yy264: yych = (unsigned char)*++cur; - if (yych == 'U') goto yy311; + if (yych == '1') goto yy325; + if (yych == '8') goto yy86; goto yy13; -yy267: +yy265: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy312; + if (yych == '-') goto yy326; goto yy13; -yy268: +yy266: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy313; + if (yych == 'i') goto yy327; goto yy13; +yy267: + ++cur; +#line 135 "../src/parse/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 (n)); + return; + } +#line 1305 "src/parse/lex_conf.cc" yy269: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy314; + if (yych == 'l') goto yy328; goto yy13; yy270: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy316; + if (yych == 'x') goto yy329; goto yy13; yy271: yych = (unsigned char)*++cur; - if (yych == 'G') goto yy317; + if (yych == 'x') goto yy330; goto yy13; yy272: - ++cur; -#line 121 "../src/parse/lex_conf.re" - { opts.set_yydist (lex_conf_string ()); return; } -#line 1301 "src/parse/lex_conf.cc" -yy274: - yyaccept = 5; + yyaccept = 14; yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy319; - if (yych == '@') goto yy320; + ctx = cur; + if (yybm[0+yych] & 64) { + goto yy332; + } + if (yych == '=') goto yy334; +yy273: +#line 163 "../src/parse/lex_conf.re" + { out.set_user_start_label (lex_conf_string ()); return; } +#line 1329 "src/parse/lex_conf.cc" +yy274: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy336; + goto yy13; yy275: -#line 145 "../src/parse/lex_conf.re" - { opts.set_fill (lex_conf_string ()); return; } -#line 1310 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy338; + goto yy13; yy276: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy321; + if (yych == 'y') goto yy339; goto yy13; yy277: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy322; + if (yych == 'r') goto yy340; goto yy13; yy278: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy323; + if (yych == 'c') goto yy341; goto yy13; yy279: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy324; + if (yych == 'b') goto yy342; goto yy13; yy280: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy326; + if (yych == 'a') goto yy343; goto yy13; yy281: - ++cur; -#line 113 "../src/parse/lex_conf.re" - { opts.set_yypeek (lex_conf_string ()); return; } -#line 1335 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'h') goto yy344; + goto yy13; +yy282: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy345; + goto yy13; yy283: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy327; + if (yych == 'o') goto yy347; goto yy13; yy284: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy328; + if (yych == 'f') goto yy348; goto yy13; yy285: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy329; + if (yych == 'p') goto yy349; goto yy13; yy286: - ++cur; -#line 114 "../src/parse/lex_conf.re" - { opts.set_yyskip (lex_conf_string ()); return; } -#line 1352 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy350; + goto yy13; +yy287: + yych = (unsigned char)*++cur; + if (yych == 'C') goto yy351; + goto yy13; yy288: - ++cur; -#line 126 "../src/parse/lex_conf.re" - { opts.set_indString (lex_conf_string ()); return; } -#line 1357 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'N') goto yy352; + goto yy13; +yy289: + yych = (unsigned char)*++cur; + if (yych <= 'W') goto yy13; + if (yych <= 'X') goto yy353; + if (yych <= 'Y') goto yy355; + goto yy13; yy290: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy330; + if (yych == 'R') goto yy356; goto yy13; yy291: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy331; + if (yych == 'B') goto yy357; goto yy13; yy292: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy332; + if (yych == 'S') goto yy358; goto yy13; yy293: - ++cur; -#line 94 "../src/parse/lex_conf.re" - { opts.set_yybm (lex_conf_string ()); return; } -#line 1374 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'L') goto yy359; + goto yy13; +yy294: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy360; + goto yy13; yy295: - ++cur; -#line 141 "../src/parse/lex_conf.re" - { opts.set_yych (lex_conf_string ()); return; } -#line 1379 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'S') goto yy361; + goto yy13; +yy296: + yych = (unsigned char)*++cur; + if (yych == 'M') goto yy362; + goto yy13; yy297: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy333; + if (yych == 'R') goto yy363; goto yy13; yy298: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy334; + if (yych == 'E') goto yy364; goto yy13; yy299: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy335; + if (yych == 'S') goto yy365; goto yy13; yy300: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy336; + if (yych == 'T') goto yy366; goto yy13; yy301: - ++cur; -#line 146 "../src/parse/lex_conf.re" - { opts.set_fill_use (lex_conf_number () != 0); return; } -#line 1400 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'I') goto yy367; + goto yy13; +yy302: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy368; + goto yy13; yy303: yych = (unsigned char)*++cur; - if (yych == 't') goto yy337; + if (yych == 'i') goto yy369; goto yy13; yy304: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy338; + if (yych == 't') goto yy370; goto yy13; yy305: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy340; + if (yych == 'x') goto yy371; goto yy13; yy306: - ++cur; -#line 80 "../src/parse/lex_conf.re" - { opts.set_condGotoParam (lex_conf_string ()); return; } -#line 1417 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == '-') goto yy372; + goto yy13; +yy307: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy373; + goto yy13; yy308: - ++cur; -#line 76 "../src/parse/lex_conf.re" - { opts.set_condEnumPrefix (lex_conf_string ()); return; } -#line 1422 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy374; + goto yy13; +yy309: + yych = (unsigned char)*++cur; + if (yych == '-') goto yy375; + goto yy13; yy310: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy341; + if (yych == 'i') goto yy376; goto yy13; yy311: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy343; + if (yych == 's') goto yy377; goto yy13; yy312: + ++cur; +#line 72 "../src/parse/lex_conf.re" + { lex_conf_input(); return; } +#line 1488 "src/parse/lex_conf.cc" +yy314: yych = (unsigned char)*++cur; - if (yych == 'Y') goto yy345; + if (yych == 'd') goto yy378; goto yy13; -yy313: +yy315: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy346; + if (yych == 'b') goto yy379; goto yy13; -yy314: - ++cur; -#line 140 "../src/parse/lex_conf.re" - { opts.set_yyctype (lex_conf_string ()); return; } -#line 1443 "src/parse/lex_conf.cc" yy316: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy347; + if (yych == 'n') goto yy380; goto yy13; yy317: - ++cur; -#line 138 "../src/parse/lex_conf.re" - { opts.set_yydebug (lex_conf_string ()); return; } -#line 1452 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy381; + goto yy13; +yy318: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy382; + goto yy13; yy319: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy349; + if (yych == 'b') goto yy383; goto yy13; yy320: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy350; + if (yych == 't') goto yy384; goto yy13; yy321: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy351; + if (yych == '-') goto yy385; goto yy13; yy322: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy352; + if (yych == 'b') goto yy386; goto yy13; yy323: yych = (unsigned char)*++cur; - if (yych == 'H') goto yy353; + if (yych == 'h') goto yy387; goto yy13; yy324: - ++cur; -#line 111 "../src/parse/lex_conf.re" - { opts.set_yylimit (lex_conf_string ()); return; } -#line 1477 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy388; + goto yy13; +yy325: + yych = (unsigned char)*++cur; + if (yych == '6') goto yy123; + goto yy13; yy326: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy354; + if (yych == 'c') goto yy389; goto yy13; yy327: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy356; + if (yych == 'n') goto yy390; goto yy13; yy328: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy357; + if (yych == 'l') goto yy391; goto yy13; yy329: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy358; + if (yych == 't') goto yy392; goto yy13; yy330: + ++cur; +#line 159 "../src/parse/lex_conf.re" + { opts.set_labelPrefix (lex_conf_string ()); return; } +#line 1557 "src/parse/lex_conf.cc" +yy332: + ++cur; + if (lim <= cur) fill(1); + yych = (unsigned char)*cur; + if (yybm[0+yych] & 64) { + goto yy332; + } + if (yych != '=') goto yy13; +yy334: + ++cur; + if ((lim - cur) < 2) fill(2); + yych = (unsigned char)*cur; + if (yych <= ',') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy13; + goto yy334; + } else { + if (yych == ' ') goto yy334; + goto yy13; + } + } else { + if (yych <= '/') { + if (yych <= '-') goto yy394; + goto yy13; + } else { + if (yych <= '0') goto yy395; + if (yych <= '9') goto yy397; + goto yy13; + } + } +yy336: + ++cur; +#line 97 "../src/parse/lex_conf.re" + { opts.set_bUseStateAbort (lex_conf_bool()); return; } +#line 1592 "src/parse/lex_conf.cc" +yy338: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy359; + if (yych == 'a') goto yy399; goto yy13; -yy331: +yy339: + yych = (unsigned char)*++cur; + if (yych <= 'c') { + if (yych <= '`') goto yy13; + if (yych <= 'a') goto yy400; + if (yych <= 'b') goto yy401; + goto yy402; + } else { + if (yych <= 'r') goto yy13; + if (yych <= 's') goto yy403; + if (yych <= 't') goto yy404; + goto yy13; + } +yy340: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy360; + if (yych == 's') goto yy405; goto yy13; -yy332: +yy341: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy362; + if (yych == 'k') goto yy406; goto yy13; -yy333: +yy342: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy363; + if (yych == 'l') goto yy408; goto yy13; -yy334: +yy343: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy364; + if (yych == 'm') goto yy409; goto yy13; -yy335: +yy344: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy365; + if (yych == 'o') goto yy410; goto yy13; -yy336: +yy345: + yyaccept = 15; + yych = (unsigned char)*(ptr = ++cur); + if (yych == '@') goto yy411; +yy346: +#line 84 "../src/parse/lex_conf.re" + { opts.set_condDivider (lex_conf_string ()); return; } +#line 1637 "src/parse/lex_conf.cc" +yy347: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy366; + if (yych == 'n') goto yy412; goto yy13; -yy337: +yy348: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy368; + if (yych == 'i') goto yy413; goto yy13; -yy338: - ++cur; -#line 97 "../src/parse/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 (n)); - return; - } -#line 1538 "src/parse/lex_conf.cc" -yy340: - yych = (unsigned char)*++cur; - if (yych == 'n') goto yy369; - goto yy13; -yy341: - ++cur; -#line 123 "../src/parse/lex_conf.re" - { opts.set_contexts_prefix(lex_conf_string ()); return; } -#line 1547 "src/parse/lex_conf.cc" -yy343: - yyaccept = 6; - yych = (unsigned char)*(ptr = ++cur); - if (yych == 'C') goto yy370; -yy344: -#line 115 "../src/parse/lex_conf.re" - { opts.set_yybackup (lex_conf_string ()); return; } -#line 1555 "src/parse/lex_conf.cc" -yy345: - yych = (unsigned char)*++cur; - if (yych == 'P') goto yy371; - goto yy13; -yy346: - yych = (unsigned char)*++cur; - if (yych == 'K') goto yy372; - goto yy13; -yy347: - ++cur; -#line 108 "../src/parse/lex_conf.re" - { opts.set_yycursor (lex_conf_string ()); return; } -#line 1568 "src/parse/lex_conf.cc" yy349: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy373; + if (yych == 'r') goto yy414; goto yy13; yy350: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy374; + if (yych == 'f') goto yy416; goto yy13; yy351: yych = (unsigned char)*++cur; - if (yych == 'D') goto yy375; + if (yych == 'K') goto yy417; goto yy13; yy352: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy376; + if (yych == 'D') goto yy418; goto yy13; yy353: + yyaccept = 16; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'M') goto yy419; +yy354: +#line 127 "../src/parse/lex_conf.re" + { opts.set_yyctx (lex_conf_string ()); return; } +#line 1669 "src/parse/lex_conf.cc" +yy355: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy377; + if (yych == 'P') goto yy420; goto yy13; -yy354: - ++cur; -#line 109 "../src/parse/lex_conf.re" - { opts.set_yymarker (lex_conf_string ()); return; } -#line 1593 "src/parse/lex_conf.cc" yy356: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy378; + if (yych == 'S') goto yy421; goto yy13; yy357: yych = (unsigned char)*++cur; - if (yych == 'D') goto yy380; + if (yych == 'U') goto yy422; goto yy13; yy358: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy381; + if (yych == 'T') goto yy423; goto yy13; yy359: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy382; + if (yych == 'L') goto yy425; goto yy13; yy360: - ++cur; -#line 91 "../src/parse/lex_conf.re" - { opts.set_bUseStateNext (lex_conf_number () != 0); return; } -#line 1614 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'C') goto yy427; + if (yych == 'S') goto yy428; + goto yy13; +yy361: + yych = (unsigned char)*++cur; + if (yych == 'S') goto yy429; + goto yy13; yy362: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy383; + if (yych == 'I') goto yy430; goto yy13; yy363: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy384; + if (yych == 'K') goto yy431; goto yy13; yy364: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy385; + if (yych == 'K') goto yy432; goto yy13; yy365: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy386; + if (yych == 'T') goto yy434; goto yy13; yy366: - ++cur; -#line 142 "../src/parse/lex_conf.re" - { opts.set_yychConversion (lex_conf_number () != 0); return; } -#line 1635 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'C') goto yy435; + if (yych == 'S') goto yy436; + goto yy13; +yy367: + yych = (unsigned char)*++cur; + if (yych == 'P') goto yy437; + goto yy13; yy368: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy387; + if (yych == 'c') goto yy439; goto yy13; yy369: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy389; + if (yych == 'n') goto yy440; goto yy13; yy370: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy391; + if (yych == 'e') goto yy441; goto yy13; yy371: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy392; + if (yych == 't') goto yy442; goto yy13; yy372: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy394; + if (yych == 'o') goto yy443; goto yy13; yy373: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy395; + if (yych == 'n') goto yy444; goto yy13; yy374: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy396; + if (yych == 'o') goto yy445; goto yy13; yy375: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy398; + if (yych == 'c') goto yy446; goto yy13; yy376: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy399; + if (yych == 'n') goto yy447; goto yy13; yy377: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy401; + if (yych == 'y') goto yy448; goto yy13; yy378: - yyaccept = 7; - yych = (unsigned char)*(ptr = ++cur); - if (yych == 'C') goto yy403; + yych = (unsigned char)*++cur; + if (yych == '-') goto yy449; + goto yy13; yy379: -#line 117 "../src/parse/lex_conf.re" - { opts.set_yyrestore (lex_conf_string ()); return; } -#line 1683 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'u') goto yy450; + goto yy13; yy380: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy404; + if (yych == 'e') goto yy451; goto yy13; yy381: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy405; + if (yych == 's') goto yy452; goto yy13; yy382: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy407; - goto yy13; + goto yy112; yy383: yych = (unsigned char)*++cur; - if (yych == 't') goto yy409; + if (yych == 'l') goto yy453; goto yy13; yy384: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy411; + if (yych == 'o') goto yy454; goto yy13; yy385: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy413; + if (yych == 'c') goto yy455; goto yy13; yy386: yych = (unsigned char)*++cur; - if (yych == 't') goto yy415; + if (yych == 'l') goto yy456; goto yy13; yy387: - ++cur; -#line 148 "../src/parse/lex_conf.re" - { opts.set_fill_arg_use (lex_conf_number () != 0); return; } -#line 1716 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy457; + goto yy13; +yy388: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy458; + goto yy13; yy389: - ++cur; -#line 78 "../src/parse/lex_conf.re" - { opts.set_condDividerParam (lex_conf_string ()); return; } -#line 1721 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'h') goto yy459; + goto yy13; +yy390: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy460; + goto yy13; yy391: yych = (unsigned char)*++cur; - if (yych == 'X') goto yy417; + if (yych == 'L') goto yy462; goto yy13; yy392: ++cur; -#line 69 "../src/parse/lex_conf.re" - { opts.set_yycondtype (lex_conf_string ()); return; } -#line 1730 "src/parse/lex_conf.cc" +#line 96 "../src/parse/lex_conf.re" + { opts.set_yynext (lex_conf_string ()); return; } +#line 1823 "src/parse/lex_conf.cc" yy394: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy419; + if (yych <= '0') goto yy13; + if (yych <= '9') goto yy397; goto yy13; yy395: - yych = (unsigned char)*++cur; - if (yych == 'e') goto yy421; - goto yy13; + ++cur; yy396: + cur = ctx; +#line 162 "../src/parse/lex_conf.re" + { out.set_force_start_label (lex_conf_bool()); return; } +#line 1835 "src/parse/lex_conf.cc" +yy397: ++cur; -#line 147 "../src/parse/lex_conf.re" - { opts.set_fill_arg (lex_conf_string ()); return; } -#line 1743 "src/parse/lex_conf.cc" -yy398: + if (lim <= cur) fill(1); + yych = (unsigned char)*cur; + if (yybm[0+yych] & 128) { + goto yy397; + } + goto yy396; +yy399: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy422; + if (yych == 'b') goto yy463; goto yy13; -yy399: - yyaccept = 8; - yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy423; yy400: -#line 83 "../src/parse/lex_conf.re" - { opts.set_state_get (lex_conf_string ()); return; } -#line 1755 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'c') goto yy464; + goto yy13; yy401: - ++cur; -#line 119 "../src/parse/lex_conf.re" - { opts.set_yylessthan (lex_conf_string ()); return; } -#line 1760 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'm') goto yy465; + goto yy13; +yy402: + yych = (unsigned char)*++cur; + if (yych == 'h') goto yy467; + if (yych == 't') goto yy469; + goto yy13; yy403: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy424; + if (yych == 't') goto yy470; + goto yy13; +yy404: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy471; + goto yy13; +yy405: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy472; + goto yy13; +yy406: + ++cur; +#line 157 "../src/parse/lex_conf.re" + { opts.set_fill_check (lex_conf_bool()); return; } +#line 1877 "src/parse/lex_conf.cc" +yy408: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy473; + goto yy13; +yy409: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy475; + goto yy13; +yy410: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy476; + goto yy13; +yy411: + yych = (unsigned char)*++cur; + if (yych == 'c') goto yy477; + goto yy13; +yy412: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy478; + goto yy13; +yy413: + yych = (unsigned char)*++cur; + if (yych == 'x') goto yy480; + goto yy13; +yy414: + ++cur; +#line 131 "../src/parse/lex_conf.re" + { opts.set_contexts_expr (lex_conf_string ()); return; } +#line 1906 "src/parse/lex_conf.cc" +yy416: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy482; + goto yy13; +yy417: + yych = (unsigned char)*++cur; + if (yych == 'U') goto yy483; + goto yy13; +yy418: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy484; + goto yy13; +yy419: + yych = (unsigned char)*++cur; + if (yych == 'A') goto yy485; + goto yy13; +yy420: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy486; + goto yy13; +yy421: + yych = (unsigned char)*++cur; + if (yych == 'O') goto yy488; + goto yy13; +yy422: + yych = (unsigned char)*++cur; + if (yych == 'G') goto yy489; + goto yy13; +yy423: + ++cur; +#line 128 "../src/parse/lex_conf.re" + { opts.set_yydist (lex_conf_string ()); return; } +#line 1939 "src/parse/lex_conf.cc" +yy425: + yyaccept = 17; + yych = (unsigned char)*(ptr = ++cur); + if (yych == ':') goto yy491; + if (yych == '@') goto yy492; +yy426: +#line 152 "../src/parse/lex_conf.re" + { opts.set_fill (lex_conf_string ()); return; } +#line 1948 "src/parse/lex_conf.cc" +yy427: + yych = (unsigned char)*++cur; + if (yych == 'O') goto yy493; + goto yy13; +yy428: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy494; + goto yy13; +yy429: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy495; + goto yy13; +yy430: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy496; + goto yy13; +yy431: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy498; + goto yy13; +yy432: + ++cur; +#line 120 "../src/parse/lex_conf.re" + { opts.set_yypeek (lex_conf_string ()); return; } +#line 1973 "src/parse/lex_conf.cc" +yy434: + yych = (unsigned char)*++cur; + if (yych == 'O') goto yy499; + goto yy13; +yy435: + yych = (unsigned char)*++cur; + if (yych == 'O') goto yy500; + goto yy13; +yy436: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy501; + goto yy13; +yy437: + ++cur; +#line 121 "../src/parse/lex_conf.re" + { opts.set_yyskip (lex_conf_string ()); return; } +#line 1990 "src/parse/lex_conf.cc" +yy439: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy502; + goto yy13; +yy440: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy503; + if (yych == 'v') goto yy504; + goto yy13; +yy441: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy505; + goto yy13; +yy442: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy88; + goto yy13; +yy443: + yych = (unsigned char)*++cur; + if (yych == 'u') goto yy506; + goto yy13; +yy444: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy507; + goto yy13; +yy445: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy90; + goto yy13; +yy446: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy508; + goto yy13; +yy447: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy509; + goto yy13; +yy448: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy510; + goto yy13; +yy449: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy511; + goto yy13; +yy450: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy512; + goto yy13; +yy451: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy513; + goto yy13; +yy452: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy514; + goto yy13; +yy453: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy515; + goto yy13; +yy454: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy94; + goto yy13; +yy455: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy516; + goto yy13; +yy456: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy517; + goto yy13; +yy457: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy518; + goto yy13; +yy458: + yych = (unsigned char)*++cur; + goto yy120; +yy459: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy519; + goto yy13; +yy460: + ++cur; +#line 133 "../src/parse/lex_conf.re" + { opts.set_indString (lex_conf_string ()); return; } +#line 2079 "src/parse/lex_conf.cc" +yy462: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy520; + goto yy13; +yy463: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy521; + goto yy13; +yy464: + yych = (unsigned char)*++cur; + if (yych == 'c') goto yy522; + goto yy13; +yy465: + ++cur; +#line 101 "../src/parse/lex_conf.re" + { opts.set_yybm (lex_conf_string ()); return; } +#line 2096 "src/parse/lex_conf.cc" +yy467: + ++cur; +#line 148 "../src/parse/lex_conf.re" + { opts.set_yych (lex_conf_string ()); return; } +#line 2101 "src/parse/lex_conf.cc" +yy469: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy523; + goto yy13; +yy470: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy524; + goto yy13; +yy471: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy525; + goto yy13; +yy472: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy526; + goto yy13; +yy473: + ++cur; +#line 153 "../src/parse/lex_conf.re" + { opts.set_fill_use (lex_conf_bool()); return; } +#line 2122 "src/parse/lex_conf.cc" +yy475: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy527; + goto yy13; +yy476: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy528; + goto yy13; +yy477: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy530; + goto yy13; +yy478: + ++cur; +#line 87 "../src/parse/lex_conf.re" + { opts.set_condGotoParam (lex_conf_string ()); return; } +#line 2139 "src/parse/lex_conf.cc" +yy480: + ++cur; +#line 83 "../src/parse/lex_conf.re" + { opts.set_condEnumPrefix (lex_conf_string ()); return; } +#line 2144 "src/parse/lex_conf.cc" +yy482: + yych = (unsigned char)*++cur; + if (yych == 'x') goto yy531; + goto yy13; +yy483: + yych = (unsigned char)*++cur; + if (yych == 'P') goto yy533; + goto yy13; +yy484: + yych = (unsigned char)*++cur; + if (yych == 'Y') goto yy535; + goto yy13; +yy485: + yych = (unsigned char)*++cur; + if (yych == 'R') goto yy536; + goto yy13; +yy486: + ++cur; +#line 147 "../src/parse/lex_conf.re" + { opts.set_yyctype (lex_conf_string ()); return; } +#line 2165 "src/parse/lex_conf.cc" +yy488: + yych = (unsigned char)*++cur; + if (yych == 'R') goto yy537; + goto yy13; +yy489: + ++cur; +#line 145 "../src/parse/lex_conf.re" + { opts.set_yydebug (lex_conf_string ()); return; } +#line 2174 "src/parse/lex_conf.cc" +yy491: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy539; + goto yy13; +yy492: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy540; + goto yy13; +yy493: + yych = (unsigned char)*++cur; + if (yych == 'N') goto yy541; + goto yy13; +yy494: + yych = (unsigned char)*++cur; + if (yych == 'A') goto yy542; + goto yy13; +yy495: + yych = (unsigned char)*++cur; + if (yych == 'H') goto yy543; + goto yy13; +yy496: + ++cur; +#line 118 "../src/parse/lex_conf.re" + { opts.set_yylimit (lex_conf_string ()); return; } +#line 2199 "src/parse/lex_conf.cc" +yy498: + yych = (unsigned char)*++cur; + if (yych == 'R') goto yy544; + goto yy13; +yy499: + yych = (unsigned char)*++cur; + if (yych == 'R') goto yy546; + goto yy13; +yy500: + yych = (unsigned char)*++cur; + if (yych == 'N') goto yy547; + goto yy13; +yy501: + yych = (unsigned char)*++cur; + if (yych == 'A') goto yy548; + goto yy13; +yy502: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy549; + goto yy13; +yy503: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy550; + goto yy13; +yy504: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy551; + goto yy13; +yy505: + yych = (unsigned char)*++cur; + if (yych == '-') goto yy552; + goto yy13; +yy506: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy553; + goto yy13; +yy507: + yych = (unsigned char)*++cur; + if (yych == 'm') goto yy554; + goto yy13; +yy508: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy555; + goto yy13; +yy509: + yych = (unsigned char)*++cur; + if (yych == '-') goto yy556; + goto yy13; +yy510: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy557; + goto yy13; +yy511: + yych = (unsigned char)*++cur; + if (yych == 'f') goto yy558; + goto yy13; +yy512: + yych = (unsigned char)*++cur; + if (yych == '-') goto yy559; + goto yy13; +yy513: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy560; + goto yy13; +yy514: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy561; + goto yy13; +yy515: + yych = (unsigned char)*++cur; + goto yy114; +yy516: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy562; + goto yy13; +yy517: + yych = (unsigned char)*++cur; + if (yych == '-') goto yy563; + goto yy13; +yy518: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy564; + goto yy13; +yy519: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy565; + goto yy13; +yy520: + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy566; + goto yy13; +yy521: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy567; + goto yy13; +yy522: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy569; + goto yy13; +yy523: + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy570; + goto yy13; +yy524: + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy571; + goto yy13; +yy525: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy572; + goto yy13; +yy526: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy573; + goto yy13; +yy527: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy575; + goto yy13; +yy528: + ++cur; +#line 104 "../src/parse/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 (n)); + return; + } +#line 2331 "src/parse/lex_conf.cc" +yy530: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy576; + goto yy13; +yy531: + ++cur; +#line 130 "../src/parse/lex_conf.re" + { opts.set_contexts_prefix(lex_conf_string ()); return; } +#line 2340 "src/parse/lex_conf.cc" +yy533: + yyaccept = 18; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'C') goto yy577; +yy534: +#line 122 "../src/parse/lex_conf.re" + { opts.set_yybackup (lex_conf_string ()); return; } +#line 2348 "src/parse/lex_conf.cc" +yy535: + yych = (unsigned char)*++cur; + if (yych == 'P') goto yy578; + goto yy13; +yy536: + yych = (unsigned char)*++cur; + if (yych == 'K') goto yy579; + goto yy13; +yy537: + ++cur; +#line 115 "../src/parse/lex_conf.re" + { opts.set_yycursor (lex_conf_string ()); return; } +#line 2361 "src/parse/lex_conf.cc" +yy539: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy580; + goto yy13; +yy540: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy581; + goto yy13; +yy541: + yych = (unsigned char)*++cur; + if (yych == 'D') goto yy582; + goto yy13; +yy542: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy583; + goto yy13; +yy543: + yych = (unsigned char)*++cur; + if (yych == 'A') goto yy584; + goto yy13; +yy544: + ++cur; +#line 116 "../src/parse/lex_conf.re" + { opts.set_yymarker (lex_conf_string ()); return; } +#line 2386 "src/parse/lex_conf.cc" +yy546: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy585; + goto yy13; +yy547: + yych = (unsigned char)*++cur; + if (yych == 'D') goto yy587; + goto yy13; +yy548: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy588; + goto yy13; +yy549: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy589; + goto yy13; +yy550: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy590; + goto yy13; +yy551: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy591; + goto yy13; +yy552: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy592; + goto yy13; +yy553: + yych = (unsigned char)*++cur; + if (yych == 'p') goto yy593; + goto yy13; +yy554: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy594; + goto yy13; +yy555: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy595; + goto yy13; +yy556: + yych = (unsigned char)*++cur; + if (yych == 'p') goto yy596; + goto yy13; +yy557: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy597; + goto yy13; +yy558: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy598; + goto yy13; +yy559: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy599; + goto yy13; +yy560: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy600; + goto yy13; +yy561: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy601; + goto yy13; +yy562: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy603; + goto yy13; +yy563: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy604; + goto yy13; +yy564: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy605; + goto yy13; +yy565: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy606; + goto yy13; +yy566: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy607; + goto yy13; +yy567: + ++cur; +#line 98 "../src/parse/lex_conf.re" + { opts.set_bUseStateNext (lex_conf_bool()); return; } +#line 2475 "src/parse/lex_conf.cc" +yy569: + yych = (unsigned char)*++cur; + if (yych == 'p') goto yy608; + goto yy13; +yy570: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy609; + goto yy13; +yy571: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy610; + goto yy13; +yy572: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy611; + goto yy13; +yy573: + ++cur; +#line 149 "../src/parse/lex_conf.re" + { opts.set_yychConversion (lex_conf_bool()); return; } +#line 2496 "src/parse/lex_conf.cc" +yy575: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy612; + goto yy13; +yy576: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy614; + goto yy13; +yy577: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy616; + goto yy13; +yy578: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy617; + goto yy13; +yy579: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy619; + goto yy13; +yy580: + yych = (unsigned char)*++cur; + if (yych == 'k') goto yy620; + goto yy13; +yy581: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy621; + goto yy13; +yy582: + yych = (unsigned char)*++cur; + if (yych == 'I') goto yy623; + goto yy13; +yy583: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy624; + goto yy13; +yy584: + yych = (unsigned char)*++cur; + if (yych == 'N') goto yy626; + goto yy13; +yy585: + yyaccept = 19; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'C') goto yy628; +yy586: +#line 124 "../src/parse/lex_conf.re" + { opts.set_yyrestore (lex_conf_string ()); return; } +#line 2544 "src/parse/lex_conf.cc" +yy587: + yych = (unsigned char)*++cur; + if (yych == 'I') goto yy629; + goto yy13; +yy588: + yych = (unsigned char)*++cur; + if (yych == 'E') goto yy630; + goto yy13; +yy589: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy632; + goto yy13; +yy590: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy633; + goto yy13; +yy591: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy634; + goto yy13; +yy592: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy635; + goto yy13; +yy593: + yych = (unsigned char)*++cur; + if (yych == 'u') goto yy636; + goto yy13; +yy594: + yych = (unsigned char)*++cur; + if (yych == 'z') goto yy637; + goto yy13; +yy595: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy638; + goto yy13; +yy596: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy640; + goto yy13; +yy597: + yych = (unsigned char)*++cur; + if (yych == 'x') goto yy92; + goto yy13; +yy598: + yych = (unsigned char)*++cur; + goto yy116; +yy599: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy641; + goto yy13; +yy600: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy642; + goto yy13; +yy601: + ++cur; +#line 58 "../src/parse/lex_conf.re" + { opts.set_version(!lex_conf_bool()); return; } +#line 2604 "src/parse/lex_conf.cc" +yy603: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy643; + goto yy13; +yy604: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy644; + goto yy13; +yy605: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy645; + goto yy13; +yy606: + yych = (unsigned char)*++cur; + goto yy122; +yy607: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy646; + goto yy13; +yy608: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy648; + goto yy13; +yy609: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy650; + goto yy13; +yy610: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy652; + goto yy13; +yy611: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy654; + goto yy13; +yy612: + ++cur; +#line 155 "../src/parse/lex_conf.re" + { opts.set_fill_arg_use (lex_conf_bool()); return; } +#line 2644 "src/parse/lex_conf.cc" +yy614: + ++cur; +#line 85 "../src/parse/lex_conf.re" + { opts.set_condDividerParam (lex_conf_string ()); return; } +#line 2649 "src/parse/lex_conf.cc" +yy616: + yych = (unsigned char)*++cur; + if (yych == 'X') goto yy656; + goto yy13; +yy617: + ++cur; +#line 76 "../src/parse/lex_conf.re" + { opts.set_yycondtype (lex_conf_string ()); return; } +#line 2658 "src/parse/lex_conf.cc" +yy619: + yych = (unsigned char)*++cur; + if (yych == 'R') goto yy658; + goto yy13; +yy620: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy660; + goto yy13; +yy621: + ++cur; +#line 154 "../src/parse/lex_conf.re" + { opts.set_fill_arg (lex_conf_string ()); return; } +#line 2671 "src/parse/lex_conf.cc" +yy623: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy661; + goto yy13; +yy624: + yyaccept = 20; + yych = (unsigned char)*(ptr = ++cur); + if (yych == ':') goto yy662; +yy625: +#line 90 "../src/parse/lex_conf.re" + { opts.set_state_get (lex_conf_string ()); return; } +#line 2683 "src/parse/lex_conf.cc" +yy626: + ++cur; +#line 126 "../src/parse/lex_conf.re" + { opts.set_yylessthan (lex_conf_string ()); return; } +#line 2688 "src/parse/lex_conf.cc" +yy628: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy663; + goto yy13; +yy629: + yych = (unsigned char)*++cur; + if (yych == 'T') goto yy664; + goto yy13; +yy630: + yyaccept = 21; + yych = (unsigned char)*(ptr = ++cur); + if (yych == ':') goto yy665; + if (yych == '@') goto yy666; +yy631: +#line 92 "../src/parse/lex_conf.re" + { opts.set_state_set (lex_conf_string ()); return; } +#line 2705 "src/parse/lex_conf.cc" +yy632: + yych = (unsigned char)*++cur; + goto yy97; +yy633: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy667; + goto yy13; +yy634: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy668; + goto yy13; +yy635: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy669; + goto yy13; +yy636: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy670; + goto yy13; +yy637: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy671; + goto yy13; +yy638: + ++cur; +#line 73 "../src/parse/lex_conf.re" + { lex_conf_empty_class(); return; } +#line 2733 "src/parse/lex_conf.cc" +yy640: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy672; + goto yy13; +yy641: + yych = (unsigned char)*++cur; + if (yych == 'f') goto yy673; + goto yy13; +yy642: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy674; + goto yy13; +yy643: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy675; + goto yy13; +yy644: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy676; + goto yy13; +yy645: + yych = (unsigned char)*++cur; + goto yy118; +yy646: + ++cur; +#line 95 "../src/parse/lex_conf.re" + { opts.set_yyfilllabel (lex_conf_string ()); return; } +#line 2761 "src/parse/lex_conf.cc" +yy648: + ++cur; +#line 99 "../src/parse/lex_conf.re" + { opts.set_yyaccept (lex_conf_string ()); return; } +#line 2766 "src/parse/lex_conf.cc" +yy650: + ++cur; +#line 88 "../src/parse/lex_conf.re" + { opts.set_yyctable (lex_conf_string ()); return; } +#line 2771 "src/parse/lex_conf.cc" +yy652: + ++cur; +#line 166 "../src/parse/lex_conf.re" + { lex_conf_string (); return; } +#line 2776 "src/parse/lex_conf.cc" +yy654: + ++cur; +#line 113 "../src/parse/lex_conf.re" + { opts.set_yytarget (lex_conf_string ()); return; } +#line 2781 "src/parse/lex_conf.cc" +yy656: + ++cur; +#line 123 "../src/parse/lex_conf.re" + { opts.set_yybackupctx (lex_conf_string ()); return; } +#line 2786 "src/parse/lex_conf.cc" +yy658: + ++cur; +#line 117 "../src/parse/lex_conf.re" + { opts.set_yyctxmarker (lex_conf_string ()); return; } +#line 2791 "src/parse/lex_conf.cc" +yy660: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy677; + goto yy13; +yy661: + yych = (unsigned char)*++cur; + if (yych == 'I') goto yy679; + goto yy13; +yy662: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy680; + goto yy13; +yy663: + yych = (unsigned char)*++cur; + if (yych == 'X') goto yy681; + goto yy13; +yy664: + yych = (unsigned char)*++cur; + if (yych == 'I') goto yy683; + goto yy13; +yy665: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy684; + goto yy13; +yy666: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy685; + goto yy13; +yy667: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy686; + goto yy13; +yy668: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy687; + goto yy13; +yy669: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy689; + goto yy13; +yy670: + yych = (unsigned char)*++cur; + goto yy101; +yy671: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy690; + goto yy13; +yy672: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy691; + goto yy13; +yy673: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy692; + goto yy13; +yy674: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy693; + goto yy13; +yy675: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy694; + goto yy13; +yy676: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy695; + goto yy13; +yy677: + ++cur; +#line 156 "../src/parse/lex_conf.re" + { opts.set_fill_naked (lex_conf_bool()); return; } +#line 2863 "src/parse/lex_conf.cc" +yy679: + yych = (unsigned char)*++cur; + if (yych == 'O') goto yy696; + goto yy13; +yy680: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy697; + goto yy13; +yy681: + ++cur; +#line 125 "../src/parse/lex_conf.re" + { opts.set_yyrestorectx (lex_conf_string ()); return; } +#line 2876 "src/parse/lex_conf.cc" +yy683: + yych = (unsigned char)*++cur; + if (yych == 'O') goto yy698; + goto yy13; +yy684: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy699; goto yy13; -yy404: +yy685: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy425; + if (yych == 't') goto yy700; goto yy13; -yy405: - yyaccept = 9; - yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy426; - if (yych == '@') goto yy427; -yy406: -#line 85 "../src/parse/lex_conf.re" - { opts.set_state_set (lex_conf_string ()); return; } -#line 1777 "src/parse/lex_conf.cc" -yy407: - ++cur; -#line 88 "../src/parse/lex_conf.re" - { opts.set_yyfilllabel (lex_conf_string ()); return; } -#line 1782 "src/parse/lex_conf.cc" -yy409: - ++cur; -#line 92 "../src/parse/lex_conf.re" - { opts.set_yyaccept (lex_conf_string ()); return; } -#line 1787 "src/parse/lex_conf.cc" -yy411: - ++cur; -#line 81 "../src/parse/lex_conf.re" - { opts.set_yyctable (lex_conf_string ()); return; } -#line 1792 "src/parse/lex_conf.cc" -yy413: - ++cur; -#line 159 "../src/parse/lex_conf.re" - { lex_conf_string (); return; } -#line 1797 "src/parse/lex_conf.cc" -yy415: - ++cur; -#line 106 "../src/parse/lex_conf.re" - { opts.set_yytarget (lex_conf_string ()); return; } -#line 1802 "src/parse/lex_conf.cc" -yy417: - ++cur; -#line 116 "../src/parse/lex_conf.re" - { opts.set_yybackupctx (lex_conf_string ()); return; } -#line 1807 "src/parse/lex_conf.cc" -yy419: - ++cur; -#line 110 "../src/parse/lex_conf.re" - { opts.set_yyctxmarker (lex_conf_string ()); return; } -#line 1812 "src/parse/lex_conf.cc" -yy421: +yy686: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy428; + if (yych == 'i') goto yy701; goto yy13; -yy422: +yy687: + ++cur; +#line 60 "../src/parse/lex_conf.re" + { opts.set_bCaseInverted(lex_conf_bool()); return; } +#line 2897 "src/parse/lex_conf.cc" +yy689: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy430; + if (yych == 's') goto yy106; goto yy13; -yy423: +yy690: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy431; + if (yych == 'i') goto yy702; goto yy13; -yy424: +yy691: yych = (unsigned char)*++cur; - if (yych == 'X') goto yy432; + if (yych == 'c') goto yy703; goto yy13; -yy425: +yy692: + yych = (unsigned char)*++cur; + goto yy109; +yy693: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy434; + if (yych == '-') goto yy704; goto yy13; -yy426: +yy694: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy435; + if (yych == 'o') goto yy705; goto yy13; -yy427: +yy695: yych = (unsigned char)*++cur; - if (yych == 's') goto yy436; + if (yych == 'e') goto yy706; goto yy13; -yy428: - ++cur; -#line 149 "../src/parse/lex_conf.re" - { opts.set_fill_naked (lex_conf_number () != 0); return; } -#line 1845 "src/parse/lex_conf.cc" -yy430: +yy696: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy437; + if (yych == 'N') goto yy707; goto yy13; -yy431: +yy697: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy438; + if (yych == 'k') goto yy709; goto yy13; -yy432: - ++cur; -#line 118 "../src/parse/lex_conf.re" - { opts.set_yyrestorectx (lex_conf_string ()); return; } -#line 1858 "src/parse/lex_conf.cc" -yy434: +yy698: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy439; + if (yych == 'N') goto yy710; goto yy13; -yy435: +yy699: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy440; + if (yych == 'k') goto yy712; goto yy13; -yy436: +yy700: yych = (unsigned char)*++cur; - if (yych == 't') goto yy441; + if (yych == 'a') goto yy713; goto yy13; -yy437: +yy701: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy442; + if (yych == 'v') goto yy714; goto yy13; -yy438: +yy702: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy444; + if (yych == 'o') goto yy715; goto yy13; -yy439: +yy703: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy445; + if (yych == 'y') goto yy716; goto yy13; -yy440: +yy704: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy447; + if (yych == 'd') goto yy718; goto yy13; -yy441: +yy705: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy448; + if (yych == 'n') goto yy719; goto yy13; -yy442: - yyaccept = 10; +yy706: + yych = (unsigned char)*++cur; + goto yy105; +yy707: + yyaccept = 22; yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy449; -yy443: -#line 70 "../src/parse/lex_conf.re" + if (yych == ':') goto yy720; +yy708: +#line 77 "../src/parse/lex_conf.re" { opts.set_cond_get (lex_conf_string ()); return; } -#line 1898 "src/parse/lex_conf.cc" -yy444: +#line 2975 "src/parse/lex_conf.cc" +yy709: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy450; + if (yych == 'e') goto yy721; goto yy13; -yy445: - yyaccept = 11; +yy710: + yyaccept = 23; yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy451; - if (yych == '@') goto yy452; -yy446: -#line 72 "../src/parse/lex_conf.re" + if (yych == ':') goto yy722; + if (yych == '@') goto yy723; +yy711: +#line 79 "../src/parse/lex_conf.re" { opts.set_cond_set (lex_conf_string ()); return; } -#line 1911 "src/parse/lex_conf.cc" -yy447: +#line 2988 "src/parse/lex_conf.cc" +yy712: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy453; + if (yych == 'e') goto yy724; goto yy13; -yy448: +yy713: yych = (unsigned char)*++cur; - if (yych == 't') goto yy454; + if (yych == 't') goto yy725; goto yy13; -yy449: +yy714: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy455; + if (yych == 'e') goto yy726; goto yy13; -yy450: +yy715: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy456; + if (yych == 'n') goto yy728; goto yy13; -yy451: +yy716: + ++cur; +#line 71 "../src/parse/lex_conf.re" + { lex_conf_encoding_policy(); return; } +#line 3009 "src/parse/lex_conf.cc" +yy718: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy458; + if (yych == 'a') goto yy730; goto yy13; -yy452: +yy719: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy459; + if (yych == 's') goto yy731; goto yy13; -yy453: +yy720: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy460; + if (yych == 'n') goto yy732; goto yy13; -yy454: +yy721: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy462; + if (yych == 'd') goto yy733; goto yy13; -yy455: +yy722: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy464; + if (yych == 'n') goto yy735; goto yy13; -yy456: +yy723: + yych = (unsigned char)*++cur; + if (yych == 'c') goto yy736; + goto yy13; +yy724: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy737; + goto yy13; +yy725: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy739; + goto yy13; +yy726: ++cur; -#line 84 "../src/parse/lex_conf.re" - { opts.set_state_get_naked (lex_conf_number () != 0); return; } -#line 1952 "src/parse/lex_conf.cc" -yy458: +#line 59 "../src/parse/lex_conf.re" + { opts.set_bCaseInsensitive(lex_conf_bool()); return; } +#line 3046 "src/parse/lex_conf.cc" +yy728: + ++cur; +#line 74 "../src/parse/lex_conf.re" + { lex_conf_dfa_minimization(); return; } +#line 3051 "src/parse/lex_conf.cc" +yy730: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy465; + if (yych == 't') goto yy741; goto yy13; -yy459: +yy731: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy466; + goto yy99; +yy732: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy742; goto yy13; -yy460: +yy733: ++cur; -#line 86 "../src/parse/lex_conf.re" - { opts.set_state_set_naked (lex_conf_number () != 0); return; } -#line 1965 "src/parse/lex_conf.cc" -yy462: +#line 91 "../src/parse/lex_conf.re" + { opts.set_state_get_naked (lex_conf_bool()); return; } +#line 3067 "src/parse/lex_conf.cc" +yy735: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy743; + goto yy13; +yy736: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy744; + goto yy13; +yy737: ++cur; -#line 87 "../src/parse/lex_conf.re" +#line 93 "../src/parse/lex_conf.re" + { opts.set_state_set_naked (lex_conf_bool()); return; } +#line 3080 "src/parse/lex_conf.cc" +yy739: + ++cur; +#line 94 "../src/parse/lex_conf.re" { opts.set_state_set_arg (lex_conf_string ()); return; } -#line 1970 "src/parse/lex_conf.cc" -yy464: +#line 3085 "src/parse/lex_conf.cc" +yy741: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy467; + if (yych == 'e') goto yy745; goto yy13; -yy465: +yy742: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy468; + if (yych == 'k') goto yy747; goto yy13; -yy466: +yy743: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy469; + if (yych == 'k') goto yy748; goto yy13; -yy467: +yy744: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy470; + if (yych == 'n') goto yy749; goto yy13; -yy468: +yy745: + ++cur; +#line 57 "../src/parse/lex_conf.re" + { opts.set_bNoGenerationDate(lex_conf_bool()); return; } +#line 3106 "src/parse/lex_conf.cc" +yy747: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy471; + if (yych == 'e') goto yy750; goto yy13; -yy469: +yy748: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy472; + if (yych == 'e') goto yy751; goto yy13; -yy470: +yy749: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy474; + if (yych == 'd') goto yy752; goto yy13; -yy471: +yy750: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy476; + if (yych == 'd') goto yy754; goto yy13; -yy472: +yy751: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy756; + goto yy13; +yy752: ++cur; -#line 73 "../src/parse/lex_conf.re" +#line 80 "../src/parse/lex_conf.re" { opts.set_cond_set_arg (lex_conf_string ()); return; } -#line 2007 "src/parse/lex_conf.cc" -yy474: +#line 3131 "src/parse/lex_conf.cc" +yy754: ++cur; -#line 71 "../src/parse/lex_conf.re" - { opts.set_cond_get_naked (lex_conf_number () != 0); return; } -#line 2012 "src/parse/lex_conf.cc" -yy476: +#line 78 "../src/parse/lex_conf.re" + { opts.set_cond_get_naked (lex_conf_bool()); return; } +#line 3136 "src/parse/lex_conf.cc" +yy756: ++cur; -#line 74 "../src/parse/lex_conf.re" - { opts.set_cond_set_naked (lex_conf_number () != 0); return; } -#line 2017 "src/parse/lex_conf.cc" +#line 81 "../src/parse/lex_conf.re" + { opts.set_cond_set_naked (lex_conf_bool()); return; } +#line 3141 "src/parse/lex_conf.cc" +} +#line 167 "../src/parse/lex_conf.re" + +} + +void Scanner::lex_conf_encoding_policy() +{ + lex_conf_assign (); + +#line 3151 "src/parse/lex_conf.cc" +{ + unsigned char yych; + if ((lim - cur) < 10) fill(10); + yych = (unsigned char)*cur; + if (yych <= 'h') { + if (yych == 'f') goto yy762; + } else { + if (yych <= 'i') goto yy763; + if (yych == 's') goto yy764; + } + ++cur; +yy761: +#line 174 "../src/parse/lex_conf.re" + { fatal("bad configuration value" + " (expected: 'ignore', 'substitute', 'fail')"); } +#line 3167 "src/parse/lex_conf.cc" +yy762: + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'a') goto yy765; + goto yy761; +yy763: + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'g') goto yy767; + goto yy761; +yy764: + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'u') goto yy768; + goto yy761; +yy765: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy769; +yy766: + cur = ptr; + goto yy761; +yy767: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy770; + goto yy766; +yy768: + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy771; + goto yy766; +yy769: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy772; + goto yy766; +yy770: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy774; + goto yy766; +yy771: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy775; + goto yy766; +yy772: + ++cur; +#line 178 "../src/parse/lex_conf.re" + { opts.set_encoding_policy(Enc::POLICY_FAIL); return; } +#line 3210 "src/parse/lex_conf.cc" +yy774: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy776; + goto yy766; +yy775: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy777; + goto yy766; +yy776: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy778; + goto yy766; +yy777: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy780; + goto yy766; +yy778: + ++cur; +#line 176 "../src/parse/lex_conf.re" + { opts.set_encoding_policy(Enc::POLICY_IGNORE); return; } +#line 3231 "src/parse/lex_conf.cc" +yy780: + yych = (unsigned char)*++cur; + if (yych != 't') goto yy766; + yych = (unsigned char)*++cur; + if (yych != 'u') goto yy766; + yych = (unsigned char)*++cur; + if (yych != 't') goto yy766; + yych = (unsigned char)*++cur; + if (yych != 'e') goto yy766; + ++cur; +#line 177 "../src/parse/lex_conf.re" + { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); return; } +#line 3244 "src/parse/lex_conf.cc" +} +#line 179 "../src/parse/lex_conf.re" + +} + +void Scanner::lex_conf_input() +{ + lex_conf_assign (); + +#line 3254 "src/parse/lex_conf.cc" +{ + unsigned char yych; + if ((lim - cur) < 7) fill(7); + yych = (unsigned char)*cur; + if (yych <= 'b') goto yy788; + if (yych <= 'c') goto yy790; + if (yych <= 'd') goto yy791; +yy788: + ++cur; +yy789: +#line 186 "../src/parse/lex_conf.re" + { fatal("bad configuration value" + " (expected: 'default', 'custom')"); } +#line 3268 "src/parse/lex_conf.cc" +yy790: + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'u') goto yy792; + goto yy789; +yy791: + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'e') goto yy794; + goto yy789; +yy792: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy795; +yy793: + cur = ptr; + goto yy789; +yy794: + yych = (unsigned char)*++cur; + if (yych == 'f') goto yy796; + goto yy793; +yy795: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy797; + goto yy793; +yy796: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy798; + goto yy793; +yy797: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy799; + goto yy793; +yy798: + yych = (unsigned char)*++cur; + if (yych == 'u') goto yy800; + goto yy793; +yy799: + yych = (unsigned char)*++cur; + if (yych == 'm') goto yy801; + goto yy793; +yy800: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy803; + goto yy793; +yy801: + ++cur; +#line 189 "../src/parse/lex_conf.re" + { opts.set_input_api(InputAPI::CUSTOM); return; } +#line 3315 "src/parse/lex_conf.cc" +yy803: + yych = (unsigned char)*++cur; + if (yych != 't') goto yy793; + ++cur; +#line 188 "../src/parse/lex_conf.re" + { opts.set_input_api(InputAPI::DEFAULT); return; } +#line 3322 "src/parse/lex_conf.cc" +} +#line 190 "../src/parse/lex_conf.re" + +} + +void Scanner::lex_conf_empty_class() +{ + lex_conf_assign (); + +#line 3332 "src/parse/lex_conf.cc" +{ + unsigned char yych; + if ((lim - cur) < 11) fill(11); + yych = (unsigned char)*cur; + if (yych == 'e') goto yy810; + if (yych == 'm') goto yy811; + ++cur; +yy809: +#line 197 "../src/parse/lex_conf.re" + { fatal("bad configuration value" + " (expected: 'match-empty', 'match-none', 'error')"); } +#line 3344 "src/parse/lex_conf.cc" +yy810: + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'r') goto yy812; + goto yy809; +yy811: + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'a') goto yy814; + goto yy809; +yy812: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy815; +yy813: + cur = ptr; + goto yy809; +yy814: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy816; + goto yy813; +yy815: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy817; + goto yy813; +yy816: + yych = (unsigned char)*++cur; + if (yych == 'c') goto yy818; + goto yy813; +yy817: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy819; + goto yy813; +yy818: + yych = (unsigned char)*++cur; + if (yych == 'h') goto yy821; + goto yy813; +yy819: + ++cur; +#line 201 "../src/parse/lex_conf.re" + { opts.set_empty_class_policy(EMPTY_CLASS_ERROR); return; } +#line 3383 "src/parse/lex_conf.cc" +yy821: + yych = (unsigned char)*++cur; + if (yych != '-') goto yy813; + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy823; + if (yych == 'n') goto yy824; + goto yy813; +yy823: + yych = (unsigned char)*++cur; + if (yych == 'm') goto yy825; + goto yy813; +yy824: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy826; + goto yy813; +yy825: + yych = (unsigned char)*++cur; + if (yych == 'p') goto yy827; + goto yy813; +yy826: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy828; + goto yy813; +yy827: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy829; + goto yy813; +yy828: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy830; + goto yy813; +yy829: + yych = (unsigned char)*++cur; + if (yych == 'y') goto yy832; + goto yy813; +yy830: + ++cur; +#line 200 "../src/parse/lex_conf.re" + { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE); return; } +#line 3423 "src/parse/lex_conf.cc" +yy832: + ++cur; +#line 199 "../src/parse/lex_conf.re" + { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); return; } +#line 3428 "src/parse/lex_conf.cc" +} +#line 202 "../src/parse/lex_conf.re" + +} + +void Scanner::lex_conf_dfa_minimization() +{ + lex_conf_assign (); + +#line 3438 "src/parse/lex_conf.cc" +{ + unsigned char yych; + if ((lim - cur) < 5) fill(5); + yych = (unsigned char)*cur; + if (yych == 'm') goto yy838; + if (yych == 't') goto yy839; + ++cur; +yy837: +#line 209 "../src/parse/lex_conf.re" + { fatal("bad configuration value" + " (expected: 'table', 'moore')"); } +#line 3450 "src/parse/lex_conf.cc" +yy838: + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'o') goto yy840; + goto yy837; +yy839: + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'a') goto yy842; + goto yy837; +yy840: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy843; +yy841: + cur = ptr; + goto yy837; +yy842: + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy844; + goto yy841; +yy843: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy845; + goto yy841; +yy844: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy846; + goto yy841; +yy845: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy847; + goto yy841; +yy846: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy849; + goto yy841; +yy847: + ++cur; +#line 212 "../src/parse/lex_conf.re" + { opts.set_dfa_minimization(DFA_MINIMIZATION_MOORE); return; } +#line 3489 "src/parse/lex_conf.cc" +yy849: + ++cur; +#line 211 "../src/parse/lex_conf.re" + { opts.set_dfa_minimization(DFA_MINIMIZATION_TABLE); return; } +#line 3494 "src/parse/lex_conf.cc" +} +#line 213 "../src/parse/lex_conf.re" + } -#line 160 "../src/parse/lex_conf.re" +void Scanner::lex_conf_enc(Enc::type_t enc) +{ + const bool off = !lex_conf_bool(); + if (off) { + opts.unset_encoding(enc); + } else if (!opts.set_encoding(enc)) { + fatalf ("Cannot set %s encoding: please reset %s encoding first" + , Enc::name(enc) + , Enc::name(opts->encoding.type())); + } } void Scanner::lex_conf_assign () { -#line 2026 "src/parse/lex_conf.cc" +#line 3515 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -2062,56 +3551,56 @@ void Scanner::lex_conf_assign () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy482; + if (yych == '\t') goto yy855; } else { - if (yych <= ' ') goto yy482; - if (yych == '=') goto yy483; + if (yych <= ' ') goto yy855; + if (yych == '=') goto yy856; } ++cur; -yy481: -#line 166 "../src/parse/lex_conf.re" +yy854: +#line 231 "../src/parse/lex_conf.re" { fatal ("missing '=' in configuration"); } -#line 2075 "src/parse/lex_conf.cc" -yy482: +#line 3564 "src/parse/lex_conf.cc" +yy855: yych = (unsigned char)*(ptr = ++cur); if (yych <= 0x1F) { - if (yych == '\t') goto yy486; - goto yy481; + if (yych == '\t') goto yy859; + goto yy854; } else { - if (yych <= ' ') goto yy486; - if (yych != '=') goto yy481; + if (yych <= ' ') goto yy859; + if (yych != '=') goto yy854; } -yy483: +yy856: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy483; + goto yy856; } -#line 167 "../src/parse/lex_conf.re" +#line 232 "../src/parse/lex_conf.re" { return; } -#line 2094 "src/parse/lex_conf.cc" -yy486: +#line 3583 "src/parse/lex_conf.cc" +yy859: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy486; + if (yych == '\t') goto yy859; } else { - if (yych <= ' ') goto yy486; - if (yych == '=') goto yy483; + if (yych <= ' ') goto yy859; + if (yych == '=') goto yy856; } cur = ptr; - goto yy481; + goto yy854; } -#line 168 "../src/parse/lex_conf.re" +#line 233 "../src/parse/lex_conf.re" } void Scanner::lex_conf_semicolon () { -#line 2115 "src/parse/lex_conf.cc" +#line 3604 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -2151,40 +3640,45 @@ void Scanner::lex_conf_semicolon () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy493; + if (yych == '\t') goto yy866; } else { - if (yych <= ' ') goto yy493; - if (yych == ';') goto yy494; + if (yych <= ' ') goto yy866; + if (yych == ';') goto yy867; } ++cur; -yy492: -#line 174 "../src/parse/lex_conf.re" +yy865: +#line 239 "../src/parse/lex_conf.re" { fatal ("missing ending ';' in configuration"); } -#line 2164 "src/parse/lex_conf.cc" -yy493: +#line 3653 "src/parse/lex_conf.cc" +yy866: yych = (unsigned char)*(ptr = ++cur); if (yybm[0+yych] & 128) { - goto yy496; + goto yy869; } - if (yych != ';') goto yy492; -yy494: + if (yych != ';') goto yy865; +yy867: ++cur; -#line 175 "../src/parse/lex_conf.re" +#line 240 "../src/parse/lex_conf.re" { return; } -#line 2175 "src/parse/lex_conf.cc" -yy496: +#line 3664 "src/parse/lex_conf.cc" +yy869: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy496; + goto yy869; } - if (yych == ';') goto yy494; + if (yych == ';') goto yy867; cur = ptr; - goto yy492; + goto yy865; +} +#line 241 "../src/parse/lex_conf.re" + } -#line 176 "../src/parse/lex_conf.re" +bool Scanner::lex_conf_bool() +{ + return lex_conf_number() != 0; } int32_t Scanner::lex_conf_number () @@ -2192,7 +3686,7 @@ int32_t Scanner::lex_conf_number () lex_conf_assign (); tok = cur; -#line 2196 "src/parse/lex_conf.cc" +#line 3690 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -2232,21 +3726,21 @@ int32_t Scanner::lex_conf_number () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= '/') { - if (yych == '-') goto yy502; + if (yych == '-') goto yy875; } else { - if (yych <= '0') goto yy503; - if (yych <= '9') goto yy505; + if (yych <= '0') goto yy876; + if (yych <= '9') goto yy878; } -yy501: -yy502: +yy874: +yy875: yych = (unsigned char)*++cur; - if (yych <= '0') goto yy501; - if (yych <= '9') goto yy505; - goto yy501; -yy503: + if (yych <= '0') goto yy874; + if (yych <= '9') goto yy878; + goto yy874; +yy876: ++cur; -yy504: -#line 185 "../src/parse/lex_conf.re" +yy877: +#line 255 "../src/parse/lex_conf.re" { int32_t n = 0; if (!s_to_i32_unsafe (tok, cur, n)) @@ -2256,17 +3750,17 @@ yy504: lex_conf_semicolon (); return n; } -#line 2260 "src/parse/lex_conf.cc" -yy505: +#line 3754 "src/parse/lex_conf.cc" +yy878: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy505; + goto yy878; } - goto yy504; + goto yy877; } -#line 194 "../src/parse/lex_conf.re" +#line 264 "../src/parse/lex_conf.re" } @@ -2276,7 +3770,7 @@ std::string Scanner::lex_conf_string () std::string s; tok = cur; -#line 2280 "src/parse/lex_conf.cc" +#line 3774 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -2317,38 +3811,38 @@ std::string Scanner::lex_conf_string () yych = (unsigned char)*cur; if (yych <= '!') { if (yych <= '\n') { - if (yych <= 0x08) goto yy510; + if (yych <= 0x08) goto yy883; } else { - if (yych != ' ') goto yy510; + if (yych != ' ') goto yy883; } } else { if (yych <= '\'') { - if (yych <= '"') goto yy513; - if (yych <= '&') goto yy510; - goto yy513; + if (yych <= '"') goto yy886; + if (yych <= '&') goto yy883; + goto yy886; } else { - if (yych != ';') goto yy510; + if (yych != ';') goto yy883; } } -#line 221 "../src/parse/lex_conf.re" +#line 291 "../src/parse/lex_conf.re" { goto end; } -#line 2336 "src/parse/lex_conf.cc" -yy510: +#line 3830 "src/parse/lex_conf.cc" +yy883: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy510; + goto yy883; } -#line 217 "../src/parse/lex_conf.re" +#line 287 "../src/parse/lex_conf.re" { s = std::string(tok, tok_len()); goto end; } -#line 2349 "src/parse/lex_conf.cc" -yy513: +#line 3843 "src/parse/lex_conf.cc" +yy886: ++cur; -#line 203 "../src/parse/lex_conf.re" +#line 273 "../src/parse/lex_conf.re" { const char quote = tok[0]; for (bool end;;) { @@ -2363,9 +3857,9 @@ yy513: } } } -#line 2367 "src/parse/lex_conf.cc" +#line 3861 "src/parse/lex_conf.cc" } -#line 222 "../src/parse/lex_conf.re" +#line 292 "../src/parse/lex_conf.re" end: lex_conf_semicolon (); diff --git a/re2c/src/codegen/output.cc b/re2c/src/codegen/output.cc index e037211e..182533cf 100644 --- a/re2c/src/codegen/output.cc +++ b/re2c/src/codegen/output.cc @@ -59,7 +59,7 @@ OutputBlock::~OutputBlock () } } -OutputFile::OutputFile (const char * fn) +OutputFile::OutputFile(const std::string &fn) : file_name (fn) , file (NULL) , blocks () @@ -72,14 +72,14 @@ OutputFile::OutputFile (const char * fn) bool OutputFile::open () { - if (file_name == NULL) + if (file_name.empty()) { file_name = ""; file = stdout; } else { - file = fopen (file_name, "wb"); + file = fopen (file_name.c_str(), "wb"); } return file != NULL; } @@ -356,18 +356,22 @@ void OutputFile::emit( } } -HeaderFile::HeaderFile (const char * fn) +HeaderFile::HeaderFile(const std::string &fn) : stream () // header is always generated, but not always dumped to file // NULL filename crashes 'operator <<' on some platforms // TODO: generate header only if necessary - , file_name (fn ? fn : ".h") + , file_name (fn) , file (NULL) -{} +{ + if (file_name.empty()) { + file_name = ".h"; + } +} bool HeaderFile::open () { - file = fopen (file_name, "wb"); + file = fopen (file_name.c_str(), "wb"); return file != NULL; } @@ -389,13 +393,13 @@ HeaderFile::~HeaderFile () } } -Output::Output (const char * source_name, const char * header_name) - : source (source_name) - , header (header_name) - , types () - , skeletons () - , contexts () - , max_fill (1) +Output::Output(const std::string &source_name, const std::string &header_name) + : source(source_name) + , header(header_name) + , types() + , skeletons() + , contexts() + , max_fill(1) {} Output::~Output () @@ -475,7 +479,7 @@ void output_yymaxfill (std::ostream & o, size_t max_fill) o << "#define YYMAXFILL " << max_fill << "\n"; } -void output_line_info (std::ostream & o, uint32_t line_number, const char * file_name) +void output_line_info (std::ostream & o, uint32_t line_number, const std::string &file_name) { if (!opts->iFlag) { diff --git a/re2c/src/codegen/output.h b/re2c/src/codegen/output.h index 0af7cfc3..641ecf46 100644 --- a/re2c/src/codegen/output.h +++ b/re2c/src/codegen/output.h @@ -66,7 +66,7 @@ struct OutputBlock struct OutputFile { public: - const char * file_name; + std::string file_name; private: FILE * file; @@ -77,7 +77,7 @@ public: bool warn_condition_order; bool default_contexts; - OutputFile (const char * fn); + OutputFile(const std::string &fn); ~OutputFile (); std::ostream & stream (); @@ -127,14 +127,14 @@ public: struct HeaderFile { - HeaderFile (const char * fn); + HeaderFile(const std::string &fn); ~HeaderFile (); bool open (); void emit (const std::vector & types); private: std::ostringstream stream; - const char * file_name; + std::string file_name; FILE * file; FORBID_COPY (HeaderFile); @@ -149,7 +149,7 @@ struct Output std::set contexts; size_t max_fill; - Output (const char * source_name, const char * header_name); + Output(const std::string &source_name, const std::string &header_name); ~Output (); }; @@ -157,7 +157,7 @@ void output_contexts(std::ostream &o, const ConfContexts &conf, const std::set &contexts); void output_contexts_default(std::ostream &o, uint32_t ind, const std::set &contexts); -void output_line_info (std::ostream &, uint32_t, const char *); +void output_line_info (std::ostream &, uint32_t, const std::string&); void output_state_goto (std::ostream &, uint32_t, uint32_t); void output_types (std::ostream &, uint32_t, const std::vector &); void output_version_time (std::ostream &); diff --git a/re2c/src/conf/opt.cc b/re2c/src/conf/opt.cc index 0bcaf46c..f89f5bd2 100644 --- a/re2c/src/conf/opt.cc +++ b/re2c/src/conf/opt.cc @@ -238,7 +238,7 @@ void opt_t::fix () bFlag = true; sFlag = true; } - if (header_file != NULL) + if (!header_file.empty()) { tFlag = true; } @@ -278,7 +278,7 @@ opt_t * useropt_t::operator -> () const opt_t Opt::baseopt; -bool Opt::source (const char * s) +bool Opt::source (const char *s) { if (source_file) { @@ -292,11 +292,11 @@ bool Opt::source (const char * s) } } -bool Opt::output (const char * s) +bool Opt::output (const std::string &s) { - if (output_file) + if (!output_file.empty()) { - error ("multiple output files: %s, %s", output_file, s); + error ("multiple output files: %s, %s", output_file.c_str(), s.c_str()); return false; } else diff --git a/re2c/src/conf/opt.h b/re2c/src/conf/opt.h index 4452c460..31d358bc 100644 --- a/re2c/src/conf/opt.h +++ b/re2c/src/conf/opt.h @@ -28,7 +28,7 @@ namespace re2c /* conditions */ \ OPT (bool, cFlag, false) \ OPT (bool, tFlag, false) \ - OPT (const char *, header_file, NULL) \ + OPT (std::string, header_file, "") \ OPT (std::string, yycondtype, "YYCONDTYPE") \ OPT (std::string, cond_get, "YYGETCONDITION") \ OPT (bool, cond_get_naked, false) \ @@ -156,8 +156,8 @@ struct Opt { static const opt_t baseopt; - const char * source_file; - const char * output_file; + const char *source_file; + std::string output_file; private: useropt_t useropt; @@ -166,7 +166,7 @@ private: public: Opt () : source_file (NULL) - , output_file (NULL) + , output_file () , useropt () , realopt (useropt) {} @@ -177,8 +177,8 @@ public: return realopt.operator -> (); } - bool source (const char * s); - bool output (const char * s); + bool source (const char *s); + bool output (const std::string &s); // Inplace configurations are applied immediately when parsed. // This is very bad: first, re2c behaviour is changed in the middle diff --git a/re2c/src/ir/skeleton/generate_data.cc b/re2c/src/ir/skeleton/generate_data.cc index e16f71bd..b73f34d8 100644 --- a/re2c/src/ir/skeleton/generate_data.cc +++ b/re2c/src/ir/skeleton/generate_data.cc @@ -228,9 +228,9 @@ static void generate_paths(const Skeleton &skel, cover_t &cover) } } -void emit_data(const Skeleton &skel, const char *fname) +void emit_data(const Skeleton &skel, const std::string &fname) { - const std::string input_name = std::string(fname) + "." + skel.name + ".input"; + const std::string input_name = fname + "." + skel.name + ".input"; FILE *input = fopen(input_name.c_str(), "wb"); if (!input) { error("cannot open file: %s", input_name.c_str()); diff --git a/re2c/src/ir/skeleton/skeleton.h b/re2c/src/ir/skeleton/skeleton.h index 3690d631..456d646a 100644 --- a/re2c/src/ir/skeleton/skeleton.h +++ b/re2c/src/ir/skeleton/skeleton.h @@ -86,7 +86,7 @@ uint32_t maxpath(const Skeleton &skel); void warn_undefined_control_flow(const Skeleton &skel); void fprint_default_path(FILE *f, const Skeleton &skel, const path_t &p); void warn_unreachable_nullable_rules(const Skeleton &skel); -void emit_data(const Skeleton &skel, const char *fname); +void emit_data(const Skeleton &skel, const std::string &fname); void emit_prolog(OutputFile & o); void emit_start(const Skeleton &skel, OutputFile &o, size_t maxfill, bool backup, bool backupctx, bool accept, bool base_ctxmarker, diff --git a/re2c/src/main.cc b/re2c/src/main.cc index 03b6ee29..6d1288b4 100644 --- a/re2c/src/main.cc +++ b/re2c/src/main.cc @@ -44,12 +44,12 @@ int main(int, char *argv[]) re2c::Output output (opts.output_file, opts->header_file); if (!output.source.open ()) { - error ("cannot open output file: %s", opts.output_file); + error ("cannot open output file: %s", opts.output_file.c_str()); return 1; } if (opts->tFlag && !output.header.open ()) { - error ("cannot open header file: %s", opts->header_file); + error ("cannot open header file: %s", opts->header_file.c_str()); return 1; } diff --git a/re2c/src/parse/lex_conf.re b/re2c/src/parse/lex_conf.re index 0f906c60..066185d9 100644 --- a/re2c/src/parse/lex_conf.re +++ b/re2c/src/parse/lex_conf.re @@ -41,37 +41,44 @@ void Scanner::lex_conf () /*!re2c * { fatal ((tok - pos) - tchar, "unrecognized configuration"); } - "flags:" [ewxu8] - { - Enc::type_t enc = Enc::ASCII; - switch (cur[-1]) - { - case 'e': enc = Enc::EBCDIC; break; - case 'w': enc = Enc::UCS2; break; - case 'x': enc = Enc::UTF16; break; - case 'u': enc = Enc::UTF32; break; - case '8': enc = Enc::UTF8; break; - } - const int32_t n = lex_conf_number (); - if (n == 0) - { - opts.unset_encoding (enc); - } - else if (!opts.set_encoding (enc)) - { - fatalf ("Cannot set %s encoding: please reset %s encoding first" - , Enc::name (enc) - , Enc::name (opts->encoding.type ())); - } - return; - } + "flags:" ("D" | "emit-dot") { opts.set_target(opt_t::DOT); lex_conf_semicolon(); return; } + "flags:" ("S" | "skeleton") { opts.set_target(opt_t::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:" ("C" | "contexts") { opts.set_contexts(lex_conf_bool()); return; } + "flags:" ("d" | "debug-output") { opts.set_dFlag(lex_conf_bool()); return; } + "flags:" ("f" | "storable-state") { opts.set_fFlag(lex_conf_bool()); return; } + "flags:" ("F" | "flex-syntax") { opts.set_FFlag(lex_conf_bool()); return; } + "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: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:" ("e" | "ecb") { lex_conf_enc(Enc::EBCDIC); return; } + "flags:" ("u" | "unicode") { lex_conf_enc(Enc::UTF32); return; } + "flags:" ("w" | "wide-chars") { lex_conf_enc(Enc::UCS2); return; } + "flags:" ("x" | "utf-16") { lex_conf_enc(Enc::UTF16); return; } + "flags:" ("8" | "utf-8") { lex_conf_enc(Enc::UTF8); return; } + + "flags:" ("o" | "output") { if (!opts.output(lex_conf_string())) exit(1); 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; } + "flags:dfa-minimization" { lex_conf_dfa_minimization(); return; } "define:YYCONDTYPE" { opts.set_yycondtype (lex_conf_string ()); return; } "define:YYGETCONDITION" { opts.set_cond_get (lex_conf_string ()); return; } - "define:YYGETCONDITION:naked" { opts.set_cond_get_naked (lex_conf_number () != 0); return; } + "define:YYGETCONDITION:naked" { opts.set_cond_get_naked (lex_conf_bool()); return; } "define:YYSETCONDITION" { opts.set_cond_set (lex_conf_string ()); return; } "define:YYSETCONDITION@cond" { opts.set_cond_set_arg (lex_conf_string ()); return; } - "define:YYSETCONDITION:naked" { opts.set_cond_set_naked (lex_conf_number () != 0); return; } + "define:YYSETCONDITION:naked" { opts.set_cond_set_naked (lex_conf_bool()); return; } "condprefix" { opts.set_condPrefix (lex_conf_string ()); return; } "condenumprefix" { opts.set_condEnumPrefix (lex_conf_string ()); return; } "cond:divider" { opts.set_condDivider (lex_conf_string ()); return; } @@ -81,18 +88,18 @@ void Scanner::lex_conf () "variable:yyctable" { opts.set_yyctable (lex_conf_string ()); return; } "define:YYGETSTATE" { opts.set_state_get (lex_conf_string ()); return; } - "define:YYGETSTATE:naked" { opts.set_state_get_naked (lex_conf_number () != 0); return; } + "define:YYGETSTATE:naked" { opts.set_state_get_naked (lex_conf_bool()); return; } "define:YYSETSTATE" { opts.set_state_set (lex_conf_string ()); return; } - "define:YYSETSTATE:naked" { opts.set_state_set_naked (lex_conf_number () != 0); return; } + "define:YYSETSTATE:naked" { opts.set_state_set_naked (lex_conf_bool()); return; } "define:YYSETSTATE@state" { opts.set_state_set_arg (lex_conf_string ()); return; } "label:yyFillLabel" { opts.set_yyfilllabel (lex_conf_string ()); return; } "label:yyNext" { opts.set_yynext (lex_conf_string ()); return; } - "state:abort" { opts.set_bUseStateAbort (lex_conf_number () != 0); return; } - "state:nextlabel" { opts.set_bUseStateNext (lex_conf_number () != 0); return; } + "state:abort" { opts.set_bUseStateAbort (lex_conf_bool()); return; } + "state:nextlabel" { opts.set_bUseStateNext (lex_conf_bool()); return; } "variable:yyaccept" { opts.set_yyaccept (lex_conf_string ()); return; } "variable:yybm" { opts.set_yybm (lex_conf_string ()); return; } - "yybm:hex" { opts.set_yybmHexTable (lex_conf_number () != 0); return; } + "yybm:hex" { opts.set_yybmHexTable (lex_conf_bool()); return; } "cgoto:threshold" { const int32_t n = lex_conf_number (); @@ -139,20 +146,20 @@ void Scanner::lex_conf () "define:YYCTYPE" { opts.set_yyctype (lex_conf_string ()); return; } "variable:yych" { opts.set_yych (lex_conf_string ()); return; } - "yych:conversion" { opts.set_yychConversion (lex_conf_number () != 0); return; } - "yych:emit" { opts.set_bEmitYYCh (lex_conf_number () != 0); return; } + "yych:conversion" { opts.set_yychConversion (lex_conf_bool()); return; } + "yych:emit" { opts.set_bEmitYYCh (lex_conf_bool()); return; } "define:YYFILL" { opts.set_fill (lex_conf_string ()); return; } - "yyfill:enable" { opts.set_fill_use (lex_conf_number () != 0); return; } + "yyfill:enable" { opts.set_fill_use (lex_conf_bool()); return; } "define:YYFILL@len" { opts.set_fill_arg (lex_conf_string ()); return; } - "yyfill:parameter" { opts.set_fill_arg_use (lex_conf_number () != 0); return; } - "define:YYFILL:naked" { opts.set_fill_naked (lex_conf_number () != 0); return; } - "yyfill:check" { opts.set_fill_check (lex_conf_number () != 0); return; } + "yyfill:parameter" { opts.set_fill_arg_use (lex_conf_bool()); return; } + "define:YYFILL:naked" { opts.set_fill_naked (lex_conf_bool()); return; } + "yyfill:check" { opts.set_fill_check (lex_conf_bool()); return; } "labelprefix" { opts.set_labelPrefix (lex_conf_string ()); return; } // try to lex number first, otherwize it would be lexed as a naked string - "startlabel" / conf_assign number { out.set_force_start_label (lex_conf_number () != 0); return; } + "startlabel" / conf_assign number { out.set_force_start_label (lex_conf_bool()); return; } "startlabel" { out.set_user_start_label (lex_conf_string ()); return; } // deprecated @@ -160,6 +167,64 @@ void Scanner::lex_conf () */ } +void Scanner::lex_conf_encoding_policy() +{ + lex_conf_assign (); +/*!re2c + * { fatal("bad configuration value" + " (expected: 'ignore', 'substitute', 'fail')"); } + "ignore" { opts.set_encoding_policy(Enc::POLICY_IGNORE); return; } + "substitute" { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); return; } + "fail" { opts.set_encoding_policy(Enc::POLICY_FAIL); return; } +*/ +} + +void Scanner::lex_conf_input() +{ + lex_conf_assign (); +/*!re2c + * { fatal("bad configuration value" + " (expected: 'default', 'custom')"); } + "default" { opts.set_input_api(InputAPI::DEFAULT); return; } + "custom" { opts.set_input_api(InputAPI::CUSTOM); return; } +*/ +} + +void Scanner::lex_conf_empty_class() +{ + lex_conf_assign (); +/*!re2c + * { fatal("bad configuration value" + " (expected: 'match-empty', 'match-none', 'error')"); } + "match-empty" { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); return; } + "match-none" { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE); return; } + "error" { opts.set_empty_class_policy(EMPTY_CLASS_ERROR); return; } +*/ +} + +void Scanner::lex_conf_dfa_minimization() +{ + lex_conf_assign (); +/*!re2c + * { fatal("bad configuration value" + " (expected: 'table', 'moore')"); } + "table" { opts.set_dfa_minimization(DFA_MINIMIZATION_TABLE); return; } + "moore" { opts.set_dfa_minimization(DFA_MINIMIZATION_MOORE); return; } +*/ +} + +void Scanner::lex_conf_enc(Enc::type_t enc) +{ + const bool off = !lex_conf_bool(); + if (off) { + opts.unset_encoding(enc); + } else if (!opts.set_encoding(enc)) { + fatalf ("Cannot set %s encoding: please reset %s encoding first" + , Enc::name(enc) + , Enc::name(opts->encoding.type())); + } +} + void Scanner::lex_conf_assign () { /*!re2c @@ -176,6 +241,11 @@ void Scanner::lex_conf_semicolon () */ } +bool Scanner::lex_conf_bool() +{ + return lex_conf_number() != 0; +} + int32_t Scanner::lex_conf_number () { lex_conf_assign (); diff --git a/re2c/src/parse/scanner.h b/re2c/src/parse/scanner.h index bf592975..ef9f0c29 100644 --- a/re2c/src/parse/scanner.h +++ b/re2c/src/parse/scanner.h @@ -71,10 +71,16 @@ private: const RegExp *cls(const Range *r) const; void lex_conf (); - void lex_conf_assign (); - void lex_conf_semicolon (); - int32_t lex_conf_number (); - std::string lex_conf_string (); + void lex_conf_encoding_policy(); + void lex_conf_input(); + void lex_conf_empty_class(); + void lex_conf_dfa_minimization(); + void lex_conf_enc(Enc::type_t enc); + void lex_conf_assign(); + void lex_conf_semicolon(); + int32_t lex_conf_number(); + bool lex_conf_bool(); + std::string lex_conf_string(); size_t tok_len () const;