]> granicus.if.org Git - re2c/commitdiff
Explicit cast of 'char' to 'unsigned char' in cmd options lexer.
authorUlya Trofimovich <skvadrik@gmail.com>
Tue, 11 Aug 2015 14:18:04 +0000 (15:18 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Tue, 11 Aug 2015 14:18:04 +0000 (15:18 +0100)
Much the same as previous commit, only this time YYCTYPE has been
erroneously set to 'char' instead of 'unsigned char. It didn't
cause any warnings or errors becase regular expressions contain
only ASCII range characters. However, relying on this is unsafe:
hypotheticlly re2c can generate some strange comparisons that compile
but fail in runtime.

Explicit cast makes sure thet all comparisons are between unsigned
values.

re2c/bootstrap/src/conf/parse_opts.cc
re2c/src/conf/parse_opts.re

index 879bfffe4905964b30b903af99f9fb524ee9f055..22d111c098a9cbaef6875ea6e112beb5e5257d8d 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 on Thu Aug  6 12:02:24 2015 */
+/* Generated by re2c 0.14.3 on Tue Aug 11 15:16:26 2015 */
 #line 1 "../src/conf/parse_opts.re"
 #include <stdio.h>
 
@@ -16,12 +16,12 @@ static inline bool next (char * & arg, char ** & argv)
 
 parse_opts_t parse_opts (char ** argv, Opt & opts)
 {
-#define YYCTYPE char
-       YYCTYPE * YYCURSOR;
-       YYCTYPE * YYMARKER;
+#define YYCTYPE unsigned char
+       char * YYCURSOR;
+       char * YYMARKER;
        Warn::option_t option;
 
-#line 27 "../src/conf/parse_opts.re"
+#line 28 "../src/conf/parse_opts.re"
 
 
 opt:
@@ -69,14 +69,14 @@ opt:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
 
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x00) goto yy2;
        if (yych == '-') goto yy5;
        goto yy4;
 yy2:
        ++YYCURSOR;
 yy3:
-#line 36 "../src/conf/parse_opts.re"
+#line 37 "../src/conf/parse_opts.re"
        {
                error ("bad option: %s", *argv);
                return EXIT_FAIL;
@@ -84,22 +84,22 @@ yy3:
 #line 85 "src/conf/parse_opts.cc"
 yy4:
        yyaccept = 0;
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        goto yy39;
 yy5:
        ++YYCURSOR;
-       if ((yych = *YYCURSOR) <= '-') {
+       if ((yych = (YYCTYPE)*YYCURSOR) <= '-') {
                if (yych <= 0x00) goto yy11;
                if (yych >= '-') goto yy9;
        } else {
                if (yych == 'W') goto yy7;
        }
-#line 59 "../src/conf/parse_opts.re"
+#line 60 "../src/conf/parse_opts.re"
        { goto opt_short; }
 #line 100 "src/conf/parse_opts.cc"
 yy7:
        yyaccept = 1;
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'e') {
                if (yych <= 0x00) goto yy15;
                if (yych >= 'e') goto yy17;
@@ -107,23 +107,23 @@ yy7:
                if (yych == 'n') goto yy19;
        }
 yy8:
-#line 64 "../src/conf/parse_opts.re"
+#line 65 "../src/conf/parse_opts.re"
        { option = Warn::W;        goto opt_warn; }
 #line 113 "src/conf/parse_opts.cc"
 yy9:
        ++YYCURSOR;
-       if ((yych = *YYCURSOR) <= 0x00) goto yy13;
-#line 60 "../src/conf/parse_opts.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy13;
+#line 61 "../src/conf/parse_opts.re"
        { goto opt_long; }
 #line 119 "src/conf/parse_opts.cc"
 yy11:
        ++YYCURSOR;
-#line 56 "../src/conf/parse_opts.re"
+#line 57 "../src/conf/parse_opts.re"
        { if (!opts.source ("<stdin>")) return EXIT_FAIL; goto opt; }
 #line 124 "src/conf/parse_opts.cc"
 yy13:
        ++YYCURSOR;
-#line 42 "../src/conf/parse_opts.re"
+#line 43 "../src/conf/parse_opts.re"
        {
                // all remaining arguments are non-options
                // so they must be input files
@@ -140,11 +140,11 @@ yy13:
 #line 141 "src/conf/parse_opts.cc"
 yy15:
        ++YYCURSOR;
-#line 62 "../src/conf/parse_opts.re"
+#line 63 "../src/conf/parse_opts.re"
        { warn.set_all ();       goto opt; }
 #line 146 "src/conf/parse_opts.cc"
 yy17:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'r') goto yy30;
 yy18:
        YYCURSOR = YYMARKER;
@@ -158,64 +158,64 @@ yy18:
                goto yy22;
        }
 yy19:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy18;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy18;
        yyaccept = 2;
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'e') goto yy23;
 yy22:
