From 7d362320ee1e535ee3a70b73778bc37a2580a6e0 Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Wed, 18 Jan 2017 13:58:48 +0000 Subject: [PATCH] Added option '--no-lookahead'. This option makes re2c generate TDFA that does not exploit lookahead symbol when making tagged transitions. --- re2c/bootstrap/src/conf/parse_opts.cc | 1572 ++++++++-------- re2c/bootstrap/src/parse/lex_conf.cc | 2510 +++++++++++++------------ re2c/src/codegen/emit_action.cc | 10 +- re2c/src/codegen/emit_dfa.cc | 6 + re2c/src/codegen/go_construct.cc | 5 +- re2c/src/conf/opt.cc | 3 + re2c/src/conf/opt.h | 1 + re2c/src/conf/parse_opts.re | 1 + re2c/src/ir/adfa/adfa.cc | 1 + re2c/src/ir/adfa/adfa.h | 1 + re2c/src/ir/adfa/dump.cc | 6 + re2c/src/ir/compile.cc | 6 +- re2c/src/ir/dfa/cfg/cfg.cc | 7 +- re2c/src/ir/dfa/cfg/optimize.cc | 4 + re2c/src/ir/dfa/closure.cc | 14 +- re2c/src/ir/dfa/closure.h | 2 +- re2c/src/ir/dfa/determinization.cc | 18 +- re2c/src/ir/dfa/dfa.h | 7 +- re2c/src/ir/dfa/dump.cc | 22 +- re2c/src/ir/dfa/find_state.cc | 16 +- re2c/src/ir/skeleton/generate_data.cc | 19 +- re2c/src/ir/skeleton/skeleton.cc | 5 +- re2c/src/ir/skeleton/skeleton.h | 9 +- re2c/src/parse/lex_conf.re | 1 + 24 files changed, 2195 insertions(+), 2051 deletions(-) diff --git a/re2c/bootstrap/src/conf/parse_opts.cc b/re2c/bootstrap/src/conf/parse_opts.cc index 13101a80..0ddbfce4 100644 --- a/re2c/bootstrap/src/conf/parse_opts.cc +++ b/re2c/bootstrap/src/conf/parse_opts.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 0.16 on Mon Jan 16 13:43:26 2017 */ +/* Generated by re2c 0.16 on Tue Jan 17 15:33:19 2017 */ #line 1 "../src/conf/parse_opts.re" #include "src/codegen/input_api.h" #include "src/conf/msg.h" @@ -1352,613 +1352,612 @@ yy316: goto yy276; yy317: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 'f') { - if (yych == 'd') goto yy347; - goto yy276; - } else { - if (yych <= 'g') goto yy348; - if (yych == 'v') goto yy349; - goto yy276; + switch (yych) { + case 'd': goto yy347; + case 'g': goto yy348; + case 'l': goto yy349; + case 'v': goto yy350; + default: goto yy276; } yy318: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy350; + if (yych == '-') goto yy351; goto yy276; yy319: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy351; + if (yych == 'p') goto yy352; goto yy276; yy320: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy352; + if (yych == 's') goto yy353; goto yy276; yy321: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy353; + if (yych == 'g') goto yy354; goto yy276; yy322: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy354; + if (yych == 'l') goto yy355; goto yy276; yy323: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy355; + if (yych == 'r') goto yy356; goto yy276; yy324: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy356; + if (yych == 'r') goto yy357; goto yy276; yy325: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy357; + if (yych == 's') goto yy358; goto yy276; yy326: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy358; + if (yych == 'e') goto yy359; goto yy276; yy327: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy359; + if (yych == 'c') goto yy360; goto yy276; yy328: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy360; + if (yych == '-') goto yy361; goto yy276; yy329: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy361; - if (yych == 's') goto yy362; + if (yych == 'n') goto yy362; + if (yych == 's') goto yy363; goto yy276; yy330: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy363; + if (yych == 'e') goto yy364; goto yy276; yy331: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'v') goto yy364; + if (yych == 'v') goto yy365; goto yy276; yy332: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy365; + if (yych == '-') goto yy366; goto yy276; yy333: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy366; + if (yych == 'u') goto yy367; goto yy276; yy334: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy367; + if (yych == 'g') goto yy368; goto yy276; yy335: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy368; + if (yych == 'm') goto yy369; goto yy276; yy336: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy369; + if (yych == '-') goto yy370; goto yy276; yy337: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy370; + if (yych == 'r') goto yy371; goto yy276; yy338: ++YYCURSOR; -#line 152 "../src/conf/parse_opts.re" +#line 153 "../src/conf/parse_opts.re" { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 1449 "src/conf/parse_opts.cc" +#line 1448 "src/conf/parse_opts.cc" yy340: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy371; + if (yych == '-') goto yy372; goto yy276; yy341: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy372; + if (yych == 'y') goto yy373; goto yy276; yy342: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy373; + if (yych == 'd') goto yy374; goto yy276; yy343: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy374; + if (yych == '-') goto yy375; goto yy276; yy344: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy375; + if (yych <= 0x00) goto yy376; goto yy276; yy345: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy377; + if (yych == 't') goto yy378; goto yy276; yy346: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy378; + if (yych == 'e') goto yy379; goto yy276; yy347: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy379; + if (yych == 'e') goto yy380; goto yy276; yy348: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy380; + if (yych == 'e') goto yy381; goto yy276; yy349: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy381; + if (yych == 'o') goto yy382; goto yy276; yy350: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy382; + if (yych == 'e') goto yy383; goto yy276; yy351: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy383; + if (yych == 'b') goto yy384; goto yy276; yy352: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy384; + if (yych == 'u') goto yy385; goto yy276; yy353: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy385; + if (yych == 'a') goto yy386; goto yy276; yy354: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy386; + if (yych == 'l') goto yy387; goto yy276; yy355: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy387; + if (yych == 'e') goto yy388; goto yy276; yy356: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy388; + if (yych == 't') goto yy389; goto yy276; yy357: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy389; + if (yych == 'a') goto yy390; goto yy276; yy358: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy391; + if (yych <= 0x00) goto yy391; goto yy276; yy359: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy392; + if (yych == '-') goto yy393; goto yy276; yy360: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '1') goto yy393; - if (yych == '8') goto yy394; + if (yych == 'o') goto yy394; goto yy276; yy361: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy395; + if (yych == '1') goto yy395; + if (yych == '8') goto yy396; goto yy276; yy362: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy396; + if (yych == 'u') goto yy397; goto yy276; yy363: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy397; + if (yych == 'i') goto yy398; goto yy276; yy364: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy398; + if (yych == '-') goto yy399; goto yy276; yy365: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy399; + if (yych == 'e') goto yy400; goto yy276; yy366: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy400; + if (yych == 'i') goto yy401; goto yy276; yy367: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy401; + if (yych == 't') goto yy402; goto yy276; yy368: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy402; + if (yych == '-') goto yy403; goto yy276; yy369: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy403; - if (yych == 'd') goto yy404; + if (yych == 'i') goto yy404; goto yy276; yy370: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy405; + if (yych == 'a') goto yy405; + if (yych == 'd') goto yy406; goto yy276; yy371: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy406; + if (yych == '-') goto yy407; goto yy276; yy372: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy407; + if (yych == 'd') goto yy408; goto yy276; yy373: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy408; + if (yych == '-') goto yy409; goto yy276; yy374: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy409; + if (yych == 'i') goto yy410; goto yy276; yy375: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy411; + goto yy276; +yy376: ++YYCURSOR; #line 131 "../src/conf/parse_opts.re" { usage (); return EXIT_OK; } -#line 1596 "src/conf/parse_opts.cc" -yy377: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy410; - goto yy276; +#line 1599 "src/conf/parse_opts.cc" yy378: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy412; + if (yych <= 0x00) goto yy412; goto yy276; yy379: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy413; + if (yych == 'd') goto yy414; goto yy276; yy380: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy414; + if (yych == 'b') goto yy415; goto yy276; yy381: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy415; + if (yych == 'n') goto yy416; goto yy276; yy382: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy416; + if (yych == 'o') goto yy417; goto yy276; yy383: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy417; + if (yych == 'r') goto yy418; goto yy276; yy384: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy418; + if (yych == 'i') goto yy419; goto yy276; yy385: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy419; + if (yych == 't') goto yy420; goto yy276; yy386: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy420; + if (yych == 'b') goto yy421; goto yy276; yy387: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy421; + if (yych == 'e') goto yy422; goto yy276; yy388: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy422; + if (yych == 't') goto yy423; goto yy276; yy389: - ++YYCURSOR; -#line 149 "../src/conf/parse_opts.re" - { opts.set_tags (true); goto opt; } -#line 1649 "src/conf/parse_opts.cc" -yy391: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy423; + if (yych == '-') goto yy424; goto yy276; -yy392: +yy390: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy424; + if (yych == 'b') goto yy425; goto yy276; +yy391: + ++YYCURSOR; +#line 149 "../src/conf/parse_opts.re" + { opts.set_tags (true); goto opt; } +#line 1656 "src/conf/parse_opts.cc" yy393: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '6') goto yy425; + if (yych == 'h') goto yy426; goto yy276; yy394: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy426; + if (yych == 'd') goto yy427; goto yy276; yy395: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy428; + if (yych == '6') goto yy428; goto yy276; yy396: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy429; + if (yych <= 0x00) goto yy429; goto yy276; yy397: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy430; + if (yych == 'm') goto yy431; goto yy276; yy398: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy431; + if (yych == 'o') goto yy432; goto yy276; yy399: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy432; + if (yych == 'c') goto yy433; goto yy276; yy400: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy433; + if (yych == 'c') goto yy434; goto yy276; yy401: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy434; + if (yych == 'n') goto yy435; goto yy276; yy402: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy435; + if (yych == 'e') goto yy436; goto yy276; yy403: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy436; + if (yych == 'o') goto yy437; goto yy276; yy404: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy437; + if (yych == 'n') goto yy438; goto yy276; yy405: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy438; + if (yych == 'd') goto yy439; goto yy276; yy406: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy439; + if (yych == 'f') goto yy440; goto yy276; yy407: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy440; + if (yych == 's') goto yy441; goto yy276; yy408: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy441; + if (yych == 'o') goto yy442; goto yy276; yy409: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy442; + if (yych == 'c') goto yy443; goto yy276; yy410: - ++YYCURSOR; -#line 160 "../src/conf/parse_opts.re" - { goto opt_input; } -#line 1730 "src/conf/parse_opts.cc" -yy412: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy443; + if (yych == 'n') goto yy444; goto yy276; -yy413: +yy411: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy444; + if (yych == 'y') goto yy445; goto yy276; +yy412: + ++YYCURSOR; +#line 161 "../src/conf/parse_opts.re" + { goto opt_input; } +#line 1737 "src/conf/parse_opts.cc" yy414: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy445; + if (yych == '-') goto yy446; goto yy276; yy415: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy446; + if (yych == 'u') goto yy447; goto yy276; yy416: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'j') goto yy447; + if (yych == 'e') goto yy448; goto yy276; yy417: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy448; + if (yych == 'k') goto yy449; goto yy276; yy418: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy450; + if (yych == 's') goto yy450; goto yy276; yy419: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy451; + if (yych == 'j') goto yy451; goto yy276; yy420: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy452; + if (yych <= 0x00) goto yy452; goto yy276; yy421: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy453; + if (yych == 'l') goto yy454; goto yy276; yy422: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy454; + if (yych == '-') goto yy455; goto yy276; yy423: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy455; + if (yych == 'o') goto yy456; goto yy276; yy424: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy456; + if (yych == 'c') goto yy457; goto yy276; yy425: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy457; + if (yych == 'l') goto yy458; goto yy276; yy426: - ++YYCURSOR; -#line 156 "../src/conf/parse_opts.re" - { if (!opts.set_encoding (Enc::UTF8)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 1791 "src/conf/parse_opts.cc" -yy428: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy459; + if (yych == 'e') goto yy459; goto yy276; -yy429: +yy427: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy461; + if (yych == 'e') goto yy460; goto yy276; -yy430: +yy428: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy462; + if (yych <= 0x00) goto yy461; goto yy276; +yy429: + ++YYCURSOR; +#line 157 "../src/conf/parse_opts.re" + { if (!opts.set_encoding (Enc::UTF8)) { error_encoding (); return EXIT_FAIL; } goto opt; } +#line 1802 "src/conf/parse_opts.cc" yy431: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy463; + if (yych <= 0x00) goto yy463; goto yy276; yy432: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy464; - if (yych == 'v') goto yy465; + if (yych == 'n') goto yy465; goto yy276; yy433: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy466; + if (yych == 'h') goto yy466; goto yy276; yy434: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy467; + if (yych == 't') goto yy467; goto yy276; yy435: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy468; + if (yych == 's') goto yy468; + if (yych == 'v') goto yy469; goto yy276; yy436: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy469; + if (yych == 'd') goto yy470; goto yy276; yy437: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy470; + if (yych == 'u') goto yy471; goto yy276; yy438: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'k') goto yy471; + if (yych == 'i') goto yy472; goto yy276; yy439: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy472; + if (yych == 'f') goto yy473; goto yy276; yy440: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy473; + if (yych == 'a') goto yy474; goto yy276; yy441: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy474; + if (yych == 'k') goto yy475; goto yy276; yy442: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy475; + if (yych == 't') goto yy476; goto yy276; yy443: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy476; + if (yych == 'l') goto yy477; goto yy276; yy444: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy477; + if (yych == 'g') goto yy478; goto yy276; yy445: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy478; + if (yych == 'n') goto yy479; goto yy276; yy446: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy479; + if (yych == 'i') goto yy480; goto yy276; yy447: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy480; + if (yych == 'g') goto yy481; goto yy276; yy448: - ++YYCURSOR; -#line 157 "../src/conf/parse_opts.re" - { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; } -#line 1877 "src/conf/parse_opts.cc" -yy450: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy481; + if (yych == 'r') goto yy482; goto yy276; -yy451: +yy449: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy482; + if (yych == 'a') goto yy483; goto yy276; -yy452: +yy450: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy483; + if (yych == 'i') goto yy484; goto yy276; -yy453: +yy451: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy484; + if (yych == 'e') goto yy485; goto yy276; +yy452: + ++YYCURSOR; +#line 158 "../src/conf/parse_opts.re" + { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; } +#line 1892 "src/conf/parse_opts.cc" yy454: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy485; + if (yych == 'e') goto yy486; goto yy276; yy455: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy486; + if (yych == 'p') goto yy487; goto yy276; yy456: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy487; + if (yych == 'n') goto yy488; goto yy276; yy457: - ++YYCURSOR; -#line 155 "../src/conf/parse_opts.re" - { if (!opts.set_encoding (Enc::UTF16)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 1910 "src/conf/parse_opts.cc" -yy459: - ++YYCURSOR; -#line 133 "../src/conf/parse_opts.re" - { vernum (); return EXIT_OK; } -#line 1915 "src/conf/parse_opts.cc" -yy461: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy489; + if (yych == 'o') goto yy489; goto yy276; -yy462: +yy458: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy491; + if (yych == 'e') goto yy490; goto yy276; -yy463: +yy459: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy492; + if (yych == 'a') goto yy491; goto yy276; -yy464: +yy460: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy493; + if (yych <= 0x00) goto yy492; goto yy276; +yy461: + ++YYCURSOR; +#line 156 "../src/conf/parse_opts.re" + { if (!opts.set_encoding (Enc::UTF16)) { error_encoding (); return EXIT_FAIL; } goto opt; } +#line 1925 "src/conf/parse_opts.cc" +yy463: + ++YYCURSOR; +#line 133 "../src/conf/parse_opts.re" + { vernum (); return EXIT_OK; } +#line 1930 "src/conf/parse_opts.cc" yy465: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy494; + if (yych <= 0x00) goto yy494; goto yy276; yy466: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy495; + if (yych == 'a') goto yy496; goto yy276; yy467: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy496; + if (yych == 'o') goto yy497; goto yy276; yy468: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy497; + if (yych == 'e') goto yy498; goto yy276; yy469: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy498; + if (yych == 'e') goto yy499; goto yy276; yy470: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy499; + if (yych == '-') goto yy500; goto yy276; yy471: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy500; + if (yych == 't') goto yy501; goto yy276; yy472: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy501; + if (yych == 'm') goto yy502; goto yy276; yy473: yych = (YYCTYPE)*++YYCURSOR; @@ -1970,31 +1969,31 @@ yy474: goto yy276; yy475: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy505; + if (yych == 'i') goto yy505; goto yy276; yy476: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy506; + if (yych <= 0x00) goto yy506; goto yy276; yy477: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy507; + if (yych == 'a') goto yy508; goto yy276; yy478: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy508; + if (yych == '-') goto yy509; goto yy276; yy479: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy509; + if (yych == 't') goto yy510; goto yy276; yy480: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy510; + if (yych == 'f') goto yy511; goto yy276; yy481: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy511; + if (yych == '-') goto yy512; goto yy276; yy482: yych = (YYCTYPE)*++YYCURSOR; @@ -2002,643 +2001,684 @@ yy482: goto yy276; yy483: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy514; + if (yych == 'h') goto yy514; goto yy276; yy484: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy516; + if (yych == 'o') goto yy515; goto yy276; yy485: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy517; + if (yych == 'c') goto yy516; goto yy276; yy486: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy518; + if (yych <= 0x00) goto yy517; goto yy276; yy487: - ++YYCURSOR; -#line 153 "../src/conf/parse_opts.re" - { if (!opts.set_encoding (Enc::UTF32)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 2024 "src/conf/parse_opts.cc" -yy489: - ++YYCURSOR; -#line 132 "../src/conf/parse_opts.re" - { version (); return EXIT_OK; } -#line 2029 "src/conf/parse_opts.cc" -yy491: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy519; + if (yych == 'a') goto yy519; goto yy276; -yy492: +yy488: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy520; + if (yych <= 0x00) goto yy520; goto yy276; -yy493: +yy489: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy521; + if (yych == 'n') goto yy522; goto yy276; -yy494: +yy490: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy522; + if (yych == '-') goto yy523; goto yy276; -yy495: +yy491: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy523; + if (yych == 'd') goto yy524; goto yy276; +yy492: + ++YYCURSOR; +#line 154 "../src/conf/parse_opts.re" + { if (!opts.set_encoding (Enc::UTF32)) { error_encoding (); return EXIT_FAIL; } goto opt; } +#line 2043 "src/conf/parse_opts.cc" +yy494: + ++YYCURSOR; +#line 132 "../src/conf/parse_opts.re" + { version (); return EXIT_OK; } +#line 2048 "src/conf/parse_opts.cc" yy496: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy524; + if (yych == 'r') goto yy525; goto yy276; yy497: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy525; + if (yych == 'r') goto yy526; goto yy276; yy498: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy526; + if (yych == 'n') goto yy527; goto yy276; yy499: yych = (YYCTYPE)*++YYCURSOR; - switch (yych) { - case 'd': goto yy528; - case 'm': goto yy529; - case 'r': goto yy530; - case 't': goto yy531; - default: goto yy276; - } + if (yych == 'r') goto yy528; + goto yy276; yy500: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy532; + if (yych == 'g') goto yy529; goto yy276; yy501: - ++YYCURSOR; -#line 137 "../src/conf/parse_opts.re" - { opts.set_target (opt_t::DOT); goto opt; } -#line 2079 "src/conf/parse_opts.cc" -yy503: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy533; + if (yych == 'p') goto yy530; goto yy276; -yy504: +yy502: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy534; + if (yych == 'i') goto yy531; goto yy276; -yy505: +yy503: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy535; + if (yych <= 0x00) goto yy532; goto yy276; -yy506: +yy504: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy536; - goto yy276; -yy507: + switch (yych) { + case 'd': goto yy534; + case 'm': goto yy535; + case 'r': goto yy536; + case 't': goto yy537; + default: goto yy276; + } +yy505: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy537; + if (yych == 'p') goto yy538; goto yy276; +yy506: + ++YYCURSOR; +#line 137 "../src/conf/parse_opts.re" + { opts.set_target (opt_t::DOT); goto opt; } +#line 2098 "src/conf/parse_opts.cc" yy508: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy538; + if (yych == 's') goto yy539; goto yy276; yy509: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy539; + if (yych == 'p') goto yy540; goto yy276; yy510: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy540; + if (yych == 'a') goto yy541; goto yy276; yy511: - ++YYCURSOR; -#line 142 "../src/conf/parse_opts.re" - { opts.set_rFlag (true); goto opt; } -#line 2116 "src/conf/parse_opts.cc" -yy513: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy541; + if (yych == 's') goto yy542; goto yy276; -yy514: - ++YYCURSOR; -#line 148 "../src/conf/parse_opts.re" - { opts.set_target (opt_t::SKELETON); goto opt; } -#line 2125 "src/conf/parse_opts.cc" -yy516: +yy512: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy542; + if (yych == 'i') goto yy543; goto yy276; -yy517: +yy513: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy543; + if (yych == 't') goto yy544; goto yy276; -yy518: +yy514: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy544; + if (yych == 'e') goto yy545; goto yy276; -yy519: +yy515: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy545; + if (yych == 'n') goto yy546; goto yy276; -yy520: +yy516: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy546; + if (yych == 't') goto yy547; goto yy276; -yy521: +yy517: + ++YYCURSOR; +#line 142 "../src/conf/parse_opts.re" + { opts.set_rFlag (true); goto opt; } +#line 2139 "src/conf/parse_opts.cc" +yy519: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy547; + if (yych == 's') goto yy548; goto yy276; +yy520: + ++YYCURSOR; +#line 148 "../src/conf/parse_opts.re" + { opts.set_target (opt_t::SKELETON); goto opt; } +#line 2148 "src/conf/parse_opts.cc" yy522: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy548; + if (yych == 'd') goto yy549; goto yy276; yy523: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy549; + if (yych == 's') goto yy550; goto yy276; yy524: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy550; + if (yych == 'e') goto yy551; goto yy276; yy525: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'z') goto yy551; + if (yych == 's') goto yy552; goto yy276; yy526: - ++YYCURSOR; -#line 169 "../src/conf/parse_opts.re" - { opts.set_dump_adfa(true); goto opt; } -#line 2170 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy553; + goto yy276; +yy527: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy554; + goto yy276; yy528: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy552; + if (yych == 't') goto yy555; goto yy276; yy529: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy553; + if (yych == 'o') goto yy556; goto yy276; yy530: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy554; + if (yych == 'u') goto yy557; goto yy276; yy531: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy555; + if (yych == 'z') goto yy558; goto yy276; yy532: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy556; - goto yy276; -yy533: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy558; - goto yy276; + ++YYCURSOR; +#line 170 "../src/conf/parse_opts.re" + { opts.set_dump_adfa(true); goto opt; } +#line 2193 "src/conf/parse_opts.cc" yy534: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy559; + if (yych == 'e') goto yy559; goto yy276; yy535: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'x') goto yy560; + if (yych == 'i') goto yy560; goto yy276; yy536: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy561; + if (yych == 'a') goto yy561; goto yy276; yy537: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy563; + if (yych == 'a') goto yy562; goto yy276; yy538: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy564; + if (yych <= 0x00) goto yy563; goto yy276; yy539: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy565; + if (yych == 's') goto yy565; goto yy276; yy540: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy567; + if (yych == 'o') goto yy566; goto yy276; yy541: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy568; + if (yych == 'x') goto yy567; goto yy276; yy542: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy569; + if (yych <= 0x00) goto yy568; goto yy276; yy543: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy570; + if (yych == 'n') goto yy570; goto yy276; yy544: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy571; + if (yych == 'i') goto yy571; goto yy276; yy545: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy572; + if (yych == 'a') goto yy572; goto yy276; yy546: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy574; + if (yych <= 0x00) goto yy573; goto yy276; yy547: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy576; + if (yych == 'i') goto yy575; goto yy276; yy548: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy577; + if (yych == 's') goto yy576; goto yy276; yy549: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy578; + if (yych == 'i') goto yy577; goto yy276; yy550: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy579; + if (yych == 't') goto yy578; goto yy276; yy551: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy580; + if (yych == 'r') goto yy579; goto yy276; yy552: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy581; + if (yych <= 0x00) goto yy580; goto yy276; yy553: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy582; + if (yych <= 0x00) goto yy582; goto yy276; yy554: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'w') goto yy583; + if (yych == 'i') goto yy584; goto yy276; yy555: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy584; + if (yych == 'e') goto yy585; goto yy276; yy556: - ++YYCURSOR; -#line 151 "../src/conf/parse_opts.re" - { opts.set_eager_skip(true); goto opt; } -#line 2287 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy586; + goto yy276; +yy557: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy587; + goto yy276; yy558: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy585; + if (yych == 'a') goto yy588; goto yy276; yy559: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy587; + if (yych == 't') goto yy589; goto yy276; yy560: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy588; + if (yych == 'n') goto yy590; goto yy276; yy561: - ++YYCURSOR; -#line 143 "../src/conf/parse_opts.re" - { opts.set_sFlag (true); goto opt; } -#line 2304 "src/conf/parse_opts.cc" -yy563: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy590; + if (yych == 'w') goto yy591; goto yy276; -yy564: +yy562: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy591; + if (yych == 'g') goto yy592; goto yy276; -yy565: +yy563: ++YYCURSOR; -#line 145 "../src/conf/parse_opts.re" - { opts.set_version (false); goto opt; } -#line 2317 "src/conf/parse_opts.cc" -yy567: +#line 152 "../src/conf/parse_opts.re" + { opts.set_eager_skip(true); goto opt; } +#line 2314 "src/conf/parse_opts.cc" +yy565: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'v') goto yy592; + if (yych <= 0x00) goto yy593; goto yy276; -yy568: +yy566: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy593; + if (yych == 'l') goto yy595; goto yy276; -yy569: +yy567: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy595; + if (yych <= 0x00) goto yy596; goto yy276; +yy568: + ++YYCURSOR; +#line 143 "../src/conf/parse_opts.re" + { opts.set_sFlag (true); goto opt; } +#line 2331 "src/conf/parse_opts.cc" yy570: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy596; + if (yych == 'f') goto yy598; goto yy276; yy571: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy597; + if (yych == 'o') goto yy599; goto yy276; yy572: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'd') goto yy600; + goto yy276; +yy573: ++YYCURSOR; -#line 154 "../src/conf/parse_opts.re" - { if (!opts.set_encoding (Enc::UCS2)) { error_encoding (); return EXIT_FAIL; } goto opt; } -#line 2342 "src/conf/parse_opts.cc" -yy574: - ++YYCURSOR; -#line 134 "../src/conf/parse_opts.re" - { opts.set_bFlag (true); goto opt; } -#line 2347 "src/conf/parse_opts.cc" +#line 145 "../src/conf/parse_opts.re" + { opts.set_version (false); goto opt; } +#line 2348 "src/conf/parse_opts.cc" +yy575: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'v') goto yy601; + goto yy276; yy576: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy599; + if (yych <= 0x00) goto yy602; goto yy276; yy577: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy600; + if (yych == 't') goto yy604; goto yy276; yy578: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy601; + if (yych == 'a') goto yy605; goto yy276; yy579: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy602; + if (yych <= 0x00) goto yy606; goto yy276; yy580: + ++YYCURSOR; +#line 155 "../src/conf/parse_opts.re" + { if (!opts.set_encoding (Enc::UCS2)) { error_encoding (); return EXIT_FAIL; } goto opt; } +#line 2373 "src/conf/parse_opts.cc" +yy582: + ++YYCURSOR; +#line 134 "../src/conf/parse_opts.re" + { opts.set_bFlag (true); goto opt; } +#line 2378 "src/conf/parse_opts.cc" +yy584: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy604; + if (yych == 't') goto yy608; goto yy276; -yy581: +yy585: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy605; + if (yych == 'd') goto yy609; goto yy276; -yy582: +yy586: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy607; + if (yych == 'o') goto yy610; goto yy276; -yy583: +yy587: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy609; + if (yych <= 0x00) goto yy611; goto yy276; -yy584: +yy588: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy611; + if (yych == 't') goto yy613; goto yy276; -yy585: - ++YYCURSOR; -#line 161 "../src/conf/parse_opts.re" - { goto opt_empty_class; } -#line 2388 "src/conf/parse_opts.cc" -yy587: +yy589: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy612; + if (yych <= 0x00) goto yy614; goto yy276; -yy588: - ++YYCURSOR; -#line 139 "../src/conf/parse_opts.re" - { opts.set_FFlag (true); goto opt; } -#line 2397 "src/conf/parse_opts.cc" yy590: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy613; + if (yych <= 0x00) goto yy616; goto yy276; yy591: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy614; + if (yych <= 0x00) goto yy618; goto yy276; yy592: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy615; + if (yych == 'o') goto yy620; goto yy276; yy593: ++YYCURSOR; -#line 163 "../src/conf/parse_opts.re" - { goto opt; } -#line 2414 "src/conf/parse_opts.cc" +#line 162 "../src/conf/parse_opts.re" + { goto opt_empty_class; } +#line 2419 "src/conf/parse_opts.cc" yy595: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy616; + if (yych == 'i') goto yy621; goto yy276; yy596: + ++YYCURSOR; +#line 139 "../src/conf/parse_opts.re" + { opts.set_FFlag (true); goto opt; } +#line 2428 "src/conf/parse_opts.cc" +yy598: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy617; + if (yych == 'o') goto yy622; goto yy276; -yy597: - ++YYCURSOR; -#line 158 "../src/conf/parse_opts.re" - { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; } -#line 2427 "src/conf/parse_opts.cc" yy599: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy618; + if (yych == 'n') goto yy623; goto yy276; yy600: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy619; + if (yych <= 0x00) goto yy624; goto yy276; yy601: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy621; + if (yych == 'e') goto yy626; goto yy276; yy602: ++YYCURSOR; -#line 136 "../src/conf/parse_opts.re" - { opts.set_dFlag (true); goto opt; } -#line 2444 "src/conf/parse_opts.cc" +#line 164 "../src/conf/parse_opts.re" + { goto opt; } +#line 2449 "src/conf/parse_opts.cc" yy604: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy622; + if (yych == 'i') goto yy627; goto yy276; yy605: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy628; + goto yy276; +yy606: ++YYCURSOR; -#line 166 "../src/conf/parse_opts.re" +#line 159 "../src/conf/parse_opts.re" + { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; } +#line 2462 "src/conf/parse_opts.cc" +yy608: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy629; + goto yy276; +yy609: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy630; + goto yy276; +yy610: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy632; + goto yy276; +yy611: + ++YYCURSOR; +#line 136 "../src/conf/parse_opts.re" + { opts.set_dFlag (true); goto opt; } +#line 2479 "src/conf/parse_opts.cc" +yy613: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy633; + goto yy276; +yy614: + ++YYCURSOR; +#line 167 "../src/conf/parse_opts.re" { opts.set_dump_dfa_det(true); goto opt; } -#line 2453 "src/conf/parse_opts.cc" -yy607: +#line 2488 "src/conf/parse_opts.cc" +yy616: ++YYCURSOR; -#line 168 "../src/conf/parse_opts.re" +#line 169 "../src/conf/parse_opts.re" { opts.set_dump_dfa_min(true); goto opt; } -#line 2458 "src/conf/parse_opts.cc" -yy609: +#line 2493 "src/conf/parse_opts.cc" +yy618: ++YYCURSOR; -#line 165 "../src/conf/parse_opts.re" +#line 166 "../src/conf/parse_opts.re" { opts.set_dump_dfa_raw(true); goto opt; } -#line 2463 "src/conf/parse_opts.cc" -yy611: +#line 2498 "src/conf/parse_opts.cc" +yy620: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy623; + if (yych == 'p') goto yy634; goto yy276; -yy612: +yy621: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy624; + if (yych == 'c') goto yy635; goto yy276; -yy613: +yy622: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy625; + if (yych <= 0x00) goto yy636; goto yy276; -yy614: +yy623: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy627; + if (yych == '-') goto yy638; goto yy276; -yy615: +yy624: + ++YYCURSOR; +#line 150 "../src/conf/parse_opts.re" + { opts.set_lookahead(false); goto opt; } +#line 2519 "src/conf/parse_opts.cc" +yy626: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy628; + if (yych == '-') goto yy639; goto yy276; -yy616: +yy627: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy629; + if (yych == 'o') goto yy640; goto yy276; -yy617: +yy628: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy630; + if (yych == 'e') goto yy641; goto yy276; -yy618: +yy629: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'v') goto yy631; + if (yych == 'v') goto yy642; goto yy276; -yy619: +yy630: ++YYCURSOR; #line 147 "../src/conf/parse_opts.re" { opts.set_bCaseInverted (true); goto opt; } -#line 2500 "src/conf/parse_opts.cc" -yy621: +#line 2540 "src/conf/parse_opts.cc" +yy632: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy632; + if (yych <= 0x00) goto yy643; goto yy276; -yy622: +yy633: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy634; + if (yych == 'o') goto yy645; goto yy276; -yy623: +yy634: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy635; + if (yych == 't') goto yy646; goto yy276; -yy624: +yy635: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy636; + if (yych == 'y') goto yy647; goto yy276; -yy625: +yy636: ++YYCURSOR; #line 141 "../src/conf/parse_opts.re" { opts.set_iFlag (true); goto opt; } -#line 2521 "src/conf/parse_opts.cc" -yy627: +#line 2561 "src/conf/parse_opts.cc" +yy638: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy637; + if (yych == 'd') goto yy648; goto yy276; -yy628: +yy639: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy638; + if (yych == 'm') goto yy649; goto yy276; -yy629: +yy640: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy639; + if (yych == 'n') goto yy650; goto yy276; -yy630: +yy641: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy640; + if (yych <= 0x00) goto yy651; goto yy276; -yy631: +yy642: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy642; + if (yych == 'e') goto yy653; goto yy276; -yy632: +yy643: ++YYCURSOR; #line 140 "../src/conf/parse_opts.re" { opts.set_gFlag (true); goto opt; } -#line 2546 "src/conf/parse_opts.cc" -yy634: +#line 2586 "src/conf/parse_opts.cc" +yy645: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy643; + if (yych == 'n') goto yy654; goto yy276; -yy635: +yy646: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy644; + if (yych <= 0x00) goto yy655; goto yy276; -yy636: +yy647: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy646; + if (yych <= 0x00) goto yy657; goto yy276; -yy637: +yy648: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy648; + if (yych == 'a') goto yy659; goto yy276; -yy638: +yy649: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy649; + if (yych == 'a') goto yy660; goto yy276; -yy639: +yy650: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy650; + if (yych == 's') goto yy661; goto yy276; -yy640: +yy651: ++YYCURSOR; #line 138 "../src/conf/parse_opts.re" { opts.set_fFlag (true); goto opt; } -#line 2575 "src/conf/parse_opts.cc" -yy642: +#line 2615 "src/conf/parse_opts.cc" +yy653: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy651; + if (yych <= 0x00) goto yy662; goto yy276; -yy643: +yy654: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy653; + if (yych <= 0x00) goto yy664; goto yy276; -yy644: +yy655: ++YYCURSOR; -#line 167 "../src/conf/parse_opts.re" +#line 168 "../src/conf/parse_opts.re" { opts.set_dump_dfa_tagopt(true); goto opt; } -#line 2588 "src/conf/parse_opts.cc" -yy646: +#line 2628 "src/conf/parse_opts.cc" +yy657: ++YYCURSOR; -#line 159 "../src/conf/parse_opts.re" +#line 160 "../src/conf/parse_opts.re" { goto opt_encoding_policy; } -#line 2593 "src/conf/parse_opts.cc" -yy648: +#line 2633 "src/conf/parse_opts.cc" +yy659: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy655; + if (yych == 't') goto yy666; goto yy276; -yy649: +yy660: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy656; + if (yych == 'p') goto yy667; goto yy276; -yy650: +yy661: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy657; + if (yych <= 0x00) goto yy668; goto yy276; -yy651: +yy662: ++YYCURSOR; #line 146 "../src/conf/parse_opts.re" { opts.set_bCaseInsensitive (true); goto opt; } -#line 2610 "src/conf/parse_opts.cc" -yy653: +#line 2650 "src/conf/parse_opts.cc" +yy664: ++YYCURSOR; -#line 162 "../src/conf/parse_opts.re" +#line 163 "../src/conf/parse_opts.re" { goto opt_dfa_minimization; } -#line 2615 "src/conf/parse_opts.cc" -yy655: +#line 2655 "src/conf/parse_opts.cc" +yy666: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy659; + if (yych == 'e') goto yy670; goto yy276; -yy656: +yy667: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy660; + if (yych == 'p') goto yy671; goto yy276; -yy657: +yy668: ++YYCURSOR; #line 135 "../src/conf/parse_opts.re" { opts.set_cFlag (true); goto opt; } -#line 2628 "src/conf/parse_opts.cc" -yy659: +#line 2668 "src/conf/parse_opts.cc" +yy670: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy661; + if (yych <= 0x00) goto yy672; goto yy276; -yy660: +yy671: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy663; + if (yych == 'i') goto yy674; goto yy276; -yy661: +yy672: ++YYCURSOR; #line 144 "../src/conf/parse_opts.re" { opts.set_bNoGenerationDate (true); goto opt; } -#line 2641 "src/conf/parse_opts.cc" -yy663: +#line 2681 "src/conf/parse_opts.cc" +yy674: yych = (YYCTYPE)*++YYCURSOR; if (yych != 'n') goto yy276; yych = (YYCTYPE)*++YYCURSOR; @@ -2646,16 +2686,16 @@ yy663: yych = (YYCTYPE)*++YYCURSOR; if (yych >= 0x01) goto yy276; ++YYCURSOR; -#line 150 "../src/conf/parse_opts.re" +#line 151 "../src/conf/parse_opts.re" { opts.set_bijective_mapping(false); goto opt; } -#line 2652 "src/conf/parse_opts.cc" +#line 2692 "src/conf/parse_opts.cc" } -#line 170 "../src/conf/parse_opts.re" +#line 171 "../src/conf/parse_opts.re" opt_output: -#line 2659 "src/conf/parse_opts.cc" +#line 2699 "src/conf/parse_opts.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -2693,32 +2733,32 @@ opt_output: 128, 128, 128, 128, 128, 128, 128, 128, }; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x00) goto yy670; - if (yych != '-') goto yy672; -yy670: + if (yych <= 0x00) goto yy681; + if (yych != '-') goto yy683; +yy681: ++YYCURSOR; -#line 175 "../src/conf/parse_opts.re" +#line 176 "../src/conf/parse_opts.re" { error ("bad argument to option -o, --output: %s", *argv); return EXIT_FAIL; } -#line 2706 "src/conf/parse_opts.cc" -yy672: +#line 2746 "src/conf/parse_opts.cc" +yy683: yych = (YYCTYPE)*++YYCURSOR; if (yybm[0+yych] & 128) { - goto yy672; + goto yy683; } ++YYCURSOR; -#line 179 "../src/conf/parse_opts.re" +#line 180 "../src/conf/parse_opts.re" { opts.set_output_file(*argv); goto opt; } -#line 2715 "src/conf/parse_opts.cc" +#line 2755 "src/conf/parse_opts.cc" } -#line 180 "../src/conf/parse_opts.re" +#line 181 "../src/conf/parse_opts.re" opt_header: -#line 2722 "src/conf/parse_opts.cc" +#line 2762 "src/conf/parse_opts.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -2756,27 +2796,27 @@ opt_header: 128, 128, 128, 128, 128, 128, 128, 128, }; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x00) goto yy678; - if (yych != '-') goto yy680; -yy678: + if (yych <= 0x00) goto yy689; + if (yych != '-') goto yy691; +yy689: ++YYCURSOR; -#line 185 "../src/conf/parse_opts.re" +#line 186 "../src/conf/parse_opts.re" { error ("bad argument to option -t, --type-header: %s", *argv); return EXIT_FAIL; } -#line 2769 "src/conf/parse_opts.cc" -yy680: +#line 2809 "src/conf/parse_opts.cc" +yy691: yych = (YYCTYPE)*++YYCURSOR; if (yybm[0+yych] & 128) { - goto yy680; + goto yy691; } ++YYCURSOR; -#line 189 "../src/conf/parse_opts.re" +#line 190 "../src/conf/parse_opts.re" { opts.set_header_file (*argv); goto opt; } -#line 2778 "src/conf/parse_opts.cc" +#line 2818 "src/conf/parse_opts.cc" } -#line 190 "../src/conf/parse_opts.re" +#line 191 "../src/conf/parse_opts.re" opt_encoding_policy: @@ -2786,115 +2826,115 @@ opt_encoding_policy: return EXIT_FAIL; } -#line 2790 "src/conf/parse_opts.cc" +#line 2830 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; if (yych <= 'h') { - if (yych == 'f') goto yy688; + if (yych == 'f') goto yy699; } else { - if (yych <= 'i') goto yy689; - if (yych == 's') goto yy690; + if (yych <= 'i') goto yy700; + if (yych == 's') goto yy701; } ++YYCURSOR; -yy687: -#line 200 "../src/conf/parse_opts.re" +yy698: +#line 201 "../src/conf/parse_opts.re" { error ("bad argument to option --encoding-policy (expected: ignore | substitute | fail): %s", *argv); return EXIT_FAIL; } -#line 2807 "src/conf/parse_opts.cc" -yy688: +#line 2847 "src/conf/parse_opts.cc" +yy699: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy691; - goto yy687; -yy689: + if (yych == 'a') goto yy702; + goto yy698; +yy700: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'g') goto yy693; - goto yy687; -yy690: + if (yych == 'g') goto yy704; + goto yy698; +yy701: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'u') goto yy694; - goto yy687; -yy691: + if (yych == 'u') goto yy705; + goto yy698; +yy702: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy695; -yy692: + if (yych == 'i') goto yy706; +yy703: YYCURSOR = YYMARKER; - goto yy687; -yy693: + goto yy698; +yy704: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy696; - goto yy692; -yy694: + if (yych == 'n') goto yy707; + goto yy703; +yy705: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy697; - goto yy692; -yy695: + if (yych == 'b') goto yy708; + goto yy703; +yy706: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy698; - goto yy692; -yy696: + if (yych == 'l') goto yy709; + goto yy703; +yy707: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy699; - goto yy692; -yy697: + if (yych == 'o') goto yy710; + goto yy703; +yy708: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy700; - goto yy692; -yy698: + if (yych == 's') goto yy711; + goto yy703; +yy709: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy701; - goto yy692; -yy699: + if (yych <= 0x00) goto yy712; + goto yy703; +yy710: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy703; - goto yy692; -yy700: + if (yych == 'r') goto yy714; + goto yy703; +yy711: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy704; - goto yy692; -yy701: + if (yych == 't') goto yy715; + goto yy703; +yy712: ++YYCURSOR; -#line 206 "../src/conf/parse_opts.re" +#line 207 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_FAIL); goto opt; } -#line 2862 "src/conf/parse_opts.cc" -yy703: +#line 2902 "src/conf/parse_opts.cc" +yy714: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy705; - goto yy692; -yy704: + if (yych == 'e') goto yy716; + goto yy703; +yy715: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy706; - goto yy692; -yy705: + if (yych == 'i') goto yy717; + goto yy703; +yy716: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy707; - goto yy692; -yy706: + if (yych <= 0x00) goto yy718; + goto yy703; +yy717: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy709; - goto yy692; -yy707: + if (yych == 't') goto yy720; + goto yy703; +yy718: ++YYCURSOR; -#line 204 "../src/conf/parse_opts.re" +#line 205 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_IGNORE); goto opt; } -#line 2883 "src/conf/parse_opts.cc" -yy709: +#line 2923 "src/conf/parse_opts.cc" +yy720: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy692; + if (yych != 'u') goto yy703; yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy692; + if (yych != 't') goto yy703; yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy692; + if (yych != 'e') goto yy703; yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy692; + if (yych >= 0x01) goto yy703; ++YYCURSOR; -#line 205 "../src/conf/parse_opts.re" +#line 206 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; } -#line 2896 "src/conf/parse_opts.cc" +#line 2936 "src/conf/parse_opts.cc" } -#line 207 "../src/conf/parse_opts.re" +#line 208 "../src/conf/parse_opts.re" opt_input: @@ -2904,86 +2944,86 @@ opt_input: return EXIT_FAIL; } -#line 2908 "src/conf/parse_opts.cc" +#line 2948 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 'b') goto yy717; - if (yych <= 'c') goto yy719; - if (yych <= 'd') goto yy720; -yy717: + if (yych <= 'b') goto yy728; + if (yych <= 'c') goto yy730; + if (yych <= 'd') goto yy731; +yy728: ++YYCURSOR; -yy718: -#line 217 "../src/conf/parse_opts.re" +yy729: +#line 218 "../src/conf/parse_opts.re" { error ("bad argument to option --input (expected: default | custom): %s", *argv); return EXIT_FAIL; } -#line 2923 "src/conf/parse_opts.cc" -yy719: +#line 2963 "src/conf/parse_opts.cc" +yy730: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'u') goto yy721; - goto yy718; -yy720: + if (yych == 'u') goto yy732; + goto yy729; +yy731: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy723; - goto yy718; -yy721: + if (yych == 'e') goto yy734; + goto yy729; +yy732: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy724; -yy722: + if (yych == 's') goto yy735; +yy733: YYCURSOR = YYMARKER; - goto yy718; -yy723: + goto yy729; +yy734: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy725; - goto yy722; -yy724: + if (yych == 'f') goto yy736; + goto yy733; +yy735: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy726; - goto yy722; -yy725: + if (yych == 't') goto yy737; + goto yy733; +yy736: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy727; - goto yy722; -yy726: + if (yych == 'a') goto yy738; + goto yy733; +yy737: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy728; - goto yy722; -yy727: + if (yych == 'o') goto yy739; + goto yy733; +yy738: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy729; - goto yy722; -yy728: + if (yych == 'u') goto yy740; + goto yy733; +yy739: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy730; - goto yy722; -yy729: + if (yych == 'm') goto yy741; + goto yy733; +yy740: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy731; - goto yy722; -yy730: + if (yych == 'l') goto yy742; + goto yy733; +yy741: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy732; - goto yy722; -yy731: + if (yych <= 0x00) goto yy743; + goto yy733; +yy742: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy734; - goto yy722; -yy732: + if (yych == 't') goto yy745; + goto yy733; +yy743: ++YYCURSOR; -#line 222 "../src/conf/parse_opts.re" +#line 223 "../src/conf/parse_opts.re" { opts.set_input_api(INPUT_CUSTOM); goto opt; } -#line 2978 "src/conf/parse_opts.cc" -yy734: +#line 3018 "src/conf/parse_opts.cc" +yy745: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy722; + if (yych >= 0x01) goto yy733; ++YYCURSOR; -#line 221 "../src/conf/parse_opts.re" +#line 222 "../src/conf/parse_opts.re" { opts.set_input_api(INPUT_DEFAULT); goto opt; } -#line 2985 "src/conf/parse_opts.cc" +#line 3025 "src/conf/parse_opts.cc" } -#line 223 "../src/conf/parse_opts.re" +#line 224 "../src/conf/parse_opts.re" opt_empty_class: @@ -2993,120 +3033,120 @@ opt_empty_class: return EXIT_FAIL; } -#line 2997 "src/conf/parse_opts.cc" +#line 3037 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; - if (yych == 'e') goto yy741; - if (yych == 'm') goto yy742; + if (yych == 'e') goto yy752; + if (yych == 'm') goto yy753; ++YYCURSOR; -yy740: -#line 233 "../src/conf/parse_opts.re" +yy751: +#line 234 "../src/conf/parse_opts.re" { error ("bad argument to option --empty-class (expected: match-empty | match-none | error): %s", *argv); return EXIT_FAIL; } -#line 3010 "src/conf/parse_opts.cc" -yy741: +#line 3050 "src/conf/parse_opts.cc" +yy752: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'r') goto yy743; - goto yy740; -yy742: + if (yych == 'r') goto yy754; + goto yy751; +yy753: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy745; - goto yy740; -yy743: + if (yych == 'a') goto yy756; + goto yy751; +yy754: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy746; -yy744: + if (yych == 'r') goto yy757; +yy755: YYCURSOR = YYMARKER; - goto yy740; -yy745: + goto yy751; +yy756: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy747; - goto yy744; -yy746: + if (yych == 't') goto yy758; + goto yy755; +yy757: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy748; - goto yy744; -yy747: + if (yych == 'o') goto yy759; + goto yy755; +yy758: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy749; - goto yy744; -yy748: + if (yych == 'c') goto yy760; + goto yy755; +yy759: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy750; - goto yy744; -yy749: + if (yych == 'r') goto yy761; + goto yy755; +yy760: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy751; - goto yy744; -yy750: + if (yych == 'h') goto yy762; + goto yy755; +yy761: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy752; - goto yy744; -yy751: + if (yych <= 0x00) goto yy763; + goto yy755; +yy762: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy754; - goto yy744; -yy752: + if (yych == '-') goto yy765; + goto yy755; +yy763: ++YYCURSOR; -#line 239 "../src/conf/parse_opts.re" +#line 240 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_ERROR); goto opt; } -#line 3057 "src/conf/parse_opts.cc" -yy754: +#line 3097 "src/conf/parse_opts.cc" +yy765: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy755; - if (yych == 'n') goto yy756; - goto yy744; -yy755: + if (yych == 'e') goto yy766; + if (yych == 'n') goto yy767; + goto yy755; +yy766: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy757; - goto yy744; -yy756: + if (yych == 'm') goto yy768; + goto yy755; +yy767: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy758; - goto yy744; -yy757: + if (yych == 'o') goto yy769; + goto yy755; +yy768: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy759; - goto yy744; -yy758: + if (yych == 'p') goto yy770; + goto yy755; +yy769: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy760; - goto yy744; -yy759: + if (yych == 'n') goto yy771; + goto yy755; +yy770: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy761; - goto yy744; -yy760: + if (yych == 't') goto yy772; + goto yy755; +yy771: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy762; - goto yy744; -yy761: + if (yych == 'e') goto yy773; + goto yy755; +yy772: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy763; - goto yy744; -yy762: + if (yych == 'y') goto yy774; + goto yy755; +yy773: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy764; - goto yy744; -yy763: + if (yych <= 0x00) goto yy775; + goto yy755; +yy774: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy766; - goto yy744; -yy764: + if (yych <= 0x00) goto yy777; + goto yy755; +yy775: ++YYCURSOR; -#line 238 "../src/conf/parse_opts.re" +#line 239 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE); goto opt; } -#line 3103 "src/conf/parse_opts.cc" -yy766: +#line 3143 "src/conf/parse_opts.cc" +yy777: ++YYCURSOR; -#line 237 "../src/conf/parse_opts.re" +#line 238 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_EMPTY); goto opt; } -#line 3108 "src/conf/parse_opts.cc" +#line 3148 "src/conf/parse_opts.cc" } -#line 240 "../src/conf/parse_opts.re" +#line 241 "../src/conf/parse_opts.re" opt_dfa_minimization: @@ -3116,74 +3156,74 @@ opt_dfa_minimization: return EXIT_FAIL; } -#line 3120 "src/conf/parse_opts.cc" +#line 3160 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; - if (yych == 'm') goto yy772; - if (yych == 't') goto yy773; + if (yych == 'm') goto yy783; + if (yych == 't') goto yy784; ++YYCURSOR; -yy771: -#line 250 "../src/conf/parse_opts.re" +yy782: +#line 251 "../src/conf/parse_opts.re" { error ("bad argument to option --dfa-minimization (expected: table | moore): %s", *argv); return EXIT_FAIL; } -#line 3133 "src/conf/parse_opts.cc" -yy772: +#line 3173 "src/conf/parse_opts.cc" +yy783: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'o') goto yy774; - goto yy771; -yy773: + if (yych == 'o') goto yy785; + goto yy782; +yy784: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy776; - goto yy771; -yy774: + if (yych == 'a') goto yy787; + goto yy782; +yy785: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy777; -yy775: + if (yych == 'o') goto yy788; +yy786: YYCURSOR = YYMARKER; - goto yy771; -yy776: + goto yy782; +yy787: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy778; - goto yy775; -yy777: + if (yych == 'b') goto yy789; + goto yy786; +yy788: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy779; - goto yy775; -yy778: + if (yych == 'r') goto yy790; + goto yy786; +yy789: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy780; - goto yy775; -yy779: + if (yych == 'l') goto yy791; + goto yy786; +yy790: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy781; - goto yy775; -yy780: + if (yych == 'e') goto yy792; + goto yy786; +yy791: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy782; - goto yy775; -yy781: + if (yych == 'e') goto yy793; + goto yy786; +yy792: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy783; - goto yy775; -yy782: + if (yych <= 0x00) goto yy794; + goto yy786; +yy793: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy785; - goto yy775; -yy783: + if (yych <= 0x00) goto yy796; + goto yy786; +yy794: ++YYCURSOR; -#line 255 "../src/conf/parse_opts.re" +#line 256 "../src/conf/parse_opts.re" { opts.set_dfa_minimization (DFA_MINIMIZATION_MOORE); goto opt; } -#line 3180 "src/conf/parse_opts.cc" -yy785: +#line 3220 "src/conf/parse_opts.cc" +yy796: ++YYCURSOR; -#line 254 "../src/conf/parse_opts.re" +#line 255 "../src/conf/parse_opts.re" { opts.set_dfa_minimization (DFA_MINIMIZATION_TABLE); goto opt; } -#line 3185 "src/conf/parse_opts.cc" +#line 3225 "src/conf/parse_opts.cc" } -#line 256 "../src/conf/parse_opts.re" +#line 257 "../src/conf/parse_opts.re" end: diff --git a/re2c/bootstrap/src/parse/lex_conf.cc b/re2c/bootstrap/src/parse/lex_conf.cc index bb815249..b3b3df41 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 Mon Jan 16 13:43:26 2017 */ +/* Generated by re2c 0.16 on Tue Jan 17 15:33:19 2017 */ #line 1 "../src/parse/lex_conf.re" #include "src/util/c99_stdint.h" #include @@ -184,35 +184,35 @@ yy14: goto yy192; } } else { - goto yy287; + goto yy288; } } else { if (yyaccept <= 16) { if (yyaccept == 15) { - goto yy365; + goto yy367; } else { - goto yy442; + goto yy445; } } else { - goto yy553; + goto yy558; } } } else { if (yyaccept <= 20) { if (yyaccept <= 19) { if (yyaccept == 18) { - goto yy613; + goto yy619; } else { - goto yy656; + goto yy663; } } else { - goto yy663; + goto yy670; } } else { if (yyaccept == 21) { - goto yy749; + goto yy759; } else { - goto yy752; + goto yy762; } } } @@ -563,7 +563,7 @@ yy89: goto yy14; yy90: ++cur; -#line 66 "../src/parse/lex_conf.re" +#line 67 "../src/parse/lex_conf.re" { lex_conf_enc(Enc::UTF8); return; } #line 569 "src/parse/lex_conf.cc" yy92: @@ -625,7 +625,7 @@ yy106: if (yych <= 'n') goto yy157; } yy107: -#line 62 "../src/parse/lex_conf.re" +#line 63 "../src/parse/lex_conf.re" { lex_conf_enc(Enc::EBCDIC); return; } #line 631 "src/parse/lex_conf.cc" yy108: @@ -659,7 +659,7 @@ yy115: yych = (unsigned char)*(ptr = ++cur); if (yych == 'u') goto yy162; yy116: -#line 68 "../src/parse/lex_conf.re" +#line 69 "../src/parse/lex_conf.re" { opts.set_output_file(lex_conf_string()); return; } #line 665 "src/parse/lex_conf.cc" yy117: @@ -685,7 +685,7 @@ yy121: if (yych == 'a') goto yy166; if (yych == 'y') goto yy167; yy122: -#line 69 "../src/parse/lex_conf.re" +#line 70 "../src/parse/lex_conf.re" { opts.set_header_file(lex_conf_string()); return; } #line 691 "src/parse/lex_conf.cc" yy123: @@ -694,7 +694,7 @@ yy123: if (yych == 'n') goto yy168; if (yych == 't') goto yy169; yy124: -#line 63 "../src/parse/lex_conf.re" +#line 64 "../src/parse/lex_conf.re" { lex_conf_enc(Enc::UTF32); return; } #line 700 "src/parse/lex_conf.cc" yy125: @@ -702,12 +702,12 @@ yy125: yych = (unsigned char)*(ptr = ++cur); if (yych == 'i') goto yy170; yy126: -#line 64 "../src/parse/lex_conf.re" +#line 65 "../src/parse/lex_conf.re" { lex_conf_enc(Enc::UCS2); return; } #line 708 "src/parse/lex_conf.cc" yy127: ++cur; -#line 65 "../src/parse/lex_conf.re" +#line 66 "../src/parse/lex_conf.re" { lex_conf_enc(Enc::UTF16); return; } #line 713 "src/parse/lex_conf.cc" yy129: @@ -936,7 +936,7 @@ yy181: goto yy14; yy182: ++cur; -#line 102 "../src/parse/lex_conf.re" +#line 103 "../src/parse/lex_conf.re" { opts.set_yybmHexTable (lex_conf_bool()); return; } #line 942 "src/parse/lex_conf.cc" yy184: @@ -972,7 +972,7 @@ yy191: yych = (unsigned char)*(ptr = ++cur); if (yych == '@') goto yy241; yy192: -#line 86 "../src/parse/lex_conf.re" +#line 87 "../src/parse/lex_conf.re" { opts.set_condGoto (lex_conf_string ()); return; } #line 978 "src/parse/lex_conf.cc" yy193: @@ -1051,37 +1051,36 @@ yy208: goto yy14; yy209: yych = (unsigned char)*++cur; - if (yych <= 'f') { - if (yych == 'd') goto yy267; - goto yy14; - } else { - if (yych <= 'g') goto yy268; - if (yych == 'v') goto yy269; - goto yy14; + switch (yych) { + case 'd': goto yy267; + case 'g': goto yy268; + case 'l': goto yy269; + case 'v': goto yy270; + default: goto yy14; } yy210: yych = (unsigned char)*++cur; - if (yych == '-') goto yy270; + if (yych == '-') goto yy271; goto yy14; yy211: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy271; + if (yych == 'p') goto yy272; goto yy14; yy212: yych = (unsigned char)*++cur; - if (yych == 's') goto yy272; + if (yych == 's') goto yy273; goto yy14; yy213: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy273; + if (yych == 'l') goto yy274; goto yy14; yy214: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy274; + if (yych == 'r') goto yy275; goto yy14; yy215: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy275; + if (yych == 'r') goto yy276; goto yy14; yy216: yych = (unsigned char)*++cur; @@ -1089,266 +1088,270 @@ yy216: goto yy14; yy217: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy276; + if (yych == 'e') goto yy277; goto yy14; yy218: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy277; + if (yych == 'c') goto yy278; goto yy14; yy219: yych = (unsigned char)*++cur; - if (yych == '-') goto yy278; + if (yych == '-') goto yy279; goto yy14; yy220: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy279; + if (yych == 'e') goto yy280; goto yy14; yy221: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy280; + if (yych == 'r') goto yy281; goto yy14; yy222: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy281; + if (yych == 'p') goto yy282; goto yy14; yy223: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy283; + if (yych == 'i') goto yy284; goto yy14; yy224: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy284; + if (yych == 'e') goto yy285; goto yy14; yy225: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy285; + if (yych == 'i') goto yy286; goto yy14; yy226: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy286; + if (yych == 'l') goto yy287; goto yy14; yy227: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy288; + if (yych == 'r') goto yy289; goto yy14; yy228: yych = (unsigned char)*++cur; - if (yych == 't') goto yy289; + if (yych == 't') goto yy290; goto yy14; yy229: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy290; + if (yych == 'u') goto yy291; goto yy14; yy230: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy291; + if (yych == 'e') goto yy292; goto yy14; yy231: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy292; + if (yych == 'i') goto yy293; goto yy14; yy232: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy293; + if (yych == 'y') goto yy294; goto yy14; yy233: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy294; + if (yych == 'e') goto yy295; goto yy14; yy234: ++cur; -#line 152 "../src/parse/lex_conf.re" +#line 153 "../src/parse/lex_conf.re" { opts.set_bEmitYYCh (lex_conf_bool()); return; } -#line 1163 "src/parse/lex_conf.cc" +#line 1162 "src/parse/lex_conf.cc" yy236: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy295; + if (yych == 'e') goto yy296; goto yy14; yy237: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy296; + if (yych == 'a') goto yy297; goto yy14; yy238: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy297; + if (yych == 'r') goto yy298; goto yy14; yy239: yych = (unsigned char)*++cur; - if (yych == 's') goto yy298; + if (yych == 's') goto yy299; goto yy14; yy240: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy299; + if (yych == 'e') goto yy300; goto yy14; yy241: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy300; + if (yych == 'c') goto yy301; goto yy14; yy242: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy301; + if (yych == 'e') goto yy302; goto yy14; yy243: ++cur; -#line 82 "../src/parse/lex_conf.re" +#line 83 "../src/parse/lex_conf.re" { opts.set_condPrefix (lex_conf_string ()); return; } -#line 1196 "src/parse/lex_conf.cc" +#line 1195 "src/parse/lex_conf.cc" yy245: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy302; + if (yych == 'A') goto yy303; goto yy14; yy246: yych = (unsigned char)*++cur; if (yych <= 'S') { - if (yych == 'O') goto yy303; + if (yych == 'O') goto yy304; goto yy14; } else { - if (yych <= 'T') goto yy304; - if (yych <= 'U') goto yy305; + if (yych <= 'T') goto yy305; + if (yych <= 'U') goto yy306; goto yy14; } yy247: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy306; + if (yych == 'E') goto yy307; goto yy14; yy248: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy307; + if (yych == 'I') goto yy308; goto yy14; yy249: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy308; + if (yych == 'E') goto yy309; goto yy14; yy250: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy309; - if (yych == 'I') goto yy310; + if (yych == 'E') goto yy310; + if (yych == 'I') goto yy311; goto yy14; yy251: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy311; + if (yych == 'A') goto yy312; goto yy14; yy252: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy312; + if (yych == 'E') goto yy313; goto yy14; yy253: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy313; + if (yych == 'E') goto yy314; goto yy14; yy254: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy314; - if (yych == 'K') goto yy315; + if (yych == 'E') goto yy315; + if (yych == 'K') goto yy316; goto yy14; yy255: yych = (unsigned char)*++cur; - if (yych == 'v') goto yy316; + if (yych == 'v') goto yy317; goto yy14; yy256: yych = (unsigned char)*++cur; - if (yych == '-') goto yy317; + if (yych == '-') goto yy318; goto yy14; yy257: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy318; + if (yych == 'u') goto yy319; goto yy14; yy258: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy319; + if (yych == 'g') goto yy320; goto yy14; yy259: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy320; + if (yych == 'm') goto yy321; goto yy14; yy260: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy321; + if (yych == 'r') goto yy322; goto yy14; yy261: yych = (unsigned char)*++cur; - if (yych == '-') goto yy322; + if (yych == '-') goto yy323; goto yy14; yy262: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy323; + if (yych == 'y') goto yy324; goto yy14; yy263: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy324; + if (yych == 'd') goto yy325; goto yy14; yy264: yych = (unsigned char)*++cur; - if (yych == '-') goto yy325; + if (yych == '-') goto yy326; goto yy14; yy265: yych = (unsigned char)*++cur; - if (yych == 't') goto yy326; + if (yych == 't') goto yy327; goto yy14; yy266: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy328; + if (yych == 'e') goto yy329; goto yy14; yy267: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy329; + if (yych == 'e') goto yy330; goto yy14; yy268: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy330; + if (yych == 'e') goto yy331; goto yy14; yy269: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy331; + if (yych == 'o') goto yy332; goto yy14; yy270: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy332; + if (yych == 'e') goto yy333; goto yy14; yy271: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy333; + if (yych == 'b') goto yy334; goto yy14; yy272: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy334; + if (yych == 'u') goto yy335; goto yy14; yy273: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy335; + if (yych == 'a') goto yy336; goto yy14; yy274: yych = (unsigned char)*++cur; - if (yych == 't') goto yy336; + if (yych == 'e') goto yy337; goto yy14; yy275: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy337; + if (yych == 't') goto yy338; goto yy14; yy276: yych = (unsigned char)*++cur; - if (yych == '-') goto yy338; + if (yych == 'a') goto yy339; goto yy14; yy277: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy339; + if (yych == '-') goto yy340; goto yy14; yy278: yych = (unsigned char)*++cur; - if (yych == '1') goto yy340; - if (yych == '8') goto yy90; + if (yych == 'o') goto yy341; goto yy14; yy279: yych = (unsigned char)*++cur; - if (yych == '-') goto yy341; + if (yych == '1') goto yy342; + if (yych == '8') goto yy90; goto yy14; yy280: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy342; + if (yych == '-') goto yy343; goto yy14; yy281: + yych = (unsigned char)*++cur; + if (yych == 'i') goto yy344; + goto yy14; +yy282: ++cur; -#line 137 "../src/parse/lex_conf.re" +#line 138 "../src/parse/lex_conf.re" { const int32_t n = lex_conf_number (); if (n < 0) @@ -1358,1050 +1361,1046 @@ yy281: opts.set_topIndent (static_cast (n)); return; } -#line 1362 "src/parse/lex_conf.cc" -yy283: - yych = (unsigned char)*++cur; - if (yych == 'l') goto yy343; - goto yy14; +#line 1365 "src/parse/lex_conf.cc" yy284: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy344; + if (yych == 'l') goto yy345; goto yy14; yy285: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy345; + if (yych == 'x') goto yy346; goto yy14; yy286: + yych = (unsigned char)*++cur; + if (yych == 'x') goto yy347; + goto yy14; +yy287: yyaccept = 14; yych = (unsigned char)*(ptr = ++cur); if (yych <= 0x1F) { if (yych == '\t') { ctx = cur; - goto yy347; + goto yy349; } } else { if (yych <= ' ') { ctx = cur; - goto yy347; + goto yy349; } if (yych == '=') { ctx = cur; - goto yy349; + goto yy351; } } -yy287: -#line 165 "../src/parse/lex_conf.re" - { opts.set_startlabel (lex_conf_string()); return; } -#line 1396 "src/parse/lex_conf.cc" yy288: - yych = (unsigned char)*++cur; - if (yych == 't') goto yy351; - goto yy14; +#line 166 "../src/parse/lex_conf.re" + { opts.set_startlabel (lex_conf_string()); return; } +#line 1399 "src/parse/lex_conf.cc" yy289: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy353; + if (yych == 't') goto yy353; goto yy14; yy290: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy354; + if (yych == 'l') goto yy355; goto yy14; yy291: yych = (unsigned char)*++cur; - if (yych == 's') goto yy355; + if (yych == 'l') goto yy356; goto yy14; yy292: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy356; + if (yych == 's') goto yy357; goto yy14; yy293: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy358; + if (yych == 'x') goto yy358; goto yy14; yy294: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy359; + if (yych == 'y') goto yy360; goto yy14; yy295: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy360; + if (yych == 'r') goto yy361; goto yy14; yy296: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy361; + if (yych == 'c') goto yy362; goto yy14; yy297: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy362; + if (yych == 'b') goto yy363; goto yy14; yy298: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy363; + if (yych == 'a') goto yy364; goto yy14; yy299: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy364; + if (yych == 'h') goto yy365; goto yy14; yy300: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy366; + if (yych == 'r') goto yy366; goto yy14; yy301: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy367; + if (yych == 'o') goto yy368; goto yy14; yy302: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy368; + if (yych == 'f') goto yy369; goto yy14; yy303: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy369; - if (yych == 'P') goto yy370; + if (yych == 'C') goto yy370; goto yy14; yy304: yych = (unsigned char)*++cur; - if (yych <= 'W') goto yy14; - if (yych <= 'X') goto yy371; - if (yych <= 'Y') goto yy372; + if (yych == 'N') goto yy371; + if (yych == 'P') goto yy372; goto yy14; yy305: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy373; + if (yych <= 'W') goto yy14; + if (yych <= 'X') goto yy373; + if (yych <= 'Y') goto yy374; goto yy14; yy306: yych = (unsigned char)*++cur; - if (yych == 'B') goto yy374; + if (yych == 'R') goto yy375; goto yy14; yy307: yych = (unsigned char)*++cur; - if (yych == 'L') goto yy375; + if (yych == 'B') goto yy376; goto yy14; yy308: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy376; + if (yych == 'L') goto yy377; goto yy14; yy309: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy377; + if (yych == 'T') goto yy378; goto yy14; yy310: yych = (unsigned char)*++cur; - if (yych == 'M') goto yy378; + if (yych == 'S') goto yy379; goto yy14; yy311: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy379; + if (yych == 'M') goto yy380; goto yy14; yy312: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy380; + if (yych == 'R') goto yy381; goto yy14; yy313: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy381; + if (yych == 'E') goto yy382; goto yy14; yy314: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy382; + if (yych == 'S') goto yy383; goto yy14; yy315: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy383; + if (yych == 'T') goto yy384; goto yy14; yy316: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy384; + if (yych == 'I') goto yy385; goto yy14; yy317: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy385; + if (yych == 'e') goto yy386; goto yy14; yy318: yych = (unsigned char)*++cur; - if (yych == 't') goto yy386; + if (yych == 'i') goto yy387; goto yy14; yy319: yych = (unsigned char)*++cur; - if (yych == '-') goto yy387; + if (yych == 't') goto yy388; goto yy14; yy320: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy388; + if (yych == '-') goto yy389; goto yy14; yy321: yych = (unsigned char)*++cur; - if (yych == '-') goto yy389; + if (yych == 'i') goto yy390; goto yy14; yy322: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy390; + if (yych == '-') goto yy391; goto yy14; yy323: yych = (unsigned char)*++cur; - if (yych == '-') goto yy391; + if (yych == 'd') goto yy392; goto yy14; yy324: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy392; + if (yych == '-') goto yy393; goto yy14; yy325: yych = (unsigned char)*++cur; - if (yych == 's') goto yy393; + if (yych == 'i') goto yy394; goto yy14; yy326: - ++cur; -#line 72 "../src/parse/lex_conf.re" - { lex_conf_input(); return; } -#line 1556 "src/parse/lex_conf.cc" -yy328: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy394; + if (yych == 's') goto yy395; goto yy14; +yy327: + ++cur; +#line 73 "../src/parse/lex_conf.re" + { lex_conf_input(); return; } +#line 1559 "src/parse/lex_conf.cc" yy329: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy395; + if (yych == 'd') goto yy396; goto yy14; yy330: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy396; + if (yych == 'b') goto yy397; goto yy14; yy331: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy397; + if (yych == 'n') goto yy398; goto yy14; yy332: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy398; + if (yych == 'o') goto yy399; goto yy14; yy333: yych = (unsigned char)*++cur; - if (yych == 't') goto yy399; + if (yych == 'r') goto yy400; goto yy14; yy334: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy400; + if (yych == 'i') goto yy401; goto yy14; yy335: yych = (unsigned char)*++cur; - if (yych == 't') goto yy401; + if (yych == 't') goto yy402; goto yy14; yy336: yych = (unsigned char)*++cur; - if (yych == '-') goto yy402; + if (yych == 'b') goto yy403; goto yy14; yy337: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy403; + if (yych == 't') goto yy404; goto yy14; yy338: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy404; + if (yych == '-') goto yy405; goto yy14; yy339: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy405; + if (yych == 'b') goto yy406; goto yy14; yy340: yych = (unsigned char)*++cur; - if (yych == '6') goto yy127; + if (yych == 'h') goto yy407; goto yy14; yy341: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy406; + if (yych == 'd') goto yy408; goto yy14; yy342: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy407; + if (yych == '6') goto yy127; goto yy14; yy343: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy408; + if (yych == 'c') goto yy409; goto yy14; yy344: yych = (unsigned char)*++cur; - if (yych == 't') goto yy409; + if (yych == 'n') goto yy410; goto yy14; yy345: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy411; + goto yy14; +yy346: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy412; + goto yy14; +yy347: ++cur; -#line 161 "../src/parse/lex_conf.re" +#line 162 "../src/parse/lex_conf.re" { opts.set_labelPrefix (lex_conf_string ()); return; } -#line 1629 "src/parse/lex_conf.cc" -yy347: +#line 1636 "src/parse/lex_conf.cc" +yy349: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 64) { - goto yy347; + goto yy349; } if (yych != '=') goto yy14; -yy349: +yy351: ++cur; if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= ',') { if (yych <= '\t') { if (yych <= 0x08) goto yy14; - goto yy349; + goto yy351; } else { - if (yych == ' ') goto yy349; + if (yych == ' ') goto yy351; goto yy14; } } else { if (yych <= '/') { - if (yych <= '-') goto yy411; + if (yych <= '-') goto yy414; goto yy14; } else { - if (yych <= '0') goto yy412; - if (yych <= '9') goto yy414; + if (yych <= '0') goto yy415; + if (yych <= '9') goto yy417; goto yy14; } } -yy351: +yy353: ++cur; -#line 97 "../src/parse/lex_conf.re" +#line 98 "../src/parse/lex_conf.re" { opts.set_bUseStateAbort (lex_conf_bool()); return; } -#line 1664 "src/parse/lex_conf.cc" -yy353: +#line 1671 "src/parse/lex_conf.cc" +yy355: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy416; + if (yych == 'a') goto yy419; goto yy14; -yy354: +yy356: yych = (unsigned char)*++cur; - if (yych == 't') goto yy417; + if (yych == 't') goto yy420; goto yy14; -yy355: +yy357: yych = (unsigned char)*++cur; - if (yych == 's') goto yy419; + if (yych == 's') goto yy422; goto yy14; -yy356: +yy358: ++cur; -#line 132 "../src/parse/lex_conf.re" +#line 133 "../src/parse/lex_conf.re" { opts.set_tags_prefix (lex_conf_string ()); return; } -#line 1681 "src/parse/lex_conf.cc" -yy358: +#line 1688 "src/parse/lex_conf.cc" +yy360: yych = (unsigned char)*++cur; if (yych <= 'c') { if (yych <= '`') goto yy14; - if (yych <= 'a') goto yy420; - if (yych <= 'b') goto yy421; - goto yy422; + if (yych <= 'a') goto yy423; + if (yych <= 'b') goto yy424; + goto yy425; } else { if (yych <= 'r') goto yy14; - if (yych <= 's') goto yy423; - if (yych <= 't') goto yy424; + if (yych <= 's') goto yy426; + if (yych <= 't') goto yy427; goto yy14; } -yy359: - yych = (unsigned char)*++cur; - if (yych == 's') goto yy425; - goto yy14; -yy360: - yych = (unsigned char)*++cur; - if (yych == 'k') goto yy426; - goto yy14; yy361: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy428; + if (yych == 's') goto yy428; goto yy14; yy362: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy429; + if (yych == 'k') goto yy429; goto yy14; yy363: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy430; + if (yych == 'l') goto yy431; goto yy14; yy364: - yyaccept = 15; - yych = (unsigned char)*(ptr = ++cur); - if (yych == '@') goto yy431; -yy365: -#line 84 "../src/parse/lex_conf.re" - { opts.set_condDivider (lex_conf_string ()); return; } -#line 1722 "src/parse/lex_conf.cc" -yy366: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy432; + if (yych == 'm') goto yy432; goto yy14; -yy367: +yy365: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy433; + if (yych == 'o') goto yy433; goto yy14; +yy366: + yyaccept = 15; + yych = (unsigned char)*(ptr = ++cur); + if (yych == '@') goto yy434; +yy367: +#line 85 "../src/parse/lex_conf.re" + { opts.set_condDivider (lex_conf_string ()); return; } +#line 1729 "src/parse/lex_conf.cc" yy368: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy434; + if (yych == 'n') goto yy435; goto yy14; yy369: yych = (unsigned char)*++cur; - if (yych == 'D') goto yy435; + if (yych == 'i') goto yy436; goto yy14; yy370: yych = (unsigned char)*++cur; - if (yych == 'Y') goto yy436; + if (yych == 'K') goto yy437; goto yy14; yy371: yych = (unsigned char)*++cur; - if (yych == 'M') goto yy437; + if (yych == 'D') goto yy438; goto yy14; yy372: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy438; + if (yych == 'Y') goto yy439; goto yy14; yy373: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy439; + if (yych == 'M') goto yy440; goto yy14; yy374: yych = (unsigned char)*++cur; - if (yych == 'U') goto yy440; + if (yych == 'P') goto yy441; goto yy14; yy375: yych = (unsigned char)*++cur; - if (yych == 'L') goto yy441; + if (yych == 'S') goto yy442; goto yy14; yy376: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy443; - if (yych == 'S') goto yy444; + if (yych == 'U') goto yy443; goto yy14; yy377: yych = (unsigned char)*++cur; - if (yych == 'S') goto yy445; + if (yych == 'L') goto yy444; goto yy14; yy378: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy446; + if (yych == 'C') goto yy446; + if (yych == 'S') goto yy447; goto yy14; yy379: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy447; + if (yych == 'S') goto yy448; goto yy14; yy380: yych = (unsigned char)*++cur; - if (yych == 'K') goto yy448; + if (yych == 'I') goto yy449; goto yy14; yy381: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy450; + if (yych == 'K') goto yy450; goto yy14; yy382: yych = (unsigned char)*++cur; - if (yych == 'C') goto yy451; - if (yych == 'S') goto yy452; + if (yych == 'K') goto yy451; goto yy14; yy383: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy453; + if (yych == 'T') goto yy453; goto yy14; yy384: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy455; + if (yych == 'C') goto yy454; + if (yych == 'S') goto yy455; goto yy14; yy385: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy456; + if (yych == 'P') goto yy456; goto yy14; yy386: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy457; + if (yych == 'c') goto yy458; goto yy14; yy387: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy458; + if (yych == 'n') goto yy459; goto yy14; yy388: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy459; + if (yych == 'e') goto yy460; goto yy14; yy389: yych = (unsigned char)*++cur; - if (yych == 's') goto yy460; + if (yych == 'o') goto yy461; goto yy14; yy390: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy461; + if (yych == 'n') goto yy462; goto yy14; yy391: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy462; + if (yych == 's') goto yy463; goto yy14; yy392: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy463; + if (yych == 'o') goto yy464; goto yy14; yy393: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy464; + if (yych == 'c') goto yy465; goto yy14; yy394: yych = (unsigned char)*++cur; - if (yych == '-') goto yy465; + if (yych == 'n') goto yy466; goto yy14; yy395: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy466; + if (yych == 'y') goto yy467; goto yy14; yy396: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy467; + if (yych == '-') goto yy468; goto yy14; yy397: yych = (unsigned char)*++cur; - if (yych == 's') goto yy468; + if (yych == 'u') goto yy469; goto yy14; yy398: yych = (unsigned char)*++cur; - if (yych == 'j') goto yy469; + if (yych == 'e') goto yy470; goto yy14; yy399: - ++cur; - goto yy116; + yych = (unsigned char)*++cur; + if (yych == 'k') goto yy471; + goto yy14; yy400: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy470; + if (yych == 's') goto yy472; goto yy14; yy401: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy471; + if (yych == 'j') goto yy473; goto yy14; yy402: - yych = (unsigned char)*++cur; - if (yych == 'c') goto yy472; - goto yy14; + ++cur; + goto yy116; yy403: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy473; + if (yych == 'l') goto yy474; goto yy14; yy404: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy474; + if (yych == 'o') goto yy475; goto yy14; yy405: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy475; + if (yych == 'c') goto yy476; goto yy14; yy406: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy476; + if (yych == 'l') goto yy477; goto yy14; yy407: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy477; + if (yych == 'e') goto yy478; goto yy14; yy408: yych = (unsigned char)*++cur; - if (yych == 'L') goto yy479; + if (yych == 'e') goto yy479; goto yy14; yy409: + yych = (unsigned char)*++cur; + if (yych == 'h') goto yy480; + goto yy14; +yy410: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy481; + goto yy14; +yy411: + yych = (unsigned char)*++cur; + if (yych == 'L') goto yy483; + goto yy14; +yy412: ++cur; -#line 96 "../src/parse/lex_conf.re" +#line 97 "../src/parse/lex_conf.re" { opts.set_yynext (lex_conf_string ()); return; } -#line 1900 "src/parse/lex_conf.cc" -yy411: +#line 1911 "src/parse/lex_conf.cc" +yy414: yych = (unsigned char)*++cur; if (yych <= '0') goto yy14; - if (yych <= '9') goto yy414; + if (yych <= '9') goto yy417; goto yy14; -yy412: +yy415: ++cur; -yy413: +yy416: cur = ctx; -#line 164 "../src/parse/lex_conf.re" +#line 165 "../src/parse/lex_conf.re" { opts.set_startlabel_force (lex_conf_bool()); return; } -#line 1912 "src/parse/lex_conf.cc" -yy414: +#line 1923 "src/parse/lex_conf.cc" +yy417: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy414; + goto yy417; } - goto yy413; -yy416: - yych = (unsigned char)*++cur; - if (yych == 'b') goto yy480; - goto yy14; -yy417: - ++cur; -#line 131 "../src/parse/lex_conf.re" - { opts.set_tags_default (lex_conf_string ()); return; } -#line 1929 "src/parse/lex_conf.cc" + goto yy416; yy419: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy481; + if (yych == 'b') goto yy484; goto yy14; yy420: - yych = (unsigned char)*++cur; - if (yych == 'c') goto yy482; - goto yy14; -yy421: - yych = (unsigned char)*++cur; - if (yych == 'm') goto yy483; - goto yy14; + ++cur; +#line 132 "../src/parse/lex_conf.re" + { opts.set_tags_default (lex_conf_string ()); return; } +#line 1940 "src/parse/lex_conf.cc" yy422: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy485; - if (yych == 't') goto yy487; + if (yych == 'i') goto yy485; goto yy14; yy423: yych = (unsigned char)*++cur; - if (yych == 't') goto yy488; + if (yych == 'c') goto yy486; goto yy14; yy424: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy489; + if (yych == 'm') goto yy487; goto yy14; yy425: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy490; + if (yych == 'h') goto yy489; + if (yych == 't') goto yy491; goto yy14; yy426: - ++cur; -#line 159 "../src/parse/lex_conf.re" - { opts.set_fill_check (lex_conf_bool()); return; } -#line 1963 "src/parse/lex_conf.cc" -yy428: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy491; + if (yych == 't') goto yy492; goto yy14; -yy429: +yy427: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy493; + if (yych == 'a') goto yy493; goto yy14; -yy430: +yy428: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy494; + if (yych == 'i') goto yy494; goto yy14; +yy429: + ++cur; +#line 160 "../src/parse/lex_conf.re" + { opts.set_fill_check (lex_conf_bool()); return; } +#line 1974 "src/parse/lex_conf.cc" yy431: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy495; + if (yych == 'e') goto yy495; goto yy14; yy432: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy496; + if (yych == 'e') goto yy497; goto yy14; yy433: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy498; + if (yych == 'l') goto yy498; goto yy14; yy434: yych = (unsigned char)*++cur; - if (yych == 'U') goto yy500; + if (yych == 'c') goto yy499; goto yy14; yy435: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy501; + if (yych == 'd') goto yy500; goto yy14; yy436: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy502; + if (yych == 'x') goto yy502; goto yy14; yy437: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy503; + if (yych == 'U') goto yy504; goto yy14; yy438: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy504; + if (yych == 'T') goto yy505; goto yy14; yy439: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy506; + if (yych == 'T') goto yy506; goto yy14; yy440: yych = (unsigned char)*++cur; - if (yych == 'G') goto yy507; + if (yych == 'A') goto yy507; goto yy14; yy441: - yyaccept = 16; - yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy509; - if (yych == '@') goto yy510; -yy442: -#line 154 "../src/parse/lex_conf.re" - { opts.set_fill (lex_conf_string ()); return; } -#line 2024 "src/parse/lex_conf.cc" -yy443: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy511; + if (yych == 'E') goto yy508; goto yy14; -yy444: +yy442: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy512; + if (yych == 'O') goto yy510; goto yy14; -yy445: +yy443: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy513; + if (yych == 'G') goto yy511; goto yy14; +yy444: + yyaccept = 16; + yych = (unsigned char)*(ptr = ++cur); + if (yych == ':') goto yy513; + if (yych == '@') goto yy514; +yy445: +#line 155 "../src/parse/lex_conf.re" + { opts.set_fill (lex_conf_string ()); return; } +#line 2035 "src/parse/lex_conf.cc" yy446: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy514; + if (yych == 'O') goto yy515; goto yy14; yy447: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy516; + if (yych == 'T') goto yy516; goto yy14; yy448: - ++cur; -#line 120 "../src/parse/lex_conf.re" - { opts.set_yypeek (lex_conf_string ()); return; } -#line 2049 "src/parse/lex_conf.cc" -yy450: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy517; + if (yych == 'T') goto yy517; goto yy14; -yy451: +yy449: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy518; + if (yych == 'T') goto yy518; goto yy14; -yy452: +yy450: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy519; + if (yych == 'E') goto yy520; goto yy14; -yy453: +yy451: ++cur; #line 121 "../src/parse/lex_conf.re" - { opts.set_yyskip (lex_conf_string ()); return; } -#line 2066 "src/parse/lex_conf.cc" -yy455: + { opts.set_yypeek (lex_conf_string ()); return; } +#line 2060 "src/parse/lex_conf.cc" +yy453: yych = (unsigned char)*++cur; - if (yych == 't') goto yy520; + if (yych == 'O') goto yy521; goto yy14; -yy456: +yy454: yych = (unsigned char)*++cur; - if (yych == 's') goto yy521; - if (yych == 'v') goto yy522; + if (yych == 'O') goto yy522; goto yy14; -yy457: +yy455: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy523; + if (yych == 'T') goto yy523; goto yy14; +yy456: + ++cur; +#line 122 "../src/parse/lex_conf.re" + { opts.set_yyskip (lex_conf_string ()); return; } +#line 2077 "src/parse/lex_conf.cc" yy458: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy524; + if (yych == 't') goto yy524; goto yy14; yy459: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy525; + if (yych == 's') goto yy525; + if (yych == 'v') goto yy526; goto yy14; yy460: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy526; + if (yych == 'd') goto yy527; goto yy14; yy461: yych = (unsigned char)*++cur; - if (yych == 't') goto yy92; + if (yych == 'u') goto yy528; goto yy14; yy462: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy527; + if (yych == 'i') goto yy529; goto yy14; yy463: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy528; + if (yych == 'k') goto yy530; goto yy14; yy464: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy529; + if (yych == 't') goto yy92; goto yy14; yy465: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy530; + if (yych == 'l') goto yy531; goto yy14; yy466: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy531; + if (yych == 'g') goto yy532; goto yy14; yy467: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy532; + if (yych == 'n') goto yy533; goto yy14; yy468: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy533; + if (yych == 'i') goto yy534; goto yy14; yy469: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy534; + if (yych == 'g') goto yy535; goto yy14; yy470: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy535; + if (yych == 'r') goto yy536; goto yy14; yy471: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy96; + if (yych == 'a') goto yy537; goto yy14; yy472: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy536; + if (yych == 'i') goto yy538; goto yy14; yy473: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy537; + if (yych == 'e') goto yy539; goto yy14; yy474: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy538; + if (yych == 'e') goto yy540; goto yy14; yy475: - ++cur; - goto yy124; + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy96; + goto yy14; yy476: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy539; + if (yych == 'o') goto yy541; goto yy14; yy477: - ++cur; -#line 135 "../src/parse/lex_conf.re" - { opts.set_indString (lex_conf_string ()); return; } -#line 2159 "src/parse/lex_conf.cc" -yy479: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy540; + if (yych == 'e') goto yy542; goto yy14; +yy478: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy543; + goto yy14; +yy479: + ++cur; + goto yy124; yy480: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy541; + if (yych == 'a') goto yy544; goto yy14; yy481: + ++cur; +#line 136 "../src/parse/lex_conf.re" + { opts.set_indString (lex_conf_string ()); return; } +#line 2174 "src/parse/lex_conf.cc" +yy483: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy542; + if (yych == 'a') goto yy545; goto yy14; -yy482: +yy484: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy543; + if (yych == 'e') goto yy546; goto yy14; -yy483: +yy485: + yych = (unsigned char)*++cur; + if (yych == 'o') goto yy547; + goto yy14; +yy486: + yych = (unsigned char)*++cur; + if (yych == 'c') goto yy548; + goto yy14; +yy487: ++cur; -#line 101 "../src/parse/lex_conf.re" +#line 102 "../src/parse/lex_conf.re" { opts.set_yybm (lex_conf_string ()); return; } -#line 2180 "src/parse/lex_conf.cc" -yy485: +#line 2195 "src/parse/lex_conf.cc" +yy489: ++cur; -#line 150 "../src/parse/lex_conf.re" +#line 151 "../src/parse/lex_conf.re" { opts.set_yych (lex_conf_string ()); return; } -#line 2185 "src/parse/lex_conf.cc" -yy487: +#line 2200 "src/parse/lex_conf.cc" +yy491: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy544; + if (yych == 'a') goto yy549; goto yy14; -yy488: +yy492: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy545; + if (yych == 'a') goto yy550; goto yy14; -yy489: +yy493: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy546; + if (yych == 'r') goto yy551; goto yy14; -yy490: +yy494: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy547; + if (yych == 'o') goto yy552; goto yy14; -yy491: +yy495: ++cur; -#line 155 "../src/parse/lex_conf.re" +#line 156 "../src/parse/lex_conf.re" { opts.set_fill_use (lex_conf_bool()); return; } -#line 2206 "src/parse/lex_conf.cc" -yy493: +#line 2221 "src/parse/lex_conf.cc" +yy497: yych = (unsigned char)*++cur; - if (yych == 't') goto yy548; + if (yych == 't') goto yy553; goto yy14; -yy494: +yy498: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy549; + if (yych == 'd') goto yy554; goto yy14; -yy495: +yy499: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy551; + if (yych == 'o') goto yy556; goto yy14; -yy496: +yy500: ++cur; -#line 87 "../src/parse/lex_conf.re" +#line 88 "../src/parse/lex_conf.re" { opts.set_condGotoParam (lex_conf_string ()); return; } -#line 2223 "src/parse/lex_conf.cc" -yy498: +#line 2238 "src/parse/lex_conf.cc" +yy502: ++cur; -#line 83 "../src/parse/lex_conf.re" +#line 84 "../src/parse/lex_conf.re" { opts.set_condEnumPrefix (lex_conf_string ()); return; } -#line 2228 "src/parse/lex_conf.cc" -yy500: +#line 2243 "src/parse/lex_conf.cc" +yy504: yych = (unsigned char)*++cur; - if (yych == 'P') goto yy552; + if (yych == 'P') goto yy557; goto yy14; -yy501: +yy505: yych = (unsigned char)*++cur; - if (yych == 'Y') goto yy554; + if (yych == 'Y') goto yy559; goto yy14; -yy502: - yych = (unsigned char)*++cur; - if (yych == 'A') goto yy555; - goto yy14; -yy503: - yych = (unsigned char)*++cur; - if (yych == 'R') goto yy556; - goto yy14; -yy504: - ++cur; -#line 149 "../src/parse/lex_conf.re" - { opts.set_yyctype (lex_conf_string ()); return; } -#line 2249 "src/parse/lex_conf.cc" yy506: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy557; + if (yych == 'A') goto yy560; goto yy14; yy507: - ++cur; -#line 147 "../src/parse/lex_conf.re" - { opts.set_yydebug (lex_conf_string ()); return; } -#line 2258 "src/parse/lex_conf.cc" -yy509: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy559; + if (yych == 'R') goto yy561; goto yy14; +yy508: + ++cur; +#line 150 "../src/parse/lex_conf.re" + { opts.set_yyctype (lex_conf_string ()); return; } +#line 2264 "src/parse/lex_conf.cc" yy510: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy560; + if (yych == 'R') goto yy562; goto yy14; yy511: + ++cur; +#line 148 "../src/parse/lex_conf.re" + { opts.set_yydebug (lex_conf_string ()); return; } +#line 2273 "src/parse/lex_conf.cc" +yy513: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy561; + if (yych == 'n') goto yy564; goto yy14; -yy512: +yy514: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy562; + if (yych == 'l') goto yy565; goto yy14; -yy513: +yy515: yych = (unsigned char)*++cur; - if (yych == 'H') goto yy563; + if (yych == 'N') goto yy566; goto yy14; -yy514: - ++cur; -#line 118 "../src/parse/lex_conf.re" - { opts.set_yylimit (lex_conf_string ()); return; } -#line 2283 "src/parse/lex_conf.cc" yy516: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy564; + if (yych == 'A') goto yy567; goto yy14; yy517: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy566; + if (yych == 'H') goto yy568; goto yy14; yy518: - yych = (unsigned char)*++cur; - if (yych == 'N') goto yy567; - goto yy14; -yy519: - yych = (unsigned char)*++cur; - if (yych == 'A') goto yy568; - goto yy14; + ++cur; +#line 119 "../src/parse/lex_conf.re" + { opts.set_yylimit (lex_conf_string ()); return; } +#line 2298 "src/parse/lex_conf.cc" yy520: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy569; + if (yych == 'R') goto yy569; goto yy14; yy521: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy570; + if (yych == 'R') goto yy571; goto yy14; yy522: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy571; + if (yych == 'N') goto yy572; goto yy14; yy523: yych = (unsigned char)*++cur; - if (yych == '-') goto yy572; + if (yych == 'A') goto yy573; goto yy14; yy524: yych = (unsigned char)*++cur; - if (yych == 't') goto yy573; + if (yych == 'o') goto yy574; goto yy14; yy525: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy574; + if (yych == 'e') goto yy575; goto yy14; yy526: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy575; + if (yych == 'e') goto yy576; goto yy14; yy527: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy576; + if (yych == '-') goto yy577; goto yy14; yy528: yych = (unsigned char)*++cur; - if (yych == '-') goto yy577; + if (yych == 't') goto yy578; goto yy14; yy529: yych = (unsigned char)*++cur; - if (yych == 't') goto yy578; + if (yych == 'm') goto yy579; goto yy14; yy530: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy579; + if (yych == 'i') goto yy580; goto yy14; yy531: yych = (unsigned char)*++cur; - if (yych == '-') goto yy580; + if (yych == 'a') goto yy581; goto yy14; yy532: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy581; + if (yych == '-') goto yy582; goto yy14; yy533: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy582; + if (yych == 't') goto yy583; goto yy14; yy534: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy583; + if (yych == 'f') goto yy584; goto yy14; yy535: - ++cur; - goto yy118; + yych = (unsigned char)*++cur; + if (yych == '-') goto yy585; + goto yy14; yy536: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy584; + if (yych == 'a') goto yy586; goto yy14; yy537: yych = (unsigned char)*++cur; - if (yych == '-') goto yy585; + if (yych == 'h') goto yy587; goto yy14; yy538: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy586; + if (yych == 'o') goto yy588; goto yy14; yy539: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy587; + if (yych == 'c') goto yy589; goto yy14; yy540: - yych = (unsigned char)*++cur; - if (yych == 'b') goto yy588; - goto yy14; + ++cur; + goto yy118; yy541: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy589; + if (yych == 'n') goto yy590; goto yy14; yy542: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy591; + if (yych == '-') goto yy591; goto yy14; yy543: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy593; + if (yych == 'd') goto yy592; goto yy14; yy544: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy594; + if (yych == 'r') goto yy593; goto yy14; yy545: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy595; + if (yych == 'b') goto yy594; goto yy14; yy546: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy596; + if (yych == 'l') goto yy595; goto yy14; yy547: yych = (unsigned char)*++cur; @@ -2412,8 +2411,28 @@ yy548: if (yych == 'e') goto yy599; goto yy14; yy549: + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy600; + goto yy14; +yy550: + yych = (unsigned char)*++cur; + if (yych == 'b') goto yy601; + goto yy14; +yy551: + yych = (unsigned char)*++cur; + if (yych == 'g') goto yy602; + goto yy14; +yy552: + yych = (unsigned char)*++cur; + if (yych == 'n') goto yy603; + goto yy14; +yy553: + yych = (unsigned char)*++cur; + if (yych == 'e') goto yy605; + goto yy14; +yy554: ++cur; -#line 104 "../src/parse/lex_conf.re" +#line 105 "../src/parse/lex_conf.re" { const int32_t n = lex_conf_number (); if (n < 0) @@ -2423,918 +2442,935 @@ yy549: opts.set_cGotoThreshold (static_cast (n)); return; } -#line 2427 "src/parse/lex_conf.cc" -yy551: +#line 2446 "src/parse/lex_conf.cc" +yy556: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy600; + if (yych == 'n') goto yy606; goto yy14; -yy552: +yy557: yyaccept = 17; yych = (unsigned char)*(ptr = ++cur); - if (yych == 'C') goto yy601; - if (yych == 'T') goto yy602; -yy553: -#line 122 "../src/parse/lex_conf.re" + if (yych == 'C') goto yy607; + if (yych == 'T') goto yy608; +yy558: +#line 123 "../src/parse/lex_conf.re" { opts.set_yybackup (lex_conf_string ()); return; } -#line 2440 "src/parse/lex_conf.cc" -yy554: - yych = (unsigned char)*++cur; - if (yych == 'P') goto yy603; - goto yy14; -yy555: - yych = (unsigned char)*++cur; - if (yych == 'G') goto yy604; - goto yy14; -yy556: - yych = (unsigned char)*++cur; - if (yych == 'K') goto yy606; - goto yy14; -yy557: - ++cur; -#line 115 "../src/parse/lex_conf.re" - { opts.set_yycursor (lex_conf_string ()); return; } -#line 2457 "src/parse/lex_conf.cc" +#line 2459 "src/parse/lex_conf.cc" yy559: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy607; + if (yych == 'P') goto yy609; goto yy14; yy560: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy608; + if (yych == 'G') goto yy610; goto yy14; yy561: yych = (unsigned char)*++cur; - if (yych == 'D') goto yy609; + if (yych == 'K') goto yy612; goto yy14; yy562: + ++cur; +#line 116 "../src/parse/lex_conf.re" + { opts.set_yycursor (lex_conf_string ()); return; } +#line 2476 "src/parse/lex_conf.cc" +yy564: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy610; + if (yych == 'a') goto yy613; goto yy14; -yy563: +yy565: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy611; + if (yych == 'e') goto yy614; goto yy14; -yy564: - ++cur; -#line 116 "../src/parse/lex_conf.re" - { opts.set_yymarker (lex_conf_string ()); return; } -#line 2482 "src/parse/lex_conf.cc" yy566: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy612; + if (yych == 'D') goto yy615; goto yy14; yy567: yych = (unsigned char)*++cur; - if (yych == 'D') goto yy614; + if (yych == 'T') goto yy616; goto yy14; yy568: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy615; + if (yych == 'A') goto yy617; goto yy14; yy569: - yych = (unsigned char)*++cur; - if (yych == 'r') goto yy616; - goto yy14; -yy570: - yych = (unsigned char)*++cur; - if (yych == 'n') goto yy617; - goto yy14; + ++cur; +#line 117 "../src/parse/lex_conf.re" + { opts.set_yymarker (lex_conf_string ()); return; } +#line 2501 "src/parse/lex_conf.cc" yy571: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy618; + if (yych == 'E') goto yy618; goto yy14; yy572: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy619; + if (yych == 'D') goto yy620; goto yy14; yy573: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy620; + if (yych == 'T') goto yy621; goto yy14; yy574: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy621; + if (yych == 'r') goto yy622; goto yy14; yy575: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy622; + if (yych == 'n') goto yy623; goto yy14; yy576: yych = (unsigned char)*++cur; - if (yych == 's') goto yy624; + if (yych == 'r') goto yy624; goto yy14; yy577: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy625; + if (yych == 'g') goto yy625; goto yy14; yy578: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy626; + if (yych == 'p') goto yy626; goto yy14; yy579: yych = (unsigned char)*++cur; - if (yych == 's') goto yy627; + if (yych == 'i') goto yy627; goto yy14; yy580: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy628; + if (yych == 'p') goto yy628; goto yy14; yy581: yych = (unsigned char)*++cur; - if (yych == 't') goto yy629; + if (yych == 's') goto yy630; goto yy14; yy582: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy630; + if (yych == 'p') goto yy631; goto yy14; yy583: yych = (unsigned char)*++cur; - if (yych == 't') goto yy632; + if (yych == 'a') goto yy632; goto yy14; yy584: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy633; + if (yych == 's') goto yy633; goto yy14; yy585: yych = (unsigned char)*++cur; - if (yych == 's') goto yy634; + if (yych == 'i') goto yy634; goto yy14; yy586: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy635; + if (yych == 't') goto yy635; goto yy14; yy587: yych = (unsigned char)*++cur; - if (yych == 's') goto yy636; + if (yych == 'e') goto yy636; goto yy14; yy588: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy637; + if (yych == 'n') goto yy637; goto yy14; yy589: - ++cur; -#line 98 "../src/parse/lex_conf.re" - { opts.set_bUseStateNext (lex_conf_bool()); return; } -#line 2579 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 't') goto yy639; + goto yy14; +yy590: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy640; + goto yy14; yy591: - ++cur; -#line 133 "../src/parse/lex_conf.re" - { opts.set_tags_expression(lex_conf_string ()); return; } -#line 2584 "src/parse/lex_conf.cc" -yy593: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy638; + if (yych == 's') goto yy641; goto yy14; -yy594: +yy592: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy639; + if (yych == 'e') goto yy642; goto yy14; -yy595: +yy593: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy640; + if (yych == 's') goto yy643; goto yy14; -yy596: +yy594: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy641; + if (yych == 'e') goto yy644; goto yy14; +yy595: + ++cur; +#line 99 "../src/parse/lex_conf.re" + { opts.set_bUseStateNext (lex_conf_bool()); return; } +#line 2602 "src/parse/lex_conf.cc" yy597: ++cur; -#line 151 "../src/parse/lex_conf.re" - { opts.set_yychConversion (lex_conf_bool()); return; } -#line 2605 "src/parse/lex_conf.cc" +#line 134 "../src/parse/lex_conf.re" + { opts.set_tags_expression(lex_conf_string ()); return; } +#line 2607 "src/parse/lex_conf.cc" yy599: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy642; + if (yych == 'p') goto yy645; goto yy14; yy600: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy644; + if (yych == 'l') goto yy646; goto yy14; yy601: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy646; + if (yych == 'l') goto yy647; goto yy14; yy602: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy647; + if (yych == 'e') goto yy648; goto yy14; yy603: + ++cur; +#line 152 "../src/parse/lex_conf.re" + { opts.set_yychConversion (lex_conf_bool()); return; } +#line 2628 "src/parse/lex_conf.cc" +yy605: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy648; + if (yych == 'r') goto yy649; goto yy14; -yy604: - ++cur; -#line 128 "../src/parse/lex_conf.re" - { opts.set_yycopytag (lex_conf_string ()); return; } -#line 2630 "src/parse/lex_conf.cc" yy606: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy650; + if (yych == 'd') goto yy651; goto yy14; yy607: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy651; + if (yych == 'T') goto yy653; goto yy14; yy608: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy652; + if (yych == 'A') goto yy654; goto yy14; yy609: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy654; + if (yych == 'E') goto yy655; goto yy14; yy610: + ++cur; +#line 129 "../src/parse/lex_conf.re" + { opts.set_yycopytag (lex_conf_string ()); return; } +#line 2653 "src/parse/lex_conf.cc" +yy612: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy655; + if (yych == 'E') goto yy657; goto yy14; -yy611: +yy613: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy657; + if (yych == 'k') goto yy658; goto yy14; -yy612: - yyaccept = 18; - yych = (unsigned char)*(ptr = ++cur); - if (yych == 'C') goto yy659; - if (yych == 'T') goto yy660; -yy613: -#line 125 "../src/parse/lex_conf.re" - { opts.set_yyrestore (lex_conf_string ()); return; } -#line 2663 "src/parse/lex_conf.cc" yy614: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy661; + if (yych == 'n') goto yy659; goto yy14; yy615: yych = (unsigned char)*++cur; - if (yych == 'E') goto yy662; + if (yych == 'I') goto yy661; goto yy14; yy616: yych = (unsigned char)*++cur; - if (yych == 's') goto yy664; + if (yych == 'E') goto yy662; goto yy14; yy617: yych = (unsigned char)*++cur; - if (yych == 's') goto yy665; + if (yych == 'N') goto yy664; goto yy14; yy618: - yych = (unsigned char)*++cur; - if (yych == 't') goto yy666; - goto yy14; + yyaccept = 18; + yych = (unsigned char)*(ptr = ++cur); + if (yych == 'C') goto yy666; + if (yych == 'T') goto yy667; yy619: - yych = (unsigned char)*++cur; - if (yych == 'o') goto yy667; - goto yy14; +#line 126 "../src/parse/lex_conf.re" + { opts.set_yyrestore (lex_conf_string ()); return; } +#line 2686 "src/parse/lex_conf.cc" yy620: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy668; + if (yych == 'I') goto yy668; goto yy14; yy621: yych = (unsigned char)*++cur; - if (yych == 'z') goto yy669; + if (yych == 'E') goto yy669; goto yy14; yy622: - ++cur; -#line 60 "../src/parse/lex_conf.re" - { opts.set_eager_skip(lex_conf_bool()); return; } -#line 2700 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 's') goto yy671; + goto yy14; +yy623: + yych = (unsigned char)*++cur; + if (yych == 's') goto yy672; + goto yy14; yy624: yych = (unsigned char)*++cur; - if (yych == 's') goto yy670; + if (yych == 't') goto yy673; goto yy14; yy625: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy672; + if (yych == 'o') goto yy674; goto yy14; yy626: yych = (unsigned char)*++cur; - if (yych == 'x') goto yy94; + if (yych == 'u') goto yy675; goto yy14; yy627: - ++cur; - goto yy120; + yych = (unsigned char)*++cur; + if (yych == 'z') goto yy676; + goto yy14; yy628: + ++cur; +#line 61 "../src/parse/lex_conf.re" + { opts.set_eager_skip(lex_conf_bool()); return; } +#line 2723 "src/parse/lex_conf.cc" +yy630: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy673; + if (yych == 's') goto yy677; goto yy14; -yy629: +yy631: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy674; + if (yych == 'o') goto yy679; goto yy14; -yy630: - ++cur; -#line 56 "../src/parse/lex_conf.re" - { opts.set_version(!lex_conf_bool()); return; } -#line 2728 "src/parse/lex_conf.cc" yy632: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy675; + if (yych == 'x') goto yy94; goto yy14; yy633: - yych = (unsigned char)*++cur; - if (yych == 'i') goto yy676; - goto yy14; + ++cur; + goto yy120; yy634: yych = (unsigned char)*++cur; - if (yych == 't') goto yy677; + if (yych == 'n') goto yy680; goto yy14; yy635: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy678; + if (yych == 'i') goto yy681; goto yy14; yy636: - ++cur; - goto yy126; -yy637: - yych = (unsigned char)*++cur; - if (yych == 'l') goto yy679; - goto yy14; -yy638: yych = (unsigned char)*++cur; - if (yych == 't') goto yy681; + if (yych == 'a') goto yy682; goto yy14; +yy637: + ++cur; +#line 56 "../src/parse/lex_conf.re" + { opts.set_version(!lex_conf_bool()); return; } +#line 2755 "src/parse/lex_conf.cc" yy639: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy683; + if (yych == 'i') goto yy683; goto yy14; yy640: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy685; + if (yych == 'i') goto yy684; goto yy14; yy641: yych = (unsigned char)*++cur; - if (yych == 't') goto yy687; + if (yych == 't') goto yy685; goto yy14; yy642: + yych = (unsigned char)*++cur; + if (yych == 'r') goto yy686; + goto yy14; +yy643: ++cur; -#line 157 "../src/parse/lex_conf.re" - { opts.set_fill_arg_use (lex_conf_bool()); return; } -#line 2772 "src/parse/lex_conf.cc" + goto yy126; yy644: - ++cur; -#line 85 "../src/parse/lex_conf.re" - { opts.set_condDividerParam (lex_conf_string ()); return; } -#line 2777 "src/parse/lex_conf.cc" + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy687; + goto yy14; +yy645: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy689; + goto yy14; yy646: yych = (unsigned char)*++cur; - if (yych == 'X') goto yy689; + if (yych == 'e') goto yy691; goto yy14; yy647: yych = (unsigned char)*++cur; - if (yych == 'G') goto yy691; + if (yych == 'e') goto yy693; goto yy14; yy648: - ++cur; -#line 76 "../src/parse/lex_conf.re" - { opts.set_yycondtype (lex_conf_string ()); return; } -#line 2790 "src/parse/lex_conf.cc" -yy650: yych = (unsigned char)*++cur; - if (yych == 'R') goto yy693; + if (yych == 't') goto yy695; goto yy14; +yy649: + ++cur; +#line 158 "../src/parse/lex_conf.re" + { opts.set_fill_arg_use (lex_conf_bool()); return; } +#line 2799 "src/parse/lex_conf.cc" yy651: + ++cur; +#line 86 "../src/parse/lex_conf.re" + { opts.set_condDividerParam (lex_conf_string ()); return; } +#line 2804 "src/parse/lex_conf.cc" +yy653: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy695; + if (yych == 'X') goto yy697; goto yy14; -yy652: - ++cur; -#line 156 "../src/parse/lex_conf.re" - { opts.set_fill_arg (lex_conf_string ()); return; } -#line 2803 "src/parse/lex_conf.cc" yy654: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy696; + if (yych == 'G') goto yy699; goto yy14; yy655: - yyaccept = 19; - yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy697; -yy656: -#line 90 "../src/parse/lex_conf.re" - { opts.set_state_get (lex_conf_string ()); return; } -#line 2815 "src/parse/lex_conf.cc" -yy657: ++cur; -#line 129 "../src/parse/lex_conf.re" - { opts.set_yylessthan (lex_conf_string ()); return; } -#line 2820 "src/parse/lex_conf.cc" -yy659: +#line 77 "../src/parse/lex_conf.re" + { opts.set_yycondtype (lex_conf_string ()); return; } +#line 2817 "src/parse/lex_conf.cc" +yy657: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy698; + if (yych == 'R') goto yy701; goto yy14; -yy660: +yy658: yych = (unsigned char)*++cur; - if (yych == 'A') goto yy699; + if (yych == 'e') goto yy703; goto yy14; +yy659: + ++cur; +#line 157 "../src/parse/lex_conf.re" + { opts.set_fill_arg (lex_conf_string ()); return; } +#line 2830 "src/parse/lex_conf.cc" yy661: yych = (unsigned char)*++cur; - if (yych == 'T') goto yy700; + if (yych == 'T') goto yy704; goto yy14; yy662: - yyaccept = 20; + yyaccept = 19; yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy701; - if (yych == '@') goto yy702; + if (yych == ':') goto yy705; yy663: -#line 92 "../src/parse/lex_conf.re" - { opts.set_state_set (lex_conf_string ()); return; } -#line 2841 "src/parse/lex_conf.cc" +#line 91 "../src/parse/lex_conf.re" + { opts.set_state_get (lex_conf_string ()); return; } +#line 2842 "src/parse/lex_conf.cc" yy664: ++cur; - goto yy101; -yy665: - yych = (unsigned char)*++cur; - if (yych == 'i') goto yy703; - goto yy14; +#line 130 "../src/parse/lex_conf.re" + { opts.set_yylessthan (lex_conf_string ()); return; } +#line 2847 "src/parse/lex_conf.cc" yy666: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy704; + if (yych == 'T') goto yy706; goto yy14; yy667: yych = (unsigned char)*++cur; - if (yych == 't') goto yy705; + if (yych == 'A') goto yy707; goto yy14; yy668: yych = (unsigned char)*++cur; - if (yych == 't') goto yy706; + if (yych == 'T') goto yy708; goto yy14; yy669: - yych = (unsigned char)*++cur; - if (yych == 'a') goto yy707; - goto yy14; + yyaccept = 20; + yych = (unsigned char)*(ptr = ++cur); + if (yych == ':') goto yy709; + if (yych == '@') goto yy710; yy670: +#line 93 "../src/parse/lex_conf.re" + { opts.set_state_set (lex_conf_string ()); return; } +#line 2868 "src/parse/lex_conf.cc" +yy671: ++cur; -#line 73 "../src/parse/lex_conf.re" - { lex_conf_empty_class(); return; } -#line 2869 "src/parse/lex_conf.cc" + goto yy101; yy672: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy708; + if (yych == 'i') goto yy711; goto yy14; yy673: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy709; + if (yych == 'e') goto yy712; goto yy14; yy674: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy710; + if (yych == 't') goto yy713; goto yy14; yy675: yych = (unsigned char)*++cur; - if (yych == 'v') goto yy711; + if (yych == 't') goto yy714; goto yy14; yy676: yych = (unsigned char)*++cur; - if (yych == 't') goto yy712; + if (yych == 'a') goto yy715; goto yy14; yy677: + ++cur; +#line 74 "../src/parse/lex_conf.re" + { lex_conf_empty_class(); return; } +#line 2896 "src/parse/lex_conf.cc" +yy679: + yych = (unsigned char)*++cur; + if (yych == 'l') goto yy716; + goto yy14; +yy680: + yych = (unsigned char)*++cur; + if (yych == 'f') goto yy717; + goto yy14; +yy681: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy713; + if (yych == 'o') goto yy718; goto yy14; -yy678: +yy682: + yych = (unsigned char)*++cur; + if (yych == 'd') goto yy719; + goto yy14; +yy683: + yych = (unsigned char)*++cur; + if (yych == 'v') goto yy721; + goto yy14; +yy684: + yych = (unsigned char)*++cur; + if (yych == 't') goto yy722; + goto yy14; +yy685: + yych = (unsigned char)*++cur; + if (yych == 'a') goto yy723; + goto yy14; +yy686: ++cur; goto yy122; -yy679: +yy687: ++cur; -#line 95 "../src/parse/lex_conf.re" +#line 96 "../src/parse/lex_conf.re" { opts.set_yyfilllabel (lex_conf_string ()); return; } -#line 2901 "src/parse/lex_conf.cc" -yy681: +#line 2932 "src/parse/lex_conf.cc" +yy689: ++cur; -#line 99 "../src/parse/lex_conf.re" +#line 100 "../src/parse/lex_conf.re" { opts.set_yyaccept (lex_conf_string ()); return; } -#line 2906 "src/parse/lex_conf.cc" -yy683: +#line 2937 "src/parse/lex_conf.cc" +yy691: ++cur; -#line 88 "../src/parse/lex_conf.re" +#line 89 "../src/parse/lex_conf.re" { opts.set_yyctable (lex_conf_string ()); return; } -#line 2911 "src/parse/lex_conf.cc" -yy685: +#line 2942 "src/parse/lex_conf.cc" +yy693: ++cur; -#line 168 "../src/parse/lex_conf.re" +#line 169 "../src/parse/lex_conf.re" { lex_conf_string (); return; } -#line 2916 "src/parse/lex_conf.cc" -yy687: +#line 2947 "src/parse/lex_conf.cc" +yy695: ++cur; -#line 113 "../src/parse/lex_conf.re" +#line 114 "../src/parse/lex_conf.re" { opts.set_yytarget (lex_conf_string ()); return; } -#line 2921 "src/parse/lex_conf.cc" -yy689: +#line 2952 "src/parse/lex_conf.cc" +yy697: ++cur; -#line 123 "../src/parse/lex_conf.re" +#line 124 "../src/parse/lex_conf.re" { opts.set_yybackupctx (lex_conf_string ()); return; } -#line 2926 "src/parse/lex_conf.cc" -yy691: +#line 2957 "src/parse/lex_conf.cc" +yy699: ++cur; -#line 124 "../src/parse/lex_conf.re" +#line 125 "../src/parse/lex_conf.re" { opts.set_yybackuptag (lex_conf_string ()); return; } -#line 2931 "src/parse/lex_conf.cc" -yy693: +#line 2962 "src/parse/lex_conf.cc" +yy701: ++cur; -#line 117 "../src/parse/lex_conf.re" +#line 118 "../src/parse/lex_conf.re" { opts.set_yyctxmarker (lex_conf_string ()); return; } -#line 2936 "src/parse/lex_conf.cc" -yy695: +#line 2967 "src/parse/lex_conf.cc" +yy703: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy714; + if (yych == 'd') goto yy724; goto yy14; -yy696: +yy704: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy716; + if (yych == 'I') goto yy726; goto yy14; -yy697: +yy705: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy717; + if (yych == 'n') goto yy727; goto yy14; -yy698: +yy706: yych = (unsigned char)*++cur; - if (yych == 'X') goto yy718; + if (yych == 'X') goto yy728; goto yy14; -yy699: +yy707: yych = (unsigned char)*++cur; - if (yych == 'G') goto yy720; + if (yych == 'G') goto yy730; goto yy14; -yy700: +yy708: yych = (unsigned char)*++cur; - if (yych == 'I') goto yy722; + if (yych == 'I') goto yy732; goto yy14; -yy701: +yy709: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy723; + if (yych == 'n') goto yy733; goto yy14; -yy702: +yy710: yych = (unsigned char)*++cur; - if (yych == 's') goto yy724; + if (yych == 's') goto yy734; goto yy14; -yy703: +yy711: yych = (unsigned char)*++cur; - if (yych == 't') goto yy725; + if (yych == 't') goto yy735; goto yy14; -yy704: +yy712: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy726; + if (yych == 'd') goto yy736; goto yy14; -yy705: +yy713: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy728; + if (yych == 'o') goto yy738; goto yy14; -yy706: +yy714: ++cur; goto yy105; -yy707: +yy715: yych = (unsigned char)*++cur; - if (yych == 't') goto yy729; + if (yych == 't') goto yy739; goto yy14; -yy708: +yy716: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy730; + if (yych == 'i') goto yy740; goto yy14; -yy709: +yy717: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy731; + if (yych == 'o') goto yy741; goto yy14; -yy710: +yy718: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy732; + if (yych == 'n') goto yy742; goto yy14; -yy711: +yy719: + ++cur; +#line 59 "../src/parse/lex_conf.re" + { opts.set_lookahead(!lex_conf_bool()); return; } +#line 3035 "src/parse/lex_conf.cc" +yy721: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy733; + if (yych == 'e') goto yy743; goto yy14; -yy712: +yy722: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy734; + if (yych == 'i') goto yy744; goto yy14; -yy713: +yy723: yych = (unsigned char)*++cur; - if (yych == 't') goto yy735; + if (yych == 't') goto yy745; goto yy14; -yy714: +yy724: ++cur; -#line 158 "../src/parse/lex_conf.re" +#line 159 "../src/parse/lex_conf.re" { opts.set_fill_naked (lex_conf_bool()); return; } -#line 3016 "src/parse/lex_conf.cc" -yy716: +#line 3052 "src/parse/lex_conf.cc" +yy726: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy736; + if (yych == 'O') goto yy746; goto yy14; -yy717: +yy727: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy737; + if (yych == 'a') goto yy747; goto yy14; -yy718: +yy728: ++cur; -#line 126 "../src/parse/lex_conf.re" +#line 127 "../src/parse/lex_conf.re" { opts.set_yyrestorectx (lex_conf_string ()); return; } -#line 3029 "src/parse/lex_conf.cc" -yy720: +#line 3065 "src/parse/lex_conf.cc" +yy730: ++cur; -#line 127 "../src/parse/lex_conf.re" +#line 128 "../src/parse/lex_conf.re" { opts.set_yyrestoretag (lex_conf_string ()); return; } -#line 3034 "src/parse/lex_conf.cc" -yy722: +#line 3070 "src/parse/lex_conf.cc" +yy732: yych = (unsigned char)*++cur; - if (yych == 'O') goto yy738; + if (yych == 'O') goto yy748; goto yy14; -yy723: +yy733: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy739; + if (yych == 'a') goto yy749; goto yy14; -yy724: +yy734: yych = (unsigned char)*++cur; - if (yych == 't') goto yy740; + if (yych == 't') goto yy750; goto yy14; -yy725: +yy735: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy741; + if (yych == 'i') goto yy751; goto yy14; -yy726: +yy736: ++cur; #line 58 "../src/parse/lex_conf.re" { opts.set_bCaseInverted(lex_conf_bool()); return; } -#line 3055 "src/parse/lex_conf.cc" -yy728: +#line 3091 "src/parse/lex_conf.cc" +yy738: yych = (unsigned char)*++cur; if (yych == 's') goto yy110; goto yy14; -yy729: +yy739: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy742; + if (yych == 'i') goto yy752; goto yy14; -yy730: +yy740: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy743; + if (yych == 'c') goto yy753; goto yy14; -yy731: +yy741: ++cur; goto yy113; -yy732: +yy742: yych = (unsigned char)*++cur; - if (yych == '-') goto yy744; + if (yych == '-') goto yy754; goto yy14; -yy733: +yy743: yych = (unsigned char)*++cur; - if (yych == '-') goto yy745; + if (yych == '-') goto yy755; goto yy14; -yy734: +yy744: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy746; + if (yych == 'o') goto yy756; goto yy14; -yy735: +yy745: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy747; + if (yych == 'e') goto yy757; goto yy14; -yy736: +yy746: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy748; + if (yych == 'N') goto yy758; goto yy14; -yy737: +yy747: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy750; + if (yych == 'k') goto yy760; goto yy14; -yy738: +yy748: yych = (unsigned char)*++cur; - if (yych == 'N') goto yy751; + if (yych == 'N') goto yy761; goto yy14; -yy739: +yy749: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy753; + if (yych == 'k') goto yy763; goto yy14; -yy740: +yy750: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy754; + if (yych == 'a') goto yy764; goto yy14; -yy741: +yy751: yych = (unsigned char)*++cur; - if (yych == 'v') goto yy755; + if (yych == 'v') goto yy765; goto yy14; -yy742: +yy752: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy756; + if (yych == 'o') goto yy766; goto yy14; -yy743: +yy753: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy757; + if (yych == 'y') goto yy767; goto yy14; -yy744: +yy754: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy759; + if (yych == 'd') goto yy769; goto yy14; -yy745: +yy755: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy760; + if (yych == 'm') goto yy770; goto yy14; -yy746: +yy756: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy761; + if (yych == 'n') goto yy771; goto yy14; -yy747: +yy757: ++cur; goto yy109; -yy748: +yy758: yyaccept = 21; yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy762; -yy749: -#line 77 "../src/parse/lex_conf.re" + if (yych == ':') goto yy772; +yy759: +#line 78 "../src/parse/lex_conf.re" { opts.set_cond_get (lex_conf_string ()); return; } -#line 3141 "src/parse/lex_conf.cc" -yy750: +#line 3177 "src/parse/lex_conf.cc" +yy760: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy763; + if (yych == 'e') goto yy773; goto yy14; -yy751: +yy761: yyaccept = 22; yych = (unsigned char)*(ptr = ++cur); - if (yych == ':') goto yy764; - if (yych == '@') goto yy765; -yy752: -#line 79 "../src/parse/lex_conf.re" + if (yych == ':') goto yy774; + if (yych == '@') goto yy775; +yy762: +#line 80 "../src/parse/lex_conf.re" { opts.set_cond_set (lex_conf_string ()); return; } -#line 3154 "src/parse/lex_conf.cc" -yy753: +#line 3190 "src/parse/lex_conf.cc" +yy763: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy766; + if (yych == 'e') goto yy776; goto yy14; -yy754: +yy764: yych = (unsigned char)*++cur; - if (yych == 't') goto yy767; + if (yych == 't') goto yy777; goto yy14; -yy755: +yy765: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy768; + if (yych == 'e') goto yy778; goto yy14; -yy756: +yy766: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy770; + if (yych == 'n') goto yy780; goto yy14; -yy757: +yy767: ++cur; -#line 71 "../src/parse/lex_conf.re" +#line 72 "../src/parse/lex_conf.re" { lex_conf_encoding_policy(); return; } -#line 3175 "src/parse/lex_conf.cc" -yy759: +#line 3211 "src/parse/lex_conf.cc" +yy769: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy772; + if (yych == 'a') goto yy782; goto yy14; -yy760: +yy770: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy773; + if (yych == 'a') goto yy783; goto yy14; -yy761: +yy771: yych = (unsigned char)*++cur; - if (yych == 's') goto yy774; + if (yych == 's') goto yy784; goto yy14; -yy762: +yy772: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy775; + if (yych == 'n') goto yy785; goto yy14; -yy763: +yy773: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy776; + if (yych == 'd') goto yy786; goto yy14; -yy764: +yy774: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy778; + if (yych == 'n') goto yy788; goto yy14; -yy765: +yy775: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy779; + if (yych == 'c') goto yy789; goto yy14; -yy766: +yy776: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy780; + if (yych == 'd') goto yy790; goto yy14; -yy767: +yy777: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy782; + if (yych == 'e') goto yy792; goto yy14; -yy768: +yy778: ++cur; #line 57 "../src/parse/lex_conf.re" { opts.set_bCaseInsensitive(lex_conf_bool()); return; } -#line 3216 "src/parse/lex_conf.cc" -yy770: +#line 3252 "src/parse/lex_conf.cc" +yy780: ++cur; -#line 74 "../src/parse/lex_conf.re" +#line 75 "../src/parse/lex_conf.re" { lex_conf_dfa_minimization(); return; } -#line 3221 "src/parse/lex_conf.cc" -yy772: +#line 3257 "src/parse/lex_conf.cc" +yy782: yych = (unsigned char)*++cur; - if (yych == 't') goto yy784; + if (yych == 't') goto yy794; goto yy14; -yy773: +yy783: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy785; + if (yych == 'p') goto yy795; goto yy14; -yy774: +yy784: ++cur; goto yy103; -yy775: +yy785: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy786; + if (yych == 'a') goto yy796; goto yy14; -yy776: +yy786: ++cur; -#line 91 "../src/parse/lex_conf.re" +#line 92 "../src/parse/lex_conf.re" { opts.set_state_get_naked (lex_conf_bool()); return; } -#line 3241 "src/parse/lex_conf.cc" -yy778: +#line 3277 "src/parse/lex_conf.cc" +yy788: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy787; + if (yych == 'a') goto yy797; goto yy14; -yy779: +yy789: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy788; + if (yych == 'o') goto yy798; goto yy14; -yy780: +yy790: ++cur; -#line 93 "../src/parse/lex_conf.re" +#line 94 "../src/parse/lex_conf.re" { opts.set_state_set_naked (lex_conf_bool()); return; } -#line 3254 "src/parse/lex_conf.cc" -yy782: +#line 3290 "src/parse/lex_conf.cc" +yy792: ++cur; -#line 94 "../src/parse/lex_conf.re" +#line 95 "../src/parse/lex_conf.re" { opts.set_state_set_arg (lex_conf_string ()); return; } -#line 3259 "src/parse/lex_conf.cc" -yy784: +#line 3295 "src/parse/lex_conf.cc" +yy794: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy789; + if (yych == 'e') goto yy799; goto yy14; -yy785: +yy795: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy791; + if (yych == 'p') goto yy801; goto yy14; -yy786: +yy796: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy792; + if (yych == 'k') goto yy802; goto yy14; -yy787: +yy797: yych = (unsigned char)*++cur; - if (yych == 'k') goto yy793; + if (yych == 'k') goto yy803; goto yy14; -yy788: +yy798: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy794; + if (yych == 'n') goto yy804; goto yy14; -yy789: +yy799: ++cur; #line 55 "../src/parse/lex_conf.re" { opts.set_bNoGenerationDate(lex_conf_bool()); return; } -#line 3284 "src/parse/lex_conf.cc" -yy791: +#line 3320 "src/parse/lex_conf.cc" +yy801: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy795; + if (yych == 'i') goto yy805; goto yy14; -yy792: +yy802: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy796; + if (yych == 'e') goto yy806; goto yy14; -yy793: +yy803: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy797; + if (yych == 'e') goto yy807; goto yy14; -yy794: +yy804: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy798; + if (yych == 'd') goto yy808; goto yy14; -yy795: +yy805: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy800; + if (yych == 'n') goto yy810; goto yy14; -yy796: +yy806: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy801; + if (yych == 'd') goto yy811; goto yy14; -yy797: +yy807: yych = (unsigned char)*++cur; - if (yych == 'd') goto yy803; + if (yych == 'd') goto yy813; goto yy14; -yy798: +yy808: ++cur; -#line 80 "../src/parse/lex_conf.re" +#line 81 "../src/parse/lex_conf.re" { opts.set_cond_set_arg (lex_conf_string ()); return; } -#line 3317 "src/parse/lex_conf.cc" -yy800: +#line 3353 "src/parse/lex_conf.cc" +yy810: yych = (unsigned char)*++cur; - if (yych == 'g') goto yy805; + if (yych == 'g') goto yy815; goto yy14; -yy801: +yy811: ++cur; -#line 78 "../src/parse/lex_conf.re" +#line 79 "../src/parse/lex_conf.re" { opts.set_cond_get_naked (lex_conf_bool()); return; } -#line 3326 "src/parse/lex_conf.cc" -yy803: +#line 3362 "src/parse/lex_conf.cc" +yy813: ++cur; -#line 81 "../src/parse/lex_conf.re" +#line 82 "../src/parse/lex_conf.re" { opts.set_cond_set_naked (lex_conf_bool()); return; } -#line 3331 "src/parse/lex_conf.cc" -yy805: +#line 3367 "src/parse/lex_conf.cc" +yy815: ++cur; -#line 59 "../src/parse/lex_conf.re" +#line 60 "../src/parse/lex_conf.re" { opts.set_bijective_mapping(!lex_conf_bool()); return; } -#line 3336 "src/parse/lex_conf.cc" +#line 3372 "src/parse/lex_conf.cc" } -#line 169 "../src/parse/lex_conf.re" +#line 170 "../src/parse/lex_conf.re" } @@ -3342,102 +3378,102 @@ void Scanner::lex_conf_encoding_policy() { lex_conf_assign (); -#line 3346 "src/parse/lex_conf.cc" +#line 3382 "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 yy811; + if (yych == 'f') goto yy821; } else { - if (yych <= 'i') goto yy812; - if (yych == 's') goto yy813; + if (yych <= 'i') goto yy822; + if (yych == 's') goto yy823; } ++cur; -yy810: -#line 176 "../src/parse/lex_conf.re" +yy820: +#line 177 "../src/parse/lex_conf.re" { fatal("bad configuration value" " (expected: 'ignore', 'substitute', 'fail')"); } -#line 3362 "src/parse/lex_conf.cc" -yy811: +#line 3398 "src/parse/lex_conf.cc" +yy821: yych = (unsigned char)*(ptr = ++cur); - if (yych == 'a') goto yy814; - goto yy810; -yy812: + if (yych == 'a') goto yy824; + goto yy820; +yy822: yych = (unsigned char)*(ptr = ++cur); - if (yych == 'g') goto yy816; - goto yy810; -yy813: + if (yych == 'g') goto yy826; + goto yy820; +yy823: yych = (unsigned char)*(ptr = ++cur); - if (yych == 'u') goto yy817; - goto yy810; -yy814: + if (yych == 'u') goto yy827; + goto yy820; +yy824: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy818; -yy815: + if (yych == 'i') goto yy828; +yy825: cur = ptr; - goto yy810; -yy816: + goto yy820; +yy826: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy819; - goto yy815; -yy817: + if (yych == 'n') goto yy829; + goto yy825; +yy827: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy820; - goto yy815; -yy818: + if (yych == 'b') goto yy830; + goto yy825; +yy828: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy821; - goto yy815; -yy819: + if (yych == 'l') goto yy831; + goto yy825; +yy829: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy823; - goto yy815; -yy820: + if (yych == 'o') goto yy833; + goto yy825; +yy830: yych = (unsigned char)*++cur; - if (yych == 's') goto yy824; - goto yy815; -yy821: + if (yych == 's') goto yy834; + goto yy825; +yy831: ++cur; -#line 180 "../src/parse/lex_conf.re" +#line 181 "../src/parse/lex_conf.re" { opts.set_encoding_policy(Enc::POLICY_FAIL); goto end; } -#line 3405 "src/parse/lex_conf.cc" -yy823: +#line 3441 "src/parse/lex_conf.cc" +yy833: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy825; - goto yy815; -yy824: + if (yych == 'r') goto yy835; + goto yy825; +yy834: yych = (unsigned char)*++cur; - if (yych == 't') goto yy826; - goto yy815; -yy825: + if (yych == 't') goto yy836; + goto yy825; +yy835: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy827; - goto yy815; -yy826: + if (yych == 'e') goto yy837; + goto yy825; +yy836: yych = (unsigned char)*++cur; - if (yych == 'i') goto yy829; - goto yy815; -yy827: + if (yych == 'i') goto yy839; + goto yy825; +yy837: ++cur; -#line 178 "../src/parse/lex_conf.re" +#line 179 "../src/parse/lex_conf.re" { opts.set_encoding_policy(Enc::POLICY_IGNORE); goto end; } -#line 3426 "src/parse/lex_conf.cc" -yy829: +#line 3462 "src/parse/lex_conf.cc" +yy839: yych = (unsigned char)*++cur; - if (yych != 't') goto yy815; + if (yych != 't') goto yy825; yych = (unsigned char)*++cur; - if (yych != 'u') goto yy815; + if (yych != 'u') goto yy825; yych = (unsigned char)*++cur; - if (yych != 't') goto yy815; + if (yych != 't') goto yy825; yych = (unsigned char)*++cur; - if (yych != 'e') goto yy815; + if (yych != 'e') goto yy825; ++cur; -#line 179 "../src/parse/lex_conf.re" +#line 180 "../src/parse/lex_conf.re" { opts.set_encoding_policy(Enc::POLICY_SUBSTITUTE); goto end; } -#line 3439 "src/parse/lex_conf.cc" +#line 3475 "src/parse/lex_conf.cc" } -#line 181 "../src/parse/lex_conf.re" +#line 182 "../src/parse/lex_conf.re" end: lex_conf_semicolon(); @@ -3447,77 +3483,77 @@ void Scanner::lex_conf_input() { lex_conf_assign (); -#line 3451 "src/parse/lex_conf.cc" +#line 3487 "src/parse/lex_conf.cc" { unsigned char yych; if ((lim - cur) < 7) fill(7); yych = (unsigned char)*cur; - if (yych <= 'b') goto yy837; - if (yych <= 'c') goto yy839; - if (yych <= 'd') goto yy840; -yy837: + if (yych <= 'b') goto yy847; + if (yych <= 'c') goto yy849; + if (yych <= 'd') goto yy850; +yy847: ++cur; -yy838: -#line 190 "../src/parse/lex_conf.re" +yy848: +#line 191 "../src/parse/lex_conf.re" { fatal("bad configuration value" " (expected: 'default', 'custom')"); } -#line 3465 "src/parse/lex_conf.cc" -yy839: +#line 3501 "src/parse/lex_conf.cc" +yy849: yych = (unsigned char)*(ptr = ++cur); - if (yych == 'u') goto yy841; - goto yy838; -yy840: + if (yych == 'u') goto yy851; + goto yy848; +yy850: yych = (unsigned char)*(ptr = ++cur); - if (yych == 'e') goto yy843; - goto yy838; -yy841: + if (yych == 'e') goto yy853; + goto yy848; +yy851: yych = (unsigned char)*++cur; - if (yych == 's') goto yy844; -yy842: + if (yych == 's') goto yy854; +yy852: cur = ptr; - goto yy838; -yy843: + goto yy848; +yy853: yych = (unsigned char)*++cur; - if (yych == 'f') goto yy845; - goto yy842; -yy844: + if (yych == 'f') goto yy855; + goto yy852; +yy854: yych = (unsigned char)*++cur; - if (yych == 't') goto yy846; - goto yy842; -yy845: + if (yych == 't') goto yy856; + goto yy852; +yy855: yych = (unsigned char)*++cur; - if (yych == 'a') goto yy847; - goto yy842; -yy846: + if (yych == 'a') goto yy857; + goto yy852; +yy856: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy848; - goto yy842; -yy847: + if (yych == 'o') goto yy858; + goto yy852; +yy857: yych = (unsigned char)*++cur; - if (yych == 'u') goto yy849; - goto yy842; -yy848: + if (yych == 'u') goto yy859; + goto yy852; +yy858: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy850; - goto yy842; -yy849: + if (yych == 'm') goto yy860; + goto yy852; +yy859: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy852; - goto yy842; -yy850: + if (yych == 'l') goto yy862; + goto yy852; +yy860: ++cur; -#line 193 "../src/parse/lex_conf.re" +#line 194 "../src/parse/lex_conf.re" { opts.set_input_api(INPUT_CUSTOM); goto end; } -#line 3512 "src/parse/lex_conf.cc" -yy852: +#line 3548 "src/parse/lex_conf.cc" +yy862: yych = (unsigned char)*++cur; - if (yych != 't') goto yy842; + if (yych != 't') goto yy852; ++cur; -#line 192 "../src/parse/lex_conf.re" +#line 193 "../src/parse/lex_conf.re" { opts.set_input_api(INPUT_DEFAULT); goto end; } -#line 3519 "src/parse/lex_conf.cc" +#line 3555 "src/parse/lex_conf.cc" } -#line 194 "../src/parse/lex_conf.re" +#line 195 "../src/parse/lex_conf.re" end: lex_conf_semicolon(); @@ -3527,105 +3563,105 @@ void Scanner::lex_conf_empty_class() { lex_conf_assign (); -#line 3531 "src/parse/lex_conf.cc" +#line 3567 "src/parse/lex_conf.cc" { unsigned char yych; if ((lim - cur) < 11) fill(11); yych = (unsigned char)*cur; - if (yych == 'e') goto yy859; - if (yych == 'm') goto yy860; + if (yych == 'e') goto yy869; + if (yych == 'm') goto yy870; ++cur; -yy858: -#line 203 "../src/parse/lex_conf.re" +yy868: +#line 204 "../src/parse/lex_conf.re" { fatal("bad configuration value" " (expected: 'match-empty', 'match-none', 'error')"); } -#line 3543 "src/parse/lex_conf.cc" -yy859: +#line 3579 "src/parse/lex_conf.cc" +yy869: yych = (unsigned char)*(ptr = ++cur); - if (yych == 'r') goto yy861; - goto yy858; -yy860: + if (yych == 'r') goto yy871; + goto yy868; +yy870: yych = (unsigned char)*(ptr = ++cur); - if (yych == 'a') goto yy863; - goto yy858; -yy861: + if (yych == 'a') goto yy873; + goto yy868; +yy871: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy864; -yy862: + if (yych == 'r') goto yy874; +yy872: cur = ptr; - goto yy858; -yy863: + goto yy868; +yy873: yych = (unsigned char)*++cur; - if (yych == 't') goto yy865; - goto yy862; -yy864: + if (yych == 't') goto yy875; + goto yy872; +yy874: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy866; - goto yy862; -yy865: + if (yych == 'o') goto yy876; + goto yy872; +yy875: yych = (unsigned char)*++cur; - if (yych == 'c') goto yy867; - goto yy862; -yy866: + if (yych == 'c') goto yy877; + goto yy872; +yy876: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy868; - goto yy862; -yy867: + if (yych == 'r') goto yy878; + goto yy872; +yy877: yych = (unsigned char)*++cur; - if (yych == 'h') goto yy870; - goto yy862; -yy868: + if (yych == 'h') goto yy880; + goto yy872; +yy878: ++cur; -#line 207 "../src/parse/lex_conf.re" +#line 208 "../src/parse/lex_conf.re" { opts.set_empty_class_policy(EMPTY_CLASS_ERROR); goto end; } -#line 3582 "src/parse/lex_conf.cc" -yy870: +#line 3618 "src/parse/lex_conf.cc" +yy880: yych = (unsigned char)*++cur; - if (yych != '-') goto yy862; + if (yych != '-') goto yy872; yych = (unsigned char)*++cur; - if (yych == 'e') goto yy872; - if (yych == 'n') goto yy873; - goto yy862; -yy872: + if (yych == 'e') goto yy882; + if (yych == 'n') goto yy883; + goto yy872; +yy882: yych = (unsigned char)*++cur; - if (yych == 'm') goto yy874; - goto yy862; -yy873: + if (yych == 'm') goto yy884; + goto yy872; +yy883: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy875; - goto yy862; -yy874: + if (yych == 'o') goto yy885; + goto yy872; +yy884: yych = (unsigned char)*++cur; - if (yych == 'p') goto yy876; - goto yy862; -yy875: + if (yych == 'p') goto yy886; + goto yy872; +yy885: yych = (unsigned char)*++cur; - if (yych == 'n') goto yy877; - goto yy862; -yy876: + if (yych == 'n') goto yy887; + goto yy872; +yy886: yych = (unsigned char)*++cur; - if (yych == 't') goto yy878; - goto yy862; -yy877: + if (yych == 't') goto yy888; + goto yy872; +yy887: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy879; - goto yy862; -yy878: + if (yych == 'e') goto yy889; + goto yy872; +yy888: yych = (unsigned char)*++cur; - if (yych == 'y') goto yy881; - goto yy862; -yy879: + if (yych == 'y') goto yy891; + goto yy872; +yy889: ++cur; -#line 206 "../src/parse/lex_conf.re" +#line 207 "../src/parse/lex_conf.re" { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_NONE); goto end; } -#line 3622 "src/parse/lex_conf.cc" -yy881: +#line 3658 "src/parse/lex_conf.cc" +yy891: ++cur; -#line 205 "../src/parse/lex_conf.re" +#line 206 "../src/parse/lex_conf.re" { opts.set_empty_class_policy(EMPTY_CLASS_MATCH_EMPTY); goto end; } -#line 3627 "src/parse/lex_conf.cc" +#line 3663 "src/parse/lex_conf.cc" } -#line 208 "../src/parse/lex_conf.re" +#line 209 "../src/parse/lex_conf.re" end: lex_conf_semicolon(); @@ -3635,65 +3671,65 @@ void Scanner::lex_conf_dfa_minimization() { lex_conf_assign (); -#line 3639 "src/parse/lex_conf.cc" +#line 3675 "src/parse/lex_conf.cc" { unsigned char yych; if ((lim - cur) < 5) fill(5); yych = (unsigned char)*cur; - if (yych == 'm') goto yy887; - if (yych == 't') goto yy888; + if (yych == 'm') goto yy897; + if (yych == 't') goto yy898; ++cur; -yy886: -#line 217 "../src/parse/lex_conf.re" +yy896: +#line 218 "../src/parse/lex_conf.re" { fatal("bad configuration value" " (expected: 'table', 'moore')"); } -#line 3651 "src/parse/lex_conf.cc" -yy887: +#line 3687 "src/parse/lex_conf.cc" +yy897: yych = (unsigned char)*(ptr = ++cur); - if (yych == 'o') goto yy889; - goto yy886; -yy888: + if (yych == 'o') goto yy899; + goto yy896; +yy898: yych = (unsigned char)*(ptr = ++cur); - if (yych == 'a') goto yy891; - goto yy886; -yy889: + if (yych == 'a') goto yy901; + goto yy896; +yy899: yych = (unsigned char)*++cur; - if (yych == 'o') goto yy892; -yy890: + if (yych == 'o') goto yy902; +yy900: cur = ptr; - goto yy886; -yy891: + goto yy896; +yy901: yych = (unsigned char)*++cur; - if (yych == 'b') goto yy893; - goto yy890; -yy892: + if (yych == 'b') goto yy903; + goto yy900; +yy902: yych = (unsigned char)*++cur; - if (yych == 'r') goto yy894; - goto yy890; -yy893: + if (yych == 'r') goto yy904; + goto yy900; +yy903: yych = (unsigned char)*++cur; - if (yych == 'l') goto yy895; - goto yy890; -yy894: + if (yych == 'l') goto yy905; + goto yy900; +yy904: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy896; - goto yy890; -yy895: + if (yych == 'e') goto yy906; + goto yy900; +yy905: yych = (unsigned char)*++cur; - if (yych == 'e') goto yy898; - goto yy890; -yy896: + if (yych == 'e') goto yy908; + goto yy900; +yy906: ++cur; -#line 220 "../src/parse/lex_conf.re" +#line 221 "../src/parse/lex_conf.re" { opts.set_dfa_minimization(DFA_MINIMIZATION_MOORE); goto end; } -#line 3690 "src/parse/lex_conf.cc" -yy898: +#line 3726 "src/parse/lex_conf.cc" +yy908: ++cur; -#line 219 "../src/parse/lex_conf.re" +#line 220 "../src/parse/lex_conf.re" { opts.set_dfa_minimization(DFA_MINIMIZATION_TABLE); goto end; } -#line 3695 "src/parse/lex_conf.cc" +#line 3731 "src/parse/lex_conf.cc" } -#line 221 "../src/parse/lex_conf.re" +#line 222 "../src/parse/lex_conf.re" end: lex_conf_semicolon(); @@ -3714,7 +3750,7 @@ void Scanner::lex_conf_enc(Enc::type_t enc) void Scanner::lex_conf_assign () { -#line 3718 "src/parse/lex_conf.cc" +#line 3754 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -3754,56 +3790,56 @@ void Scanner::lex_conf_assign () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy904; + if (yych == '\t') goto yy914; } else { - if (yych <= ' ') goto yy904; - if (yych == '=') goto yy905; + if (yych <= ' ') goto yy914; + if (yych == '=') goto yy915; } ++cur; -yy903: -#line 241 "../src/parse/lex_conf.re" +yy913: +#line 242 "../src/parse/lex_conf.re" { fatal ("missing '=' in configuration"); } -#line 3767 "src/parse/lex_conf.cc" -yy904: +#line 3803 "src/parse/lex_conf.cc" +yy914: yych = (unsigned char)*(ptr = ++cur); if (yych <= 0x1F) { - if (yych == '\t') goto yy908; - goto yy903; + if (yych == '\t') goto yy918; + goto yy913; } else { - if (yych <= ' ') goto yy908; - if (yych != '=') goto yy903; + if (yych <= ' ') goto yy918; + if (yych != '=') goto yy913; } -yy905: +yy915: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy905; + goto yy915; } -#line 242 "../src/parse/lex_conf.re" +#line 243 "../src/parse/lex_conf.re" { return; } -#line 3786 "src/parse/lex_conf.cc" -yy908: +#line 3822 "src/parse/lex_conf.cc" +yy918: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy908; + if (yych == '\t') goto yy918; } else { - if (yych <= ' ') goto yy908; - if (yych == '=') goto yy905; + if (yych <= ' ') goto yy918; + if (yych == '=') goto yy915; } cur = ptr; - goto yy903; + goto yy913; } -#line 243 "../src/parse/lex_conf.re" +#line 244 "../src/parse/lex_conf.re" } void Scanner::lex_conf_semicolon () { -#line 3807 "src/parse/lex_conf.cc" +#line 3843 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -3843,39 +3879,39 @@ void Scanner::lex_conf_semicolon () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= 0x1F) { - if (yych == '\t') goto yy915; + if (yych == '\t') goto yy925; } else { - if (yych <= ' ') goto yy915; - if (yych == ';') goto yy916; + if (yych <= ' ') goto yy925; + if (yych == ';') goto yy926; } ++cur; -yy914: -#line 249 "../src/parse/lex_conf.re" +yy924: +#line 250 "../src/parse/lex_conf.re" { fatal ("missing ending ';' in configuration"); } -#line 3856 "src/parse/lex_conf.cc" -yy915: +#line 3892 "src/parse/lex_conf.cc" +yy925: yych = (unsigned char)*(ptr = ++cur); if (yybm[0+yych] & 128) { - goto yy918; + goto yy928; } - if (yych != ';') goto yy914; -yy916: + if (yych != ';') goto yy924; +yy926: ++cur; -#line 250 "../src/parse/lex_conf.re" +#line 251 "../src/parse/lex_conf.re" { return; } -#line 3867 "src/parse/lex_conf.cc" -yy918: +#line 3903 "src/parse/lex_conf.cc" +yy928: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy918; + goto yy928; } - if (yych == ';') goto yy916; + if (yych == ';') goto yy926; cur = ptr; - goto yy914; + goto yy924; } -#line 251 "../src/parse/lex_conf.re" +#line 252 "../src/parse/lex_conf.re" } @@ -3889,7 +3925,7 @@ int32_t Scanner::lex_conf_number () lex_conf_assign (); tok = cur; -#line 3893 "src/parse/lex_conf.cc" +#line 3929 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -3929,21 +3965,21 @@ int32_t Scanner::lex_conf_number () if ((lim - cur) < 2) fill(2); yych = (unsigned char)*cur; if (yych <= '/') { - if (yych == '-') goto yy924; + if (yych == '-') goto yy934; } else { - if (yych <= '0') goto yy925; - if (yych <= '9') goto yy927; + if (yych <= '0') goto yy935; + if (yych <= '9') goto yy937; } -yy923: -yy924: +yy933: +yy934: yych = (unsigned char)*++cur; - if (yych <= '0') goto yy923; - if (yych <= '9') goto yy927; - goto yy923; -yy925: + if (yych <= '0') goto yy933; + if (yych <= '9') goto yy937; + goto yy933; +yy935: ++cur; -yy926: -#line 265 "../src/parse/lex_conf.re" +yy936: +#line 266 "../src/parse/lex_conf.re" { int32_t n = 0; if (!s_to_i32_unsafe (tok, cur, n)) @@ -3953,17 +3989,17 @@ yy926: lex_conf_semicolon (); return n; } -#line 3957 "src/parse/lex_conf.cc" -yy927: +#line 3993 "src/parse/lex_conf.cc" +yy937: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy927; + goto yy937; } - goto yy926; + goto yy936; } -#line 274 "../src/parse/lex_conf.re" +#line 275 "../src/parse/lex_conf.re" } @@ -3973,7 +4009,7 @@ std::string Scanner::lex_conf_string () std::string s; tok = cur; -#line 3977 "src/parse/lex_conf.cc" +#line 4013 "src/parse/lex_conf.cc" { unsigned char yych; static const unsigned char yybm[] = { @@ -4014,38 +4050,38 @@ std::string Scanner::lex_conf_string () yych = (unsigned char)*cur; if (yych <= '!') { if (yych <= '\n') { - if (yych <= 0x08) goto yy932; + if (yych <= 0x08) goto yy942; } else { - if (yych != ' ') goto yy932; + if (yych != ' ') goto yy942; } } else { if (yych <= '\'') { - if (yych <= '"') goto yy935; - if (yych <= '&') goto yy932; - goto yy935; + if (yych <= '"') goto yy945; + if (yych <= '&') goto yy942; + goto yy945; } else { - if (yych != ';') goto yy932; + if (yych != ';') goto yy942; } } -#line 301 "../src/parse/lex_conf.re" +#line 302 "../src/parse/lex_conf.re" { goto end; } -#line 4033 "src/parse/lex_conf.cc" -yy932: +#line 4069 "src/parse/lex_conf.cc" +yy942: ++cur; if (lim <= cur) fill(1); yych = (unsigned char)*cur; if (yybm[0+yych] & 128) { - goto yy932; + goto yy942; } -#line 297 "../src/parse/lex_conf.re" +#line 298 "../src/parse/lex_conf.re" { s = std::string(tok, tok_len()); goto end; } -#line 4046 "src/parse/lex_conf.cc" -yy935: +#line 4082 "src/parse/lex_conf.cc" +yy945: ++cur; -#line 283 "../src/parse/lex_conf.re" +#line 284 "../src/parse/lex_conf.re" { const char quote = tok[0]; for (bool end;;) { @@ -4060,9 +4096,9 @@ yy935: } } } -#line 4064 "src/parse/lex_conf.cc" +#line 4100 "src/parse/lex_conf.cc" } -#line 302 "../src/parse/lex_conf.re" +#line 303 "../src/parse/lex_conf.re" end: lex_conf_semicolon (); diff --git a/re2c/src/codegen/emit_action.cc b/re2c/src/codegen/emit_action.cc index 14bb15f7..e97251ff 100644 --- a/re2c/src/codegen/emit_action.cc +++ b/re2c/src/codegen/emit_action.cc @@ -276,10 +276,14 @@ void gen_goto_plain(OutputFile &o, uint32_t ind, const State *to, void gen_goto(code_lines_t &code, const State *to, const DFA &dfa, tcid_t tcid, const opt_t *opts, bool skip) { + std::ostringstream s; + output_skip(s, 0, opts); + + if (skip && !opts->lookahead) { + code.push_back(s.str()); + } gen_settags(code, dfa, tcid, opts); - if (skip) { - std::ostringstream s; - output_skip(s, 0, opts); + if (skip && opts->lookahead) { code.push_back(s.str()); } if (to) { diff --git a/re2c/src/codegen/emit_dfa.cc b/re2c/src/codegen/emit_dfa.cc index 3989cbfe..f235d828 100644 --- a/re2c/src/codegen/emit_dfa.cc +++ b/re2c/src/codegen/emit_dfa.cc @@ -65,6 +65,12 @@ void DFA::count_used_labels (std::set & used, label_t start, void DFA::emit_body(OutputFile &o, uint32_t& ind, const std::set &used_labels, label_t initial) const { + code_lines_t code; + gen_settags(code, *this, tags0, o.block().opts); + for (size_t i = 0; i < code.size(); ++i) { + o.wind(ind).wstring(code[i]); + } + // If DFA has transitions to initial state, then initial state // has a piece of code that advances input position. Wee must // skip it when entering DFA. diff --git a/re2c/src/codegen/go_construct.cc b/re2c/src/codegen/go_construct.cc index b6cb7193..7d648334 100644 --- a/re2c/src/codegen/go_construct.cc +++ b/re2c/src/codegen/go_construct.cc @@ -228,7 +228,10 @@ void Go::init(const State *from, const opt_t *opts, bitmaps_t &bitmaps) skip = need_skip; for (uint32_t i = 0; skip && i < nSpans; ++i) { - skip = consume(span[i].to) && span[i].tags == TCID0; + // in non-lookahead TDFA cursor is incremented before setting tags, + // so tags don't affect hoisting skip statement out of conditional branches + skip = consume(span[i].to) + && (!opts->lookahead || span[i].tags == TCID0); } // initialize high (wide) spans diff --git a/re2c/src/conf/opt.cc b/re2c/src/conf/opt.cc index e29f268e..10389640 100644 --- a/re2c/src/conf/opt.cc +++ b/re2c/src/conf/opt.cc @@ -247,6 +247,9 @@ void opt_t::fix () { tFlag = true; } + if (!lookahead) { + eager_skip = true; + } } realopt_t::realopt_t (useropt_t & opt) diff --git a/re2c/src/conf/opt.h b/re2c/src/conf/opt.h index 87923127..b1dc2368 100644 --- a/re2c/src/conf/opt.h +++ b/re2c/src/conf/opt.h @@ -116,6 +116,7 @@ namespace re2c OPT (bool, startlabel_force, false) \ /* internals */ \ OPT (dfa_minimization_t, dfa_minimization, DFA_MINIMIZATION_MOORE) \ + OPT (bool, lookahead, true) \ OPT (bool, bijective_mapping, true) \ OPT (bool, eager_skip, false) \ /* dump */ \ diff --git a/re2c/src/conf/parse_opts.re b/re2c/src/conf/parse_opts.re index a84b5777..7a524aa5 100644 --- a/re2c/src/conf/parse_opts.re +++ b/re2c/src/conf/parse_opts.re @@ -147,6 +147,7 @@ opt_long: "case-inverted" end { opts.set_bCaseInverted (true); goto opt; } "skeleton" end { opts.set_target (opt_t::SKELETON); goto opt; } "tags" end { opts.set_tags (true); goto opt; } + "no-lookahead" end { opts.set_lookahead(false); goto opt; } "non-bijective-mapping" end { opts.set_bijective_mapping(false); goto opt; } "eager-skip" end { opts.set_eager_skip(true); goto opt; } "ecb" end { if (!opts.set_encoding (Enc::EBCDIC)) { error_encoding (); return EXIT_FAIL; } goto opt; } diff --git a/re2c/src/ir/adfa/adfa.cc b/re2c/src/ir/adfa/adfa.cc index acdc0cb9..a5fae423 100644 --- a/re2c/src/ir/adfa/adfa.cc +++ b/re2c/src/ir/adfa/adfa.cc @@ -34,6 +34,7 @@ DFA::DFA , ubChar(charset.back()) , nStates(0) , head(NULL) + , tags0(*dfa.tcid0) , rules(dfa.rules) , vartags(dfa.vartags) , fixtags(dfa.fixtags) diff --git a/re2c/src/ir/adfa/adfa.h b/re2c/src/ir/adfa/adfa.h index f72cb662..5c7e4b2b 100644 --- a/re2c/src/ir/adfa/adfa.h +++ b/re2c/src/ir/adfa/adfa.h @@ -67,6 +67,7 @@ struct DFA uint32_t ubChar; uint32_t nStates; State * head; + const tcid_t tags0; std::valarray &rules; std::vector &vartags; std::vector &fixtags; diff --git a/re2c/src/ir/adfa/dump.cc b/re2c/src/ir/adfa/dump.cc index c7e50cf0..1e0ac82c 100644 --- a/re2c/src/ir/adfa/dump.cc +++ b/re2c/src/ir/adfa/dump.cc @@ -36,6 +36,12 @@ void dump_adfa(const DFA &dfa) " node[shape=Mrecord fontname=fixed]\n" " edge[arrowhead=vee fontname=fixed]\n\n"); + fprintf(stderr, + " n [shape=point]" + " n -> n%p [style=dotted label=\"", (void*)dfa.head); + dump_adfa_tcmd(dfa.tcpool[dfa.tags0]); + fprintf(stderr, "\"]\n"); + for (const State *s = dfa.head; s; s = s->next) { const char *attr; Action::type_t action = s->action.type; diff --git a/re2c/src/ir/compile.cc b/re2c/src/ir/compile.cc index cf80dfd1..e0136f72 100644 --- a/re2c/src/ir/compile.cc +++ b/re2c/src/ir/compile.cc @@ -63,15 +63,15 @@ smart_ptr compile(const spec_t &spec, Output &output) nfa_t nfa(rules, opts->input_api); - dfa_t dfa(nfa, cs, cond, opts->bijective_mapping, opts->dump_dfa_raw, warn); + dfa_t dfa(nfa, cs, opts, cond, warn); if (opts->dump_dfa_det) dump_dfa(dfa); // skeleton must be constructed after DFA construction // but prior to any other DFA transformations - Skeleton skeleton(dfa, cs, defrule, name, cond, line); + Skeleton skeleton(dfa, cs, opts, defrule, name, cond, line); warn_undefined_control_flow(skeleton, warn); if (opts->target == opt_t::SKELETON) { - emit_data(skeleton, opts->output_file, opts->encoding.szCodeUnit()); + emit_data(skeleton); } cutoff_dead_rules(dfa, defrule, cond, warn); diff --git a/re2c/src/ir/dfa/cfg/cfg.cc b/re2c/src/ir/dfa/cfg/cfg.cc index 1a944c5c..bdf4a033 100644 --- a/re2c/src/ir/dfa/cfg/cfg.cc +++ b/re2c/src/ir/dfa/cfg/cfg.cc @@ -36,7 +36,7 @@ void map_arcs_to_bblocks(const dfa_t &dfa, cfg_ix_t *arc2bb, nstate = dfa.states.size(), nsym = dfa.nchars; - // first bblock is CFG root: it has no counterpart in DFA + // root bblock for initial tagged epsilon-transition cfg_ix_t nbb = 1; // bblocks for tagged transitions @@ -79,7 +79,7 @@ cfg_bb_t *create_bblocks(const dfa_t &dfa, const cfg_ix_t *arc2bb, // root bblock std::fill(been, been + nstate, false); successors(dfa, arc2bb, been, succe = succb, 0); - basic_block(b++, succb, succe, new tcmd_t, NULL); + basic_block(b++, succb, succe, dfa.tcmd0, NULL); // transition bblocks for (size_t i = 0; i < nstate; ++i) { @@ -186,9 +186,6 @@ void fallback(const dfa_t &dfa, const cfg_ix_t *arc2bb, bool *been, cfg_t::~cfg_t() { cfg_bb_t *b = bblocks, *e = b + nbbfall; - - delete b->cmd; - for (; b < e; ++b) { delete[] b->succb; } diff --git a/re2c/src/ir/dfa/cfg/optimize.cc b/re2c/src/ir/dfa/cfg/optimize.cc index 34c78cf9..8df6bf03 100644 --- a/re2c/src/ir/dfa/cfg/optimize.cc +++ b/re2c/src/ir/dfa/cfg/optimize.cc @@ -53,6 +53,10 @@ void freeze_tags(dfa_t &dfa) nstate = dfa.states.size(), nsym = dfa.nchars; + dfa.tcid0 = new tcid_t(pool.insert(dfa.tcmd0->save, dfa.tcmd0->copy)); + delete dfa.tcmd0; + dfa.tcmd0 = NULL; + for (size_t i = 0; i < nstate; ++i) { dfa_state_t *s = dfa.states[i]; const tcmd_t diff --git a/re2c/src/ir/dfa/closure.cc b/re2c/src/ir/dfa/closure.cc index b4e4f919..52cfa35b 100644 --- a/re2c/src/ir/dfa/closure.cc +++ b/re2c/src/ir/dfa/closure.cc @@ -13,7 +13,7 @@ static void prune_final_items(closure_t &clos, std::valarray &rules); static void update_versions(closure_t &clos, Tagpool &tagpool, tagver_t &maxver); void closure(closure_t &clos1, closure_t &clos2, Tagpool &tagpool, - std::valarray &rules, tagver_t &maxver) + std::valarray &rules, tagver_t &maxver, bool lookahead) { // build tagged epsilon-closure of the given set of NFA states clos2.clear(); @@ -23,6 +23,18 @@ void closure(closure_t &clos1, closure_t &clos2, Tagpool &tagpool, closure_one(clos2, tagpool, *c, c->state, tags); } + // The only difference between TDFA and LATDFA is here: + // TDFA backups tags after current transition, while LATDFA delays this + // till the next transition. This allows LATDFA to use lookahead symbol + // and backup tags only in case of matching lookahead, while TDFA cannot + // exploit lookahead and has to backup tags anyway. + if (!lookahead) { + for (clositer_t c = clos2.begin(); c != clos2.end(); ++c) { + c->ttran = c->tlook; + c->tlook = ZERO_TAGS; + } + } + // see note [at most one final item per closure] prune_final_items(clos2, rules); diff --git a/re2c/src/ir/dfa/closure.h b/re2c/src/ir/dfa/closure.h index 2fc840c5..dabbb44a 100644 --- a/re2c/src/ir/dfa/closure.h +++ b/re2c/src/ir/dfa/closure.h @@ -26,7 +26,7 @@ typedef closure_t::iterator clositer_t; typedef closure_t::const_iterator cclositer_t; void closure(closure_t &clos1, closure_t &clos2, Tagpool &tagpool, - std::valarray &rules, tagver_t &maxver); + std::valarray &rules, tagver_t &maxver, bool lookahead); } // namespace re2c diff --git a/re2c/src/ir/dfa/determinization.cc b/re2c/src/ir/dfa/determinization.cc index 65dd61cc..773601be 100644 --- a/re2c/src/ir/dfa/determinization.cc +++ b/re2c/src/ir/dfa/determinization.cc @@ -2,6 +2,7 @@ #include #include +#include "src/conf/opt.h" #include "src/ir/dfa/closure.h" #include "src/ir/dfa/dfa.h" #include "src/ir/dfa/dump.h" @@ -47,8 +48,8 @@ void reach(const kernel_t *kernel, closure_t &clos, uint32_t symbol) } } -dfa_t::dfa_t(const nfa_t &nfa, const charset_t &charset, - const std::string &cond, bool bijection, bool debug, Warn &warn) +dfa_t::dfa_t(const nfa_t &nfa, const charset_t &charset, const opt_t *opts, + const std::string &cond, Warn &warn) : states() , nchars(charset.size() - 1) // (n + 1) bounds for n ranges , rules(nfa.rules) @@ -57,12 +58,15 @@ dfa_t::dfa_t(const nfa_t &nfa, const charset_t &charset, , finvers(NULL) , tcpool(*new tcpool_t) , maxtagver(0) + , tcmd0(new tcmd_t) + , tcid0(NULL) { + const bool lookahead = opts->lookahead; const size_t ntag = vartags.size(); Tagpool tagpool(ntag); - kernels_t kernels(tagpool, bijection); + kernels_t kernels(tagpool, opts->bijective_mapping); closure_t clos1, clos2; - dump_dfa_t dump(*this, tagpool, nfa, debug); + dump_dfa_t dump(*this, tagpool, nfa, opts->dump_dfa_raw); // all-zero tag configuration must have static number zero assert(ZERO_TAGS == tagpool.insert_const(TAGVER_ZERO)); @@ -81,13 +85,13 @@ dfa_t::dfa_t(const nfa_t &nfa, const charset_t &charset, clos_t c0 = {NULL, nfa.root, INITIAL_TAGS, ZERO_TAGS, ZERO_TAGS}; clos1.push_back(c0); - closure(clos1, clos2, tagpool, rules, maxtagver); + closure(clos1, clos2, tagpool, rules, maxtagver, lookahead); find_state(*this, dfa_t::NIL, 0/* any */, tagpool, kernels, clos2, dump); for (size_t i = 0; i < kernels.size(); ++i) { for (size_t c = 0; c < nchars; ++c) { reach(kernels[i], clos1, charset[c]); - closure(clos1, clos2, tagpool, rules, maxtagver); + closure(clos1, clos2, tagpool, rules, maxtagver, lookahead); find_state(*this, i, c, tagpool, kernels, clos2, dump); } } @@ -153,6 +157,8 @@ dfa_t::~dfa_t() { delete *i; } + delete tcmd0; + delete tcid0; } } // namespace re2c diff --git a/re2c/src/ir/dfa/dfa.h b/re2c/src/ir/dfa/dfa.h index 26400e2e..76cc6cd2 100644 --- a/re2c/src/ir/dfa/dfa.h +++ b/re2c/src/ir/dfa/dfa.h @@ -18,6 +18,7 @@ namespace re2c { struct nfa_t; +struct opt_t; struct dfa_state_t { @@ -57,9 +58,11 @@ struct dfa_t tagver_t *finvers; tcpool_t &tcpool; tagver_t maxtagver; + tcmd_t *tcmd0; + tcid_t *tcid0; - dfa_t(const nfa_t &nfa, const charset_t &charset, - const std::string &cond, bool bijection, bool debug, Warn &warn); + dfa_t(const nfa_t &nfa, const charset_t &charset, const opt_t *opts, + const std::string &cond, Warn &warn); ~dfa_t(); FORBID_COPY(dfa_t); diff --git a/re2c/src/ir/dfa/dump.cc b/re2c/src/ir/dfa/dump.cc index 157ddb65..bd327d4b 100644 --- a/re2c/src/ir/dfa/dump.cc +++ b/re2c/src/ir/dfa/dump.cc @@ -5,7 +5,7 @@ namespace re2c { -static void dump_tcmd_or_tcid(const dfa_state_t *state, size_t sym, const tcpool_t &tcpool); +static void dump_tcmd_or_tcid(const tcmd_t *tcmd, const tcid_t *tcid, size_t sym, const tcpool_t &tcpool); static void dump_tcmd(const tagsave_t *s, const tagcopy_t *c); static const char *tagname(const VarTag &t); static void dump_tags(const Tagpool &tagpool, size_t ttran, size_t tvers); @@ -156,6 +156,13 @@ void dump_dfa(const dfa_t &dfa) " node[shape=Mrecord fontname=fixed]\n" " edge[arrowhead=vee fontname=fixed]\n\n"); + // initializer + fprintf(stderr, + " n [shape=point]" + " n -> n0 [style=dotted label=\""); + dump_tcmd_or_tcid(dfa.tcmd0, dfa.tcid0, 0, dfa.tcpool); + fprintf(stderr, "\"]\n"); + for (uint32_t i = 0; i < nstate; ++i) { const dfa_state_t *s = dfa.states[i]; @@ -171,7 +178,7 @@ void dump_dfa(const dfa_t &dfa) " n%u [style=filled fillcolor=lightgray]" " dr%u [shape=none label=\"", i, i); - dump_tcmd_or_tcid(s, nsym, dfa.tcpool); + dump_tcmd_or_tcid(s->tcmd, s->tcid, nsym, dfa.tcpool); fprintf(stderr, "("); for (size_t t = r.lvar; t < r.hvar; ++t) { @@ -191,7 +198,7 @@ void dump_dfa(const dfa_t &dfa) if (j != dfa_t::NIL) { fprintf(stderr, " n%u -> n%u [label=\"%u", i, static_cast(j), c); - dump_tcmd_or_tcid(s, c, dfa.tcpool); + dump_tcmd_or_tcid(s->tcmd, s->tcid, c, dfa.tcpool); fprintf(stderr, "\"]\n"); } } @@ -200,13 +207,14 @@ void dump_dfa(const dfa_t &dfa) fprintf(stderr, "}\n"); } -void dump_tcmd_or_tcid(const dfa_state_t *state, size_t sym, const tcpool_t &tcpool) +void dump_tcmd_or_tcid(const tcmd_t *tcmd, const tcid_t *tcid, + size_t sym, const tcpool_t &tcpool) { - if (state->tcmd) { - const tcmd_t &cmd = state->tcmd[sym]; + if (tcmd) { + const tcmd_t &cmd = tcmd[sym]; dump_tcmd(cmd.save, cmd.copy); } else { - const tccmd_t &cmd = tcpool[state->tcid[sym]]; + const tccmd_t &cmd = tcpool[tcid[sym]]; dump_tcmd(cmd.save, cmd.copy); } } diff --git a/re2c/src/ir/dfa/find_state.cc b/re2c/src/ir/dfa/find_state.cc index 6062f2c7..9b6e35ad 100644 --- a/re2c/src/ir/dfa/find_state.cc +++ b/re2c/src/ir/dfa/find_state.cc @@ -415,6 +415,7 @@ void find_state(dfa_t &dfa, size_t state, size_t symbol, const closure_t &closure, dump_dfa_t &dump) { const kernels_t::result_t result = kernels.insert(closure, dfa.maxtagver); + const tcmd_t cmd = commands(closure, tagpool, dfa.tcpool, result.mapping); if (result.isnew) { // create new DFA state @@ -433,16 +434,15 @@ void find_state(dfa_t &dfa, size_t state, size_t symbol, } } - // initial state - if (state == dfa_t::NIL) { + if (state == dfa_t::NIL) { // initial state + *dfa.tcmd0 = cmd; dump.state0(closure); - return; + } else { + dfa_state_t *s = dfa.states[state]; + s->arcs[symbol] = result.state; + s->tcmd[symbol] = cmd; + dump.state(closure, state, symbol, result.isnew); } - - dfa_state_t *s = dfa.states[state]; - s->arcs[symbol] = result.state; - s->tcmd[symbol] = commands(closure, tagpool, dfa.tcpool, result.mapping); - dump.state(closure, state, symbol, result.isnew); } } // namespace re2c diff --git a/re2c/src/ir/skeleton/generate_data.cc b/re2c/src/ir/skeleton/generate_data.cc index 6dbd5697..dcbc4b37 100644 --- a/re2c/src/ir/skeleton/generate_data.cc +++ b/re2c/src/ir/skeleton/generate_data.cc @@ -156,21 +156,25 @@ static void write_keys(const path_t &path, const Skeleton &skel, // calculate tags: start with default and apply commands step by step const size_t nver = skel.ntagver, - ntag = width * nver; + ntag = width * nver, + offby = skel.opts->lookahead ? 0 : 1; size_t *tags = new size_t[ntag]; std::fill(tags, tags + ntag, Skeleton::DEFTAG); + for (size_t w = 0; w < width; ++w) { + apply(&tags[w * nver], skel.cmd0, 0); // absent in LATDFA + } for (size_t i = 0; i < f; ++i) { Node::wciter_t a(path.arc(skel, i)); for (size_t w = 0; w < width; ++a) { uint32_t n = nsteps(a->lower, a->upper); for (; n --> 0 && w < width; ++w) { - apply(&tags[w * nver], a->cmd, i); + apply(&tags[w * nver], a->cmd, i + offby); } } } const tcmd_t *fcmd = path.node(skel, f).cmd; for (size_t w = 0; w < width; ++w) { - apply(&tags[w * nver], fcmd, f); + apply(&tags[w * nver], fcmd, f); // only present in LATDFA } const size_t rule = path.node(skel, f).rule; @@ -324,17 +328,18 @@ template } } -static void generate_paths(const Skeleton &skel, cover_t &cover, size_t cunit_size) +static void generate_paths(const Skeleton &skel, cover_t &cover) { - switch (cunit_size) { + switch (skel.opts->encoding.szCodeUnit()) { case 4: generate_paths_cunit(skel, cover); break; case 2: generate_paths_cunit(skel, cover); break; case 1: generate_paths_cunit(skel, cover); break; } } -void emit_data(const Skeleton &skel, std::string fname, size_t cunit_size) +void emit_data(const Skeleton &skel) { + std::string fname = skel.opts->output_file; if (fname.empty()) { fname = ""; } @@ -353,7 +358,7 @@ void emit_data(const Skeleton &skel, std::string fname, size_t cunit_size) } cover_t cover(input, keys, skel.nodes_count); - generate_paths(skel, cover, cunit_size); + generate_paths(skel, cover); fclose(input); fclose(keys); diff --git a/re2c/src/ir/skeleton/skeleton.cc b/re2c/src/ir/skeleton/skeleton.cc index 05c3bbf0..11827f4c 100644 --- a/re2c/src/ir/skeleton/skeleton.cc +++ b/re2c/src/ir/skeleton/skeleton.cc @@ -52,15 +52,18 @@ const size_t Skeleton::DEFTAG = std::numeric_limits::max(); Skeleton::Skeleton( const dfa_t &dfa, const charset_t &cs, + const opt_t *op, size_t def, const std::string &dfa_name, const std::string &dfa_cond, uint32_t dfa_line) - : name(dfa_name) + : opts(op) + , name(dfa_name) , cond(dfa_cond) , line(dfa_line) , nodes_count(dfa.states.size() + 1) // +1 for default state , nodes(new Node[nodes_count]) + , cmd0(dfa.tcmd0) , sizeof_key(8) , defrule(def) , ntagver(static_cast(dfa.maxtagver) + 1) diff --git a/re2c/src/ir/skeleton/skeleton.h b/re2c/src/ir/skeleton/skeleton.h index e9ed4985..c50c5801 100644 --- a/re2c/src/ir/skeleton/skeleton.h +++ b/re2c/src/ir/skeleton/skeleton.h @@ -12,6 +12,7 @@ #include #include "src/codegen/bitmap.h" +#include "src/conf/opt.h" #include "src/ir/regexp/regexp.h" #include "src/ir/rule.h" #include "src/ir/tcmd.h" @@ -62,12 +63,14 @@ struct Skeleton { static const size_t DEFTAG; + const opt_t *opts; const std::string name; const std::string cond; const uint32_t line; const size_t nodes_count; Node *nodes; + const tcmd_t *cmd0; size_t sizeof_key; size_t defrule; @@ -76,8 +79,8 @@ struct Skeleton const std::vector &vartags; const tagver_t *finvers; - Skeleton(const dfa_t &dfa, const charset_t &cs, size_t def, - const std::string &dfa_name, const std::string &dfa_cond, + Skeleton(const dfa_t &dfa, const charset_t &cs, const opt_t *opts, + size_t def, const std::string &dfa_name, const std::string &dfa_cond, uint32_t dfa_line); ~Skeleton (); FORBID_COPY(Skeleton); @@ -99,7 +102,7 @@ size_t rule2key(size_t rule, size_t key, size_t def); uint32_t maxpath(const Skeleton &skel); void warn_undefined_control_flow(const Skeleton &skel, Warn &warn); void fprint_default_path(FILE *f, const Skeleton &skel, const path_t &p); -void emit_data(const Skeleton &skel, std::string fname, size_t cunit_size); +void emit_data(const Skeleton &skel); void emit_prolog(OutputFile & o); void emit_start(OutputFile &o, size_t maxfill, const std::string &name, size_t sizeof_key, size_t def, bool backup, bool accept, bool oldstyle_ctxmarker, diff --git a/re2c/src/parse/lex_conf.re b/re2c/src/parse/lex_conf.re index b3273bfe..8c8f7a6f 100644 --- a/re2c/src/parse/lex_conf.re +++ b/re2c/src/parse/lex_conf.re @@ -56,6 +56,7 @@ void Scanner::lex_conf () "flags:no-version" { opts.set_version(!lex_conf_bool()); return; } "flags:case-insensitive" { opts.set_bCaseInsensitive(lex_conf_bool()); return; } "flags:case-inverted" { opts.set_bCaseInverted(lex_conf_bool()); return; } + "flags:no-lookahead" { opts.set_lookahead(!lex_conf_bool()); return; } "flags:non-bijective-mapping" { opts.set_bijective_mapping(!lex_conf_bool()); return; } "flags:eager-skip" { opts.set_eager_skip(lex_conf_bool()); return; } -- 2.40.0