]> granicus.if.org Git - re2c/commitdiff
Added option "--conditions" (an alias for "-c" and "--start-conditions").
authorUlya Trofimovich <skvadrik@gmail.com>
Mon, 11 Jun 2018 20:27:27 +0000 (21:27 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Mon, 11 Jun 2018 20:27:27 +0000 (21:27 +0100)
Fixes issue #206 "wrong long option for -c mode".

re2c/bootstrap/doc/re2c.1
re2c/bootstrap/src/conf/help.cc
re2c/bootstrap/src/conf/parse_opts.cc
re2c/doc/manual/options/options_list.rst
re2c/src/conf/parse_opts.re

index 611055630fe26d4161f712c6f3006d5b05491bf4..dc268693139c5f0aa6356451ad148252d3e8486a 100644 (file)
@@ -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.
 .
index 6e14c0689a75185c6178b201c8386f77bbebcb82..3af140d6f8493872025506b8069ca993785209eb 100644 (file)
@@ -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<warning>\n"
@@ -209,43 +210,43 @@ const char *help =
 "              Turn off warning.\n"
 "\n"
 "       -Werror-<warning>\n"
-"              Turn on warning and treat it as an error (this implies  -W<warn‐\n"
+"              Turn  on warning and treat it as an error (this implies -W<warn‐\n"
 "              ing>).\n"
 "\n"
 "       -Wno-error-<warning>\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"
 ;
index 3d59fe821ab1f41792468fc13afff7b26ff7da81..e59f681136043a56db0168ea7b0622b268ddd97a 100644 (file)
@@ -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"
 
index 1ecebb531bbde84b99401509c2ad6386dbe8e93b..a72d3febc89e730bb27f4426f431f4ad931932ec 100644 (file)
@@ -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.
index 793db75b40cecb445f6f8abf7fc671747edabed4..d3289d164521f0cc9ab5918688a14e6a917e6572 100644 (file)
@@ -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; }