-#line 65 "../src/conf/parse_opts.re"
+#line 66 "../src/conf/parse_opts.re"
        { option = Warn::WNO;      goto opt_warn; }
 #line 172 "src/conf/parse_opts.cc"
 yy23:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy18;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy18;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy18;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy18;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy18;
        ++YYCURSOR;
-#line 67 "../src/conf/parse_opts.re"
+#line 68 "../src/conf/parse_opts.re"
        { option = Warn::WNOERROR; goto opt_warn; }
 #line 187 "src/conf/parse_opts.cc"
 yy30:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy18;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy18;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy18;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= 0x00) goto yy36;
        if (yych != '-') goto yy18;
        ++YYCURSOR;
-#line 66 "../src/conf/parse_opts.re"
+#line 67 "../src/conf/parse_opts.re"
        { option = Warn::WERROR;   goto opt_warn; }
 #line 201 "src/conf/parse_opts.cc"
 yy36:
        ++YYCURSOR;
-#line 63 "../src/conf/parse_opts.re"
+#line 64 "../src/conf/parse_opts.re"
        { warn.set_all_error (); goto opt; }
 #line 206 "src/conf/parse_opts.cc"
 yy38:
        ++YYCURSOR;
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
 yy39:
        if (yybm[0+yych] & 128) {
                goto yy38;
        }
        ++YYCURSOR;
-#line 57 "../src/conf/parse_opts.re"
+#line 58 "../src/conf/parse_opts.re"
        { if (!opts.source (*argv))     return EXIT_FAIL; goto opt; }
 #line 217 "src/conf/parse_opts.cc"
 }
-#line 68 "../src/conf/parse_opts.re"
+#line 69 "../src/conf/parse_opts.re"
 
 
 opt_warn:
@@ -223,7 +223,7 @@ opt_warn:
 #line 224 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'l') {
                if (yych == 'e') goto yy46;
        } else {
@@ -232,141 +232,141 @@ opt_warn:
        }
        ++YYCURSOR;
 yy45:
-#line 73 "../src/conf/parse_opts.re"
+#line 74 "../src/conf/parse_opts.re"
        {
                error ("bad warning: %s", *argv);
                return EXIT_FAIL;
        }
 #line 241 "src/conf/parse_opts.cc"
 yy46:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'm') goto yy83;
        goto yy45;
 yy47:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'a') goto yy64;
        goto yy45;
 yy48:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych != 'a') goto yy45;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'k') goto yy51;
 yy50:
        YYCURSOR = YYMARKER;
        goto yy45;
 yy51:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'f') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy50;
        ++YYCURSOR;
-#line 79 "../src/conf/parse_opts.re"
+#line 80 "../src/conf/parse_opts.re"
        { warn.set (Warn::NAKED_DEFAULT,         option); goto opt; }
 #line 284 "src/conf/parse_opts.cc"
 yy64:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'h') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'm') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'y') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'g') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy50;
        ++YYCURSOR;
-#line 78 "../src/conf/parse_opts.re"
+#line 79 "../src/conf/parse_opts.re"
        { warn.set (Warn::MATCH_EMPTY_STRING,    option); goto opt; }
 #line 323 "src/conf/parse_opts.cc"
 yy83:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'y') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'h') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy50;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy50;
        ++YYCURSOR;
-#line 77 "../src/conf/parse_opts.re"
+#line 78 "../src/conf/parse_opts.re"
        { warn.set (Warn::EMPTY_CHARACTER_CLASS, option); goto opt; }
 #line 368 "src/conf/parse_opts.cc"
 }
-#line 80 "../src/conf/parse_opts.re"
+#line 81 "../src/conf/parse_opts.re"
 
 
 opt_short:
