From 25c327f5987ae043542a21442450d6489bd0b0c6 Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Mon, 11 Jun 2018 21:27:27 +0100 Subject: [PATCH] Added option "--conditions" (an alias for "-c" and "--start-conditions"). Fixes issue #206 "wrong long option for -c mode". --- re2c/bootstrap/doc/re2c.1 | 5 +- re2c/bootstrap/src/conf/help.cc | 153 +-- re2c/bootstrap/src/conf/parse_opts.cc | 1240 +++++++++++----------- re2c/doc/manual/options/options_list.rst | 3 +- re2c/src/conf/parse_opts.re | 2 +- 5 files changed, 704 insertions(+), 699 deletions(-) diff --git a/re2c/bootstrap/doc/re2c.1 b/re2c/bootstrap/doc/re2c.1 index 61105563..dc268693 100644 --- a/re2c/bootstrap/doc/re2c.1 +++ b/re2c/bootstrap/doc/re2c.1 @@ -48,8 +48,9 @@ Show help message. .B \fB\-b \-\-bit\-vectors\fP Optimize conditional jumps using bit masks. Implies \fB\-s\fP\&. .TP -.B \fB\-c \-\-conditions\fP +.B \fB\-c \-\-conditions \-\-start\-conditions\fP Enable support of Flex\-like "conditions": multiple interrelated lexers within one block. +Option \fB\-\-start\-conditions\fP is a legacy alias; use \fB\-\-conditions\fP instead. .TP .B \fB\-d \-\-debug\-output\fP Emit \fBYYDEBUG\fP in the generated code. @@ -1146,6 +1147,6 @@ Tim Kelly, Ulya Trofimovich .SH VERSION INFORMATION .sp -This manpage describes \fBre2c\fP version 1.0.3, package date 08 Nov 2017. +This manpage describes \fBre2c\fP version 1.0.3, package date 11 Jun 2018. .\" Generated by docutils manpage writer. . diff --git a/re2c/bootstrap/src/conf/help.cc b/re2c/bootstrap/src/conf/help.cc index 6e14c068..3af140d6 100644 --- a/re2c/bootstrap/src/conf/help.cc +++ b/re2c/bootstrap/src/conf/help.cc @@ -7,46 +7,47 @@ const char *help = " -b --bit-vectors\n" " Optimize conditional jumps using bit masks. Implies -s.\n" "\n" -" -c --conditions\n" +" -c --conditions --start-conditions\n" " Enable support of Flex-like \"conditions\": multiple interrelated\n" -" lexers within one block.\n" +" lexers within one block (--start-conditions is a legacy alias;\n" +" use --conditions instead).\n" "\n" " -d --debug-output\n" -" Emit YYDEBUG in the generated code. YYDEBUG should be defined\n" -" by the user in the form of a void function with two parameters:\n" -" state (lexer state or -1) and symbol (current input symbol of\n" +" Emit YYDEBUG in the generated code. YYDEBUG should be defined\n" +" by the user in the form of a void function with two parameters:\n" +" state (lexer state or -1) and symbol (current input symbol of\n" " type YYCTYPE).\n" "\n" " -D --emit-dot\n" -" Instead of normal output generate lexer graph in DOT format.\n" -" The output can be converted to PNG with the help of Graphviz\n" -" (something like dot -Tpng -odfa.png dfa.dot). Note that large\n" +" Instead of normal output generate lexer graph in DOT format.\n" +" The output can be converted to PNG with the help of Graphviz\n" +" (something like dot -Tpng -odfa.png dfa.dot). Note that large\n" " graphs may crash Graphviz.\n" "\n" " -e --ecb\n" -" Generate a lexer that reads input in EBCDIC encoding. re2c\n" +" Generate a lexer that reads input in EBCDIC encoding. re2c\n" " assumes that character range is 0 -- 0xFF an character size is 1\n" " byte.\n" "\n" " -f --storable-state\n" -" Generate a lexer which can store its inner state. This is use‐\n" -" ful in push-model lexers which are stopped by an outer program\n" +" Generate a lexer which can store its inner state. This is use‐\n" +" ful in push-model lexers which are stopped by an outer program\n" " when there is not enough input, and then resumed when more input\n" -" becomes available. In this mode users should additionally\n" +" becomes available. In this mode users should additionally\n" " define YYGETSTATE () and YYSETSTATE (state) macros and variables\n" " yych, yyaccept and the state as part of the lexer state.\n" "\n" " -F --flex-syntax\n" -" Partial support for Flex syntax: in this mode named definitions\n" -" don't need the equal sign and the terminating semicolon, and\n" -" when used they must be surrounded by curly braces. Names with‐\n" +" Partial support for Flex syntax: in this mode named definitions\n" +" don't need the equal sign and the terminating semicolon, and\n" +" when used they must be surrounded by curly braces. Names with‐\n" " out curly braces are treated as double-quoted strings.\n" "\n" " -g --computed-gotos\n" -" Optimize conditional jumps using non-standard \"computed goto\"\n" +" Optimize conditional jumps using non-standard \"computed goto\"\n" " extension (must be supported by C/C++ compiler). re2c generates\n" -" jump tables only in complex cases with a lot of conditional\n" -" branches. Complexity threshold can be configured with\n" +" jump tables only in complex cases with a lot of conditional\n" +" branches. Complexity threshold can be configured with\n" " cgoto:threshold configuration. This option implies -b.\n" "\n" " -i --no-debug-info\n" @@ -58,19 +59,19 @@ const char *help = "\n" " -r --reusable\n" " Allows reuse of re2c rules with /*!rules:re2c */ and /*!use:re2c\n" -" */ blocks. In this mode simple /*!re2c */ blocks are not\n" -" allowed and exactly one /*!rules:re2c */ block must be present.\n" -" The rules are saved and used by every /*!use:re2c */ block that\n" -" follows (which may add rules of their own). This option allows\n" +" */ blocks. In this mode simple /*!re2c */ blocks are not\n" +" allowed and exactly one /*!rules:re2c */ block must be present.\n" +" The rules are saved and used by every /*!use:re2c */ block that\n" +" follows (which may add rules of their own). This option allows\n" " to reuse the same set of rules with different configurations.\n" "\n" " -s --nested-ifs\n" -" Use nested if statements instead of switch statements in condi‐\n" -" tional jumps. This usually results in more efficient code with\n" +" Use nested if statements instead of switch statements in condi‐\n" +" tional jumps. This usually results in more efficient code with\n" " non-optimizing C/C++ compilers.\n" "\n" " -t HEADER --type-header=HEADER\n" -" Generate a HEADER file that contains enum with condition names.\n" +" Generate a HEADER file that contains enum with condition names.\n" " Requires -c option.\n" "\n" " -T --tags\n" @@ -80,7 +81,7 @@ const char *help = " Enable submatch extraction with POSIX-style capturing groups.\n" "\n" " -u --unicode\n" -" Generate a lexer that reads input in UTF-32 encoding. re2c\n" +" Generate a lexer that reads input in UTF-32 encoding. re2c\n" " assumes that character range is 0 -- 0x10FFFF and character size\n" " is 4 bytes. Implies -s.\n" "\n" @@ -91,93 +92,93 @@ const char *help = " Show version information in MMmmpp format (major, minor, patch).\n" "\n" " -w --wide-chars\n" -" Generate a lexer that reads input in UCS-2 encoding. re2c\n" -" assumes that character range is 0 -- 0xFFFF and character size\n" +" Generate a lexer that reads input in UCS-2 encoding. re2c\n" +" assumes that character range is 0 -- 0xFFFF and character size\n" " is 2 bytes. Implies -s.\n" "\n" " -x --utf-16\n" -" Generate a lexer that reads input in UTF-16 encoding. re2c\n" +" Generate a lexer that reads input in UTF-16 encoding. re2c\n" " assumes that character range is 0 -- 0x10FFFF and character size\n" " is 2 bytes. Implies -s.\n" "\n" " -8 --utf-8\n" -" Generate a lexer that reads input in UTF-8 encoding. re2c\n" +" Generate a lexer that reads input in UTF-8 encoding. re2c\n" " assumes that character range is 0 -- 0x10FFFF and character size\n" " is 1 byte.\n" "\n" " --case-insensitive\n" -" Treat single-quoted and double-quoted strings as case-insensi‐\n" +" Treat single-quoted and double-quoted strings as case-insensi‐\n" " tive.\n" "\n" " --case-inverted\n" -" Invert the meaning of single-quoted and double-quoted strings:\n" -" treat single-quoted strings as case-sensitive and double-quoted\n" +" Invert the meaning of single-quoted and double-quoted strings:\n" +" treat single-quoted strings as case-sensitive and double-quoted\n" " strings as case-insensitive.\n" "\n" " --no-generation-date\n" " Suppress date output in the generated file.\n" "\n" " --no-lookahead\n" -" Use TDFA(0) instead of TDFA(1). This option only has effect\n" +" Use TDFA(0) instead of TDFA(1). This option only has effect\n" " with --tags or --posix-captures options.\n" "\n" " --no-optimize-tags\n" -" Suppress optimization of tag variables (useful for debugging or\n" +" Suppress optimization of tag variables (useful for debugging or\n" " benchmarking).\n" "\n" " --no-version\n" " Suppress version output in the generated file.\n" "\n" " --encoding-policy POLICY\n" -" Define the way re2c treats Unicode surrogates. POLICY can be\n" +" Define the way re2c treats Unicode surrogates. POLICY can be\n" " one of the following: fail (abort with an error when a surrogate\n" -" is encountered), substitute (silently replace surrogates with\n" -" the error code point 0xFFFD), ignore (default, treat surrogates\n" -" as normal code points). The Unicode standard says that stand‐\n" -" alone surrogates are invalid, but real-world libraries and pro‐\n" +" is encountered), substitute (silently replace surrogates with\n" +" the error code point 0xFFFD), ignore (default, treat surrogates\n" +" as normal code points). The Unicode standard says that stand‐\n" +" alone surrogates are invalid, but real-world libraries and pro‐\n" " grams behave in different ways.\n" "\n" " --input INPUT\n" -" Specify re2c input API. INPUT can be either default or custom\n" +" Specify re2c input API. INPUT can be either default or custom\n" " (enables the use of generic API).\n" "\n" " -S --skeleton\n" " Ignore user-defined interface code and generate a self-contained\n" -" \"skeleton\" program. Additionally, generate input files with\n" -" strings derived from the regular grammar and compressed match\n" -" results that are used to verify \"skeleton\" behavior on all\n" +" \"skeleton\" program. Additionally, generate input files with\n" +" strings derived from the regular grammar and compressed match\n" +" results that are used to verify \"skeleton\" behavior on all\n" " inputs. This option is useful for finding bugs in optimizations\n" " and code generation.\n" "\n" " --empty-class POLICY\n" -" Define the way re2c treats empty character classes. POLICY can\n" +" Define the way re2c treats empty character classes. POLICY can\n" " be one of the following: match-empty (match empty input: illogi‐\n" -" cal, but default behavior for backwards compatibility reasons),\n" -" match-none (fail to match on any input), error (compilation\n" +" cal, but default behavior for backwards compatibility reasons),\n" +" match-none (fail to match on any input), error (compilation\n" " error).\n" "\n" " --dfa-minimization ALGORITHM\n" -" The internal algorithm used by re2c to minimize the DFA. ALGO‐\n" -" RITHM can be either moore (Moore algorithm, the default) or ta‐\n" -" ble (table filling algorithm). Both algorithms should produce\n" -" the same DFA up to states relabeling; table filling is much\n" +" The internal algorithm used by re2c to minimize the DFA. ALGO‐\n" +" RITHM can be either moore (Moore algorithm, the default) or ta‐\n" +" ble (table filling algorithm). Both algorithms should produce\n" +" the same DFA up to states relabeling; table filling is much\n" " slower and serves as a reference implementation.\n" "\n" " --eager-skip\n" -" Make the generated lexer advance the input position \"eagerly\":\n" +" Make the generated lexer advance the input position \"eagerly\":\n" " immediately after reading input symbol. By default this happens\n" " after transition to the next state. Implied by --no-lookahead.\n" "\n" " --dump-nfa\n" -" Generate representation of NFA in DOT format and dump it on\n" +" Generate representation of NFA in DOT format and dump it on\n" " stderr.\n" "\n" " --dump-dfa-raw\n" -" Generate representation of DFA in DOT format under construction\n" +" Generate representation of DFA in DOT format under construction\n" " and dump it on stderr.\n" "\n" " --dump-dfa-det\n" -" Generate representation of DFA in DOT format immediately after\n" +" Generate representation of DFA in DOT format immediately after\n" " determinization and dump it on stderr.\n" "\n" " --dump-dfa-tagopt\n" @@ -185,7 +186,7 @@ const char *help = " tions and dump it on stderr.\n" "\n" " --dump-dfa-min\n" -" Generate representation of DFA in DOT format after minimization\n" +" Generate representation of DFA in DOT format after minimization\n" " and dump it on stderr.\n" "\n" " --dump-adfa\n" @@ -198,8 +199,8 @@ const char *help = " -W Turn on all warnings.\n" "\n" " -Werror\n" -" Turn warnings into errors. Note that this option alone doesn't\n" -" turn on any warnings; it only affects those warnings that have\n" +" Turn warnings into errors. Note that this option alone doesn't\n" +" turn on any warnings; it only affects those warnings that have\n" " been turned on so far or will be turned on later.\n" "\n" " -W\n" @@ -209,43 +210,43 @@ const char *help = " Turn off warning.\n" "\n" " -Werror-\n" -" Turn on warning and treat it as an error (this implies -W).\n" "\n" " -Wno-error-\n" -" Don't treat this particular warning as an error. This doesn't\n" +" Don't treat this particular warning as an error. This doesn't\n" " turn off the warning itself.\n" "\n" " -Wcondition-order\n" -" Warn if the generated program makes implicit assumptions about\n" +" Warn if the generated program makes implicit assumptions about\n" " condition numbering. One should use either the -t, --type-header\n" " option or the /*!types:re2c*/ directive to generate a mapping of\n" " condition names to numbers and then use the autogenerated condi‐\n" " tion names.\n" "\n" " -Wempty-character-class\n" -" Warn if a regular expression contains an empty character class.\n" -" Trying to match an empty character class makes no sense: it\n" -" should always fail. However, for backwards compatibility rea‐\n" -" sons re2c allows empty character classes and treats them as\n" -" empty strings. Use the --empty-class option to change the\n" +" Warn if a regular expression contains an empty character class.\n" +" Trying to match an empty character class makes no sense: it\n" +" should always fail. However, for backwards compatibility rea‐\n" +" sons re2c allows empty character classes and treats them as\n" +" empty strings. Use the --empty-class option to change the\n" " default behavior.\n" "\n" " -Wmatch-empty-string\n" -" Warn if a rule is nullable (matches an empty string). If the\n" -" lexer runs in a loop and the empty match is unintentional, the\n" +" Warn if a rule is nullable (matches an empty string). If the\n" +" lexer runs in a loop and the empty match is unintentional, the\n" " lexer may unexpectedly hang in an infinite loop.\n" "\n" " -Wswapped-range\n" -" Warn if the lower bound of a range is greater than its upper\n" -" bound. The default behavior is to silently swap the range\n" +" Warn if the lower bound of a range is greater than its upper\n" +" bound. The default behavior is to silently swap the range\n" " bounds.\n" "\n" " -Wundefined-control-flow\n" -" Warn if some input strings cause undefined control flow in the\n" -" lexer (the faulty patterns are reported). This is the most dan‐\n" +" Warn if some input strings cause undefined control flow in the\n" +" lexer (the faulty patterns are reported). This is the most dan‐\n" " gerous and most common mistake. It can be easily fixed by adding\n" -" the default rule * which has the lowest priority, matches any\n" +" the default rule * which has the lowest priority, matches any\n" " code unit, and consumes exactly one code unit.\n" "\n" " -Wunreachable-rules\n" @@ -253,12 +254,12 @@ const char *help = " match.\n" "\n" " -Wuseless-escape\n" -" Warn if a symbol is escaped when it shouldn't be. By default,\n" -" re2c silently ignores such escapes, but this may as well indi‐\n" +" Warn if a symbol is escaped when it shouldn't be. By default,\n" +" re2c silently ignores such escapes, but this may as well indi‐\n" " cate a typo or an error in the escape sequence.\n" "\n" " -Wnondeterministic-tags\n" -" Warn if a tag has n-th degree of nondeterminism, where n is\n" +" Warn if a tag has n-th degree of nondeterminism, where n is\n" " greater than 1.\n" "\n" ; diff --git a/re2c/bootstrap/src/conf/parse_opts.cc b/re2c/bootstrap/src/conf/parse_opts.cc index 3d59fe82..e59f6811 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.0.3 on Fri Apr 13 23:56:00 2018 */ +/* Generated by re2c 1.0.3 on Mon Jun 11 19:10:34 2018 */ #line 1 "../src/conf/parse_opts.re" #include "src/code/input_api.h" #include "src/conf/msg.h" @@ -1210,868 +1210,870 @@ yy280: goto yy279; yy281: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy308; + if (yych <= 'l') goto yy279; + if (yych <= 'm') goto yy308; + if (yych <= 'n') goto yy309; goto yy279; yy282: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy309; + if (yych == 'b') goto yy310; goto yy279; yy283: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy310; + if (yych == 'a') goto yy311; goto yy279; yy284: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy311; + if (yych == 'm') goto yy312; goto yy279; yy285: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy312; + if (yych == 'g') goto yy313; goto yy279; yy286: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy313; + if (yych == 'b') goto yy314; goto yy279; yy287: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy314; - if (yych == 'p') goto yy315; + if (yych == 'i') goto yy315; + if (yych == 'p') goto yy316; goto yy279; yy288: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy316; + if (yych == 'c') goto yy317; goto yy279; yy289: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy317; + if (yych == 'e') goto yy318; goto yy279; yy290: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy318; + if (yych == 'l') goto yy319; goto yy279; yy291: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy319; + if (yych == 'p') goto yy320; goto yy279; yy292: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy320; + if (yych == 's') goto yy321; goto yy279; yy293: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy321; + if (yych == '-') goto yy322; goto yy279; yy294: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy322; + if (yych == 't') goto yy323; goto yy279; yy295: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy323; + if (yych == 's') goto yy324; goto yy279; yy296: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy324; + if (yych == 'u') goto yy325; goto yy279; yy297: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy325; + if (yych == 'n') goto yy326; goto yy279; yy298: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy326; + if (yych == 'e') goto yy327; goto yy279; yy299: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy327; - if (yych == 'o') goto yy328; + if (yych == 'a') goto yy328; + if (yych == 'o') goto yy329; goto yy279; yy300: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy329; + if (yych == 'g') goto yy330; goto yy279; yy301: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy330; + if (yych == 'p') goto yy331; goto yy279; yy302: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy331; + if (yych == 'i') goto yy332; goto yy279; yy303: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy332; + if (yych == 'f') goto yy333; goto yy279; yy304: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy333; + if (yych == 'r') goto yy334; goto yy279; yy305: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy334; + if (yych == 'd') goto yy335; goto yy279; yy306: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy335; + if (yych == '-') goto yy336; goto yy279; yy307: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy336; + if (yych == 'e') goto yy337; goto yy279; yy308: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy337; + if (yych == 'p') goto yy338; goto yy279; yy309: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy338; + if (yych == 'd') goto yy339; goto yy279; yy310: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy339; + if (yych == 'u') goto yy340; goto yy279; yy311: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy340; + if (yych == '-') goto yy341; goto yy279; yy312: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy341; + if (yych == 'p') goto yy342; goto yy279; yy313: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy342; + if (yych == 'e') goto yy343; goto yy279; yy314: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy344; + if (yych <= 0x00) goto yy344; goto yy279; yy315: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy345; + if (yych == 't') goto yy346; goto yy279; yy316: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy346; + if (yych == 't') goto yy347; goto yy279; yy317: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'x') goto yy347; + if (yych == 'o') goto yy348; goto yy279; yy318: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy348; + if (yych == 'x') goto yy349; goto yy279; yy319: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy349; + if (yych == 'p') goto yy350; goto yy279; yy320: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy350; + if (yych == 'u') goto yy351; goto yy279; yy321: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 't') goto yy352; + goto yy279; +yy322: yych = (YYCTYPE)*++YYCURSOR; switch (yych) { - case 'd': goto yy351; - case 'g': goto yy352; - case 'l': goto yy353; - case 'o': goto yy354; - case 'v': goto yy355; + case 'd': goto yy353; + case 'g': goto yy354; + case 'l': goto yy355; + case 'o': goto yy356; + case 'v': goto yy357; default: goto yy279; } -yy322: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy356; - goto yy279; yy323: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy357; + if (yych == 'p') goto yy358; goto yy279; yy324: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy358; + if (yych == 'i') goto yy359; goto yy279; yy325: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy359; + if (yych == 's') goto yy360; goto yy279; yy326: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy360; + if (yych == 'g') goto yy361; goto yy279; yy327: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy361; + if (yych == 'l') goto yy362; goto yy279; yy328: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy362; + if (yych == 'r') goto yy363; goto yy279; yy329: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy363; + if (yych == 'r') goto yy364; goto yy279; yy330: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy364; + if (yych == 's') goto yy365; goto yy279; yy331: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy365; + if (yych == 'e') goto yy366; goto yy279; yy332: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy366; + if (yych == 'c') goto yy367; goto yy279; yy333: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy367; - if (yych == 's') goto yy368; + if (yych == '-') goto yy368; goto yy279; yy334: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy369; + if (yych == 'n') goto yy369; + if (yych == 's') goto yy370; goto yy279; yy335: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'v') goto yy370; + if (yych == 'e') goto yy371; goto yy279; yy336: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy371; + if (yych == 'v') goto yy372; goto yy279; yy337: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy372; + if (yych == '-') goto yy373; goto yy279; yy338: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy373; + if (yych == 'u') goto yy374; goto yy279; yy339: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy374; + if (yych == 'i') goto yy375; goto yy279; yy340: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy375; + if (yych == 'g') goto yy376; goto yy279; yy341: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy376; + if (yych == 'm') goto yy377; goto yy279; yy342: - ++YYCURSOR; -#line 159 "../src/conf/parse_opts.re" - { opts.set_encoding(Enc::EBCDIC); goto opt; } -#line 1469 "src/conf/parse_opts.cc" -yy344: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy377; + if (yych == '-') goto yy378; goto yy279; -yy345: +yy343: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy378; + if (yych == 'r') goto yy379; goto yy279; +yy344: + ++YYCURSOR; +#line 159 "../src/conf/parse_opts.re" + { opts.set_encoding(Enc::EBCDIC); goto opt; } +#line 1479 "src/conf/parse_opts.cc" yy346: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy379; + if (yych == '-') goto yy380; goto yy279; yy347: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy380; + if (yych == 'y') goto yy381; goto yy279; yy348: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy381; + if (yych == 'd') goto yy382; goto yy279; yy349: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy383; + if (yych == '-') goto yy383; goto yy279; yy350: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy384; + if (yych <= 0x00) goto yy384; goto yy279; yy351: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy385; + if (yych == 't') goto yy386; goto yy279; yy352: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy386; + if (yych == 'e') goto yy387; goto yy279; yy353: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy387; + if (yych == 'e') goto yy388; goto yy279; yy354: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy388; + if (yych == 'e') goto yy389; goto yy279; yy355: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy389; + if (yych == 'o') goto yy390; goto yy279; yy356: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy390; + if (yych == 'p') goto yy391; goto yy279; yy357: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'x') goto yy391; + if (yych == 'e') goto yy392; goto yy279; yy358: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy392; + if (yych == 'u') goto yy393; goto yy279; yy359: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy393; + if (yych == 'x') goto yy394; goto yy279; yy360: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy394; + if (yych == 'a') goto yy395; goto yy279; yy361: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy395; + if (yych == 'l') goto yy396; goto yy279; yy362: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy396; + if (yych == 'e') goto yy397; goto yy279; yy363: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy397; + if (yych == 't') goto yy398; goto yy279; yy364: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy399; + if (yych == 'a') goto yy399; goto yy279; yy365: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy400; + if (yych <= 0x00) goto yy400; goto yy279; yy366: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '1') goto yy401; - if (yych == '8') goto yy402; + if (yych == '-') goto yy402; goto yy279; yy367: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy403; + if (yych == 'o') goto yy403; goto yy279; yy368: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy404; + if (yych == '1') goto yy404; + if (yych == '8') goto yy405; goto yy279; yy369: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy405; + if (yych == 'u') goto yy406; goto yy279; yy370: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy406; + if (yych == 'i') goto yy407; goto yy279; yy371: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy407; + if (yych == '-') goto yy408; goto yy279; yy372: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy408; + if (yych == 'e') goto yy409; goto yy279; yy373: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy409; + if (yych == 'i') goto yy410; goto yy279; yy374: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy410; + if (yych == 't') goto yy411; goto yy279; yy375: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 'c') { - if (yych == 'a') goto yy411; - goto yy279; - } else { - if (yych <= 'd') goto yy412; - if (yych == 'n') goto yy413; - goto yy279; - } + if (yych == 't') goto yy412; + goto yy279; yy376: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy414; + if (yych == '-') goto yy413; goto yy279; yy377: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy415; + if (yych == 'i') goto yy414; goto yy279; yy378: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy416; - goto yy279; + if (yych <= 'c') { + if (yych == 'a') goto yy415; + goto yy279; + } else { + if (yych <= 'd') goto yy416; + if (yych == 'n') goto yy417; + goto yy279; + } yy379: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy417; + if (yych == '-') goto yy418; goto yy279; yy380: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy418; + if (yych == 'd') goto yy419; goto yy279; yy381: - ++YYCURSOR; -#line 134 "../src/conf/parse_opts.re" - { usage (); return EXIT_OK; } -#line 1629 "src/conf/parse_opts.cc" -yy383: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy419; + if (yych == '-') goto yy420; goto yy279; -yy384: +yy382: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy421; + if (yych == 'i') goto yy421; goto yy279; -yy385: +yy383: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy422; + if (yych == 's') goto yy422; goto yy279; +yy384: + ++YYCURSOR; +#line 134 "../src/conf/parse_opts.re" + { usage (); return EXIT_OK; } +#line 1643 "src/conf/parse_opts.cc" yy386: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy423; + if (yych <= 0x00) goto yy423; goto yy279; yy387: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy424; + if (yych == 'd') goto yy425; goto yy279; yy388: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy425; + if (yych == 'b') goto yy426; goto yy279; yy389: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy426; + if (yych == 'n') goto yy427; goto yy279; yy390: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy427; + if (yych == 'o') goto yy428; goto yy279; yy391: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy428; + if (yych == 't') goto yy429; goto yy279; yy392: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy429; + if (yych == 'r') goto yy430; goto yy279; yy393: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy430; + if (yych == 't') goto yy431; goto yy279; yy394: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy431; + if (yych == '-') goto yy432; goto yy279; yy395: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy432; + if (yych == 'b') goto yy433; goto yy279; yy396: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'b') goto yy433; + if (yych == 'e') goto yy434; goto yy279; yy397: - ++YYCURSOR; -#line 154 "../src/conf/parse_opts.re" - { opts.set_tags (true); goto opt; } -#line 1690 "src/conf/parse_opts.cc" -yy399: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy434; + if (yych == 't') goto yy435; goto yy279; -yy400: +yy398: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy435; + if (yych == '-') goto yy436; goto yy279; -yy401: +yy399: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '6') goto yy436; + if (yych == 'b') goto yy437; goto yy279; +yy400: + ++YYCURSOR; +#line 154 "../src/conf/parse_opts.re" + { opts.set_tags (true); goto opt; } +#line 1704 "src/conf/parse_opts.cc" yy402: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy437; + if (yych == 'h') goto yy438; goto yy279; yy403: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy439; + if (yych == 'd') goto yy439; goto yy279; yy404: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy440; + if (yych == '6') goto yy440; goto yy279; yy405: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy441; + if (yych <= 0x00) goto yy441; goto yy279; yy406: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy442; + if (yych == 'm') goto yy443; goto yy279; yy407: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy443; + if (yych == 'o') goto yy444; goto yy279; yy408: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy444; + if (yych == 'c') goto yy445; goto yy279; yy409: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy445; + if (yych == 'c') goto yy446; goto yy279; yy410: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy446; + if (yych == 'n') goto yy447; goto yy279; yy411: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy447; + if (yych == 'e') goto yy448; goto yy279; yy412: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy448; + if (yych == 'i') goto yy449; goto yy279; yy413: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy449; + if (yych == 'o') goto yy450; goto yy279; yy414: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy450; + if (yych == 'n') goto yy451; goto yy279; yy415: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy451; + if (yych == 'd') goto yy452; goto yy279; yy416: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy452; + if (yych == 'f') goto yy453; goto yy279; yy417: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy453; + if (yych == 'f') goto yy454; goto yy279; yy418: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy454; + if (yych == 's') goto yy455; goto yy279; yy419: - ++YYCURSOR; -#line 167 "../src/conf/parse_opts.re" - { goto opt_input; } -#line 1775 "src/conf/parse_opts.cc" -yy421: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy455; + if (yych == 'o') goto yy456; goto yy279; -yy422: +yy420: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy456; + if (yych == 'c') goto yy457; goto yy279; -yy423: +yy421: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy457; + if (yych == 'n') goto yy458; goto yy279; -yy424: +yy422: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'k') goto yy458; + if (yych == 'y') goto yy459; goto yy279; +yy423: + ++YYCURSOR; +#line 167 "../src/conf/parse_opts.re" + { goto opt_input; } +#line 1793 "src/conf/parse_opts.cc" yy425: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy459; + if (yych == '-') goto yy460; goto yy279; yy426: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy460; + if (yych == 'u') goto yy461; goto yy279; yy427: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy461; + if (yych == 'e') goto yy462; goto yy279; yy428: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy463; + if (yych == 'k') goto yy463; goto yy279; yy429: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy464; + if (yych == 'i') goto yy464; goto yy279; yy430: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy465; + if (yych == 's') goto yy465; goto yy279; yy431: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy466; + if (yych <= 0x00) goto yy466; goto yy279; yy432: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy467; + if (yych == 'c') goto yy468; goto yy279; yy433: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy468; + if (yych == 'l') goto yy469; goto yy279; yy434: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy469; + if (yych == '-') goto yy470; goto yy279; yy435: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy470; + if (yych == 'o') goto yy471; goto yy279; yy436: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy471; + if (yych == 'c') goto yy472; goto yy279; yy437: - ++YYCURSOR; -#line 163 "../src/conf/parse_opts.re" - { opts.set_encoding(Enc::UTF8); goto opt; } -#line 1844 "src/conf/parse_opts.cc" -yy439: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy473; + if (yych == 'l') goto yy473; goto yy279; -yy440: +yy438: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy475; + if (yych == 'e') goto yy474; goto yy279; -yy441: +yy439: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy476; + if (yych == 'e') goto yy475; goto yy279; -yy442: +yy440: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy477; + if (yych <= 0x00) goto yy476; goto yy279; +yy441: + ++YYCURSOR; +#line 163 "../src/conf/parse_opts.re" + { opts.set_encoding(Enc::UTF8); goto opt; } +#line 1862 "src/conf/parse_opts.cc" yy443: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy478; - if (yych == 'v') goto yy479; + if (yych <= 0x00) goto yy478; goto yy279; yy444: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy480; + if (yych == 'n') goto yy480; goto yy279; yy445: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy481; + if (yych == 'h') goto yy481; goto yy279; yy446: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy482; + if (yych == 't') goto yy482; goto yy279; yy447: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy483; + if (yych == 's') goto yy483; + if (yych == 'v') goto yy484; goto yy279; yy448: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy484; + if (yych == 'd') goto yy485; goto yy279; yy449: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy485; + if (yych == 'o') goto yy486; goto yy279; yy450: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'k') goto yy486; + if (yych == 'u') goto yy487; goto yy279; yy451: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy487; + if (yych == 'i') goto yy488; goto yy279; yy452: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy488; + if (yych == 'f') goto yy489; goto yy279; yy453: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy489; + if (yych == 'a') goto yy490; goto yy279; yy454: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy490; + if (yych == 'a') goto yy491; goto yy279; yy455: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy491; + if (yych == 'k') goto yy492; goto yy279; yy456: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy492; + if (yych == 't') goto yy493; goto yy279; yy457: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy493; + if (yych == 'l') goto yy494; goto yy279; yy458: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy494; + if (yych == 'g') goto yy495; goto yy279; yy459: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy495; + if (yych == 'n') goto yy496; goto yy279; yy460: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy496; + if (yych == 'i') goto yy497; goto yy279; yy461: - ++YYCURSOR; -#line 164 "../src/conf/parse_opts.re" - { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; } -#line 1938 "src/conf/parse_opts.cc" -yy463: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy497; + if (yych == 'g') goto yy498; goto yy279; -yy464: +yy462: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy498; + if (yych == 'r') goto yy499; goto yy279; -yy465: +yy463: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy499; + if (yych == 'a') goto yy500; goto yy279; -yy466: +yy464: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy500; + if (yych == 'm') goto yy501; goto yy279; -yy467: +yy465: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy501; + if (yych == 'i') goto yy502; goto yy279; +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" yy468: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy502; + if (yych == 'a') goto yy503; goto yy279; yy469: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy503; + if (yych == 'e') goto yy504; goto yy279; yy470: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy504; + if (yych == 'p') goto yy505; goto yy279; yy471: - ++YYCURSOR; -#line 162 "../src/conf/parse_opts.re" - { opts.set_encoding(Enc::UTF16); goto opt; } -#line 1975 "src/conf/parse_opts.cc" -yy473: - ++YYCURSOR; -#line 136 "../src/conf/parse_opts.re" - { vernum (); return EXIT_OK; } -#line 1980 "src/conf/parse_opts.cc" -yy475: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy506; + if (yych == 'n') goto yy506; goto yy279; -yy476: +yy472: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy508; + if (yych == 'o') goto yy507; goto yy279; -yy477: +yy473: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy509; + if (yych == 'e') goto yy508; goto yy279; -yy478: +yy474: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy510; + if (yych == 'a') goto yy509; goto yy279; -yy479: +yy475: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy511; + if (yych <= 0x00) goto yy510; goto yy279; +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 == '-') goto yy512; + if (yych <= 0x00) goto yy512; goto yy279; yy481: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy513; + if (yych == 'a') goto yy514; goto yy279; yy482: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'm') goto yy514; + if (yych == 'o') goto yy515; goto yy279; yy483: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy515; + if (yych == 'e') goto yy516; goto yy279; yy484: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy516; + if (yych == 'e') goto yy517; goto yy279; yy485: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy517; + if (yych == '-') goto yy518; goto yy279; yy486: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy519; + if (yych == 'n') goto yy519; goto yy279; yy487: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy520; + if (yych == 't') goto yy520; goto yy279; yy488: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy522; + if (yych == 'm') goto yy521; goto yy279; yy489: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy523; + if (yych == 'a') goto yy522; goto yy279; yy490: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy524; + if (yych == '-') goto yy523; goto yy279; yy491: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy525; + if (yych <= 0x00) goto yy524; goto yy279; yy492: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy526; + if (yych == 'i') goto yy526; goto yy279; yy493: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy527; + if (yych <= 0x00) goto yy527; goto yy279; yy494: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'h') goto yy528; + if (yych == 'a') goto yy529; goto yy279; yy495: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy529; + if (yych == '-') goto yy530; goto yy279; yy496: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy530; + if (yych == 't') goto yy531; goto yy279; yy497: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy531; + if (yych == 'f') goto yy532; goto yy279; yy498: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy532; + if (yych == '-') goto yy533; goto yy279; yy499: yych = (YYCTYPE)*++YYCURSOR; @@ -2079,699 +2081,699 @@ yy499: goto yy279; yy500: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy535; + if (yych == 'h') goto yy535; goto yy279; yy501: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy537; + if (yych == 'i') goto yy536; goto yy279; yy502: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy538; + if (yych == 'o') goto yy537; goto yy279; yy503: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy539; + if (yych == 'p') goto yy538; goto yy279; yy504: - ++YYCURSOR; -#line 160 "../src/conf/parse_opts.re" - { opts.set_encoding(Enc::UTF32); goto opt; } -#line 2101 "src/conf/parse_opts.cc" -yy506: - ++YYCURSOR; -#line 135 "../src/conf/parse_opts.re" - { version (); return EXIT_OK; } -#line 2106 "src/conf/parse_opts.cc" -yy508: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy540; + if (yych <= 0x00) goto yy539; goto yy279; -yy509: +yy505: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy541; + if (yych == 'a') goto yy541; goto yy279; -yy510: +yy506: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy542; + if (yych <= 0x00) goto yy542; goto yy279; -yy511: +yy507: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy543; + if (yych == 'n') goto yy309; goto yy279; -yy512: +yy508: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy544; + if (yych == '-') goto yy544; goto yy279; -yy513: +yy509: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy545; + if (yych == 'd') goto yy545; goto yy279; +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 == 'i') goto yy546; + if (yych == 'r') goto yy546; goto yy279; yy515: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy547; + if (yych == 'r') goto yy547; goto yy279; yy516: yych = (YYCTYPE)*++YYCURSOR; - switch (yych) { - case 'd': goto yy549; - case 'm': goto yy550; - case 'r': goto yy551; - case 't': goto yy552; - default: goto yy279; - } + if (yych == 'n') goto yy548; + goto yy279; yy517: - ++YYCURSOR; -#line 172 "../src/conf/parse_opts.re" - { globopts.dump_nfa = true; goto opt; } -#line 2152 "src/conf/parse_opts.cc" -yy519: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy553; + if (yych == 'r') goto yy549; goto yy279; -yy520: - ++YYCURSOR; -#line 139 "../src/conf/parse_opts.re" - { globopts.target = TARGET_DOT; goto opt; } -#line 2161 "src/conf/parse_opts.cc" -yy522: +yy518: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy554; + if (yych == 'g') goto yy550; goto yy279; -yy523: +yy519: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy555; + if (yych == 's') goto yy551; goto yy279; -yy524: +yy520: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy556; + if (yych == 'p') goto yy552; goto yy279; -yy525: +yy521: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy557; + if (yych == 'i') goto yy553; goto yy279; -yy526: +yy522: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy558; + if (yych <= 0x00) goto yy554; goto yy279; -yy527: +yy523: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy559; - goto yy279; -yy528: + switch (yych) { + case 'd': goto yy556; + case 'm': goto yy557; + case 'r': goto yy558; + case 't': goto yy559; + default: goto yy279; + } +yy524: + ++YYCURSOR; +#line 172 "../src/conf/parse_opts.re" + { globopts.dump_nfa = true; goto opt; } +#line 2182 "src/conf/parse_opts.cc" +yy526: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy560; + if (yych == 'p') goto yy560; goto yy279; +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 == 'z') goto yy561; + if (yych == 's') goto yy561; goto yy279; yy530: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy562; + if (yych == 'p') goto yy562; goto yy279; yy531: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy563; + if (yych == 'a') goto yy563; goto yy279; yy532: - ++YYCURSOR; -#line 142 "../src/conf/parse_opts.re" - { globopts.rFlag = true; goto opt; } -#line 2206 "src/conf/parse_opts.cc" -yy534: yych = (YYCTYPE)*++YYCURSOR; if (yych == 's') goto yy564; goto yy279; -yy535: - ++YYCURSOR; -#line 145 "../src/conf/parse_opts.re" - { globopts.target = TARGET_SKELETON; goto opt; } -#line 2215 "src/conf/parse_opts.cc" -yy537: +yy533: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy565; + if (yych == 'i') goto yy565; goto yy279; -yy538: +yy534: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy566; + if (yych == 't') goto yy566; goto yy279; -yy539: +yy535: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'e') goto yy567; goto yy279; -yy540: +yy536: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy568; + if (yych == 'z') goto yy568; goto yy279; -yy541: +yy537: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy569; + if (yych == 'n') goto yy569; goto yy279; -yy542: +yy538: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy570; + if (yych == 't') goto yy570; goto yy279; -yy543: +yy539: + ++YYCURSOR; +#line 142 "../src/conf/parse_opts.re" + { globopts.rFlag = true; goto opt; } +#line 2236 "src/conf/parse_opts.cc" +yy541: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy571; + if (yych == 's') goto yy571; goto yy279; +yy542: + ++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 == 'o') goto yy572; + if (yych == 's') goto yy572; goto yy279; yy545: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy573; + if (yych == 'e') goto yy573; goto yy279; yy546: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'z') goto yy574; + if (yych == 's') goto yy574; goto yy279; yy547: - ++YYCURSOR; -#line 177 "../src/conf/parse_opts.re" - { globopts.dump_adfa = true; goto opt; } -#line 2260 "src/conf/parse_opts.cc" + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy575; + goto yy279; +yy548: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy576; + goto yy279; yy549: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy575; + if (yych == 't') goto yy577; goto yy279; yy550: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy576; + if (yych == 'o') goto yy578; goto yy279; yy551: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy577; + if (yych <= 0x00) goto yy579; goto yy279; yy552: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy578; + if (yych == 'u') goto yy581; goto yy279; yy553: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy579; + if (yych == 'z') goto yy582; goto yy279; yy554: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy581; - goto yy279; -yy555: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy582; - goto yy279; + ++YYCURSOR; +#line 177 "../src/conf/parse_opts.re" + { globopts.dump_adfa = true; goto opt; } +#line 2290 "src/conf/parse_opts.cc" yy556: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'x') goto yy583; + if (yych == 'e') goto yy583; goto yy279; yy557: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy584; + if (yych == 'i') goto yy584; goto yy279; yy558: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy586; + if (yych == 'a') goto yy585; goto yy279; yy559: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy587; + if (yych == 'a') goto yy586; goto yy279; yy560: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy588; + if (yych <= 0x00) goto yy587; goto yy279; yy561: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy589; + if (yych == 's') goto yy589; goto yy279; yy562: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy590; + if (yych == 'o') goto yy590; goto yy279; yy563: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'u') goto yy592; + if (yych == 'x') goto yy591; goto yy279; yy564: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy593; + if (yych <= 0x00) goto yy592; goto yy279; yy565: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy594; + if (yych == 'n') goto yy594; goto yy279; yy566: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy595; + if (yych == 'i') goto yy595; goto yy279; yy567: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy596; + if (yych == 'a') goto yy596; goto yy279; yy568: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy597; + if (yych == 'e') goto yy597; goto yy279; yy569: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy599; + if (yych <= 0x00) goto yy598; goto yy279; yy570: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy601; + if (yych == 'u') goto yy600; goto yy279; yy571: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy602; + if (yych == 's') goto yy601; goto yy279; yy572: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy603; + if (yych == 't') goto yy602; goto yy279; yy573: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy604; + if (yych == 'r') goto yy603; goto yy279; yy574: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy605; + if (yych <= 0x00) goto yy604; goto yy279; yy575: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy606; + if (yych <= 0x00) goto yy606; goto yy279; yy576: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy607; + if (yych == 'i') goto yy608; goto yy279; yy577: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'w') goto yy608; + if (yych == 'e') goto yy609; goto yy279; yy578: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy609; + if (yych == 't') goto yy610; goto yy279; yy579: ++YYCURSOR; -#line 158 "../src/conf/parse_opts.re" - { opts.set_eager_skip(true); goto opt; } -#line 2385 "src/conf/parse_opts.cc" +#line 138 "../src/conf/parse_opts.re" + { globopts.cFlag = true; goto opt; } +#line 2387 "src/conf/parse_opts.cc" yy581: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy610; + if (yych == 't') goto yy611; goto yy279; yy582: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'l') goto yy612; + if (yych == 'a') goto yy612; goto yy279; yy583: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy613; + if (yych == 't') goto yy613; goto yy279; yy584: - ++YYCURSOR; -#line 151 "../src/conf/parse_opts.re" - { opts.set_sFlag (true); goto opt; } -#line 2402 "src/conf/parse_opts.cc" -yy586: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'f') goto yy615; + if (yych == 'n') goto yy614; goto yy279; -yy587: +yy585: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy616; + if (yych == 'w') goto yy615; goto yy279; -yy588: +yy586: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy617; + if (yych == 'g') goto yy616; goto yy279; +yy587: + ++YYCURSOR; +#line 158 "../src/conf/parse_opts.re" + { opts.set_eager_skip(true); goto opt; } +#line 2416 "src/conf/parse_opts.cc" yy589: yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy618; + if (yych <= 0x00) goto yy617; goto yy279; yy590: - ++YYCURSOR; -#line 144 "../src/conf/parse_opts.re" - { globopts.version = false; goto opt; } -#line 2423 "src/conf/parse_opts.cc" -yy592: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'r') goto yy619; + if (yych == 'l') goto yy619; goto yy279; -yy593: +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" yy594: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy622; + if (yych == 'f') goto yy622; goto yy279; yy595: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy623; + if (yych == 'o') goto yy623; goto yy279; yy596: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy624; + if (yych == 'd') goto yy624; goto yy279; yy597: + 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" +yy600: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 'r') goto yy626; + goto yy279; +yy601: + yych = (YYCTYPE)*++YYCURSOR; + if (yych <= 0x00) goto yy627; + goto yy279; +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 2448 "src/conf/parse_opts.cc" -yy599: +#line 2475 "src/conf/parse_opts.cc" +yy606: ++YYCURSOR; #line 147 "../src/conf/parse_opts.re" { opts.set_bFlag (true); goto opt; } -#line 2453 "src/conf/parse_opts.cc" -yy601: +#line 2480 "src/conf/parse_opts.cc" +yy608: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy626; + if (yych == 't') goto yy632; goto yy279; -yy602: +yy609: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy627; + if (yych == 'd') goto yy633; goto yy279; -yy603: +yy610: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy628; + if (yych == 'o') goto yy634; goto yy279; -yy604: +yy611: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy629; + if (yych <= 0x00) goto yy635; goto yy279; -yy605: +yy612: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy631; + if (yych == 't') goto yy637; goto yy279; -yy606: +yy613: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy632; + if (yych <= 0x00) goto yy638; goto yy279; -yy607: +yy614: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy634; + if (yych <= 0x00) goto yy640; goto yy279; -yy608: +yy615: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy636; + if (yych <= 0x00) goto yy642; goto yy279; -yy609: +yy616: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy638; + if (yych == 'o') goto yy644; goto yy279; -yy610: +yy617: ++YYCURSOR; #line 168 "../src/conf/parse_opts.re" { goto opt_empty_class; } -#line 2494 "src/conf/parse_opts.cc" -yy612: +#line 2521 "src/conf/parse_opts.cc" +yy619: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy639; + if (yych == 'i') goto yy645; goto yy279; -yy613: +yy620: ++YYCURSOR; #line 141 "../src/conf/parse_opts.re" { globopts.FFlag = true; goto opt; } -#line 2503 "src/conf/parse_opts.cc" -yy615: +#line 2530 "src/conf/parse_opts.cc" +yy622: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy640; + if (yych == 'o') goto yy646; goto yy279; -yy616: +yy623: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy641; + if (yych == 'n') goto yy647; goto yy279; -yy617: +yy624: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy642; + if (yych <= 0x00) goto yy648; goto yy279; -yy618: +yy625: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy644; + if (yych == 't') goto yy650; goto yy279; -yy619: +yy626: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy645; + if (yych == 'e') goto yy651; goto yy279; -yy620: +yy627: ++YYCURSOR; #line 170 "../src/conf/parse_opts.re" { goto opt; } -#line 2528 "src/conf/parse_opts.cc" -yy622: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy646; - goto yy279; -yy623: +#line 2555 "src/conf/parse_opts.cc" +yy629: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy647; + if (yych == 't') goto yy652; goto yy279; -yy624: +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 2541 "src/conf/parse_opts.cc" -yy626: +#line 2564 "src/conf/parse_opts.cc" +yy632: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy648; + if (yych == 'i') goto yy653; goto yy279; -yy627: +yy633: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy649; + if (yych <= 0x00) goto yy654; goto yy279; -yy628: +yy634: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy651; + if (yych == 's') goto yy656; goto yy279; -yy629: +yy635: ++YYCURSOR; #line 148 "../src/conf/parse_opts.re" { opts.set_dFlag (true); goto opt; } -#line 2558 "src/conf/parse_opts.cc" -yy631: +#line 2581 "src/conf/parse_opts.cc" +yy637: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'i') goto yy652; + if (yych == 'i') goto yy657; goto yy279; -yy632: +yy638: ++YYCURSOR; #line 174 "../src/conf/parse_opts.re" { globopts.dump_dfa_det = true; goto opt; } -#line 2567 "src/conf/parse_opts.cc" -yy634: +#line 2590 "src/conf/parse_opts.cc" +yy640: ++YYCURSOR; #line 176 "../src/conf/parse_opts.re" { globopts.dump_dfa_min = true; goto opt; } -#line 2572 "src/conf/parse_opts.cc" -yy636: +#line 2595 "src/conf/parse_opts.cc" +yy642: ++YYCURSOR; #line 173 "../src/conf/parse_opts.re" { globopts.dump_dfa_raw = true; goto opt; } -#line 2577 "src/conf/parse_opts.cc" -yy638: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'p') goto yy653; - goto yy279; -yy639: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'c') goto yy654; - goto yy279; -yy640: - yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy655; - goto yy279; -yy641: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == '-') goto yy657; - goto yy279; -yy642: - ++YYCURSOR; -#line 156 "../src/conf/parse_opts.re" - { opts.set_lookahead(false); goto opt; } -#line 2598 "src/conf/parse_opts.cc" +#line 2600 "src/conf/parse_opts.cc" yy644: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy658; + if (yych == 'p') goto yy658; goto yy279; yy645: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy659; + if (yych == 'c') goto yy659; goto yy279; yy646: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy660; + if (yych <= 0x00) goto yy660; goto yy279; yy647: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy661; + 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" +yy650: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'v') goto yy662; + if (yych == 'a') goto yy663; goto yy279; -yy649: - ++YYCURSOR; -#line 153 "../src/conf/parse_opts.re" - { opts.set_bCaseInverted (true); goto opt; } -#line 2623 "src/conf/parse_opts.cc" yy651: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy663; + if (yych == 's') goto yy664; goto yy279; yy652: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'o') goto yy665; + if (yych == 'e') goto yy665; goto yy279; yy653: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy666; + 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" +yy656: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'y') goto yy667; + if (yych <= 0x00) goto yy667; goto yy279; -yy655: - ++YYCURSOR; -#line 150 "../src/conf/parse_opts.re" - { opts.set_iFlag (true); goto opt; } -#line 2644 "src/conf/parse_opts.cc" yy657: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'd') goto yy668; + if (yych == 'o') goto yy669; goto yy279; yy658: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'g') goto yy669; + if (yych == 't') goto yy670; goto yy279; yy659: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy670; + 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" +yy662: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy672; + if (yych == 'd') goto yy672; goto yy279; -yy661: +yy663: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy673; + if (yych == 'g') goto yy673; goto yy279; -yy662: +yy664: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'e') goto yy675; + if (yych <= 0x00) goto yy674; goto yy279; -yy663: - ++YYCURSOR; -#line 149 "../src/conf/parse_opts.re" - { opts.set_gFlag (true); goto opt; } -#line 2673 "src/conf/parse_opts.cc" yy665: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'n') goto yy676; + if (yych <= 0x00) goto yy676; goto yy279; yy666: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy677; + if (yych == 'e') goto yy678; goto yy279; yy667: + ++YYCURSOR; +#line 149 "../src/conf/parse_opts.re" + { opts.set_gFlag (true); goto opt; } +#line 2688 "src/conf/parse_opts.cc" +yy669: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy679; + if (yych == 'n') goto yy679; goto yy279; -yy668: +yy670: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 'a') goto yy681; + if (yych <= 0x00) goto yy680; goto yy279; -yy669: +yy671: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy682; + if (yych <= 0x00) goto yy682; goto yy279; -yy670: - ++YYCURSOR; -#line 155 "../src/conf/parse_opts.re" - { opts.set_posix_captures(true); goto opt; } -#line 2698 "src/conf/parse_opts.cc" yy672: yych = (YYCTYPE)*++YYCURSOR; - if (yych == 's') goto yy683; + if (yych == 'a') goto yy684; goto yy279; yy673: + yych = (YYCTYPE)*++YYCURSOR; + if (yych == 's') goto yy685; + goto yy279; +yy674: + ++YYCURSOR; +#line 155 "../src/conf/parse_opts.re" + { opts.set_posix_captures(true); goto opt; } +#line 2713 "src/conf/parse_opts.cc" +yy676: ++YYCURSOR; #line 140 "../src/conf/parse_opts.re" { globopts.fFlag = true; goto opt; } -#line 2707 "src/conf/parse_opts.cc" -yy675: +#line 2718 "src/conf/parse_opts.cc" +yy678: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy684; + if (yych <= 0x00) goto yy686; goto yy279; -yy676: +yy679: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy686; + if (yych <= 0x00) goto yy688; goto yy279; -yy677: +yy680: ++YYCURSOR; #line 175 "../src/conf/parse_opts.re" { globopts.dump_dfa_tagopt = true; goto opt; } -#line 2720 "src/conf/parse_opts.cc" -yy679: +#line 2731 "src/conf/parse_opts.cc" +yy682: ++YYCURSOR; #line 166 "../src/conf/parse_opts.re" { goto opt_encoding_policy; } -#line 2725 "src/conf/parse_opts.cc" -yy681: - yych = (YYCTYPE)*++YYCURSOR; - if (yych == 't') goto yy688; - goto yy279; -yy682: +#line 2736 "src/conf/parse_opts.cc" +yy684: yych = (YYCTYPE)*++YYCURSOR; - if (yych <= 0x00) goto yy689; + if (yych == 't') goto yy690; goto yy279; -yy683: +yy685: yych = (YYCTYPE)*++YYCURSOR; if (yych <= 0x00) goto yy691; goto yy279; -yy684: +yy686: ++YYCURSOR; #line 152 "../src/conf/parse_opts.re" { opts.set_bCaseInsensitive (true); goto opt; } -#line 2742 "src/conf/parse_opts.cc" -yy686: +#line 2749 "src/conf/parse_opts.cc" +yy688: ++YYCURSOR; #line 169 "../src/conf/parse_opts.re" { goto opt_dfa_minimization; } -#line 2747 "src/conf/parse_opts.cc" -yy688: +#line 2754 "src/conf/parse_opts.cc" +yy690: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'e') goto yy693; goto yy279; -yy689: +yy691: ++YYCURSOR; #line 157 "../src/conf/parse_opts.re" { opts.set_optimize_tags(false); goto opt; } -#line 2756 "src/conf/parse_opts.cc" -yy691: - ++YYCURSOR; -#line 138 "../src/conf/parse_opts.re" - { globopts.cFlag = true; goto opt; } -#line 2761 "src/conf/parse_opts.cc" +#line 2763 "src/conf/parse_opts.cc" yy693: yych = (YYCTYPE)*++YYCURSOR; if (yych >= 0x01) goto yy279; ++YYCURSOR; #line 143 "../src/conf/parse_opts.re" { globopts.bNoGenerationDate = true; goto opt; } -#line 2768 "src/conf/parse_opts.cc" +#line 2770 "src/conf/parse_opts.cc" } #line 178 "../src/conf/parse_opts.re" opt_output: -#line 2775 "src/conf/parse_opts.cc" +#line 2777 "src/conf/parse_opts.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -2818,7 +2820,7 @@ yy698: error ("bad argument to option -o, --output: %s", *argv); return EXIT_FAIL; } -#line 2822 "src/conf/parse_opts.cc" +#line 2824 "src/conf/parse_opts.cc" yy700: yych = (YYCTYPE)*++YYCURSOR; if (yybm[0+yych] & 128) { @@ -2827,14 +2829,14 @@ yy700: ++YYCURSOR; #line 187 "../src/conf/parse_opts.re" { globopts.output_file = *argv; goto opt; } -#line 2831 "src/conf/parse_opts.cc" +#line 2833 "src/conf/parse_opts.cc" } #line 188 "../src/conf/parse_opts.re" opt_header: -#line 2838 "src/conf/parse_opts.cc" +#line 2840 "src/conf/parse_opts.cc" { YYCTYPE yych; static const unsigned char yybm[] = { @@ -2881,7 +2883,7 @@ yy706: error ("bad argument to option -t, --type-header: %s", *argv); return EXIT_FAIL; } -#line 2885 "src/conf/parse_opts.cc" +#line 2887 "src/conf/parse_opts.cc" yy708: yych = (YYCTYPE)*++YYCURSOR; if (yybm[0+yych] & 128) { @@ -2890,7 +2892,7 @@ yy708: ++YYCURSOR; #line 197 "../src/conf/parse_opts.re" { globopts.header_file = *argv; goto opt; } -#line 2894 "src/conf/parse_opts.cc" +#line 2896 "src/conf/parse_opts.cc" } #line 198 "../src/conf/parse_opts.re" @@ -2902,7 +2904,7 @@ opt_encoding_policy: return EXIT_FAIL; } -#line 2906 "src/conf/parse_opts.cc" +#line 2908 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; @@ -2919,7 +2921,7 @@ yy715: error ("bad argument to option --encoding-policy (expected: ignore | substitute | fail): %s", *argv); return EXIT_FAIL; } -#line 2923 "src/conf/parse_opts.cc" +#line 2925 "src/conf/parse_opts.cc" yy716: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych == 'a') goto yy719; @@ -2974,7 +2976,7 @@ yy729: ++YYCURSOR; #line 214 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_FAIL); goto opt; } -#line 2978 "src/conf/parse_opts.cc" +#line 2980 "src/conf/parse_opts.cc" yy731: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'e') goto yy733; @@ -2995,7 +2997,7 @@ yy735: ++YYCURSOR; #line 212 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_IGNORE); goto opt; } -#line 2999 "src/conf/parse_opts.cc" +#line 3001 "src/conf/parse_opts.cc" yy737: yych = (YYCTYPE)*++YYCURSOR; if (yych != 'u') goto yy720; @@ -3008,7 +3010,7 @@ yy737: ++YYCURSOR; #line 213 "../src/conf/parse_opts.re" { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; } -#line 3012 "src/conf/parse_opts.cc" +#line 3014 "src/conf/parse_opts.cc" } #line 215 "../src/conf/parse_opts.re" @@ -3020,7 +3022,7 @@ opt_input: return EXIT_FAIL; } -#line 3024 "src/conf/parse_opts.cc" +#line 3026 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; @@ -3035,7 +3037,7 @@ yy746: error ("bad argument to option --input (expected: default | custom): %s", *argv); return EXIT_FAIL; } -#line 3039 "src/conf/parse_opts.cc" +#line 3041 "src/conf/parse_opts.cc" yy747: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych == 'u') goto yy749; @@ -3090,14 +3092,14 @@ yy760: ++YYCURSOR; #line 230 "../src/conf/parse_opts.re" { opts.set_input_api(INPUT_CUSTOM); goto opt; } -#line 3094 "src/conf/parse_opts.cc" +#line 3096 "src/conf/parse_opts.cc" yy762: yych = (YYCTYPE)*++YYCURSOR; if (yych >= 0x01) goto yy750; ++YYCURSOR; #line 229 "../src/conf/parse_opts.re" { opts.set_input_api(INPUT_DEFAULT); goto opt; } -#line 3101 "src/conf/parse_opts.cc" +#line 3103 "src/conf/parse_opts.cc" } #line 231 "../src/conf/parse_opts.re" @@ -3109,7 +3111,7 @@ opt_empty_class: return EXIT_FAIL; } -#line 3113 "src/conf/parse_opts.cc" +#line 3115 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; @@ -3122,7 +3124,7 @@ yy768: error ("bad argument to option --empty-class (expected: match-empty | match-none | error): %s", *argv); return EXIT_FAIL; } -#line 3126 "src/conf/parse_opts.cc" +#line 3128 "src/conf/parse_opts.cc" yy769: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych == 'r') goto yy771; @@ -3169,7 +3171,7 @@ yy780: ++YYCURSOR; #line 247 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_ERROR); goto opt; } -#line 3173 "src/conf/parse_opts.cc" +#line 3175 "src/conf/parse_opts.cc" yy782: yych = (YYCTYPE)*++YYCURSOR; if (yych == 'e') goto yy783; @@ -3215,12 +3217,12 @@ yy792: ++YYCURSOR; #line 246 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE); goto opt; } -#line 3219 "src/conf/parse_opts.cc" +#line 3221 "src/conf/parse_opts.cc" yy794: ++YYCURSOR; #line 245 "../src/conf/parse_opts.re" { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_EMPTY); goto opt; } -#line 3224 "src/conf/parse_opts.cc" +#line 3226 "src/conf/parse_opts.cc" } #line 248 "../src/conf/parse_opts.re" @@ -3232,7 +3234,7 @@ opt_dfa_minimization: return EXIT_FAIL; } -#line 3236 "src/conf/parse_opts.cc" +#line 3238 "src/conf/parse_opts.cc" { YYCTYPE yych; yych = (YYCTYPE)*YYCURSOR; @@ -3245,7 +3247,7 @@ yy799: error ("bad argument to option --dfa-minimization (expected: table | moore): %s", *argv); return EXIT_FAIL; } -#line 3249 "src/conf/parse_opts.cc" +#line 3251 "src/conf/parse_opts.cc" yy800: yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR); if (yych == 'o') goto yy802; @@ -3292,12 +3294,12 @@ yy811: ++YYCURSOR; #line 263 "../src/conf/parse_opts.re" { opts.set_dfa_minimization (DFA_MINIMIZATION_MOORE); goto opt; } -#line 3296 "src/conf/parse_opts.cc" +#line 3298 "src/conf/parse_opts.cc" yy813: ++YYCURSOR; #line 262 "../src/conf/parse_opts.re" { opts.set_dfa_minimization (DFA_MINIMIZATION_TABLE); goto opt; } -#line 3301 "src/conf/parse_opts.cc" +#line 3303 "src/conf/parse_opts.cc" } #line 264 "../src/conf/parse_opts.re" diff --git a/re2c/doc/manual/options/options_list.rst b/re2c/doc/manual/options/options_list.rst index 1ecebb53..a72d3feb 100644 --- a/re2c/doc/manual/options/options_list.rst +++ b/re2c/doc/manual/options/options_list.rst @@ -4,8 +4,9 @@ ``-b --bit-vectors`` Optimize conditional jumps using bit masks. Implies ``-s``. -``-c --conditions`` +``-c --conditions --start-conditions`` Enable support of Flex-like "conditions": multiple interrelated lexers within one block. + Option ``--start-conditions`` is a legacy alias; use ``--conditions`` instead. ``-d --debug-output`` Emit ``YYDEBUG`` in the generated code. diff --git a/re2c/src/conf/parse_opts.re b/re2c/src/conf/parse_opts.re index 793db75b..d3289d16 100644 --- a/re2c/src/conf/parse_opts.re +++ b/re2c/src/conf/parse_opts.re @@ -135,7 +135,7 @@ opt_long: "version" end { version (); return EXIT_OK; } "vernum" end { vernum (); return EXIT_OK; } - "start-conditions" end { globopts.cFlag = true; goto opt; } + "start-"? "conditions" end { globopts.cFlag = true; goto opt; } "emit-dot" end { globopts.target = TARGET_DOT; goto opt; } "storable-state" end { globopts.fFlag = true; goto opt; } "flex-syntax" end { globopts.FFlag = true; goto opt; } -- 2.40.0