From b94c5af9a2d150c9421ca3148baa3a625ecce682 Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Wed, 26 Dec 2018 11:37:30 +0000 Subject: [PATCH] Added -I option (paths to include directories). --- re2c/bootstrap/src/ast/lex.cc | 6 +- re2c/bootstrap/src/ast/lex.h | 2 +- re2c/bootstrap/src/ast/parser.cc | 188 +- re2c/bootstrap/src/conf/parse_opts.cc | 2829 +++++++++++++------------ re2c/run_tests.sh.in | 16 +- re2c/src/ast/input.cc | 22 +- re2c/src/ast/input.h | 4 +- re2c/src/ast/lex.re | 4 +- re2c/src/ast/parser.ypp | 2 +- re2c/src/ast/scanner.cc | 11 +- re2c/src/ast/scanner.h | 11 +- re2c/src/conf/opt.cc | 26 +- re2c/src/conf/opt.h | 6 +- re2c/src/conf/parse_opts.re | 17 +- re2c/src/main.cc | 4 +- re2c/test/include/include001a.i.c | 27 + re2c/test/include/include001a.i.re | 6 + re2c/test/include/include001b.i.c | 5 + re2c/test/include/include001b.i.re | 5 + re2c/test/include/include001c.i.c | 2 + re2c/test/include/include001c.i.re | 3 + 21 files changed, 1713 insertions(+), 1483 deletions(-) create mode 100644 re2c/test/include/include001a.i.c create mode 100644 re2c/test/include/include001a.i.re create mode 100644 re2c/test/include/include001b.i.c create mode 100644 re2c/test/include/include001b.i.re create mode 100644 re2c/test/include/include001c.i.c create mode 100644 re2c/test/include/include001c.i.re diff --git a/re2c/bootstrap/src/ast/lex.cc b/re2c/bootstrap/src/ast/lex.cc index 743be3d5..69b6290b 100644 --- a/re2c/bootstrap/src/ast/lex.cc +++ b/re2c/bootstrap/src/ast/lex.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 1.1.1 on Tue Dec 25 19:04:05 2018 */ +/* Generated by re2c 1.1.1 on Wed Dec 26 11:34:46 2018 */ #line 1 "../src/ast/lex.re" #include "src/util/c99_stdint.h" #include @@ -1036,7 +1036,7 @@ yy194: y = yyt2; #line 259 "../src/ast/lex.re" { - push_file(std::string(x + 1, static_cast(y - x) - 2)); + include(std::string(x + 1, static_cast(y - x) - 2)); return; } #line 1043 "src/ast/lex.cc" @@ -1205,7 +1205,7 @@ yy223: } } -int Scanner::scan(const conopt_t *globopts) +int Scanner::scan() { const char *p; scan: diff --git a/re2c/bootstrap/src/ast/lex.h b/re2c/bootstrap/src/ast/lex.h index af55122d..0d8b8957 100644 --- a/re2c/bootstrap/src/ast/lex.h +++ b/re2c/bootstrap/src/ast/lex.h @@ -1,4 +1,4 @@ -/* Generated by re2c 1.1.1 on Tue Dec 25 19:04:05 2018 */ +/* Generated by re2c 1.1.1 on Wed Dec 26 11:34:46 2018 */ #include #include "src/util/forbid_copy.h" diff --git a/re2c/bootstrap/src/ast/parser.cc b/re2c/bootstrap/src/ast/parser.cc index 30ae61e5..91f47f47 100644 --- a/re2c/bootstrap/src/ast/parser.cc +++ b/re2c/bootstrap/src/ast/parser.cc @@ -420,16 +420,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 53 +#define YYLAST 56 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 26 +#define YYNTOKENS 27 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 15 /* YYNRULES -- Number of rules. */ -#define YYNRULES 40 +#define YYNRULES 42 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 57 +#define YYNSTATES 61 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -446,16 +446,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 24, 25, 19, 22, 2, 2, 2, 16, 2, 2, + 2, 2, 2, 2, 2, 2, 20, 2, 2, 2, + 25, 26, 19, 23, 2, 2, 2, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 18, - 2, 17, 2, 23, 2, 2, 2, 2, 2, 2, + 2, 17, 2, 24, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 21, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 22, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 20, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -478,10 +478,10 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint8 yyrline[] = { 0, 72, 72, 74, 75, 76, 77, 81, 88, 94, - 97, 101, 101, 104, 108, 112, 119, 126, 133, 140, - 142, 148, 155, 157, 163, 167, 174, 178, 185, 189, - 196, 197, 203, 208, 209, 213, 214, 215, 219, 220, - 231 + 97, 101, 101, 104, 108, 112, 116, 123, 130, 137, + 144, 151, 153, 159, 166, 168, 174, 178, 185, 189, + 196, 200, 207, 208, 214, 219, 220, 224, 225, 226, + 230, 231, 242 }; #endif @@ -493,10 +493,10 @@ static const char *const yytname[] = "$end", "error", "$undefined", "TOKEN_CJUMP", "TOKEN_CNEXT", "TOKEN_CLIST", "TOKEN_CSETUP", "TOKEN_CZERO", "TOKEN_CLOSESIZE", "TOKEN_CODE", "TOKEN_CONF", "TOKEN_ID", "TOKEN_FID", "TOKEN_FID_END", - "TOKEN_LINE_INFO", "TOKEN_REGEXP", "'/'", "'='", "';'", "'*'", "'|'", - "'\\\\'", "'+'", "'?'", "'('", "')'", "$accept", "spec", "def", "name", - "enddef", "rule", "ccode", "trailexpr", "expr", "diff", "term", "factor", - "closes", "close", "primary", YY_NULLPTR + "TOKEN_LINE_INFO", "TOKEN_REGEXP", "'/'", "'='", "';'", "'*'", "'$'", + "'|'", "'\\\\'", "'+'", "'?'", "'('", "')'", "$accept", "spec", "def", + "name", "enddef", "rule", "ccode", "trailexpr", "expr", "diff", "term", + "factor", "closes", "close", "primary", YY_NULLPTR }; #endif @@ -507,7 +507,7 @@ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 47, 61, 59, 42, - 124, 92, 43, 63, 40, 41 + 36, 124, 92, 43, 63, 40, 41 }; # endif @@ -525,12 +525,13 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int8 yypact[] = { - -20, 0, -20, -2, 14, 39, -20, 9, -20, -20, - -20, 25, 17, -20, 17, -20, 28, 19, 23, -20, - 17, 8, -20, 39, 39, -20, -20, 36, -20, -20, - -20, -20, -17, 20, -20, 17, 17, 17, -20, -20, - -20, -20, -20, 27, -20, -20, -20, -20, -20, -20, - -20, -20, -20, 31, 23, -20, -20 + -20, 0, -20, 12, 25, 13, -20, -8, -20, -20, + -20, 33, 40, -7, -20, -7, -20, 41, 24, 29, + -20, -7, 5, -20, 13, 13, 13, -20, -20, 43, + -20, -20, -20, -20, -20, 15, 17, -20, -7, -7, + -7, -20, -20, -20, -20, -20, 20, -20, -20, -20, + -20, -20, -20, -20, -20, -20, -20, 32, 29, -20, + -20 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -538,26 +539,27 @@ static const yytype_int8 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 0, 0, 0, 3, 39, 10, 6, - 38, 0, 0, 4, 0, 5, 0, 22, 24, 26, - 28, 30, 39, 0, 0, 17, 21, 0, 19, 18, - 9, 14, 0, 0, 13, 0, 0, 0, 29, 32, - 35, 36, 37, 31, 33, 16, 15, 20, 40, 12, - 8, 11, 7, 23, 25, 27, 34 + 2, 0, 1, 0, 0, 0, 3, 41, 10, 6, + 40, 0, 0, 0, 4, 0, 5, 0, 24, 26, + 28, 30, 32, 41, 0, 0, 0, 19, 23, 0, + 21, 20, 9, 14, 15, 0, 0, 13, 0, 0, + 0, 31, 34, 37, 38, 39, 33, 35, 17, 18, + 16, 22, 42, 12, 8, 11, 7, 25, 27, 29, + 36 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -20, -20, -20, -20, -20, -20, -3, 26, -10, 11, + -20, -20, -20, -20, -20, -20, 22, 51, -12, 16, -19, -20, -20, 10, -20 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 1, 13, 14, 52, 15, 29, 16, 17, 18, - 19, 20, 43, 44, 21 + -1, 1, 14, 15, 56, 16, 31, 17, 18, 19, + 20, 21, 46, 47, 22 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -565,54 +567,55 @@ static const yytype_int8 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint8 yytable[] = { - 2, 38, 32, 36, 33, 3, 4, 5, 48, 22, - 6, 7, 8, 10, 9, 10, 39, 23, 55, 11, - 45, 46, 12, 25, 12, 53, 30, 40, 22, 24, - 41, 42, 10, 49, 31, 35, 50, 34, 51, 36, - 36, 12, 26, 27, 37, 47, 40, 54, 28, 41, - 42, 36, 0, 56 + 2, 35, 41, 36, 23, 3, 4, 5, 10, 32, + 6, 7, 8, 42, 9, 10, 28, 29, 13, 11, + 12, 59, 30, 23, 43, 13, 57, 10, 44, 45, + 53, 24, 25, 54, 27, 55, 39, 13, 39, 43, + 38, 52, 33, 44, 45, 39, 48, 49, 50, 34, + 37, 40, 51, 39, 26, 58, 60 }; -static const yytype_int8 yycheck[] = +static const yytype_uint8 yycheck[] = { - 0, 20, 12, 20, 14, 5, 6, 7, 25, 11, - 10, 11, 12, 15, 14, 15, 8, 19, 37, 19, - 23, 24, 24, 9, 24, 35, 17, 19, 11, 3, - 22, 23, 15, 13, 9, 16, 16, 9, 18, 20, - 20, 24, 3, 4, 21, 9, 19, 36, 9, 22, - 23, 20, -1, 43 + 0, 13, 21, 15, 11, 5, 6, 7, 15, 17, + 10, 11, 12, 8, 14, 15, 3, 4, 25, 19, + 20, 40, 9, 11, 19, 25, 38, 15, 23, 24, + 13, 19, 20, 16, 9, 18, 21, 25, 21, 19, + 16, 26, 9, 23, 24, 21, 24, 25, 26, 9, + 9, 22, 9, 21, 3, 39, 46 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 27, 0, 5, 6, 7, 10, 11, 12, 14, - 15, 19, 24, 28, 29, 31, 33, 34, 35, 36, - 37, 40, 11, 19, 33, 9, 3, 4, 9, 32, - 17, 9, 34, 34, 9, 16, 20, 21, 36, 8, - 19, 22, 23, 38, 39, 32, 32, 9, 25, 13, - 16, 18, 30, 34, 35, 36, 39 + 0, 28, 0, 5, 6, 7, 10, 11, 12, 14, + 15, 19, 20, 25, 29, 30, 32, 34, 35, 36, + 37, 38, 41, 11, 19, 20, 34, 9, 3, 4, + 9, 33, 17, 9, 9, 35, 35, 9, 16, 21, + 22, 37, 8, 19, 23, 24, 39, 40, 33, 33, + 33, 9, 26, 13, 16, 18, 31, 35, 36, 37, + 40 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 26, 27, 27, 27, 27, 27, 28, 28, 29, - 29, 30, 30, 31, 31, 31, 31, 31, 31, 32, - 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, - 37, 37, 37, 38, 38, 39, 39, 39, 40, 40, - 40 + 0, 27, 28, 28, 28, 28, 28, 29, 29, 30, + 30, 31, 31, 32, 32, 32, 32, 32, 32, 32, + 32, 33, 33, 33, 34, 34, 35, 35, 36, 36, + 37, 37, 38, 38, 38, 39, 39, 40, 40, 40, + 41, 41, 41 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 0, 2, 2, 2, 2, 3, 3, 2, - 1, 1, 1, 2, 2, 3, 3, 2, 2, 1, - 2, 1, 1, 3, 1, 3, 1, 3, 1, 2, - 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, - 3 + 1, 1, 1, 2, 2, 2, 3, 3, 3, 2, + 2, 1, 2, 1, 1, 3, 1, 3, 1, 3, + 1, 2, 1, 2, 2, 1, 2, 1, 1, 1, + 1, 1, 3 }; @@ -1350,6 +1353,14 @@ yyreduce: case 15: + { + find(context.specs, "").eofs.push_back((yyvsp[0].code)); + } + + break; + + case 16: + { for(CondList::const_iterator i = (yyvsp[-2].clist)->begin(); i != (yyvsp[-2].clist)->end(); ++i) { find(context.specs, *i).rules.push_back(ASTRule((yyvsp[-1].regexp), (yyvsp[0].code))); @@ -1359,7 +1370,7 @@ yyreduce: break; - case 16: + case 17: { for(CondList::const_iterator i = (yyvsp[-2].clist)->begin(); i != (yyvsp[-2].clist)->end(); ++i) { @@ -1370,7 +1381,18 @@ yyreduce: break; - case 17: + case 18: + + { + for(CondList::const_iterator i = (yyvsp[-2].clist)->begin(); i != (yyvsp[-2].clist)->end(); ++i) { + find(context.specs, *i).eofs.push_back((yyvsp[0].code)); + } + delete (yyvsp[-2].clist); + } + + break; + + case 19: { for (CondList::const_iterator i = (yyvsp[-1].clist)->begin(); i != (yyvsp[-1].clist)->end(); ++i) { @@ -1381,7 +1403,7 @@ yyreduce: break; - case 18: + case 20: { const AST *r = ast_nil(context.input.get_cline(), 0); @@ -1391,7 +1413,7 @@ yyreduce: break; - case 20: + case 22: { (yyval.code) = (yyvsp[0].code); @@ -1401,7 +1423,7 @@ yyreduce: break; - case 21: + case 23: { (yyval.code) = new Code(context.input.get_fname(), context.input.get_cline()); @@ -1411,7 +1433,7 @@ yyreduce: break; - case 22: + case 24: { (yyval.regexp) = ast_cap((yyvsp[0].regexp)); @@ -1419,7 +1441,7 @@ yyreduce: break; - case 23: + case 25: { (yyval.regexp) = ast_cat(ast_cap((yyvsp[-2].regexp)), @@ -1428,7 +1450,7 @@ yyreduce: break; - case 24: + case 26: { (yyval.regexp) = (yyvsp[0].regexp); @@ -1436,7 +1458,7 @@ yyreduce: break; - case 25: + case 27: { (yyval.regexp) = ast_alt((yyvsp[-2].regexp), (yyvsp[0].regexp)); @@ -1444,7 +1466,7 @@ yyreduce: break; - case 26: + case 28: { (yyval.regexp) = (yyvsp[0].regexp); @@ -1452,7 +1474,7 @@ yyreduce: break; - case 27: + case 29: { (yyval.regexp) = ast_diff((yyvsp[-2].regexp), (yyvsp[0].regexp)); @@ -1460,7 +1482,7 @@ yyreduce: break; - case 28: + case 30: { (yyval.regexp) = (yyvsp[0].regexp); @@ -1468,7 +1490,7 @@ yyreduce: break; - case 29: + case 31: { (yyval.regexp) = ast_cat((yyvsp[-1].regexp), (yyvsp[0].regexp)); @@ -1476,7 +1498,7 @@ yyreduce: break; - case 31: + case 33: { switch((yyvsp[0].op)) { @@ -1488,7 +1510,7 @@ yyreduce: break; - case 32: + case 34: { (yyval.regexp) = ast_iter((yyvsp[-1].regexp), (yyvsp[0].bounds).min, (yyvsp[0].bounds).max); @@ -1496,31 +1518,31 @@ yyreduce: break; - case 34: + case 36: { (yyval.op) = ((yyvsp[-1].op) == (yyvsp[0].op)) ? (yyvsp[-1].op) : '*'; } break; - case 35: + case 37: { (yyval.op) = '*'; } break; - case 36: + case 38: { (yyval.op) = '+'; } break; - case 37: + case 39: { (yyval.op) = '?'; } break; - case 39: + case 41: { symtab_t::iterator i = context.symtab.find(*(yyvsp[0].str)); @@ -1537,7 +1559,7 @@ yyreduce: break; - case 40: + case 42: { (yyval.regexp) = ast_cap((yyvsp[-1].regexp)); @@ -1786,7 +1808,7 @@ void yyerror(context_t &context, const char* s) int yylex(context_t &context) { - return context.input.scan(&context.opts.glob); + return context.input.scan(); } } // extern "C" diff --git a/re2c/bootstrap/src/conf/parse_opts.cc b/re2c/bootstrap/src/conf/parse_opts.cc index eb2dee34..b5e31d69 100644 --- a/re2c/bootstrap/src/conf/parse_opts.cc +++ b/re2c/bootstrap/src/conf/parse_opts.cc @@ -1,4 +1,4 @@ -/* Generated by re2c 1.1.1 on Sat Dec 22 19:57:51 2018 */ +/* Generated by re2c 1.1.1 on Tue Dec 25 23:07:11 2018 */ #line 1 "../src/conf/parse_opts.re" #include "src/code/input_api.h" #include "src/conf/msg.h" @@ -853,85 +853,93 @@ opt_short: { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 'a') { - if (yych <= 'D') { - if (yych <= '7') { - if (yych <= 0x00) goto yy202; - if (yych == '1') goto yy206; - goto yy204; + if (yych <= 'V') { + if (yych <= 'E') { + if (yych <= '8') { + if (yych <= '0') { + if (yych >= 0x01) goto yy204; + } else { + if (yych <= '1') goto yy206; + if (yych <= '7') goto yy204; + goto yy208; + } } else { - if (yych <= '>') { - if (yych <= '8') goto yy208; - goto yy204; + if (yych <= '?') { + if (yych <= '>') goto yy204; + goto yy210; } else { - if (yych <= '?') goto yy210; - if (yych <= 'C') goto yy204; - goto yy212; + if (yych == 'D') goto yy212; + goto yy204; } } } else { - if (yych <= 'R') { - if (yych <= 'F') { - if (yych <= 'E') goto yy204; - goto yy214; - } else { - if (yych == 'P') goto yy216; + if (yych <= 'P') { + if (yych <= 'H') { + if (yych <= 'F') goto yy214; goto yy204; + } else { + if (yych <= 'I') goto yy216; + if (yych <= 'O') goto yy204; + goto yy218; } } else { - if (yych <= 'T') { - if (yych <= 'S') goto yy218; + if (yych <= 'S') { + if (yych <= 'R') goto yy204; goto yy220; } else { - if (yych == 'V') goto yy222; - goto yy204; + if (yych <= 'T') goto yy222; + if (yych <= 'U') goto yy204; + goto yy224; } } } } else { if (yych <= 'n') { if (yych <= 'e') { - if (yych <= 'b') goto yy224; - if (yych <= 'c') goto yy226; - if (yych <= 'd') goto yy228; - goto yy230; + if (yych <= 'b') { + if (yych <= 'a') goto yy204; + goto yy226; + } else { + if (yych <= 'c') goto yy228; + if (yych <= 'd') goto yy230; + goto yy232; + } } else { if (yych <= 'g') { - if (yych <= 'f') goto yy232; - goto yy234; + if (yych <= 'f') goto yy234; + goto yy236; } else { if (yych <= 'h') goto yy210; - if (yych <= 'i') goto yy236; + if (yych <= 'i') goto yy238; goto yy204; } } } else { if (yych <= 't') { if (yych <= 'q') { - if (yych <= 'o') goto yy238; + if (yych <= 'o') goto yy240; goto yy204; } else { - if (yych <= 'r') goto yy240; - if (yych <= 's') goto yy242; - goto yy244; + if (yych <= 'r') goto yy242; + if (yych <= 's') goto yy244; + goto yy246; } } else { if (yych <= 'v') { - if (yych <= 'u') goto yy246; - goto yy248; + if (yych <= 'u') goto yy248; + goto yy250; } else { - if (yych <= 'w') goto yy250; - if (yych <= 'x') goto yy252; + if (yych <= 'w') goto yy252; + if (yych <= 'x') goto yy254; goto yy204; } } } } -yy202: ++YYCURSOR; #line 96 "../src/conf/parse_opts.re" { goto opt; } -#line 935 "src/conf/parse_opts.cc" +#line 943 "src/conf/parse_opts.cc" yy204: ++YYCURSOR; #line 92 "../src/conf/parse_opts.re" @@ -939,1841 +947,1852 @@ yy204: error ("bad short option: %s", *argv); return EXIT_FAIL; } -#line 943 "src/conf/parse_opts.cc" +#line 951 "src/conf/parse_opts.cc" yy206: ++YYCURSOR; -#line 124 "../src/conf/parse_opts.re" +#line 127 "../src/conf/parse_opts.re" { goto opt_short; } -#line 948 "src/conf/parse_opts.cc" +#line 956 "src/conf/parse_opts.cc" yy208: ++YYCURSOR; -#line 119 "../src/conf/parse_opts.re" +#line 122 "../src/conf/parse_opts.re" { opts.set_encoding(Enc::UTF8); goto opt_short; } -#line 953 "src/conf/parse_opts.cc" +#line 961 "src/conf/parse_opts.cc" yy210: ++YYCURSOR; #line 97 "../src/conf/parse_opts.re" { usage (); return EXIT_OK; } -#line 958 "src/conf/parse_opts.cc" +#line 966 "src/conf/parse_opts.cc" yy212: ++YYCURSOR; #line 102 "../src/conf/parse_opts.re" { globopts.target = TARGET_DOT; goto opt_short; } -#line 963 "src/conf/parse_opts.cc" +#line 971 "src/conf/parse_opts.cc" yy214: ++YYCURSOR; #line 104 "../src/conf/parse_opts.re" { globopts.FFlag = true; goto opt_short; } -#line 968 "src/conf/parse_opts.cc" +#line 976 "src/conf/parse_opts.cc" yy216: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy256; +#line 109 "../src/conf/parse_opts.re" + { goto opt_incpath; } +#line 982 "src/conf/parse_opts.cc" +yy218: ++YYCURSOR; -#line 114 "../src/conf/parse_opts.re" +#line 117 "../src/conf/parse_opts.re" { opts.set_posix_captures(true); goto opt_short; } -#line 973 "src/conf/parse_opts.cc" -yy218: +#line 987 "src/conf/parse_opts.cc" +yy220: ++YYCURSOR; #line 106 "../src/conf/parse_opts.re" { globopts.target = TARGET_SKELETON; goto opt_short; } -#line 978 "src/conf/parse_opts.cc" -yy220: +#line 992 "src/conf/parse_opts.cc" +yy222: ++YYCURSOR; -#line 113 "../src/conf/parse_opts.re" +#line 116 "../src/conf/parse_opts.re" { opts.set_tags(true); goto opt_short; } -#line 983 "src/conf/parse_opts.cc" -yy222: +#line 997 "src/conf/parse_opts.cc" +yy224: ++YYCURSOR; #line 99 "../src/conf/parse_opts.re" { vernum (); return EXIT_OK; } -#line 988 "src/conf/parse_opts.cc" -yy224: +#line 1002 "src/conf/parse_opts.cc" +yy226: ++YYCURSOR; -#line 108 "../src/conf/parse_opts.re" +#line 111 "../src/conf/parse_opts.re" { opts.set_bFlag(true); goto opt_short; } -#line 993 "src/conf/parse_opts.cc" -yy226: +#line 1007 "src/conf/parse_opts.cc" +yy228: ++YYCURSOR; #line 101 "../src/conf/parse_opts.re" { globopts.cFlag = true; goto opt_short; } -#line 998 "src/conf/parse_opts.cc" -yy228: +#line 1012 "src/conf/parse_opts.cc" +yy230: ++YYCURSOR; -#line 109 "../src/conf/parse_opts.re" +#line 112 "../src/conf/parse_opts.re" { opts.set_dFlag(true); goto opt_short; } -#line 1003 "src/conf/parse_opts.cc" -yy230: +#line 1017 "src/conf/parse_opts.cc" +yy232: ++YYCURSOR; -#line 115 "../src/conf/parse_opts.re" +#line 118 "../src/conf/parse_opts.re" { opts.set_encoding(Enc::EBCDIC); goto opt_short; } -#line 1008 "src/conf/parse_opts.cc" -yy232: +#line 1022 "src/conf/parse_opts.cc" +yy234: ++YYCURSOR; #line 103 "../src/conf/parse_opts.re" { globopts.fFlag = true; goto opt_short; } -#line 1013 "src/conf/parse_opts.cc" -yy234: +#line 1027 "src/conf/parse_opts.cc" +yy236: ++YYCURSOR; -#line 110 "../src/conf/parse_opts.re" +#line 113 "../src/conf/parse_opts.re" { opts.set_gFlag(true); goto opt_short; } -#line 1018 "src/conf/parse_opts.cc" -yy236: +#line 1032 "src/conf/parse_opts.cc" +yy238: ++YYCURSOR; -#line 111 "../src/conf/parse_opts.re" +#line 114 "../src/conf/parse_opts.re" { opts.set_iFlag(true); goto opt_short; } -#line 1023 "src/conf/parse_opts.cc" -yy238: +#line 1037 "src/conf/parse_opts.cc" +yy240: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy254; -#line 121 "../src/conf/parse_opts.re" + if (yych <= 0x00) goto yy258; +#line 124 "../src/conf/parse_opts.re" { *argv = YYCURSOR; goto opt_output; } -#line 1029 "src/conf/parse_opts.cc" -yy240: +#line 1043 "src/conf/parse_opts.cc" +yy242: ++YYCURSOR; #line 105 "../src/conf/parse_opts.re" { globopts.rFlag = true; goto opt_short; } -#line 1034 "src/conf/parse_opts.cc" -yy242: +#line 1048 "src/conf/parse_opts.cc" +yy244: ++YYCURSOR; -#line 112 "../src/conf/parse_opts.re" +#line 115 "../src/conf/parse_opts.re" { opts.set_sFlag(true); goto opt_short; } -#line 1039 "src/conf/parse_opts.cc" -yy244: +#line 1053 "src/conf/parse_opts.cc" +yy246: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy256; -#line 123 "../src/conf/parse_opts.re" + if (yych <= 0x00) goto yy260; +#line 126 "../src/conf/parse_opts.re" { *argv = YYCURSOR; goto opt_header; } -#line 1045 "src/conf/parse_opts.cc" -yy246: +#line 1059 "src/conf/parse_opts.cc" +yy248: ++YYCURSOR; -#line 116 "../src/conf/parse_opts.re" +#line 119 "../src/conf/parse_opts.re" { opts.set_encoding(Enc::UTF32); goto opt_short; } -#line 1050 "src/conf/parse_opts.cc" -yy248: +#line 1064 "src/conf/parse_opts.cc" +yy250: ++YYCURSOR; #line 98 "../src/conf/parse_opts.re" { version (); return EXIT_OK; } -#line 1055 "src/conf/parse_opts.cc" -yy250: +#line 1069 "src/conf/parse_opts.cc" +yy252: ++YYCURSOR; -#line 117 "../src/conf/parse_opts.re" +#line 120 "../src/conf/parse_opts.re" { opts.set_encoding(Enc::UCS2); goto opt_short; } -#line 1060 "src/conf/parse_opts.cc" -yy252: +#line 1074 "src/conf/parse_opts.cc" +yy254: ++YYCURSOR; -#line 118 "../src/conf/parse_opts.re" +#line 121 "../src/conf/parse_opts.re" { opts.set_encoding(Enc::UTF16); goto opt_short; } -#line 1065 "src/conf/parse_opts.cc" -yy254: +#line 1079 "src/conf/parse_opts.cc" +yy256: ++YYCURSOR; -#line 120 "../src/conf/parse_opts.re" +#line 108 "../src/conf/parse_opts.re" + { if (!next (YYCURSOR, argv)) { error_arg ("-I"); return EXIT_FAIL; } goto opt_incpath; } +#line 1084 "src/conf/parse_opts.cc" +yy258: + ++YYCURSOR; +#line 123 "../src/conf/parse_opts.re" { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; } -#line 1070 "src/conf/parse_opts.cc" -yy256: +#line 1089 "src/conf/parse_opts.cc" +yy260: ++YYCURSOR; -#line 122 "../src/conf/parse_opts.re" +#line 125 "../src/conf/parse_opts.re" { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; } -#line 1075 "src/conf/parse_opts.cc" +#line 1094 "src/conf/parse_opts.cc" } -#line 125 "../src/conf/parse_opts.re" +#line 128 "../src/conf/parse_opts.re" opt_long: -#line 1082 "src/conf/parse_opts.cc" +#line 1101 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; switch (yych) { - case 'b': goto yy262; - case 'c': goto yy263; - case 'd': goto yy264; - case 'e': goto yy265; - case 'f': goto yy266; - case 'h': goto yy267; - case 'i': goto yy268; - case 'n': goto yy269; - case 'o': goto yy270; - case 'p': goto yy271; - case 'r': goto yy272; - case 's': goto yy273; - case 't': goto yy274; - case 'u': goto yy275; - case 'v': goto yy276; - case 'w': goto yy277; - default: goto yy260; + case 'b': goto yy266; + case 'c': goto yy267; + case 'd': goto yy268; + case 'e': goto yy269; + case 'f': goto yy270; + case 'h': goto yy271; + case 'i': goto yy272; + case 'n': goto yy273; + case 'o': goto yy274; + case 'p': goto yy275; + case 'r': goto yy276; + case 's': goto yy277; + case 't': goto yy278; + case 'u': goto yy279; + case 'v': goto yy280; + case 'w': goto yy281; + default: goto yy264; } -yy260: +yy264: ++YYCURSOR; -yy261: -#line 130 "../src/conf/parse_opts.re" +yy265: +#line 133 "../src/conf/parse_opts.re" { error ("bad long option: %s", *argv); return EXIT_FAIL; } -#line 1113 "src/conf/parse_opts.cc" -yy262: +#line 1132 "src/conf/parse_opts.cc" +yy266: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'i') goto yy278; - goto yy261; -yy263: + if (yych == 'i') goto yy282; + goto yy265; +yy267: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy280; - if (yych == 'o') goto yy281; - goto yy261; -yy264: + if (yych == 'a') goto yy284; + if (yych == 'o') goto yy285; + goto yy265; +yy268: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= 'f') { - if (yych <= 'd') goto yy261; - if (yych <= 'e') goto yy282; - goto yy283; + if (yych <= 'd') goto yy265; + if (yych <= 'e') goto yy286; + goto yy287; } else { - if (yych == 'u') goto yy284; - goto yy261; + if (yych == 'u') goto yy288; + goto yy265; } -yy265: +yy269: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych <= 'c') { - if (yych == 'a') goto yy285; - if (yych <= 'b') goto yy261; - goto yy286; + if (yych == 'a') goto yy289; + if (yych <= 'b') goto yy265; + goto yy290; } else { - if (yych <= 'l') goto yy261; - if (yych <= 'm') goto yy287; - if (yych <= 'n') goto yy288; - goto yy261; + if (yych <= 'l') goto yy265; + if (yych <= 'm') goto yy291; + if (yych <= 'n') goto yy292; + goto yy265; } -yy266: - yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'l') goto yy289; - goto yy261; -yy267: - yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy290; - goto yy261; -yy268: - yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'n') goto yy291; - goto yy261; -yy269: - yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy292; - if (yych == 'o') goto yy293; - goto yy261; yy270: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'u') goto yy294; - goto yy261; + if (yych == 'l') goto yy293; + goto yy265; yy271: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'o') goto yy295; - goto yy261; + if (yych == 'e') goto yy294; + goto yy265; yy272: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy296; - goto yy261; + if (yych == 'n') goto yy295; + goto yy265; yy273: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych <= 'j') { - if (yych == 'i') goto yy297; - goto yy261; - } else { - if (yych <= 'k') goto yy298; - if (yych == 't') goto yy299; - goto yy261; - } + if (yych == 'e') goto yy296; + if (yych == 'o') goto yy297; + goto yy265; yy274: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy300; - if (yych == 'y') goto yy301; - goto yy261; + if (yych == 'u') goto yy298; + goto yy265; yy275: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'n') goto yy302; - if (yych == 't') goto yy303; - goto yy261; + if (yych == 'o') goto yy299; + goto yy265; yy276: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy304; - goto yy261; + if (yych == 'e') goto yy300; + goto yy265; yy277: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'i') goto yy305; - goto yy261; + if (yych <= 'j') { + if (yych == 'i') goto yy301; + goto yy265; + } else { + if (yych <= 'k') goto yy302; + if (yych == 't') goto yy303; + goto yy265; + } yy278: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy306; + yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); + if (yych == 'a') goto yy304; + if (yych == 'y') goto yy305; + goto yy265; yy279: - YYCURSOR = YYMARKER; - goto yy261; + yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); + if (yych == 'n') goto yy306; + if (yych == 't') goto yy307; + goto yy265; yy280: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy307; - goto yy279; + yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); + if (yych == 'e') goto yy308; + goto yy265; yy281: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 'l') goto yy279; - if (yych <= 'm') goto yy308; - if (yych <= 'n') goto yy309; - goto yy279; + yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); + if (yych == 'i') goto yy309; + goto yy265; yy282: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy310; - goto yy279; + if (yych == 't') goto yy310; yy283: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy311; - goto yy279; + YYCURSOR = YYMARKER; + goto yy265; yy284: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy312; - goto yy279; + if (yych == 's') goto yy311; + goto yy283; yy285: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy313; - goto yy279; + if (yych <= 'l') goto yy283; + if (yych <= 'm') goto yy312; + if (yych <= 'n') goto yy313; + goto yy283; yy286: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'b') goto yy314; - goto yy279; + goto yy283; yy287: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy315; - if (yych == 'p') goto yy316; - goto yy279; + if (yych == 'a') goto yy315; + goto yy283; yy288: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy317; - goto yy279; + if (yych == 'm') goto yy316; + goto yy283; yy289: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy318; - goto yy279; + if (yych == 'g') goto yy317; + goto yy283; yy290: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy319; - goto yy279; + if (yych == 'b') goto yy318; + goto yy283; yy291: yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy319; if (yych == 'p') goto yy320; - goto yy279; + goto yy283; yy292: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy321; - goto yy279; + if (yych == 'c') goto yy321; + goto yy283; yy293: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy322; - goto yy279; + if (yych == 'e') goto yy322; + goto yy283; yy294: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy323; - goto yy279; + if (yych == 'l') goto yy323; + goto yy283; yy295: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy324; - goto yy279; + if (yych == 'p') goto yy324; + goto yy283; yy296: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy325; - goto yy279; + if (yych == 's') goto yy325; + goto yy283; yy297: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy326; - goto yy279; + if (yych == '-') goto yy326; + goto yy283; yy298: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy327; - goto yy279; + if (yych == 't') goto yy327; + goto yy283; yy299: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy328; - if (yych == 'o') goto yy329; - goto yy279; + if (yych == 's') goto yy328; + goto yy283; yy300: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy330; - goto yy279; + if (yych == 'u') goto yy329; + goto yy283; yy301: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy331; - goto yy279; + if (yych == 'n') goto yy330; + goto yy283; yy302: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy332; - goto yy279; + if (yych == 'e') goto yy331; + goto yy283; yy303: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy333; - goto yy279; + if (yych == 'a') goto yy332; + if (yych == 'o') goto yy333; + goto yy283; yy304: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy334; - goto yy279; + if (yych == 'g') goto yy334; + goto yy283; yy305: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy335; - goto yy279; + if (yych == 'p') goto yy335; + goto yy283; yy306: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy336; - goto yy279; + if (yych == 'i') goto yy336; + goto yy283; yy307: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy337; - goto yy279; + if (yych == 'f') goto yy337; + goto yy283; yy308: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy338; - goto yy279; + if (yych == 'r') goto yy338; + goto yy283; yy309: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'd') goto yy339; - goto yy279; + goto yy283; yy310: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy340; - goto yy279; + if (yych == '-') goto yy340; + goto yy283; yy311: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy341; - goto yy279; + if (yych == 'e') goto yy341; + goto yy283; yy312: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'p') goto yy342; - goto yy279; + goto yy283; yy313: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy343; - goto yy279; + if (yych == 'd') goto yy343; + goto yy283; yy314: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy344; - goto yy279; + if (yych == 'u') goto yy344; + goto yy283; yy315: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy346; - goto yy279; + if (yych == '-') goto yy345; + goto yy283; yy316: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy347; - goto yy279; + if (yych == 'p') goto yy346; + goto yy283; yy317: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy348; - goto yy279; + if (yych == 'e') goto yy347; + goto yy283; yy318: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'x') goto yy349; - goto yy279; + if (yych <= 0x00) goto yy348; + goto yy283; yy319: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy350; - goto yy279; + if (yych == 't') goto yy350; + goto yy283; yy320: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy351; - goto yy279; + if (yych == 't') goto yy351; + goto yy283; yy321: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy352; - goto yy279; + if (yych == 'o') goto yy352; + goto yy283; yy322: yych = (YYCTYPE)*++YYCURSOR; - switch (yych) { - case 'd': goto yy353; - case 'g': goto yy354; - case 'l': goto yy355; - case 'o': goto yy356; - case 'v': goto yy357; - default: goto yy279; - } + if (yych == 'x') goto yy353; + goto yy283; yy323: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy358; - goto yy279; + if (yych == 'p') goto yy354; + goto yy283; yy324: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy359; - goto yy279; + if (yych == 'u') goto yy355; + goto yy283; yy325: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy360; - goto yy279; + if (yych == 't') goto yy356; + goto yy283; yy326: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy361; - goto yy279; + switch (yych) { + case 'd': goto yy357; + case 'g': goto yy358; + case 'l': goto yy359; + case 'o': goto yy360; + case 'v': goto yy361; + default: goto yy283; + } yy327: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy362; - goto yy279; + if (yych == 'p') goto yy362; + goto yy283; yy328: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy363; - goto yy279; + if (yych == 'i') goto yy363; + goto yy283; yy329: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy364; - goto yy279; + if (yych == 's') goto yy364; + goto yy283; yy330: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy365; - goto yy279; + if (yych == 'g') goto yy365; + goto yy283; yy331: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy366; - goto yy279; + if (yych == 'l') goto yy366; + goto yy283; yy332: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy367; - goto yy279; + if (yych == 'r') goto yy367; + goto yy283; yy333: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy368; - goto yy279; + if (yych == 'r') goto yy368; + goto yy283; yy334: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy369; - if (yych == 's') goto yy370; - goto yy279; + if (yych == 's') goto yy369; + goto yy283; yy335: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy371; - goto yy279; + if (yych == 'e') goto yy370; + goto yy283; yy336: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'v') goto yy372; - goto yy279; + if (yych == 'c') goto yy371; + goto yy283; yy337: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy373; - goto yy279; + if (yych == '-') goto yy372; + goto yy283; yy338: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy374; - goto yy279; + if (yych == 'n') goto yy373; + if (yych == 's') goto yy374; + goto yy283; yy339: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy375; - goto yy279; + if (yych == 'e') goto yy375; + goto yy283; yy340: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy376; - goto yy279; + if (yych == 'v') goto yy376; + goto yy283; yy341: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy377; - goto yy279; + if (yych == '-') goto yy377; + goto yy283; yy342: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy378; - goto yy279; + if (yych == 'u') goto yy378; + goto yy283; yy343: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy379; - goto yy279; + if (yych == 'i') goto yy379; + goto yy283; yy344: - ++YYCURSOR; -#line 159 "../src/conf/parse_opts.re" - { opts.set_encoding(Enc::EBCDIC); goto opt; } -#line 1479 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'g') goto yy380; + goto yy283; +yy345: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'm') goto yy381; + goto yy283; yy346: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy380; - goto yy279; + if (yych == '-') goto yy382; + goto yy283; yy347: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy381; - goto yy279; + if (yych == 'r') goto yy383; + goto yy283; yy348: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy382; - goto yy279; -yy349: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy383; - goto yy279; + ++YYCURSOR; +#line 162 "../src/conf/parse_opts.re" + { opts.set_encoding(Enc::EBCDIC); goto opt; } +#line 1498 "src/conf/parse_opts.cc" yy350: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy384; - goto yy279; + if (yych == '-') goto yy384; + goto yy283; yy351: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy386; - goto yy279; + if (yych == 'y') goto yy385; + goto yy283; yy352: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy387; - goto yy279; + if (yych == 'd') goto yy386; + goto yy283; yy353: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy388; - goto yy279; + if (yych == '-') goto yy387; + goto yy283; yy354: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy389; - goto yy279; + if (yych <= 0x00) goto yy388; + goto yy283; yy355: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy390; - goto yy279; + if (yych == 't') goto yy390; + goto yy283; yy356: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy391; - goto yy279; + if (yych == 'e') goto yy391; + goto yy283; yy357: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'e') goto yy392; - goto yy279; + goto yy283; yy358: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy393; - goto yy279; + if (yych == 'e') goto yy393; + goto yy283; yy359: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'x') goto yy394; - goto yy279; + if (yych == 'o') goto yy394; + goto yy283; yy360: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy395; - goto yy279; + if (yych == 'p') goto yy395; + goto yy283; yy361: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy396; - goto yy279; + if (yych == 'e') goto yy396; + goto yy283; yy362: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy397; - goto yy279; + if (yych == 'u') goto yy397; + goto yy283; yy363: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy398; - goto yy279; + if (yych == 'x') goto yy398; + goto yy283; yy364: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'a') goto yy399; - goto yy279; + goto yy283; yy365: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy400; - goto yy279; + if (yych == 'l') goto yy400; + goto yy283; yy366: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy402; - goto yy279; + if (yych == 'e') goto yy401; + goto yy283; yy367: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy403; - goto yy279; + if (yych == 't') goto yy402; + goto yy283; yy368: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '1') goto yy404; - if (yych == '8') goto yy405; - goto yy279; + if (yych == 'a') goto yy403; + goto yy283; yy369: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy406; - goto yy279; + if (yych <= 0x00) goto yy404; + goto yy283; yy370: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy407; - goto yy279; + if (yych == '-') goto yy406; + goto yy283; yy371: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy408; - goto yy279; + if (yych == 'o') goto yy407; + goto yy283; yy372: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy409; - goto yy279; + if (yych == '1') goto yy408; + if (yych == '8') goto yy409; + goto yy283; yy373: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy410; - goto yy279; + if (yych == 'u') goto yy410; + goto yy283; yy374: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy411; - goto yy279; + if (yych == 'i') goto yy411; + goto yy283; yy375: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy412; - goto yy279; + if (yych == '-') goto yy412; + goto yy283; yy376: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy413; - goto yy279; + if (yych == 'e') goto yy413; + goto yy283; yy377: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'i') goto yy414; - goto yy279; + goto yy283; yy378: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 'c') { - if (yych == 'a') goto yy415; - goto yy279; - } else { - if (yych <= 'd') goto yy416; - if (yych == 'n') goto yy417; - goto yy279; - } + if (yych == 't') goto yy415; + goto yy283; yy379: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy418; - goto yy279; + if (yych == 't') goto yy416; + goto yy283; yy380: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy419; - goto yy279; + if (yych == '-') goto yy417; + goto yy283; yy381: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy420; - goto yy279; + if (yych == 'i') goto yy418; + goto yy283; yy382: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy421; - goto yy279; + if (yych <= 'c') { + if (yych == 'a') goto yy419; + goto yy283; + } else { + if (yych <= 'd') goto yy420; + if (yych == 'n') goto yy421; + goto yy283; + } yy383: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy422; - goto yy279; + if (yych == '-') goto yy422; + goto yy283; yy384: - ++YYCURSOR; -#line 134 "../src/conf/parse_opts.re" - { usage (); return EXIT_OK; } -#line 1643 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'd') goto yy423; + goto yy283; +yy385: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == '-') goto yy424; + goto yy283; yy386: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy423; - goto yy279; + if (yych == 'i') goto yy425; + goto yy283; yy387: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy425; - goto yy279; + if (yych == 's') goto yy426; + goto yy283; yy388: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy426; - goto yy279; -yy389: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy427; - goto yy279; + ++YYCURSOR; +#line 137 "../src/conf/parse_opts.re" + { usage (); return EXIT_OK; } +#line 1662 "src/conf/parse_opts.cc" yy390: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy428; - goto yy279; + if (yych <= 0x00) goto yy427; + goto yy283; yy391: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy429; - goto yy279; + if (yych == 'd') goto yy429; + goto yy283; yy392: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy430; - goto yy279; + if (yych == 'b') goto yy430; + goto yy283; yy393: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy431; - goto yy279; + if (yych == 'n') goto yy431; + goto yy283; yy394: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy432; - goto yy279; + if (yych == 'o') goto yy432; + goto yy283; yy395: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy433; - goto yy279; + if (yych == 't') goto yy433; + goto yy283; yy396: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy434; - goto yy279; + if (yych == 'r') goto yy434; + goto yy283; yy397: yych = (YYCTYPE)*++YYCURSOR; if (yych == 't') goto yy435; - goto yy279; + goto yy283; yy398: yych = (YYCTYPE)*++YYCURSOR; if (yych == '-') goto yy436; - goto yy279; + goto yy283; yy399: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'b') goto yy437; - goto yy279; + goto yy283; yy400: - ++YYCURSOR; -#line 154 "../src/conf/parse_opts.re" - { opts.set_tags (true); goto opt; } -#line 1704 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy438; + goto yy283; +yy401: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy439; + goto yy283; yy402: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy438; - goto yy279; + if (yych == '-') goto yy440; + goto yy283; yy403: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy439; - goto yy279; + if (yych == 'b') goto yy441; + goto yy283; yy404: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == '6') goto yy440; - goto yy279; -yy405: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy441; - goto yy279; + ++YYCURSOR; +#line 157 "../src/conf/parse_opts.re" + { opts.set_tags (true); goto opt; } +#line 1723 "src/conf/parse_opts.cc" yy406: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy443; - goto yy279; + if (yych == 'h') goto yy442; + goto yy283; yy407: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy444; - goto yy279; + if (yych == 'd') goto yy443; + goto yy283; yy408: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy445; - goto yy279; + if (yych == '6') goto yy444; + goto yy283; yy409: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy446; - goto yy279; + if (yych <= 0x00) goto yy445; + goto yy283; yy410: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy447; - goto yy279; + if (yych == 'm') goto yy447; + goto yy283; yy411: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy448; - goto yy279; + if (yych == 'o') goto yy448; + goto yy283; yy412: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy449; - goto yy279; + if (yych == 'c') goto yy449; + goto yy283; yy413: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy450; - goto yy279; + if (yych == 'c') goto yy450; + goto yy283; yy414: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'n') goto yy451; - goto yy279; + goto yy283; yy415: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy452; - goto yy279; + if (yych == 'e') goto yy452; + goto yy283; yy416: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy453; - goto yy279; + if (yych == 'i') goto yy453; + goto yy283; yy417: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy454; - goto yy279; + if (yych == 'o') goto yy454; + goto yy283; yy418: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy455; - goto yy279; + if (yych == 'n') goto yy455; + goto yy283; yy419: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy456; - goto yy279; + if (yych == 'd') goto yy456; + goto yy283; yy420: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy457; - goto yy279; + if (yych == 'f') goto yy457; + goto yy283; yy421: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy458; - goto yy279; + if (yych == 'f') goto yy458; + goto yy283; yy422: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy459; - goto yy279; + if (yych == 's') goto yy459; + goto yy283; yy423: - ++YYCURSOR; -#line 167 "../src/conf/parse_opts.re" - { goto opt_input; } -#line 1793 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'o') goto yy460; + goto yy283; +yy424: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'c') goto yy461; + goto yy283; yy425: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy460; - goto yy279; + if (yych == 'n') goto yy462; + goto yy283; yy426: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy461; - goto yy279; + if (yych == 'y') goto yy463; + goto yy283; yy427: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy462; - goto yy279; -yy428: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'k') goto yy463; - goto yy279; + ++YYCURSOR; +#line 170 "../src/conf/parse_opts.re" + { goto opt_input; } +#line 1812 "src/conf/parse_opts.cc" yy429: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy464; - goto yy279; + if (yych == '-') goto yy464; + goto yy283; yy430: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy465; - goto yy279; + if (yych == 'u') goto yy465; + goto yy283; yy431: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy466; - goto yy279; + if (yych == 'e') goto yy466; + goto yy283; yy432: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy468; - goto yy279; + if (yych == 'k') goto yy467; + goto yy283; yy433: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy469; - goto yy279; + if (yych == 'i') goto yy468; + goto yy283; yy434: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy470; - goto yy279; + if (yych == 's') goto yy469; + goto yy283; yy435: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy471; - goto yy279; + if (yych <= 0x00) goto yy470; + goto yy283; yy436: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'c') goto yy472; - goto yy279; + goto yy283; yy437: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'l') goto yy473; - goto yy279; + goto yy283; yy438: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy474; - goto yy279; + if (yych == '-') goto yy474; + goto yy283; yy439: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy475; - goto yy279; + if (yych == 'o') goto yy475; + goto yy283; yy440: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy476; - goto yy279; + if (yych == 'c') goto yy476; + goto yy283; yy441: - ++YYCURSOR; -#line 163 "../src/conf/parse_opts.re" - { opts.set_encoding(Enc::UTF8); goto opt; } -#line 1862 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'l') goto yy477; + goto yy283; +yy442: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy478; + goto yy283; yy443: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy478; - goto yy279; + if (yych == 'e') goto yy479; + goto yy283; yy444: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy480; - goto yy279; + if (yych <= 0x00) goto yy480; + goto yy283; yy445: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy481; - goto yy279; -yy446: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy482; - goto yy279; + ++YYCURSOR; +#line 166 "../src/conf/parse_opts.re" + { opts.set_encoding(Enc::UTF8); goto opt; } +#line 1881 "src/conf/parse_opts.cc" yy447: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy483; - if (yych == 'v') goto yy484; - goto yy279; + if (yych <= 0x00) goto yy482; + goto yy283; yy448: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy485; - goto yy279; + if (yych == 'n') goto yy484; + goto yy283; yy449: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy486; - goto yy279; + if (yych == 'h') goto yy485; + goto yy283; yy450: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy487; - goto yy279; + if (yych == 't') goto yy486; + goto yy283; yy451: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy488; - goto yy279; + if (yych == 's') goto yy487; + if (yych == 'v') goto yy488; + goto yy283; yy452: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy489; - goto yy279; + if (yych == 'd') goto yy489; + goto yy283; yy453: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy490; - goto yy279; + if (yych == 'o') goto yy490; + goto yy283; yy454: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy491; - goto yy279; + if (yych == 'u') goto yy491; + goto yy283; yy455: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'k') goto yy492; - goto yy279; + if (yych == 'i') goto yy492; + goto yy283; yy456: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy493; - goto yy279; + if (yych == 'f') goto yy493; + goto yy283; yy457: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy494; - goto yy279; + if (yych == 'a') goto yy494; + goto yy283; yy458: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy495; - goto yy279; + if (yych == 'a') goto yy495; + goto yy283; yy459: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy496; - goto yy279; + if (yych == 'k') goto yy496; + goto yy283; yy460: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy497; - goto yy279; + if (yych == 't') goto yy497; + goto yy283; yy461: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy498; - goto yy279; + if (yych == 'l') goto yy498; + goto yy283; yy462: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy499; - goto yy279; + if (yych == 'g') goto yy499; + goto yy283; yy463: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy500; - goto yy279; + if (yych == 'n') goto yy500; + goto yy283; yy464: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy501; - goto yy279; + if (yych == 'i') goto yy501; + goto yy283; yy465: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy502; - goto yy279; + if (yych == 'g') goto yy502; + goto yy283; yy466: - ++YYCURSOR; -#line 164 "../src/conf/parse_opts.re" - { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; } -#line 1960 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy503; + goto yy283; +yy467: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'a') goto yy504; + goto yy283; yy468: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy503; - goto yy279; + if (yych == 'm') goto yy505; + goto yy283; yy469: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy504; - goto yy279; + if (yych == 'i') goto yy506; + goto yy283; yy470: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy505; - goto yy279; -yy471: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy506; - goto yy279; + ++YYCURSOR; +#line 167 "../src/conf/parse_opts.re" + { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; } +#line 1979 "src/conf/parse_opts.cc" yy472: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy507; - goto yy279; + if (yych == 'a') goto yy507; + goto yy283; yy473: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'e') goto yy508; - goto yy279; + goto yy283; yy474: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy509; - goto yy279; + if (yych == 'p') goto yy509; + goto yy283; yy475: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy510; - goto yy279; + if (yych == 'n') goto yy510; + goto yy283; yy476: - ++YYCURSOR; -#line 162 "../src/conf/parse_opts.re" - { opts.set_encoding(Enc::UTF16); goto opt; } -#line 1997 "src/conf/parse_opts.cc" -yy478: - ++YYCURSOR; -#line 136 "../src/conf/parse_opts.re" - { vernum (); return EXIT_OK; } -#line 2002 "src/conf/parse_opts.cc" -yy480: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy512; - goto yy279; -yy481: + if (yych == 'o') goto yy511; + goto yy283; +yy477: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy514; - goto yy279; -yy482: + if (yych == 'e') goto yy512; + goto yy283; +yy478: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy515; - goto yy279; -yy483: + if (yych == 'a') goto yy513; + goto yy283; +yy479: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy516; - goto yy279; + if (yych <= 0x00) goto yy514; + goto yy283; +yy480: + ++YYCURSOR; +#line 165 "../src/conf/parse_opts.re" + { opts.set_encoding(Enc::UTF16); goto opt; } +#line 2016 "src/conf/parse_opts.cc" +yy482: + ++YYCURSOR; +#line 139 "../src/conf/parse_opts.re" + { vernum (); return EXIT_OK; } +#line 2021 "src/conf/parse_opts.cc" yy484: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy517; - goto yy279; + if (yych <= 0x00) goto yy516; + goto yy283; yy485: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy518; - goto yy279; + if (yych == 'a') goto yy518; + goto yy283; yy486: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy519; - goto yy279; + if (yych == 'o') goto yy519; + goto yy283; yy487: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy520; - goto yy279; + if (yych == 'e') goto yy520; + goto yy283; yy488: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy521; - goto yy279; + if (yych == 'e') goto yy521; + goto yy283; yy489: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy522; - goto yy279; + if (yych == '-') goto yy522; + goto yy283; yy490: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy523; - goto yy279; + if (yych == 'n') goto yy523; + goto yy283; yy491: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy524; - goto yy279; + if (yych == 't') goto yy524; + goto yy283; yy492: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy526; - goto yy279; + if (yych == 'm') goto yy525; + goto yy283; yy493: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy527; - goto yy279; + if (yych == 'a') goto yy526; + goto yy283; yy494: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy529; - goto yy279; + if (yych == '-') goto yy527; + goto yy283; yy495: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy530; - goto yy279; + if (yych <= 0x00) goto yy528; + goto yy283; yy496: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy531; - goto yy279; + if (yych == 'i') goto yy530; + goto yy283; yy497: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy532; - goto yy279; + if (yych <= 0x00) goto yy531; + goto yy283; yy498: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy533; - goto yy279; + if (yych == 'a') goto yy533; + goto yy283; yy499: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy534; - goto yy279; + if (yych == '-') goto yy534; + goto yy283; yy500: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy535; - goto yy279; + if (yych == 't') goto yy535; + goto yy283; yy501: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy536; - goto yy279; + if (yych == 'f') goto yy536; + goto yy283; yy502: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy537; - goto yy279; + if (yych == '-') goto yy537; + goto yy283; yy503: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy538; - goto yy279; + if (yych == 'a') goto yy538; + goto yy283; yy504: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy539; - goto yy279; + if (yych == 'h') goto yy539; + goto yy283; yy505: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy541; - goto yy279; + if (yych == 'i') goto yy540; + goto yy283; yy506: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy542; - goto yy279; + if (yych == 'o') goto yy541; + goto yy283; yy507: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy309; - goto yy279; + if (yych == 'p') goto yy542; + goto yy283; yy508: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy544; - goto yy279; + if (yych <= 0x00) goto yy543; + goto yy283; yy509: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy545; - goto yy279; + if (yych == 'a') goto yy545; + goto yy283; yy510: - ++YYCURSOR; -#line 160 "../src/conf/parse_opts.re" - { opts.set_encoding(Enc::UTF32); goto opt; } -#line 2127 "src/conf/parse_opts.cc" -yy512: - ++YYCURSOR; -#line 135 "../src/conf/parse_opts.re" - { version (); return EXIT_OK; } -#line 2132 "src/conf/parse_opts.cc" -yy514: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy546; - goto yy279; -yy515: + if (yych <= 0x00) goto yy546; + goto yy283; +yy511: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy547; - goto yy279; -yy516: + if (yych == 'n') goto yy313; + goto yy283; +yy512: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy548; - goto yy279; -yy517: + if (yych == '-') goto yy548; + goto yy283; +yy513: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy549; - goto yy279; + if (yych == 'd') goto yy549; + goto yy283; +yy514: + ++YYCURSOR; +#line 163 "../src/conf/parse_opts.re" + { opts.set_encoding(Enc::UTF32); goto opt; } +#line 2146 "src/conf/parse_opts.cc" +yy516: + ++YYCURSOR; +#line 138 "../src/conf/parse_opts.re" + { version (); return EXIT_OK; } +#line 2151 "src/conf/parse_opts.cc" yy518: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy550; - goto yy279; + if (yych == 'r') goto yy550; + goto yy283; yy519: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy551; - goto yy279; + if (yych == 'r') goto yy551; + goto yy283; yy520: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy552; - goto yy279; + if (yych == 'n') goto yy552; + goto yy283; yy521: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy553; - goto yy279; + if (yych == 'r') goto yy553; + goto yy283; yy522: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy554; - goto yy279; + if (yych == 'g') goto yy554; + goto yy283; yy523: yych = (YYCTYPE)*++YYCURSOR; - switch (yych) { - case 'd': goto yy556; - case 'm': goto yy557; - case 'r': goto yy558; - case 't': goto yy559; - default: goto yy279; - } + if (yych == 's') goto yy555; + goto yy283; yy524: - ++YYCURSOR; -#line 172 "../src/conf/parse_opts.re" - { globopts.dump_nfa = true; goto opt; } -#line 2182 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'p') goto yy556; + goto yy283; +yy525: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy557; + goto yy283; yy526: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy560; - goto yy279; + if (yych <= 0x00) goto yy558; + goto yy283; yy527: - ++YYCURSOR; -#line 139 "../src/conf/parse_opts.re" - { globopts.target = TARGET_DOT; goto opt; } -#line 2191 "src/conf/parse_opts.cc" -yy529: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy561; - goto yy279; + switch (yych) { + case 'd': goto yy560; + case 'm': goto yy561; + case 'r': goto yy562; + case 't': goto yy563; + default: goto yy283; + } +yy528: + ++YYCURSOR; +#line 175 "../src/conf/parse_opts.re" + { globopts.dump_nfa = true; goto opt; } +#line 2201 "src/conf/parse_opts.cc" yy530: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy562; - goto yy279; + if (yych == 'p') goto yy564; + goto yy283; yy531: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy563; - goto yy279; -yy532: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy564; - goto yy279; + ++YYCURSOR; +#line 142 "../src/conf/parse_opts.re" + { globopts.target = TARGET_DOT; goto opt; } +#line 2210 "src/conf/parse_opts.cc" yy533: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy565; - goto yy279; + if (yych == 's') goto yy565; + goto yy283; yy534: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy566; - goto yy279; + if (yych == 'p') goto yy566; + goto yy283; yy535: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy567; - goto yy279; + if (yych == 'a') goto yy567; + goto yy283; yy536: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'z') goto yy568; - goto yy279; + if (yych == 's') goto yy568; + goto yy283; yy537: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy569; - goto yy279; + if (yych == 'i') goto yy569; + goto yy283; yy538: yych = (YYCTYPE)*++YYCURSOR; if (yych == 't') goto yy570; - goto yy279; + goto yy283; yy539: - ++YYCURSOR; -#line 142 "../src/conf/parse_opts.re" - { globopts.rFlag = true; goto opt; } -#line 2236 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'e') goto yy571; + goto yy283; +yy540: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'z') goto yy572; + goto yy283; yy541: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy571; - goto yy279; + if (yych == 'n') goto yy573; + goto yy283; yy542: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy574; + goto yy283; +yy543: ++YYCURSOR; #line 145 "../src/conf/parse_opts.re" - { globopts.target = TARGET_SKELETON; goto opt; } -#line 2245 "src/conf/parse_opts.cc" -yy544: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy572; - goto yy279; + { globopts.rFlag = true; goto opt; } +#line 2255 "src/conf/parse_opts.cc" yy545: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy573; - goto yy279; -yy546: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy574; - goto yy279; -yy547: yych = (YYCTYPE)*++YYCURSOR; if (yych == 's') goto yy575; - goto yy279; + goto yy283; +yy546: + ++YYCURSOR; +#line 148 "../src/conf/parse_opts.re" + { globopts.target = TARGET_SKELETON; goto opt; } +#line 2264 "src/conf/parse_opts.cc" yy548: yych = (YYCTYPE)*++YYCURSOR; if (yych == 's') goto yy576; - goto yy279; + goto yy283; yy549: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy577; - goto yy279; + if (yych == 'e') goto yy577; + goto yy283; yy550: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy578; - goto yy279; + if (yych == 's') goto yy578; + goto yy283; yy551: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy579; - goto yy279; + if (yych == 's') goto yy579; + goto yy283; yy552: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy581; - goto yy279; + if (yych == 's') goto yy580; + goto yy283; yy553: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'z') goto yy582; - goto yy279; + if (yych == 't') goto yy581; + goto yy283; yy554: - ++YYCURSOR; -#line 177 "../src/conf/parse_opts.re" - { globopts.dump_adfa = true; goto opt; } -#line 2290 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'o') goto yy582; + goto yy283; +yy555: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy583; + goto yy283; yy556: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy583; - goto yy279; + if (yych == 'u') goto yy585; + goto yy283; yy557: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy584; - goto yy279; + if (yych == 'z') goto yy586; + goto yy283; yy558: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy585; - goto yy279; -yy559: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy586; - goto yy279; + ++YYCURSOR; +#line 180 "../src/conf/parse_opts.re" + { globopts.dump_adfa = true; goto opt; } +#line 2309 "src/conf/parse_opts.cc" yy560: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy587; - goto yy279; + if (yych == 'e') goto yy587; + goto yy283; yy561: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy589; - goto yy279; + if (yych == 'i') goto yy588; + goto yy283; yy562: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy590; - goto yy279; + if (yych == 'a') goto yy589; + goto yy283; yy563: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'x') goto yy591; - goto yy279; + if (yych == 'a') goto yy590; + goto yy283; yy564: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy592; - goto yy279; + if (yych <= 0x00) goto yy591; + goto yy283; yy565: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy594; - goto yy279; + if (yych == 's') goto yy593; + goto yy283; yy566: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy595; - goto yy279; + if (yych == 'o') goto yy594; + goto yy283; yy567: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy596; - goto yy279; + if (yych == 'x') goto yy595; + goto yy283; yy568: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy597; - goto yy279; + if (yych <= 0x00) goto yy596; + goto yy283; yy569: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy598; - goto yy279; + if (yych == 'n') goto yy598; + goto yy283; yy570: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy600; - goto yy279; + if (yych == 'i') goto yy599; + goto yy283; yy571: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy601; - goto yy279; + if (yych == 'a') goto yy600; + goto yy283; yy572: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy602; - goto yy279; + if (yych == 'e') goto yy601; + goto yy283; yy573: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy603; - goto yy279; + if (yych <= 0x00) goto yy602; + goto yy283; yy574: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy604; - goto yy279; + if (yych == 'u') goto yy604; + goto yy283; yy575: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy606; - goto yy279; + if (yych == 's') goto yy605; + goto yy283; yy576: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy608; - goto yy279; + if (yych == 't') goto yy606; + goto yy283; yy577: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy609; - goto yy279; + if (yych == 'r') goto yy607; + goto yy283; yy578: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy610; - goto yy279; + if (yych <= 0x00) goto yy608; + goto yy283; yy579: - ++YYCURSOR; -#line 138 "../src/conf/parse_opts.re" - { globopts.cFlag = true; goto opt; } -#line 2387 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy610; + goto yy283; +yy580: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy612; + goto yy283; yy581: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy611; - goto yy279; + if (yych == 'e') goto yy613; + goto yy283; yy582: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy612; - goto yy279; + if (yych == 't') goto yy614; + goto yy283; yy583: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy613; - goto yy279; -yy584: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy614; - goto yy279; + ++YYCURSOR; +#line 141 "../src/conf/parse_opts.re" + { globopts.cFlag = true; goto opt; } +#line 2406 "src/conf/parse_opts.cc" yy585: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'w') goto yy615; - goto yy279; + if (yych == 't') goto yy615; + goto yy283; yy586: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy616; - goto yy279; + if (yych == 'a') goto yy616; + goto yy283; yy587: - ++YYCURSOR; -#line 158 "../src/conf/parse_opts.re" - { opts.set_eager_skip(true); goto opt; } -#line 2416 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy617; + goto yy283; +yy588: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'n') goto yy618; + goto yy283; yy589: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy617; - goto yy279; + if (yych == 'w') goto yy619; + goto yy283; yy590: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy619; - goto yy279; + if (yych == 'g') goto yy620; + goto yy283; yy591: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy620; - goto yy279; -yy592: ++YYCURSOR; -#line 151 "../src/conf/parse_opts.re" - { opts.set_sFlag (true); goto opt; } -#line 2433 "src/conf/parse_opts.cc" +#line 161 "../src/conf/parse_opts.re" + { opts.set_eager_skip(true); goto opt; } +#line 2435 "src/conf/parse_opts.cc" +yy593: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy621; + goto yy283; yy594: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy622; - goto yy279; + if (yych == 'l') goto yy623; + goto yy283; yy595: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy623; - goto yy279; + if (yych <= 0x00) goto yy624; + goto yy283; yy596: + ++YYCURSOR; +#line 154 "../src/conf/parse_opts.re" + { opts.set_sFlag (true); goto opt; } +#line 2452 "src/conf/parse_opts.cc" +yy598: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy624; - goto yy279; -yy597: + if (yych == 'f') goto yy626; + goto yy283; +yy599: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy625; - goto yy279; -yy598: - ++YYCURSOR; -#line 144 "../src/conf/parse_opts.re" - { globopts.version = false; goto opt; } -#line 2454 "src/conf/parse_opts.cc" + if (yych == 'o') goto yy627; + goto yy283; yy600: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy626; - goto yy279; + if (yych == 'd') goto yy628; + goto yy283; yy601: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy627; - goto yy279; + if (yych == '-') goto yy629; + goto yy283; yy602: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy629; - goto yy279; -yy603: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy630; - goto yy279; -yy604: - ++YYCURSOR; -#line 161 "../src/conf/parse_opts.re" - { opts.set_encoding(Enc::UCS2); goto opt; } -#line 2475 "src/conf/parse_opts.cc" -yy606: ++YYCURSOR; #line 147 "../src/conf/parse_opts.re" - { opts.set_bFlag (true); goto opt; } -#line 2480 "src/conf/parse_opts.cc" -yy608: + { globopts.version = false; goto opt; } +#line 2473 "src/conf/parse_opts.cc" +yy604: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy632; - goto yy279; -yy609: + if (yych == 'r') goto yy630; + goto yy283; +yy605: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy633; - goto yy279; -yy610: + if (yych <= 0x00) goto yy631; + goto yy283; +yy606: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy634; - goto yy279; -yy611: + if (yych == 'a') goto yy633; + goto yy283; +yy607: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy635; - goto yy279; + if (yych <= 0x00) goto yy634; + goto yy283; +yy608: + ++YYCURSOR; +#line 164 "../src/conf/parse_opts.re" + { opts.set_encoding(Enc::UCS2); goto opt; } +#line 2494 "src/conf/parse_opts.cc" +yy610: + ++YYCURSOR; +#line 150 "../src/conf/parse_opts.re" + { opts.set_bFlag (true); goto opt; } +#line 2499 "src/conf/parse_opts.cc" yy612: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy637; - goto yy279; + if (yych == 't') goto yy636; + goto yy283; yy613: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy638; - goto yy279; + if (yych == 'd') goto yy637; + goto yy283; yy614: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy640; - goto yy279; + if (yych == 'o') goto yy638; + goto yy283; yy615: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy642; - goto yy279; + if (yych <= 0x00) goto yy639; + goto yy283; yy616: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy644; - goto yy279; + if (yych == 't') goto yy641; + goto yy283; yy617: - ++YYCURSOR; -#line 168 "../src/conf/parse_opts.re" - { goto opt_empty_class; } -#line 2521 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy642; + goto yy283; +yy618: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy644; + goto yy283; yy619: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy645; - goto yy279; + if (yych <= 0x00) goto yy646; + goto yy283; yy620: - ++YYCURSOR; -#line 141 "../src/conf/parse_opts.re" - { globopts.FFlag = true; goto opt; } -#line 2530 "src/conf/parse_opts.cc" -yy622: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy646; - goto yy279; + if (yych == 'o') goto yy648; + goto yy283; +yy621: + ++YYCURSOR; +#line 171 "../src/conf/parse_opts.re" + { goto opt_empty_class; } +#line 2540 "src/conf/parse_opts.cc" yy623: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy647; - goto yy279; + if (yych == 'i') goto yy649; + goto yy283; yy624: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy648; - goto yy279; -yy625: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy650; - goto yy279; + ++YYCURSOR; +#line 144 "../src/conf/parse_opts.re" + { globopts.FFlag = true; goto opt; } +#line 2549 "src/conf/parse_opts.cc" yy626: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy651; - goto yy279; + if (yych == 'o') goto yy650; + goto yy283; yy627: - ++YYCURSOR; -#line 170 "../src/conf/parse_opts.re" - { goto opt; } -#line 2555 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'n') goto yy651; + goto yy283; +yy628: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy652; + goto yy283; yy629: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy652; - goto yy279; + if (yych == 't') goto yy654; + goto yy283; yy630: - ++YYCURSOR; -#line 165 "../src/conf/parse_opts.re" - { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; } -#line 2564 "src/conf/parse_opts.cc" -yy632: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy653; - goto yy279; + if (yych == 'e') goto yy655; + goto yy283; +yy631: + ++YYCURSOR; +#line 173 "../src/conf/parse_opts.re" + { goto opt; } +#line 2574 "src/conf/parse_opts.cc" yy633: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy654; - goto yy279; + if (yych == 't') goto yy656; + goto yy283; yy634: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy656; - goto yy279; -yy635: ++YYCURSOR; -#line 148 "../src/conf/parse_opts.re" - { opts.set_dFlag (true); goto opt; } -#line 2581 "src/conf/parse_opts.cc" -yy637: +#line 168 "../src/conf/parse_opts.re" + { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; } +#line 2583 "src/conf/parse_opts.cc" +yy636: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'i') goto yy657; - goto yy279; + goto yy283; +yy637: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy658; + goto yy283; yy638: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy660; + goto yy283; +yy639: ++YYCURSOR; -#line 174 "../src/conf/parse_opts.re" +#line 151 "../src/conf/parse_opts.re" + { opts.set_dFlag (true); goto opt; } +#line 2600 "src/conf/parse_opts.cc" +yy641: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'i') goto yy661; + goto yy283; +yy642: + ++YYCURSOR; +#line 177 "../src/conf/parse_opts.re" { globopts.dump_dfa_det = true; goto opt; } -#line 2590 "src/conf/parse_opts.cc" -yy640: +#line 2609 "src/conf/parse_opts.cc" +yy644: ++YYCURSOR; -#line 176 "../src/conf/parse_opts.re" +#line 179 "../src/conf/parse_opts.re" { globopts.dump_dfa_min = true; goto opt; } -#line 2595 "src/conf/parse_opts.cc" -yy642: +#line 2614 "src/conf/parse_opts.cc" +yy646: ++YYCURSOR; -#line 173 "../src/conf/parse_opts.re" +#line 176 "../src/conf/parse_opts.re" { globopts.dump_dfa_raw = true; goto opt; } -#line 2600 "src/conf/parse_opts.cc" -yy644: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy658; - goto yy279; -yy645: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy659; - goto yy279; -yy646: +#line 2619 "src/conf/parse_opts.cc" +yy648: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy660; - goto yy279; -yy647: + if (yych == 'p') goto yy662; + goto yy283; +yy649: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy662; - goto yy279; -yy648: - ++YYCURSOR; -#line 156 "../src/conf/parse_opts.re" - { opts.set_lookahead(false); goto opt; } -#line 2621 "src/conf/parse_opts.cc" + if (yych == 'c') goto yy663; + goto yy283; yy650: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy663; - goto yy279; + if (yych <= 0x00) goto yy664; + goto yy283; yy651: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy664; - goto yy279; + if (yych == '-') goto yy666; + goto yy283; yy652: + ++YYCURSOR; +#line 159 "../src/conf/parse_opts.re" + { opts.set_lookahead(false); goto opt; } +#line 2640 "src/conf/parse_opts.cc" +yy654: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy665; - goto yy279; -yy653: + if (yych == 'a') goto yy667; + goto yy283; +yy655: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'v') goto yy666; - goto yy279; -yy654: - ++YYCURSOR; -#line 153 "../src/conf/parse_opts.re" - { opts.set_bCaseInverted (true); goto opt; } -#line 2642 "src/conf/parse_opts.cc" + if (yych == 's') goto yy668; + goto yy283; yy656: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy667; - goto yy279; + if (yych == 'e') goto yy669; + goto yy283; yy657: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy669; - goto yy279; + if (yych == 'v') goto yy670; + goto yy283; yy658: + ++YYCURSOR; +#line 156 "../src/conf/parse_opts.re" + { opts.set_bCaseInverted (true); goto opt; } +#line 2661 "src/conf/parse_opts.cc" +yy660: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy670; - goto yy279; -yy659: + if (yych <= 0x00) goto yy671; + goto yy283; +yy661: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy671; - goto yy279; -yy660: - ++YYCURSOR; -#line 150 "../src/conf/parse_opts.re" - { opts.set_iFlag (true); goto opt; } -#line 2663 "src/conf/parse_opts.cc" + if (yych == 'o') goto yy673; + goto yy283; yy662: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy672; - goto yy279; + if (yych == 't') goto yy674; + goto yy283; yy663: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy673; - goto yy279; + if (yych == 'y') goto yy675; + goto yy283; yy664: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy674; - goto yy279; -yy665: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy676; - goto yy279; + ++YYCURSOR; +#line 153 "../src/conf/parse_opts.re" + { opts.set_iFlag (true); goto opt; } +#line 2682 "src/conf/parse_opts.cc" yy666: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy678; - goto yy279; + if (yych == 'd') goto yy676; + goto yy283; yy667: - ++YYCURSOR; -#line 149 "../src/conf/parse_opts.re" - { opts.set_gFlag (true); goto opt; } -#line 2688 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'g') goto yy677; + goto yy283; +yy668: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy678; + goto yy283; yy669: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy679; - goto yy279; + if (yych <= 0x00) goto yy680; + goto yy283; yy670: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy680; - goto yy279; + if (yych == 'e') goto yy682; + goto yy283; yy671: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy682; - goto yy279; -yy672: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy684; - goto yy279; + ++YYCURSOR; +#line 152 "../src/conf/parse_opts.re" + { opts.set_gFlag (true); goto opt; } +#line 2707 "src/conf/parse_opts.cc" yy673: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy685; - goto yy279; + if (yych == 'n') goto yy683; + goto yy283; yy674: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy684; + goto yy283; +yy675: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy686; + goto yy283; +yy676: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'a') goto yy688; + goto yy283; +yy677: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy689; + goto yy283; +yy678: ++YYCURSOR; -#line 155 "../src/conf/parse_opts.re" +#line 158 "../src/conf/parse_opts.re" { opts.set_posix_captures(true); goto opt; } -#line 2713 "src/conf/parse_opts.cc" -yy676: +#line 2732 "src/conf/parse_opts.cc" +yy680: ++YYCURSOR; -#line 140 "../src/conf/parse_opts.re" +#line 143 "../src/conf/parse_opts.re" { globopts.fFlag = true; goto opt; } -#line 2718 "src/conf/parse_opts.cc" -yy678: +#line 2737 "src/conf/parse_opts.cc" +yy682: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy686; - goto yy279; -yy679: + if (yych <= 0x00) goto yy690; + goto yy283; +yy683: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy688; - goto yy279; -yy680: + if (yych <= 0x00) goto yy692; + goto yy283; +yy684: ++YYCURSOR; -#line 175 "../src/conf/parse_opts.re" +#line 178 "../src/conf/parse_opts.re" { globopts.dump_dfa_tagopt = true; goto opt; } -#line 2731 "src/conf/parse_opts.cc" -yy682: +#line 2750 "src/conf/parse_opts.cc" +yy686: ++YYCURSOR; -#line 166 "../src/conf/parse_opts.re" +#line 169 "../src/conf/parse_opts.re" { goto opt_encoding_policy; } -#line 2736 "src/conf/parse_opts.cc" -yy684: +#line 2755 "src/conf/parse_opts.cc" +yy688: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy690; - goto yy279; -yy685: + if (yych == 't') goto yy694; + goto yy283; +yy689: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy691; - goto yy279; -yy686: + if (yych <= 0x00) goto yy695; + goto yy283; +yy690: ++YYCURSOR; -#line 152 "../src/conf/parse_opts.re" +#line 155 "../src/conf/parse_opts.re" { opts.set_bCaseInsensitive (true); goto opt; } -#line 2749 "src/conf/parse_opts.cc" -yy688: +#line 2768 "src/conf/parse_opts.cc" +yy692: ++YYCURSOR; -#line 169 "../src/conf/parse_opts.re" +#line 172 "../src/conf/parse_opts.re" { goto opt_dfa_minimization; } -#line 2754 "src/conf/parse_opts.cc" -yy690: +#line 2773 "src/conf/parse_opts.cc" +yy694: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy693; - goto yy279; -yy691: + if (yych == 'e') goto yy697; + goto yy283; +yy695: ++YYCURSOR; -#line 157 "../src/conf/parse_opts.re" +#line 160 "../src/conf/parse_opts.re" { opts.set_optimize_tags(false); goto opt; } -#line 2763 "src/conf/parse_opts.cc" -yy693: +#line 2782 "src/conf/parse_opts.cc" +yy697: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy279; + if (yych >= 0x01) goto yy283; ++YYCURSOR; -#line 143 "../src/conf/parse_opts.re" +#line 146 "../src/conf/parse_opts.re" { globopts.bNoGenerationDate = true; goto opt; } -#line 2770 "src/conf/parse_opts.cc" +#line 2789 "src/conf/parse_opts.cc" } -#line 178 "../src/conf/parse_opts.re" +#line 181 "../src/conf/parse_opts.re" opt_output: -#line 2777 "src/conf/parse_opts.cc" +#line 2796 "src/conf/parse_opts.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -2811,32 +2830,32 @@ opt_output: 128, 128, 128, 128, 128, 128, 128, 128, }; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x00) goto yy698; - if (yych != '-') goto yy700; -yy698: + if (yych <= 0x00) goto yy702; + if (yych != '-') goto yy704; +yy702: ++YYCURSOR; -#line 183 "../src/conf/parse_opts.re" +#line 186 "../src/conf/parse_opts.re" { error ("bad argument to option -o, --output: %s", *argv); return EXIT_FAIL; } -#line 2824 "src/conf/parse_opts.cc" -yy700: +#line 2843 "src/conf/parse_opts.cc" +yy704: yych = (YYCTYPE)*++YYCURSOR; if (yybm[0+yych] & 128) { - goto yy700; + goto yy704; } ++YYCURSOR; -#line 187 "../src/conf/parse_opts.re" +#line 190 "../src/conf/parse_opts.re" { opts.set_output_file (*argv); goto opt; } -#line 2833 "src/conf/parse_opts.cc" +#line 2852 "src/conf/parse_opts.cc" } -#line 188 "../src/conf/parse_opts.re" +#line 191 "../src/conf/parse_opts.re" opt_header: -#line 2840 "src/conf/parse_opts.cc" +#line 2859 "src/conf/parse_opts.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -2874,27 +2893,90 @@ opt_header: 128, 128, 128, 128, 128, 128, 128, 128, }; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 0x00) goto yy706; - if (yych != '-') goto yy708; -yy706: + if (yych <= 0x00) goto yy710; + if (yych != '-') goto yy712; +yy710: ++YYCURSOR; -#line 193 "../src/conf/parse_opts.re" +#line 196 "../src/conf/parse_opts.re" { error ("bad argument to option -t, --type-header: %s", *argv); return EXIT_FAIL; } -#line 2887 "src/conf/parse_opts.cc" -yy708: +#line 2906 "src/conf/parse_opts.cc" +yy712: yych = (YYCTYPE)*++YYCURSOR; if (yybm[0+yych] & 128) { - goto yy708; + goto yy712; } ++YYCURSOR; -#line 197 "../src/conf/parse_opts.re" +#line 200 "../src/conf/parse_opts.re" { opts.set_header_file (*argv); goto opt; } -#line 2896 "src/conf/parse_opts.cc" +#line 2915 "src/conf/parse_opts.cc" +} +#line 201 "../src/conf/parse_opts.re" + + +opt_incpath: + +#line 2922 "src/conf/parse_opts.cc" +{ + YYCTYPE yych; + static const unsigned char yybm[] = { + 0, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + yych = (YYCTYPE)*YYCURSOR; + if (yych <= 0x00) goto yy718; + if (yych != '-') goto yy720; +yy718: + ++YYCURSOR; +#line 205 "../src/conf/parse_opts.re" + { + error ("bad argument to option -I: %s", *argv); + return EXIT_FAIL; + } +#line 2969 "src/conf/parse_opts.cc" +yy720: + yych = (YYCTYPE)*++YYCURSOR; + if (yybm[0+yych] & 128) { + goto yy720; + } + ++YYCURSOR; +#line 209 "../src/conf/parse_opts.re" + { globopts.incpaths.push_back(*argv); goto opt; } +#line 2978 "src/conf/parse_opts.cc" } -#line 198 "../src/conf/parse_opts.re" +#line 210 "../src/conf/parse_opts.re" opt_encoding_policy: @@ -2904,115 +2986,115 @@ opt_encoding_policy: return EXIT_FAIL; } -#line 2908 "src/conf/parse_opts.cc" +#line 2990 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; if (yych <= 'h') { - if (yych == 'f') goto yy716; + if (yych == 'f') goto yy728; } else { - if (yych <= 'i') goto yy717; - if (yych == 's') goto yy718; + if (yych <= 'i') goto yy729; + if (yych == 's') goto yy730; } ++YYCURSOR; -yy715: -#line 208 "../src/conf/parse_opts.re" +yy727: +#line 220 "../src/conf/parse_opts.re" { error ("bad argument to option --encoding-policy (expected: ignore | substitute | fail): %s", *argv); return EXIT_FAIL; } -#line 2925 "src/conf/parse_opts.cc" -yy716: +#line 3007 "src/conf/parse_opts.cc" +yy728: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy719; - goto yy715; -yy717: + if (yych == 'a') goto yy731; + goto yy727; +yy729: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'g') goto yy721; - goto yy715; -yy718: + if (yych == 'g') goto yy733; + goto yy727; +yy730: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'u') goto yy722; - goto yy715; -yy719: + if (yych == 'u') goto yy734; + goto yy727; +yy731: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy723; -yy720: + if (yych == 'i') goto yy735; +yy732: YYCURSOR = YYMARKER; - goto yy715; -yy721: + goto yy727; +yy733: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy724; - goto yy720; -yy722: + if (yych == 'n') goto yy736; + goto yy732; +yy734: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy725; - goto yy720; -yy723: + if (yych == 'b') goto yy737; + goto yy732; +yy735: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy726; - goto yy720; -yy724: + if (yych == 'l') goto yy738; + goto yy732; +yy736: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy727; - goto yy720; -yy725: + if (yych == 'o') goto yy739; + goto yy732; +yy737: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy728; - goto yy720; -yy726: + if (yych == 's') goto yy740; + goto yy732; +yy738: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy729; - goto yy720; -yy727: + if (yych <= 0x00) goto yy741; + goto yy732; +yy739: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy731; - goto yy720; -yy728: + if (yych == 'r') goto yy743; + goto yy732; +yy740: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy732; - goto yy720; -yy729: + if (yych == 't') goto yy744; + goto yy732; +yy741: ++YYCURSOR; -#line 214 "../src/conf/parse_opts.re" +#line 226 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_FAIL); goto opt; } -#line 2980 "src/conf/parse_opts.cc" -yy731: +#line 3062 "src/conf/parse_opts.cc" +yy743: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy733; - goto yy720; -yy732: + if (yych == 'e') goto yy745; + goto yy732; +yy744: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy734; - goto yy720; -yy733: + if (yych == 'i') goto yy746; + goto yy732; +yy745: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy735; - goto yy720; -yy734: + if (yych <= 0x00) goto yy747; + goto yy732; +yy746: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy737; - goto yy720; -yy735: + if (yych == 't') goto yy749; + goto yy732; +yy747: ++YYCURSOR; -#line 212 "../src/conf/parse_opts.re" +#line 224 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_IGNORE); goto opt; } -#line 3001 "src/conf/parse_opts.cc" -yy737: +#line 3083 "src/conf/parse_opts.cc" +yy749: yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'u') goto yy720; + if (yych != 'u') goto yy732; yych = (YYCTYPE)*++YYCURSOR; - if (yych != 't') goto yy720; + if (yych != 't') goto yy732; yych = (YYCTYPE)*++YYCURSOR; - if (yych != 'e') goto yy720; + if (yych != 'e') goto yy732; yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy720; + if (yych >= 0x01) goto yy732; ++YYCURSOR; -#line 213 "../src/conf/parse_opts.re" +#line 225 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; } -#line 3014 "src/conf/parse_opts.cc" +#line 3096 "src/conf/parse_opts.cc" } -#line 215 "../src/conf/parse_opts.re" +#line 227 "../src/conf/parse_opts.re" opt_input: @@ -3022,86 +3104,86 @@ opt_input: return EXIT_FAIL; } -#line 3026 "src/conf/parse_opts.cc" +#line 3108 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; - if (yych <= 'b') goto yy745; - if (yych <= 'c') goto yy747; - if (yych <= 'd') goto yy748; -yy745: + if (yych <= 'b') goto yy757; + if (yych <= 'c') goto yy759; + if (yych <= 'd') goto yy760; +yy757: ++YYCURSOR; -yy746: -#line 225 "../src/conf/parse_opts.re" +yy758: +#line 237 "../src/conf/parse_opts.re" { error ("bad argument to option --input (expected: default | custom): %s", *argv); return EXIT_FAIL; } -#line 3041 "src/conf/parse_opts.cc" -yy747: +#line 3123 "src/conf/parse_opts.cc" +yy759: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'u') goto yy749; - goto yy746; -yy748: + if (yych == 'u') goto yy761; + goto yy758; +yy760: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'e') goto yy751; - goto yy746; -yy749: + if (yych == 'e') goto yy763; + goto yy758; +yy761: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy752; -yy750: + if (yych == 's') goto yy764; +yy762: YYCURSOR = YYMARKER; - goto yy746; -yy751: + goto yy758; +yy763: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy753; - goto yy750; -yy752: + if (yych == 'f') goto yy765; + goto yy762; +yy764: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy754; - goto yy750; -yy753: + if (yych == 't') goto yy766; + goto yy762; +yy765: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy755; - goto yy750; -yy754: + if (yych == 'a') goto yy767; + goto yy762; +yy766: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy756; - goto yy750; -yy755: + if (yych == 'o') goto yy768; + goto yy762; +yy767: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy757; - goto yy750; -yy756: + if (yych == 'u') goto yy769; + goto yy762; +yy768: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy758; - goto yy750; -yy757: + if (yych == 'm') goto yy770; + goto yy762; +yy769: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy759; - goto yy750; -yy758: + if (yych == 'l') goto yy771; + goto yy762; +yy770: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy760; - goto yy750; -yy759: + if (yych <= 0x00) goto yy772; + goto yy762; +yy771: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy762; - goto yy750; -yy760: + if (yych == 't') goto yy774; + goto yy762; +yy772: ++YYCURSOR; -#line 230 "../src/conf/parse_opts.re" +#line 242 "../src/conf/parse_opts.re" { opts.set_input_api(INPUT_CUSTOM); goto opt; } -#line 3096 "src/conf/parse_opts.cc" -yy762: +#line 3178 "src/conf/parse_opts.cc" +yy774: yych = (YYCTYPE)*++YYCURSOR; - if (yych >= 0x01) goto yy750; + if (yych >= 0x01) goto yy762; ++YYCURSOR; -#line 229 "../src/conf/parse_opts.re" +#line 241 "../src/conf/parse_opts.re" { opts.set_input_api(INPUT_DEFAULT); goto opt; } -#line 3103 "src/conf/parse_opts.cc" +#line 3185 "src/conf/parse_opts.cc" } -#line 231 "../src/conf/parse_opts.re" +#line 243 "../src/conf/parse_opts.re" opt_empty_class: @@ -3111,120 +3193,120 @@ opt_empty_class: return EXIT_FAIL; } -#line 3115 "src/conf/parse_opts.cc" +#line 3197 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; - if (yych == 'e') goto yy769; - if (yych == 'm') goto yy770; + if (yych == 'e') goto yy781; + if (yych == 'm') goto yy782; ++YYCURSOR; -yy768: -#line 241 "../src/conf/parse_opts.re" +yy780: +#line 253 "../src/conf/parse_opts.re" { error ("bad argument to option --empty-class (expected: match-empty | match-none | error): %s", *argv); return EXIT_FAIL; } -#line 3128 "src/conf/parse_opts.cc" -yy769: +#line 3210 "src/conf/parse_opts.cc" +yy781: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'r') goto yy771; - goto yy768; -yy770: + if (yych == 'r') goto yy783; + goto yy780; +yy782: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy773; - goto yy768; -yy771: + if (yych == 'a') goto yy785; + goto yy780; +yy783: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy774; -yy772: + if (yych == 'r') goto yy786; +yy784: YYCURSOR = YYMARKER; - goto yy768; -yy773: + goto yy780; +yy785: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy775; - goto yy772; -yy774: + if (yych == 't') goto yy787; + goto yy784; +yy786: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy776; - goto yy772; -yy775: + if (yych == 'o') goto yy788; + goto yy784; +yy787: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy777; - goto yy772; -yy776: + if (yych == 'c') goto yy789; + goto yy784; +yy788: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy778; - goto yy772; -yy777: + if (yych == 'r') goto yy790; + goto yy784; +yy789: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy779; - goto yy772; -yy778: + if (yych == 'h') goto yy791; + goto yy784; +yy790: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy780; - goto yy772; -yy779: + if (yych <= 0x00) goto yy792; + goto yy784; +yy791: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy782; - goto yy772; -yy780: + if (yych == '-') goto yy794; + goto yy784; +yy792: ++YYCURSOR; -#line 247 "../src/conf/parse_opts.re" +#line 259 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_ERROR); goto opt; } -#line 3175 "src/conf/parse_opts.cc" -yy782: +#line 3257 "src/conf/parse_opts.cc" +yy794: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy783; - if (yych == 'n') goto yy784; - goto yy772; -yy783: + if (yych == 'e') goto yy795; + if (yych == 'n') goto yy796; + goto yy784; +yy795: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy785; - goto yy772; -yy784: + if (yych == 'm') goto yy797; + goto yy784; +yy796: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy786; - goto yy772; -yy785: + if (yych == 'o') goto yy798; + goto yy784; +yy797: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy787; - goto yy772; -yy786: + if (yych == 'p') goto yy799; + goto yy784; +yy798: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy788; - goto yy772; -yy787: + if (yych == 'n') goto yy800; + goto yy784; +yy799: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy789; - goto yy772; -yy788: + if (yych == 't') goto yy801; + goto yy784; +yy800: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy790; - goto yy772; -yy789: + if (yych == 'e') goto yy802; + goto yy784; +yy801: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy791; - goto yy772; -yy790: + if (yych == 'y') goto yy803; + goto yy784; +yy802: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy792; - goto yy772; -yy791: + if (yych <= 0x00) goto yy804; + goto yy784; +yy803: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy794; - goto yy772; -yy792: + if (yych <= 0x00) goto yy806; + goto yy784; +yy804: ++YYCURSOR; -#line 246 "../src/conf/parse_opts.re" +#line 258 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE); goto opt; } -#line 3221 "src/conf/parse_opts.cc" -yy794: +#line 3303 "src/conf/parse_opts.cc" +yy806: ++YYCURSOR; -#line 245 "../src/conf/parse_opts.re" +#line 257 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_EMPTY); goto opt; } -#line 3226 "src/conf/parse_opts.cc" +#line 3308 "src/conf/parse_opts.cc" } -#line 248 "../src/conf/parse_opts.re" +#line 260 "../src/conf/parse_opts.re" opt_dfa_minimization: @@ -3234,83 +3316,82 @@ opt_dfa_minimization: return EXIT_FAIL; } -#line 3238 "src/conf/parse_opts.cc" +#line 3320 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; - if (yych == 'm') goto yy800; - if (yych == 't') goto yy801; + if (yych == 'm') goto yy812; + if (yych == 't') goto yy813; ++YYCURSOR; -yy799: -#line 258 "../src/conf/parse_opts.re" +yy811: +#line 270 "../src/conf/parse_opts.re" { error ("bad argument to option --dfa-minimization (expected: table | moore): %s", *argv); return EXIT_FAIL; } -#line 3251 "src/conf/parse_opts.cc" -yy800: +#line 3333 "src/conf/parse_opts.cc" +yy812: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'o') goto yy802; - goto yy799; -yy801: + if (yych == 'o') goto yy814; + goto yy811; +yy813: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); - if (yych == 'a') goto yy804; - goto yy799; -yy802: + if (yych == 'a') goto yy816; + goto yy811; +yy814: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy805; -yy803: + if (yych == 'o') goto yy817; +yy815: YYCURSOR = YYMARKER; - goto yy799; -yy804: + goto yy811; +yy816: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy806; - goto yy803; -yy805: + if (yych == 'b') goto yy818; + goto yy815; +yy817: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy807; - goto yy803; -yy806: + if (yych == 'r') goto yy819; + goto yy815; +yy818: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy808; - goto yy803; -yy807: + if (yych == 'l') goto yy820; + goto yy815; +yy819: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy809; - goto yy803; -yy808: + if (yych == 'e') goto yy821; + goto yy815; +yy820: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy810; - goto yy803; -yy809: + if (yych == 'e') goto yy822; + goto yy815; +yy821: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy811; - goto yy803; -yy810: + if (yych <= 0x00) goto yy823; + goto yy815; +yy822: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy813; - goto yy803; -yy811: + if (yych <= 0x00) goto yy825; + goto yy815; +yy823: ++YYCURSOR; -#line 263 "../src/conf/parse_opts.re" +#line 275 "../src/conf/parse_opts.re" { opts.set_dfa_minimization (DFA_MINIMIZATION_MOORE); goto opt; } -#line 3298 "src/conf/parse_opts.cc" -yy813: +#line 3380 "src/conf/parse_opts.cc" +yy825: ++YYCURSOR; -#line 262 "../src/conf/parse_opts.re" +#line 274 "../src/conf/parse_opts.re" { opts.set_dfa_minimization (DFA_MINIMIZATION_TABLE); goto opt; } -#line 3303 "src/conf/parse_opts.cc" +#line 3385 "src/conf/parse_opts.cc" } -#line 264 "../src/conf/parse_opts.re" +#line 276 "../src/conf/parse_opts.re" end: - if (!opts.source_file) - { + if (!opts.source_file) { error ("no source file"); return EXIT_FAIL; } - globopts.fix(); + globopts.fix(opts.source_file); return OK; diff --git a/re2c/run_tests.sh.in b/re2c/run_tests.sh.in index ac2360cd..cf51be74 100644 --- a/re2c/run_tests.sh.in +++ b/re2c/run_tests.sh.in @@ -24,6 +24,13 @@ lc_run() { LANG=C LC_ALL=C "$@" } +abspath() { + case "$1" in + /*) echo "$1";; + *) echo "$PWD/$1";; + esac +} + valgrind="" skeleton=0 keep_tmp_files=0 @@ -60,8 +67,13 @@ rm -rf $test_blddir && mkdir $test_blddir # preserve directory structure unless given explicit args if [ ${#tests[@]} -eq 0 ]; then cp -R "@top_srcdir@/test"/* "@top_srcdir@/examples"/* $test_blddir + incpaths=`find "@top_srcdir@/test" "@top_srcdir@/examples" -type d -exec echo "-I $(abspath {})" \;` else - for f in ${tests[@]}; do cp $f ${f%.re}.c $test_blddir; done + incpaths= + for f in ${tests[@]}; do + cp $f ${f%.re}.c $test_blddir + incpaths="$incpaths -I $(abspath $(dirname $f))" + done fi chmod -R u+w $test_blddir find $test_blddir -type f ! -name '*.re' -a ! -name '*.c' -exec rm {} \; @@ -129,7 +141,7 @@ run_pack() { # file extensions are case-insensitive on some platforms printf "%s" "$switches" | lc_run grep -q "[A-Z]" \ && { echo "bad file extension: '$outx' (uppercase letters are not allowed)"; exit 1; } - local switches="$switches -o $outc --no-version --no-generation-date" + local switches="$switches $incpaths -o $outc --no-version --no-generation-date" # enable warnings globally local switches="$switches -W" diff --git a/re2c/src/ast/input.cc b/re2c/src/ast/input.cc index 59a1db29..3e8baf34 100644 --- a/re2c/src/ast/input.cc +++ b/re2c/src/ast/input.cc @@ -13,14 +13,32 @@ Input::Input() , eo(Scanner::ENDPOS) {} -bool Input::open(const char *filename) +bool Input::open(const std::string &filename) { name = escaped_name = filename; strrreplace(escaped_name, "\\", "\\\\"); file = name == "" ? stdin : fopen(name.c_str(), "rb"); if (!file) { - error("cannot open source file: %s", name.c_str()); + error("cannot open file: %s", name.c_str()); + return false; + } + + return true; +} + +bool Input::open_in_dirs(const std::string &filename + , const std::vector &incpaths) +{ + name = escaped_name = filename; + strrreplace(escaped_name, "\\", "\\\\"); + + for (size_t i = 0; !file && i < incpaths.size(); ++i) { + const std::string path = incpaths[i] + name; + file = fopen(path.c_str(), "rb"); + } + if (!file) { + error("cannot open file: %s", name.c_str()); return false; } diff --git a/re2c/src/ast/input.h b/re2c/src/ast/input.h index 7f51b89b..c868ee90 100644 --- a/re2c/src/ast/input.h +++ b/re2c/src/ast/input.h @@ -3,6 +3,7 @@ #include #include +#include #include "src/util/forbid_copy.h" namespace re2c { @@ -17,7 +18,8 @@ struct Input Input(); ~Input(); - bool open(const char *filename); + bool open(const std::string &); + bool open_in_dirs(const std::string &, const std::vector &); FORBID_COPY(Input); }; diff --git a/re2c/src/ast/lex.re b/re2c/src/ast/lex.re index 6431fe68..517a8e9f 100644 --- a/re2c/src/ast/lex.re +++ b/re2c/src/ast/lex.re @@ -257,7 +257,7 @@ void Scanner::lex_include() } space+ @x dstring @y space* eoc { - push_file(std::string(x + 1, static_cast(y - x) - 2)); + include(std::string(x + 1, static_cast(y - x) - 2)); return; } */ @@ -282,7 +282,7 @@ void Scanner::lex_tags(Output &out, bool mtags) */} } -int Scanner::scan(const conopt_t *globopts) +int Scanner::scan() { const char *p; scan: diff --git a/re2c/src/ast/parser.ypp b/re2c/src/ast/parser.ypp index 660f88ae..e1921a19 100644 --- a/re2c/src/ast/parser.ypp +++ b/re2c/src/ast/parser.ypp @@ -254,7 +254,7 @@ void yyerror(context_t &context, const char* s) int yylex(context_t &context) { - return context.input.scan(&context.opts.glob); + return context.input.scan(); } } // extern "C" diff --git a/re2c/src/ast/scanner.cc b/re2c/src/ast/scanner.cc index 407a0825..6a8d9baa 100644 --- a/re2c/src/ast/scanner.cc +++ b/re2c/src/ast/scanner.cc @@ -26,7 +26,14 @@ size_t Scanner::get_input_index() const return i; } -bool Scanner::push_file(const std::string &filename) +bool Scanner::init(const std::string &filename) +{ + Input *in = new Input; + files.push_back(in); + return in->open(filename); +} + +bool Scanner::include(const std::string &filename) { // unread buffer tail: we'll return to it later for (size_t i = files.size(); i --> 0; ) { @@ -50,7 +57,7 @@ bool Scanner::push_file(const std::string &filename) // open new file and place place at the top of stack Input *in = new Input; files.push_back(in); - if (!in->open(filename.c_str())) return false; + if (!in->open_in_dirs(filename, globopts->incpaths)) return false; // refill buffer (discard everything up to cursor, clear EOF) lim = cur = mar = ctx = tok = ptr = pos = bot + BSIZE; diff --git a/re2c/src/ast/scanner.h b/re2c/src/ast/scanner.h index 2618b7e0..0a5f3074 100644 --- a/re2c/src/ast/scanner.h +++ b/re2c/src/ast/scanner.h @@ -33,17 +33,19 @@ public: private: std::vector files; + const conopt_t *globopts; Warn &warn; public: - explicit Scanner(Warn &w); + Scanner(const conopt_t *o, Warn &w); ~Scanner(); - bool push_file(const std::string &filename); + bool init(const std::string &filename); + bool include(const std::string &filename); uint32_t get_cline() const; uint32_t get_column() const; const std::string & get_fname() const; ParseMode echo(Output &out); - int scan(const conopt_t *globopts); + int scan(); void lex_conf(Opt &opts); private: @@ -87,9 +89,10 @@ private: FORBID_COPY (Scanner); }; -inline Scanner::Scanner(Warn &w) +inline Scanner::Scanner(const conopt_t *o, Warn &w) : ScannerState() , files() + , globopts(o) , warn(w) {} diff --git a/re2c/src/conf/opt.cc b/re2c/src/conf/opt.cc index 3955d278..73cdb37c 100644 --- a/re2c/src/conf/opt.cc +++ b/re2c/src/conf/opt.cc @@ -4,11 +4,35 @@ namespace re2c { -void conopt_t::fix() +static void get_dir(std::string &path) +{ + // scan the path backwards until the first slash (if any) and clip + size_t i = path.length(); + for (; i > 0; --i) { + const char c = path[i - 1]; + if (c == '/' || c == '\\') break; + } + path.resize(i); +} + +void conopt_t::fix(const char *filename) { if (target == TARGET_SKELETON) { fFlag = false; } + + // first include path must be the directory of the source file + std::string path(filename); + get_dir(path); + incpaths.insert(incpaths.begin(), path); + // append directory separator '/' to all paths that do not have it + for (size_t i = 0; i < incpaths.size(); ++i) { + std::string &p = incpaths[i]; + const char c = p.empty() ? 0 : *p.rbegin(); + if (c != '/' && c != '\\') { + p.push_back('/'); + } + } } void mutopt_t::fix(const conopt_t *globopts) diff --git a/re2c/src/conf/opt.h b/re2c/src/conf/opt.h index 5def8232..05ccbf34 100644 --- a/re2c/src/conf/opt.h +++ b/re2c/src/conf/opt.h @@ -56,7 +56,9 @@ const uint32_t NOEOF = ~0u - 1; CONSTOPT (bool, dump_dfa_det, false) \ CONSTOPT (bool, dump_dfa_tagopt, false) \ CONSTOPT (bool, dump_dfa_min, false) \ - CONSTOPT (bool, dump_adfa, false) + CONSTOPT (bool, dump_adfa, false) \ + /* include paths */ \ + CONSTOPT (std::vector, incpaths, std::vector()) \ #define RE2C_MUTOPTS \ /* output files */ \ @@ -169,7 +171,7 @@ struct conopt_t # undef CONSTOPT1 # undef CONSTOPT {} - void fix(); + void fix(const char *filename); FORBID_COPY(conopt_t); }; diff --git a/re2c/src/conf/parse_opts.re b/re2c/src/conf/parse_opts.re index d6348c5e..5446922e 100644 --- a/re2c/src/conf/parse_opts.re +++ b/re2c/src/conf/parse_opts.re @@ -105,6 +105,9 @@ opt_short: "r" { globopts.rFlag = true; goto opt_short; } "S" { globopts.target = TARGET_SKELETON; goto opt_short; } + "I" end { if (!next (YYCURSOR, argv)) { error_arg ("-I"); return EXIT_FAIL; } goto opt_incpath; } + "I" { goto opt_incpath; } + "b" { opts.set_bFlag(true); goto opt_short; } "d" { opts.set_dFlag(true); goto opt_short; } "g" { opts.set_gFlag(true); goto opt_short; } @@ -197,6 +200,15 @@ opt_header: filename end { opts.set_header_file (*argv); goto opt; } */ +opt_incpath: +/*!re2c + * { + error ("bad argument to option -I: %s", *argv); + return EXIT_FAIL; + } + filename end { globopts.incpaths.push_back(*argv); goto opt; } +*/ + opt_encoding_policy: if (!next (YYCURSOR, argv)) { @@ -264,12 +276,11 @@ opt_dfa_minimization: */ end: - if (!opts.source_file) - { + if (!opts.source_file) { error ("no source file"); return EXIT_FAIL; } - globopts.fix(); + globopts.fix(opts.source_file); return OK; diff --git a/re2c/src/main.cc b/re2c/src/main.cc index ffeb569a..066640c4 100644 --- a/re2c/src/main.cc +++ b/re2c/src/main.cc @@ -19,8 +19,8 @@ int main(int, char *argv[]) case EXIT_FAIL: return 1; } - Scanner scanner(warn); - if (!scanner.push_file(opts.source_file)) return 1; + Scanner scanner(&globopts, warn); + if (!scanner.init(opts.source_file)) return 1; Output output(warn); diff --git a/re2c/test/include/include001a.i.c b/re2c/test/include/include001a.i.c new file mode 100644 index 00000000..e480a912 --- /dev/null +++ b/re2c/test/include/include001a.i.c @@ -0,0 +1,27 @@ +/* Generated by re2c */ + + + + + + + +{ + YYCTYPE yych; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch (yych) { + case 'b': goto yy3; + case 'c': goto yy5; + default: goto yy2; + } +yy2: +yy3: + ++YYCURSOR; + {} +yy5: + ++YYCURSOR; + {} +} + +re2c: warning: line 14: control flow is undefined for strings that match '[\x0-\x61\x64-\xFF]', use default rule '*' [-Wundefined-control-flow] diff --git a/re2c/test/include/include001a.i.re b/re2c/test/include/include001a.i.re new file mode 100644 index 00000000..22766df3 --- /dev/null +++ b/re2c/test/include/include001a.i.re @@ -0,0 +1,6 @@ +/*!include:re2c "include001b.i.re" */ + +/*!re2c + b {} + c {} +*/ diff --git a/re2c/test/include/include001b.i.c b/re2c/test/include/include001b.i.c new file mode 100644 index 00000000..f62102ad --- /dev/null +++ b/re2c/test/include/include001b.i.c @@ -0,0 +1,5 @@ +/* Generated by re2c */ + + + + diff --git a/re2c/test/include/include001b.i.re b/re2c/test/include/include001b.i.re new file mode 100644 index 00000000..02a3a8a7 --- /dev/null +++ b/re2c/test/include/include001b.i.re @@ -0,0 +1,5 @@ +/*!include:re2c "include001c.i.re" */ + +/*!re2c + b = "b"; +*/ diff --git a/re2c/test/include/include001c.i.c b/re2c/test/include/include001c.i.c new file mode 100644 index 00000000..f6b3cb39 --- /dev/null +++ b/re2c/test/include/include001c.i.c @@ -0,0 +1,2 @@ +/* Generated by re2c */ + diff --git a/re2c/test/include/include001c.i.re b/re2c/test/include/include001c.i.re new file mode 100644 index 00000000..a49fce0d --- /dev/null +++ b/re2c/test/include/include001c.i.re @@ -0,0 +1,3 @@ +/*!re2c + c = "c"; +*/ -- 2.40.0