@@ -374,7 +374,7 @@ opt_short:
 #line 375 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'c') {
                if (yych <= 'C') {
                        if (yych <= '7') {
@@ -431,12 +431,12 @@ opt_short:
        }
 yy107:
        ++YYCURSOR;
-#line 89 "../src/conf/parse_opts.re"
+#line 90 "../src/conf/parse_opts.re"
        { goto opt; }
 #line 437 "src/conf/parse_opts.cc"
 yy109:
        ++YYCURSOR;
-#line 85 "../src/conf/parse_opts.re"
+#line 86 "../src/conf/parse_opts.re"
        {
                error ("bad short option: %s", *argv);
                return EXIT_FAIL;
@@ -444,123 +444,123 @@ yy109:
 #line 445 "src/conf/parse_opts.cc"
 yy111:
        ++YYCURSOR;
-#line 112 "../src/conf/parse_opts.re"
+#line 113 "../src/conf/parse_opts.re"
        { goto opt_short; }
 #line 450 "src/conf/parse_opts.cc"
 yy113:
        ++YYCURSOR;
-#line 107 "../src/conf/parse_opts.re"
+#line 108 "../src/conf/parse_opts.re"
        { if (!opts.utf_8 ())      { error_encoding (); return EXIT_FAIL; } goto opt_short; }
 #line 455 "src/conf/parse_opts.cc"
 yy115:
        ++YYCURSOR;
-#line 90 "../src/conf/parse_opts.re"
+#line 91 "../src/conf/parse_opts.re"
        { usage ();   return EXIT_OK; }
 #line 460 "src/conf/parse_opts.cc"
 yy117:
        ++YYCURSOR;
-#line 96 "../src/conf/parse_opts.re"
+#line 97 "../src/conf/parse_opts.re"
        { opts.emit_dot ();         goto opt_short; }
 #line 465 "src/conf/parse_opts.cc"
 yy119:
        ++YYCURSOR;
-#line 98 "../src/conf/parse_opts.re"
+#line 99 "../src/conf/parse_opts.re"
        { opts.flex_syntax ();      goto opt_short; }
 #line 470 "src/conf/parse_opts.cc"
 yy121:
        ++YYCURSOR;
-#line 92 "../src/conf/parse_opts.re"
+#line 93 "../src/conf/parse_opts.re"
        { vernum ();  return EXIT_OK; }
 #line 475 "src/conf/parse_opts.cc"
 yy123:
        ++YYCURSOR;
-#line 93 "../src/conf/parse_opts.re"
+#line 94 "../src/conf/parse_opts.re"
        { opts.bit_vectors ();      goto opt_short; }
 #line 480 "src/conf/parse_opts.cc"
 yy125:
        ++YYCURSOR;
-#line 94 "../src/conf/parse_opts.re"
+#line 95 "../src/conf/parse_opts.re"
        { opts.start_conditions (); goto opt_short; }
 #line 485 "src/conf/parse_opts.cc"
 yy127:
        ++YYCURSOR;
-#line 95 "../src/conf/parse_opts.re"
+#line 96 "../src/conf/parse_opts.re"
        { opts.debug_output ();     goto opt_short; }
 #line 490 "src/conf/parse_opts.cc"
 yy129:
        ++YYCURSOR;
-#line 103 "../src/conf/parse_opts.re"
+#line 104 "../src/conf/parse_opts.re"
        { if (!opts.ecb ())        { error_encoding (); return EXIT_FAIL; } goto opt_short; }
 #line 495 "src/conf/parse_opts.cc"
 yy131:
        ++YYCURSOR;
-#line 97 "../src/conf/parse_opts.re"
+#line 98 "../src/conf/parse_opts.re"
        { opts.storable_state ();   goto opt_short; }
 #line 500 "src/conf/parse_opts.cc"
 yy133:
        ++YYCURSOR;
-#line 99 "../src/conf/parse_opts.re"
+#line 100 "../src/conf/parse_opts.re"
        { opts.computed_gotos ();   goto opt_short; }
 #line 505 "src/conf/parse_opts.cc"
 yy135:
        ++YYCURSOR;
-#line 100 "../src/conf/parse_opts.re"
+#line 101 "../src/conf/parse_opts.re"
        { opts.no_debug_info ();    goto opt_short; }
 #line 510 "src/conf/parse_opts.cc"
 yy137:
        ++YYCURSOR;
-       if ((yych = *YYCURSOR) <= 0x00) goto yy155;
-#line 109 "../src/conf/parse_opts.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy155;
+#line 110 "../src/conf/parse_opts.re"
        { *argv = YYCURSOR;                                                             goto opt_output; }
 #line 516 "src/conf/parse_opts.cc"
 yy139:
        ++YYCURSOR;
-#line 101 "../src/conf/parse_opts.re"
+#line 102 "../src/conf/parse_opts.re"
        { opts.reusable ();         goto opt_short; }
 #line 521 "src/conf/parse_opts.cc"
 yy141:
        ++YYCURSOR;
-#line 102 "../src/conf/parse_opts.re"
+#line 103 "../src/conf/parse_opts.re"
        { opts.nested_ifs ();       goto opt_short; }
 #line 526 "src/conf/parse_opts.cc"
 yy143:
        ++YYCURSOR;
-       if ((yych = *YYCURSOR) <= 0x00) goto yy153;
-#line 111 "../src/conf/parse_opts.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy153;
+#line 112 "../src/conf/parse_opts.re"
        { *argv = YYCURSOR;                                                                  goto opt_header; }
 #line 532 "src/conf/parse_opts.cc"
 yy145:
        ++YYCURSOR;
-#line 104 "../src/conf/parse_opts.re"
+#line 105 "../src/conf/parse_opts.re"
        { if (!opts.unicode ())    { error_encoding (); return EXIT_FAIL; } goto opt_short; }
 #line 537 "src/conf/parse_opts.cc"
 yy147:
        ++YYCURSOR;
-#line 91 "../src/conf/parse_opts.re"
+#line 92 "../src/conf/parse_opts.re"
        { version (); return EXIT_OK; }
 #line 542 "src/conf/parse_opts.cc"
 yy149:
        ++YYCURSOR;
-#line 105 "../src/conf/parse_opts.re"
+#line 106 "../src/conf/parse_opts.re"
        { if (!opts.wide_chars ()) { error_encoding (); return EXIT_FAIL; } goto opt_short; }
 #line 547 "src/conf/parse_opts.cc"
 yy151:
        ++YYCURSOR;
-#line 106 "../src/conf/parse_opts.re"
+#line 107 "../src/conf/parse_opts.re"
        { if (!opts.utf_16 ())     { error_encoding (); return EXIT_FAIL; } goto opt_short; }
 #line 552 "src/conf/parse_opts.cc"
 yy153:
        ++YYCURSOR;
-#line 110 "../src/conf/parse_opts.re"
+#line 111 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
 #line 557 "src/conf/parse_opts.cc"
 yy155:
        ++YYCURSOR;
-#line 108 "../src/conf/parse_opts.re"
+#line 109 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
 #line 562 "src/conf/parse_opts.cc"
 }
-#line 113 "../src/conf/parse_opts.re"
+#line 114 "../src/conf/parse_opts.re"
 
 
 opt_long:
@@ -568,7 +568,7 @@ opt_long:
 #line 569 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
        switch (yych) {
        case 'b':       goto yy161;
        case 'c':       goto yy162;
@@ -590,27 +590,27 @@ opt_long:
 yy159:
        ++YYCURSOR;
 yy160:
-#line 118 "../src/conf/parse_opts.re"
+#line 119 "../src/conf/parse_opts.re"
        {
                error ("bad long option: %s", *argv);
                return EXIT_FAIL;
        }
 #line 599 "src/conf/parse_opts.cc"
 yy161:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'i') goto yy457;
        goto yy160;
 yy162:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'a') goto yy417;
        if (yych == 'o') goto yy418;
        goto yy160;
 yy163:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'e') goto yy404;
        goto yy160;
 yy164:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'l') {
                if (yych == 'c') goto yy366;
                goto yy160;
@@ -620,32 +620,32 @@ yy164:
                goto yy160;
        }
 yy165:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'l') goto yy352;
        goto yy160;
 yy166:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'e') goto yy347;
        goto yy160;
 yy167:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'n') goto yy341;
        goto yy160;
 yy168:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'e') goto yy300;
        if (yych == 'o') goto yy299;
        goto yy160;
 yy169:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'u') goto yy292;
        goto yy160;
 yy170:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'e') goto yy283;
        goto yy160;
 yy171:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'j') {
                if (yych == 'i') goto yy231;
                goto yy160;
@@ -655,676 +655,676 @@ yy171:
                goto yy160;
        }
 yy172:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'y') goto yy219;
        goto yy160;
 yy173:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'n') goto yy202;
        if (yych == 't') goto yy201;
        goto yy160;
 yy174:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'e') goto yy188;
        goto yy160;
 yy175:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych != 'i') goto yy160;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'd') goto yy178;
 yy177:
        YYCURSOR = YYMARKER;
        goto yy160;
 yy178:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'h') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 141 "../src/conf/parse_opts.re"
+#line 142 "../src/conf/parse_opts.re"
        { if (!opts.wide_chars ()) { error_encoding (); return EXIT_FAIL; } goto opt; }
 #line 699 "src/conf/parse_opts.cc"
 yy188:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'n') goto yy190;
        if (yych == 's') goto yy191;
        goto yy177;
 yy190:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'u') goto yy197;
        goto yy177;
 yy191:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 123 "../src/conf/parse_opts.re"
+#line 124 "../src/conf/parse_opts.re"
        { version (); return EXIT_OK; }
 #line 723 "src/conf/parse_opts.cc"
 yy197:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'm') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 124 "../src/conf/parse_opts.re"
+#line 125 "../src/conf/parse_opts.re"
        { vernum ();  return EXIT_OK; }
 #line 732 "src/conf/parse_opts.cc"
 yy201:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'f') goto yy210;
        goto yy177;
 yy202:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 140 "../src/conf/parse_opts.re"
+#line 141 "../src/conf/parse_opts.re"
        { if (!opts.unicode ())    { error_encoding (); return EXIT_FAIL; } goto opt; }
 #line 753 "src/conf/parse_opts.cc"
 yy210:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '1') goto yy212;
        if (yych == '8') goto yy213;
        goto yy177;
 yy212:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '6') goto yy216;
        goto yy177;
 yy213:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 143 "../src/conf/parse_opts.re"
+#line 144 "../src/conf/parse_opts.re"
        { if (!opts.utf_8 ())      { error_encoding (); return EXIT_FAIL; } goto opt; }
 #line 771 "src/conf/parse_opts.cc"
 yy216:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 142 "../src/conf/parse_opts.re"
+#line 143 "../src/conf/parse_opts.re"
        { if (!opts.utf_16 ())     { error_encoding (); return EXIT_FAIL; } goto opt; }
 #line 778 "src/conf/parse_opts.cc"
 yy219:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'h') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 145 "../src/conf/parse_opts.re"
+#line 146 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
 #line 803 "src/conf/parse_opts.cc"
 yy231:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'n') goto yy272;
        goto yy177;
 yy232:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy264;
        goto yy177;
 yy233:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'a') goto yy234;
        if (yych == 'o') goto yy235;
        goto yy177;
 yy234:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'r') goto yy249;
        goto yy177;
 yy235:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'b') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 129 "../src/conf/parse_opts.re"
+#line 130 "../src/conf/parse_opts.re"
        { opts.storable_state ();     goto opt; }
 #line 849 "src/conf/parse_opts.cc"
 yy249:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 126 "../src/conf/parse_opts.re"
+#line 127 "../src/conf/parse_opts.re"
        { opts.start_conditions ();   goto opt; }
 #line 880 "src/conf/parse_opts.cc"
 yy264:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 138 "../src/conf/parse_opts.re"
+#line 139 "../src/conf/parse_opts.re"
        { opts.skeleton ();           goto opt; }
 #line 897 "src/conf/parse_opts.cc"
 yy272:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'g') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 149 "../src/conf/parse_opts.re"
+#line 150 "../src/conf/parse_opts.re"
        { goto opt; }
 #line 920 "src/conf/parse_opts.cc"
 yy283:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'b') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 133 "../src/conf/parse_opts.re"
+#line 134 "../src/conf/parse_opts.re"
        { opts.reusable ();           goto opt; }
 #line 939 "src/conf/parse_opts.cc"
 yy292:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 144 "../src/conf/parse_opts.re"
+#line 145 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
 #line 954 "src/conf/parse_opts.cc"
 yy299:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '-') goto yy311;
        goto yy177;
 yy300:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'f') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 134 "../src/conf/parse_opts.re"
+#line 135 "../src/conf/parse_opts.re"
        { opts.nested_ifs ();         goto opt; }
 #line 981 "src/conf/parse_opts.cc"
 yy311:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'd') goto yy313;
        if (yych != 'g') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy325;
        goto yy177;
 yy313:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'b') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'g') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'f') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 132 "../src/conf/parse_opts.re"
+#line 133 "../src/conf/parse_opts.re"
        { opts.no_debug_info ();      goto opt; }
 #line 1013 "src/conf/parse_opts.cc"
 yy325:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 135 "../src/conf/parse_opts.re"
+#line 136 "../src/conf/parse_opts.re"
        { opts.no_generation_date (); goto opt; }
 #line 1046 "src/conf/parse_opts.cc"
 yy341:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 147 "../src/conf/parse_opts.re"
+#line 148 "../src/conf/parse_opts.re"
        { goto opt_input; }
 #line 1059 "src/conf/parse_opts.cc"
 yy347:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 122 "../src/conf/parse_opts.re"
+#line 123 "../src/conf/parse_opts.re"
        { usage ();   return EXIT_OK; }
 #line 1070 "src/conf/parse_opts.cc"
 yy352:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'x') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'y') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'x') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 130 "../src/conf/parse_opts.re"
+#line 131 "../src/conf/parse_opts.re"
        { opts.flex_syntax ();        goto opt; }
 #line 1095 "src/conf/parse_opts.cc"
 yy364:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'i') goto yy385;
        if (yych == 'p') goto yy386;
        goto yy177;
 yy365:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'c') goto yy370;
        goto yy177;
 yy366:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'b') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 139 "../src/conf/parse_opts.re"
+#line 140 "../src/conf/parse_opts.re"
        { if (!opts.ecb ())        { error_encoding (); return EXIT_FAIL; } goto opt; }
 #line 1113 "src/conf/parse_opts.cc"
 yy370:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'g') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'y') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 146 "../src/conf/parse_opts.re"
+#line 147 "../src/conf/parse_opts.re"
        { goto opt_encoding_policy; }
 #line 1144 "src/conf/parse_opts.cc"
 yy385:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 't') goto yy397;
        goto yy177;
 yy386:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'y') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 148 "../src/conf/parse_opts.re"
+#line 149 "../src/conf/parse_opts.re"
        { goto opt_empty_class; }
 #line 1171 "src/conf/parse_opts.cc"
 yy397:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 128 "../src/conf/parse_opts.re"
+#line 129 "../src/conf/parse_opts.re"
        { opts.emit_dot ();           goto opt; }
 #line 1186 "src/conf/parse_opts.cc"
 yy404:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'b') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'g') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 127 "../src/conf/parse_opts.re"
+#line 128 "../src/conf/parse_opts.re"
        { opts.debug_output ();       goto opt; }
 #line 1213 "src/conf/parse_opts.cc"
 yy417:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 's') goto yy433;
        goto yy177;
 yy418:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'm') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'g') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 131 "../src/conf/parse_opts.re"
+#line 132 "../src/conf/parse_opts.re"
        { opts.computed_gotos ();     goto opt; }
 #line 1248 "src/conf/parse_opts.cc"
 yy433:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 's') goto yy439;
        if (yych != 'v') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy450;
        goto yy177;
 yy439:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'v') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 136 "../src/conf/parse_opts.re"
+#line 137 "../src/conf/parse_opts.re"
        { opts.case_insensitive ();   goto opt; }
 #line 1286 "src/conf/parse_opts.cc"
 yy450:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'd') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 137 "../src/conf/parse_opts.re"
+#line 138 "../src/conf/parse_opts.re"
        { opts.case_inverted ();      goto opt; }
 #line 1301 "src/conf/parse_opts.cc"
 yy457:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'v') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy177;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy177;
        ++YYCURSOR;
-#line 125 "../src/conf/parse_opts.re"
+#line 126 "../src/conf/parse_opts.re"
        { opts.bit_vectors ();        goto opt; }
 #line 1326 "src/conf/parse_opts.cc"
 }
-#line 150 "../src/conf/parse_opts.re"
+#line 151 "../src/conf/parse_opts.re"
 
 
 opt_output:
@@ -1366,33 +1366,33 @@ opt_output:
                128, 128, 128, 128, 128, 128, 128, 128, 
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x00) goto yy471;
        if (yych != '-') goto yy473;
 yy471:
        ++YYCURSOR;
-#line 155 "../src/conf/parse_opts.re"
+#line 156 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option -o, --output: %s", *argv);
                return EXIT_FAIL;
        }
 #line 1380 "src/conf/parse_opts.cc"
 yy473:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        goto yy475;
 yy474:
        ++YYCURSOR;
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
 yy475:
        if (yybm[0+yych] & 128) {
                goto yy474;
        }
        ++YYCURSOR;
-#line 159 "../src/conf/parse_opts.re"
+#line 160 "../src/conf/parse_opts.re"
        { if (!opts.output (*argv)) return EXIT_FAIL; goto opt; }
 #line 1394 "src/conf/parse_opts.cc"
 }
-#line 160 "../src/conf/parse_opts.re"
+#line 161 "../src/conf/parse_opts.re"
 
 
 opt_header:
@@ -1434,33 +1434,33 @@ opt_header:
                128, 128, 128, 128, 128, 128, 128, 128, 
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 0x00) goto yy480;
        if (yych != '-') goto yy482;
 yy480:
        ++YYCURSOR;
-#line 165 "../src/conf/parse_opts.re"
+#line 166 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option -t, --type-header: %s", *argv);
                return EXIT_FAIL;
        }
 #line 1448 "src/conf/parse_opts.cc"
 yy482:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        goto yy484;
 yy483:
        ++YYCURSOR;
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
 yy484:
        if (yybm[0+yych] & 128) {
                goto yy483;
        }
        ++YYCURSOR;
-#line 169 "../src/conf/parse_opts.re"
+#line 170 "../src/conf/parse_opts.re"
        { if (!opts.type_header (*argv)) return EXIT_FAIL; goto opt; }
 #line 1462 "src/conf/parse_opts.cc"
 }
-#line 170 "../src/conf/parse_opts.re"
+#line 171 "../src/conf/parse_opts.re"
 
 
 opt_encoding_policy:
@@ -1473,7 +1473,7 @@ opt_encoding_policy:
 #line 1474 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'h') {
                if (yych == 'f') goto yy491;
        } else {
@@ -1482,77 +1482,77 @@ opt_encoding_policy:
        }
        ++YYCURSOR;
 yy490:
-#line 180 "../src/conf/parse_opts.re"
+#line 181 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --encoding-policy (expected: ignore | substitute | fail): %s", *argv);
                return EXIT_FAIL;
        }
 #line 1491 "src/conf/parse_opts.cc"
 yy491:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'a') goto yy513;
        goto yy490;
 yy492:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'g') goto yy506;
        goto yy490;
 yy493:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych != 'u') goto yy490;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'b') goto yy496;
 yy495:
        YYCURSOR = YYMARKER;
        goto yy490;
 yy496:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy495;
        ++YYCURSOR;
-#line 185 "../src/conf/parse_opts.re"
+#line 186 "../src/conf/parse_opts.re"
        { opts.encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; }
 #line 1528 "src/conf/parse_opts.cc"
 yy506:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy495;
        ++YYCURSOR;
-#line 184 "../src/conf/parse_opts.re"
+#line 185 "../src/conf/parse_opts.re"
        { opts.encoding_policy (Enc::POLICY_IGNORE);     goto opt; }
 #line 1543 "src/conf/parse_opts.cc"
 yy513:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'i') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy495;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy495;
        ++YYCURSOR;
-#line 186 "../src/conf/parse_opts.re"
+#line 187 "../src/conf/parse_opts.re"
        { opts.encoding_policy (Enc::POLICY_FAIL);       goto opt; }
 #line 1554 "src/conf/parse_opts.cc"
 }
-#line 187 "../src/conf/parse_opts.re"
+#line 188 "../src/conf/parse_opts.re"
 
 
 opt_input:
@@ -1565,63 +1565,63 @@ opt_input:
 #line 1566 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'b') goto yy520;
        if (yych <= 'c') goto yy522;
        if (yych <= 'd') goto yy523;
 yy520:
        ++YYCURSOR;
 yy521:
-#line 197 "../src/conf/parse_opts.re"
+#line 198 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --input (expected: default | custom): %s", *argv);
                return EXIT_FAIL;
        }
 #line 1581 "src/conf/parse_opts.cc"
 yy522:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'u') goto yy533;
        goto yy521;
 yy523:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych != 'e') goto yy521;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'f') goto yy526;
 yy525:
        YYCURSOR = YYMARKER;
        goto yy521;
 yy526:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'a') goto yy525;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'u') goto yy525;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'l') goto yy525;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy525;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy525;
        ++YYCURSOR;
-#line 201 "../src/conf/parse_opts.re"
+#line 202 "../src/conf/parse_opts.re"
        { opts.input (InputAPI::DEFAULT); goto opt; }
 #line 1608 "src/conf/parse_opts.cc"
 yy533:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 's') goto yy525;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy525;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy525;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'm') goto yy525;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy525;
        ++YYCURSOR;
-#line 202 "../src/conf/parse_opts.re"
+#line 203 "../src/conf/parse_opts.re"
        { opts.input (InputAPI::CUSTOM);  goto opt; }
 #line 1623 "src/conf/parse_opts.cc"
 }
-#line 203 "../src/conf/parse_opts.re"
+#line 204 "../src/conf/parse_opts.re"
 
 
 opt_empty_class:
@@ -1634,85 +1634,85 @@ opt_empty_class:
 #line 1635 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
-       yych = *YYCURSOR;
+       yych = (YYCTYPE)*YYCURSOR;
        if (yych == 'e') goto yy544;
        if (yych == 'm') goto yy545;
        ++YYCURSOR;
 yy543:
-#line 213 "../src/conf/parse_opts.re"
+#line 214 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --empty-class (expected: match-empty | match-none | error): %s", *argv);
                return EXIT_FAIL;
        }
 #line 1648 "src/conf/parse_opts.cc"
 yy544:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == 'r') goto yy565;
        goto yy543;
 yy545:
-       yych = *(YYMARKER = ++YYCURSOR);
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych != 'a') goto yy543;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 't') goto yy548;
 yy547:
        YYCURSOR = YYMARKER;
        goto yy543;
 yy548:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'h') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '-') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'e') goto yy552;
        if (yych == 'n') goto yy553;
        goto yy547;
 yy552:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych == 'm') goto yy559;
        goto yy547;
 yy553:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'n') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'e') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy547;
        ++YYCURSOR;
-#line 218 "../src/conf/parse_opts.re"
+#line 219 "../src/conf/parse_opts.re"
        { opts.empty_class (EMPTY_CLASS_MATCH_NONE);  goto opt; }
 #line 1688 "src/conf/parse_opts.cc"
 yy559:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'p') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 't') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'y') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy547;
        ++YYCURSOR;
-#line 217 "../src/conf/parse_opts.re"
+#line 218 "../src/conf/parse_opts.re"
        { opts.empty_class (EMPTY_CLASS_MATCH_EMPTY); goto opt; }
 #line 1701 "src/conf/parse_opts.cc"
 yy565:
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'o') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'r') goto yy547;
-       yych = *++YYCURSOR;
+       yych = (YYCTYPE)*++YYCURSOR;
        if (yych >= 0x01) goto yy547;
        ++YYCURSOR;
-#line 219 "../src/conf/parse_opts.re"
+#line 220 "../src/conf/parse_opts.re"
        { opts.empty_class (EMPTY_CLASS_ERROR);       goto opt; }
 #line 1714 "src/conf/parse_opts.cc"
 }
-#line 220 "../src/conf/parse_opts.re"
+#line 221 "../src/conf/parse_opts.re"
 
 
 end:
index 8dca84356c67122d540737d22646080c999e6578..4779715349791530e311df5cf55ac0f602142e25 100644 (file)
@@ -14,13 +14,14 @@ static inline bool next (char * & arg, char ** & argv)
 
 parse_opts_t parse_opts (char ** argv, Opt & opts)
 {
-#define YYCTYPE char
-       YYCTYPE * YYCURSOR;
-       YYCTYPE * YYMARKER;
+#define YYCTYPE unsigned char
+       char * YYCURSOR;
+       char * YYMARKER;
        Warn::option_t option;
 
 /*!re2c
        re2c:yyfill:enable = 0;
+       re2c:yych:conversion = 1;
 
        end = "\x00";
        filename = [^\x00-] [^\x00]*;