]> granicus.if.org Git - re2c/commitdiff
Added warning '-Wswapped-range'.
authorUlya Trofimovich <skvadrik@gmail.com>
Tue, 18 Aug 2015 16:14:45 +0000 (17:14 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Tue, 18 Aug 2015 16:14:45 +0000 (17:14 +0100)
When re2c parses character class and finds a range with lower bound
greater than upper bound, it silently swaps bounds. Warn about such
cases.

re2c/bootstrap/src/conf/parse_opts.cc
re2c/src/conf/parse_opts.re
re2c/src/conf/warn.cc
re2c/src/conf/warn.h
re2c/src/ir/regexp/regexp.cc
re2c/test/class1.i.c
re2c/test/class2.i.c
re2c/test/class3.i8.c
re2c/test/class4.i.c

index 22d111c098a9cbaef6875ea6e112beb5e5257d8d..bc05ed101a171d1e8c69d3197cb208df3fdd09dd 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 on Tue Aug 11 15:16:26 2015 */
+/* Generated by re2c 0.14.3 on Tue Aug 18 16:46:59 2015 */
 #line 1 "../src/conf/parse_opts.re"
 #include <stdio.h>
 
@@ -224,11 +224,12 @@ opt_warn:
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 'l') {
+       if (yych <= 'm') {
                if (yych == 'e') goto yy46;
+               if (yych >= 'm') goto yy47;
        } else {
-               if (yych <= 'm') goto yy47;
                if (yych <= 'n') goto yy48;
+               if (yych == 's') goto yy49;
        }
        ++YYCURSOR;
 yy45:
@@ -237,1099 +238,1132 @@ yy45:
                error ("bad warning: %s", *argv);
                return EXIT_FAIL;
        }
-#line 241 "src/conf/parse_opts.cc"
+#line 242 "src/conf/parse_opts.cc"
 yy46:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'm') goto yy83;
+       if (yych == 'm') goto yy98;
        goto yy45;
 yy47:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy64;
+       if (yych == 'a') goto yy79;
        goto yy45;
 yy48:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'a') goto yy45;
+       if (yych == 'a') goto yy65;
+       goto yy45;
+yy49:
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych != 'w') goto yy45;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'k') goto yy51;
-yy50:
+       if (yych == 'a') goto yy52;
+yy51:
        YYCURSOR = YYMARKER;
        goto yy45;
-yy51:
+yy52:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'p') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'p') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'e') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'd') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != '-') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'r') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'a') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'n') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy50;
+       if (yych != 'g') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy50;
+       if (yych != 'e') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy50;
+       if (yych >= 0x01) goto yy51;
+       ++YYCURSOR;
+#line 81 "../src/conf/parse_opts.re"
+       { warn.set (Warn::SWAPPED_RANGE,         option); goto opt; }
+#line 289 "src/conf/parse_opts.cc"
+yy65:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'k') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'e') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy50;
+       if (yych != 'd') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy50;
+       if (yych != '-') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'f') goto yy50;
+       if (yych != 'd') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy50;
+       if (yych != 'e') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy50;
+       if (yych != 'f') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy50;
+       if (yych != 'a') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy50;
+       if (yych != 'u') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy50;
+       if (yych != 'l') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 't') goto yy51;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych >= 0x01) goto yy51;
        ++YYCURSOR;
 #line 80 "../src/conf/parse_opts.re"
        { warn.set (Warn::NAKED_DEFAULT,         option); goto opt; }
-#line 284 "src/conf/parse_opts.cc"
-yy64:
+#line 318 "src/conf/parse_opts.cc"
+yy79:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy50;
+       if (yych != 't') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy50;
+       if (yych != 'c') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy50;
+       if (yych != 'h') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy50;
+       if (yych != '-') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy50;
+       if (yych != 'e') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'm') goto yy50;
+       if (yych != 'm') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy50;
+       if (yych != 'p') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy50;
+       if (yych != 't') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy50;
+       if (yych != 'y') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy50;
+       if (yych != '-') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy50;
+       if (yych != 's') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy50;
+       if (yych != 't') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy50;
+       if (yych != 'r') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy50;
+       if (yych != 'i') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy50;
+       if (yych != 'n') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy50;
+       if (yych != 'g') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy50;
+       if (yych >= 0x01) goto yy51;
        ++YYCURSOR;
 #line 79 "../src/conf/parse_opts.re"
        { warn.set (Warn::MATCH_EMPTY_STRING,    option); goto opt; }
-#line 323 "src/conf/parse_opts.cc"
-yy83:
+#line 357 "src/conf/parse_opts.cc"
+yy98:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy50;
+       if (yych != 'p') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy50;
+       if (yych != 't') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy50;
+       if (yych != 'y') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy50;
+       if (yych != '-') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy50;
+       if (yych != 'c') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy50;
+       if (yych != 'h') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy50;
+       if (yych != 'a') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy50;
+       if (yych != 'r') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy50;
+       if (yych != 'a') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy50;
+       if (yych != 'c') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy50;
+       if (yych != 't') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy50;
+       if (yych != 'e') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy50;
+       if (yych != 'r') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy50;
+       if (yych != '-') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy50;
+       if (yych != 'c') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy50;
+       if (yych != 'l') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy50;
+       if (yych != 'a') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy50;
+       if (yych != 's') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy50;
+       if (yych != 's') goto yy51;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy50;
+       if (yych >= 0x01) goto yy51;
        ++YYCURSOR;
 #line 78 "../src/conf/parse_opts.re"
        { warn.set (Warn::EMPTY_CHARACTER_CLASS, option); goto opt; }
-#line 368 "src/conf/parse_opts.cc"
+#line 402 "src/conf/parse_opts.cc"
 }
-#line 81 "../src/conf/parse_opts.re"
+#line 82 "../src/conf/parse_opts.re"
 
 
 opt_short:
 
-#line 375 "src/conf/parse_opts.cc"
+#line 409 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'c') {
                if (yych <= 'C') {
                        if (yych <= '7') {
-                               if (yych <= 0x00) goto yy107;
-                               if (yych == '1') goto yy111;
-                               goto yy109;
+                               if (yych <= 0x00) goto yy122;
+                               if (yych == '1') goto yy126;
+                               goto yy124;
                        } else {
-                               if (yych <= '8') goto yy113;
-                               if (yych == '?') goto yy115;
-                               goto yy109;
+                               if (yych <= '8') goto yy128;
+                               if (yych == '?') goto yy130;
+                               goto yy124;
                        }
                } else {
                        if (yych <= 'U') {
-                               if (yych <= 'D') goto yy117;
-                               if (yych == 'F') goto yy119;
-                               goto yy109;
+                               if (yych <= 'D') goto yy132;
+                               if (yych == 'F') goto yy134;
+                               goto yy124;
                        } else {
-                               if (yych <= 'V') goto yy121;
-                               if (yych <= 'a') goto yy109;
-                               if (yych <= 'b') goto yy123;
-                               goto yy125;
+                               if (yych <= 'V') goto yy136;
+                               if (yych <= 'a') goto yy124;
+                               if (yych <= 'b') goto yy138;
+                               goto yy140;
                        }
                }
        } else {
                if (yych <= 'o') {
                        if (yych <= 'g') {
-                               if (yych <= 'd') goto yy127;
-                               if (yych <= 'e') goto yy129;
-                               if (yych <= 'f') goto yy131;
-                               goto yy133;
+                               if (yych <= 'd') goto yy142;
+                               if (yych <= 'e') goto yy144;
+                               if (yych <= 'f') goto yy146;
+                               goto yy148;
                        } else {
-                               if (yych <= 'h') goto yy115;
-                               if (yych <= 'i') goto yy135;
-                               if (yych <= 'n') goto yy109;
-                               goto yy137;
+                               if (yych <= 'h') goto yy130;
+                               if (yych <= 'i') goto yy150;
+                               if (yych <= 'n') goto yy124;
+                               goto yy152;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych <= 'q') goto yy109;
-                               if (yych <= 'r') goto yy139;
-                               if (yych <= 's') goto yy141;
-                               goto yy143;
+                               if (yych <= 'q') goto yy124;
+                               if (yych <= 'r') goto yy154;
+                               if (yych <= 's') goto yy156;
+                               goto yy158;
                        } else {
                                if (yych <= 'v') {
-                                       if (yych <= 'u') goto yy145;
-                                       goto yy147;
+                                       if (yych <= 'u') goto yy160;
+                                       goto yy162;
                                } else {
-                                       if (yych <= 'w') goto yy149;
-                                       if (yych <= 'x') goto yy151;
-                                       goto yy109;
+                                       if (yych <= 'w') goto yy164;
+                                       if (yych <= 'x') goto yy166;
+                                       goto yy124;
                                }
                        }
                }
        }
-yy107:
+yy122:
        ++YYCURSOR;
-#line 90 "../src/conf/parse_opts.re"
+#line 91 "../src/conf/parse_opts.re"
        { goto opt; }
-#line 437 "src/conf/parse_opts.cc"
-yy109:
+#line 471 "src/conf/parse_opts.cc"
+yy124:
        ++YYCURSOR;
-#line 86 "../src/conf/parse_opts.re"
+#line 87 "../src/conf/parse_opts.re"
        {
                error ("bad short option: %s", *argv);
                return EXIT_FAIL;
        }
-#line 445 "src/conf/parse_opts.cc"
-yy111:
+#line 479 "src/conf/parse_opts.cc"
+yy126:
        ++YYCURSOR;
-#line 113 "../src/conf/parse_opts.re"
+#line 114 "../src/conf/parse_opts.re"
        { goto opt_short; }
-#line 450 "src/conf/parse_opts.cc"
-yy113:
+#line 484 "src/conf/parse_opts.cc"
+yy128:
        ++YYCURSOR;
-#line 108 "../src/conf/parse_opts.re"
+#line 109 "../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:
+#line 489 "src/conf/parse_opts.cc"
+yy130:
        ++YYCURSOR;
-#line 91 "../src/conf/parse_opts.re"
+#line 92 "../src/conf/parse_opts.re"
        { usage ();   return EXIT_OK; }
-#line 460 "src/conf/parse_opts.cc"
-yy117:
+#line 494 "src/conf/parse_opts.cc"
+yy132:
        ++YYCURSOR;
-#line 97 "../src/conf/parse_opts.re"
+#line 98 "../src/conf/parse_opts.re"
        { opts.emit_dot ();         goto opt_short; }
-#line 465 "src/conf/parse_opts.cc"
-yy119:
+#line 499 "src/conf/parse_opts.cc"
+yy134:
        ++YYCURSOR;
-#line 99 "../src/conf/parse_opts.re"
+#line 100 "../src/conf/parse_opts.re"
        { opts.flex_syntax ();      goto opt_short; }
-#line 470 "src/conf/parse_opts.cc"
-yy121:
+#line 504 "src/conf/parse_opts.cc"
+yy136:
        ++YYCURSOR;
-#line 93 "../src/conf/parse_opts.re"
+#line 94 "../src/conf/parse_opts.re"
        { vernum ();  return EXIT_OK; }
-#line 475 "src/conf/parse_opts.cc"
-yy123:
+#line 509 "src/conf/parse_opts.cc"
+yy138:
        ++YYCURSOR;
-#line 94 "../src/conf/parse_opts.re"
+#line 95 "../src/conf/parse_opts.re"
        { opts.bit_vectors ();      goto opt_short; }
-#line 480 "src/conf/parse_opts.cc"
-yy125:
+#line 514 "src/conf/parse_opts.cc"
+yy140:
        ++YYCURSOR;
-#line 95 "../src/conf/parse_opts.re"
+#line 96 "../src/conf/parse_opts.re"
        { opts.start_conditions (); goto opt_short; }
-#line 485 "src/conf/parse_opts.cc"
-yy127:
+#line 519 "src/conf/parse_opts.cc"
+yy142:
        ++YYCURSOR;
-#line 96 "../src/conf/parse_opts.re"
+#line 97 "../src/conf/parse_opts.re"
        { opts.debug_output ();     goto opt_short; }
-#line 490 "src/conf/parse_opts.cc"
-yy129:
+#line 524 "src/conf/parse_opts.cc"
+yy144:
        ++YYCURSOR;
-#line 104 "../src/conf/parse_opts.re"
+#line 105 "../src/conf/parse_opts.re"
        { if (!opts.ecb ())        { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 495 "src/conf/parse_opts.cc"
-yy131:
+#line 529 "src/conf/parse_opts.cc"
+yy146:
        ++YYCURSOR;
-#line 98 "../src/conf/parse_opts.re"
+#line 99 "../src/conf/parse_opts.re"
        { opts.storable_state ();   goto opt_short; }
-#line 500 "src/conf/parse_opts.cc"
-yy133:
+#line 534 "src/conf/parse_opts.cc"
+yy148:
        ++YYCURSOR;
-#line 100 "../src/conf/parse_opts.re"
+#line 101 "../src/conf/parse_opts.re"
        { opts.computed_gotos ();   goto opt_short; }
-#line 505 "src/conf/parse_opts.cc"
-yy135:
+#line 539 "src/conf/parse_opts.cc"
+yy150:
        ++YYCURSOR;
-#line 101 "../src/conf/parse_opts.re"
+#line 102 "../src/conf/parse_opts.re"
        { opts.no_debug_info ();    goto opt_short; }
-#line 510 "src/conf/parse_opts.cc"
-yy137:
+#line 544 "src/conf/parse_opts.cc"
+yy152:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy155;
-#line 110 "../src/conf/parse_opts.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy170;
+#line 111 "../src/conf/parse_opts.re"
        { *argv = YYCURSOR;                                                             goto opt_output; }
-#line 516 "src/conf/parse_opts.cc"
-yy139:
+#line 550 "src/conf/parse_opts.cc"
+yy154:
        ++YYCURSOR;
-#line 102 "../src/conf/parse_opts.re"
+#line 103 "../src/conf/parse_opts.re"
        { opts.reusable ();         goto opt_short; }
-#line 521 "src/conf/parse_opts.cc"
-yy141:
+#line 555 "src/conf/parse_opts.cc"
+yy156:
        ++YYCURSOR;
-#line 103 "../src/conf/parse_opts.re"
+#line 104 "../src/conf/parse_opts.re"
        { opts.nested_ifs ();       goto opt_short; }
-#line 526 "src/conf/parse_opts.cc"
-yy143:
+#line 560 "src/conf/parse_opts.cc"
+yy158:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy153;
-#line 112 "../src/conf/parse_opts.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy168;
+#line 113 "../src/conf/parse_opts.re"
        { *argv = YYCURSOR;                                                                  goto opt_header; }
-#line 532 "src/conf/parse_opts.cc"
-yy145:
+#line 566 "src/conf/parse_opts.cc"
+yy160:
        ++YYCURSOR;
-#line 105 "../src/conf/parse_opts.re"
+#line 106 "../src/conf/parse_opts.re"
        { if (!opts.unicode ())    { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 537 "src/conf/parse_opts.cc"
-yy147:
+#line 571 "src/conf/parse_opts.cc"
+yy162:
        ++YYCURSOR;
-#line 92 "../src/conf/parse_opts.re"
+#line 93 "../src/conf/parse_opts.re"
        { version (); return EXIT_OK; }
-#line 542 "src/conf/parse_opts.cc"
-yy149:
+#line 576 "src/conf/parse_opts.cc"
+yy164:
        ++YYCURSOR;
-#line 106 "../src/conf/parse_opts.re"
+#line 107 "../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:
+#line 581 "src/conf/parse_opts.cc"
+yy166:
        ++YYCURSOR;
-#line 107 "../src/conf/parse_opts.re"
+#line 108 "../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:
+#line 586 "src/conf/parse_opts.cc"
+yy168:
        ++YYCURSOR;
-#line 111 "../src/conf/parse_opts.re"
+#line 112 "../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:
+#line 591 "src/conf/parse_opts.cc"
+yy170:
        ++YYCURSOR;
-#line 109 "../src/conf/parse_opts.re"
+#line 110 "../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 596 "src/conf/parse_opts.cc"
 }
-#line 114 "../src/conf/parse_opts.re"
+#line 115 "../src/conf/parse_opts.re"
 
 
 opt_long:
 
-#line 569 "src/conf/parse_opts.cc"
+#line 603 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        switch (yych) {
-       case 'b':       goto yy161;
-       case 'c':       goto yy162;
-       case 'd':       goto yy163;
-       case 'e':       goto yy164;
-       case 'f':       goto yy165;
-       case 'h':       goto yy166;
-       case 'i':       goto yy167;
-       case 'n':       goto yy168;
-       case 'o':       goto yy169;
-       case 'r':       goto yy170;
-       case 's':       goto yy171;
-       case 't':       goto yy172;
-       case 'u':       goto yy173;
-       case 'v':       goto yy174;
-       case 'w':       goto yy175;
-       default:        goto yy159;
+       case 'b':       goto yy176;
+       case 'c':       goto yy177;
+       case 'd':       goto yy178;
+       case 'e':       goto yy179;
+       case 'f':       goto yy180;
+       case 'h':       goto yy181;
+       case 'i':       goto yy182;
+       case 'n':       goto yy183;
+       case 'o':       goto yy184;
+       case 'r':       goto yy185;
+       case 's':       goto yy186;
+       case 't':       goto yy187;
+       case 'u':       goto yy188;
+       case 'v':       goto yy189;
+       case 'w':       goto yy190;
+       default:        goto yy174;
        }
-yy159:
+yy174:
        ++YYCURSOR;
-yy160:
-#line 119 "../src/conf/parse_opts.re"
+yy175:
+#line 120 "../src/conf/parse_opts.re"
        {
                error ("bad long option: %s", *argv);
                return EXIT_FAIL;
        }
-#line 599 "src/conf/parse_opts.cc"
-yy161:
+#line 633 "src/conf/parse_opts.cc"
+yy176:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'i') goto yy457;
-       goto yy160;
-yy162:
+       if (yych == 'i') goto yy472;
+       goto yy175;
+yy177:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy417;
-       if (yych == 'o') goto yy418;
-       goto yy160;
-yy163:
+       if (yych == 'a') goto yy432;
+       if (yych == 'o') goto yy433;
+       goto yy175;
+yy178:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy404;
-       goto yy160;
-yy164:
+       if (yych == 'e') goto yy419;
+       goto yy175;
+yy179:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'l') {
-               if (yych == 'c') goto yy366;
-               goto yy160;
+               if (yych == 'c') goto yy381;
+               goto yy175;
        } else {
-               if (yych <= 'm') goto yy364;
-               if (yych <= 'n') goto yy365;
-               goto yy160;
+               if (yych <= 'm') goto yy379;
+               if (yych <= 'n') goto yy380;
+               goto yy175;
        }
-yy165:
+yy180:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'l') goto yy352;
-       goto yy160;
-yy166:
+       if (yych == 'l') goto yy367;
+       goto yy175;
+yy181:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy347;
-       goto yy160;
-yy167:
+       if (yych == 'e') goto yy362;
+       goto yy175;
+yy182:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy341;
-       goto yy160;
-yy168:
+       if (yych == 'n') goto yy356;
+       goto yy175;
+yy183:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy300;
-       if (yych == 'o') goto yy299;
-       goto yy160;
-yy169:
+       if (yych == 'e') goto yy315;
+       if (yych == 'o') goto yy314;
+       goto yy175;
+yy184:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy292;
-       goto yy160;
-yy170:
+       if (yych == 'u') goto yy307;
+       goto yy175;
+yy185:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy283;
-       goto yy160;
-yy171:
+       if (yych == 'e') goto yy298;
+       goto yy175;
+yy186:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'j') {
-               if (yych == 'i') goto yy231;
-               goto yy160;
+               if (yych == 'i') goto yy246;
+               goto yy175;
        } else {
-               if (yych <= 'k') goto yy232;
-               if (yych == 't') goto yy233;
-               goto yy160;
+               if (yych <= 'k') goto yy247;
+               if (yych == 't') goto yy248;
+               goto yy175;
        }
-yy172:
+yy187:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'y') goto yy219;
-       goto yy160;
-yy173:
+       if (yych == 'y') goto yy234;
+       goto yy175;
+yy188:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy202;
-       if (yych == 't') goto yy201;
-       goto yy160;
-yy174:
+       if (yych == 'n') goto yy217;
+       if (yych == 't') goto yy216;
+       goto yy175;
+yy189:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy188;
-       goto yy160;
-yy175:
+       if (yych == 'e') goto yy203;
+       goto yy175;
+yy190:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'i') goto yy160;
+       if (yych != 'i') goto yy175;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy178;
-yy177:
+       if (yych == 'd') goto yy193;
+yy192:
        YYCURSOR = YYMARKER;
-       goto yy160;
-yy178:
+       goto yy175;
+yy193:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy177;
+       if (yych != 'c') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy177;
+       if (yych != 'h') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy177;
+       if (yych != 'r') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 142 "../src/conf/parse_opts.re"
+#line 143 "../src/conf/parse_opts.re"
        { if (!opts.wide_chars ()) { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 699 "src/conf/parse_opts.cc"
-yy188:
+#line 733 "src/conf/parse_opts.cc"
+yy203:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy177;
+       if (yych != 'r') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy190;
-       if (yych == 's') goto yy191;
-       goto yy177;
-yy190:
+       if (yych == 'n') goto yy205;
+       if (yych == 's') goto yy206;
+       goto yy192;
+yy205:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy197;
-       goto yy177;
-yy191:
+       if (yych == 'u') goto yy212;
+       goto yy192;
+yy206:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 124 "../src/conf/parse_opts.re"
+#line 125 "../src/conf/parse_opts.re"
        { version (); return EXIT_OK; }
-#line 723 "src/conf/parse_opts.cc"
-yy197:
+#line 757 "src/conf/parse_opts.cc"
+yy212:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'm') goto yy177;
+       if (yych != 'm') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 125 "../src/conf/parse_opts.re"
+#line 126 "../src/conf/parse_opts.re"
        { vernum ();  return EXIT_OK; }
-#line 732 "src/conf/parse_opts.cc"
-yy201:
+#line 766 "src/conf/parse_opts.cc"
+yy216:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy210;
-       goto yy177;
-yy202:
+       if (yych == 'f') goto yy225;
+       goto yy192;
+yy217:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy177;
+       if (yych != 'c') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy177;
+       if (yych != 'd') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 141 "../src/conf/parse_opts.re"
+#line 142 "../src/conf/parse_opts.re"
        { if (!opts.unicode ())    { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 753 "src/conf/parse_opts.cc"
-yy210:
+#line 787 "src/conf/parse_opts.cc"
+yy225:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '1') goto yy212;
-       if (yych == '8') goto yy213;
-       goto yy177;
-yy212:
+       if (yych == '1') goto yy227;
+       if (yych == '8') goto yy228;
+       goto yy192;
+yy227:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '6') goto yy216;
-       goto yy177;
-yy213:
+       if (yych == '6') goto yy231;
+       goto yy192;
+yy228:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 144 "../src/conf/parse_opts.re"
+#line 145 "../src/conf/parse_opts.re"
        { if (!opts.utf_8 ())      { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 771 "src/conf/parse_opts.cc"
-yy216:
+#line 805 "src/conf/parse_opts.cc"
+yy231:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 143 "../src/conf/parse_opts.re"
+#line 144 "../src/conf/parse_opts.re"
        { if (!opts.utf_16 ())     { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 778 "src/conf/parse_opts.cc"
-yy219:
+#line 812 "src/conf/parse_opts.cc"
+yy234:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy177;
+       if (yych != 'p') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy177;
+       if (yych != 'h') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy177;
+       if (yych != 'd') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy177;
+       if (yych != 'r') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 146 "../src/conf/parse_opts.re"
+#line 147 "../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:
+#line 837 "src/conf/parse_opts.cc"
+yy246:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy272;
-       goto yy177;
-yy232:
+       if (yych == 'n') goto yy287;
+       goto yy192;
+yy247:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy264;
-       goto yy177;
-yy233:
+       if (yych == 'e') goto yy279;
+       goto yy192;
+yy248:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy234;
-       if (yych == 'o') goto yy235;
-       goto yy177;
-yy234:
+       if (yych == 'a') goto yy249;
+       if (yych == 'o') goto yy250;
+       goto yy192;
+yy249:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy249;
-       goto yy177;
-yy235:
+       if (yych == 'r') goto yy264;
+       goto yy192;
+yy250:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy177;
+       if (yych != 'r') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy177;
+       if (yych != 'b') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy177;
+       if (yych != 'l') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 130 "../src/conf/parse_opts.re"
+#line 131 "../src/conf/parse_opts.re"
        { opts.storable_state ();     goto opt; }
-#line 849 "src/conf/parse_opts.cc"
-yy249:
+#line 883 "src/conf/parse_opts.cc"
+yy264:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy177;
+       if (yych != 'c') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy177;
+       if (yych != 'd') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 127 "../src/conf/parse_opts.re"
+#line 128 "../src/conf/parse_opts.re"
        { opts.start_conditions ();   goto opt; }
-#line 880 "src/conf/parse_opts.cc"
-yy264:
+#line 914 "src/conf/parse_opts.cc"
+yy279:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy177;
+       if (yych != 'l') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 139 "../src/conf/parse_opts.re"
+#line 140 "../src/conf/parse_opts.re"
        { opts.skeleton ();           goto opt; }
-#line 897 "src/conf/parse_opts.cc"
-yy272:
+#line 931 "src/conf/parse_opts.cc"
+yy287:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy177;
+       if (yych != 'g') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy177;
+       if (yych != 'l') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy177;
+       if (yych != 'p') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 150 "../src/conf/parse_opts.re"
+#line 151 "../src/conf/parse_opts.re"
        { goto opt; }
-#line 920 "src/conf/parse_opts.cc"
-yy283:
+#line 954 "src/conf/parse_opts.cc"
+yy298:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy177;
+       if (yych != 'u') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy177;
+       if (yych != 'b') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy177;
+       if (yych != 'l') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 134 "../src/conf/parse_opts.re"
+#line 135 "../src/conf/parse_opts.re"
        { opts.reusable ();           goto opt; }
-#line 939 "src/conf/parse_opts.cc"
-yy292:
+#line 973 "src/conf/parse_opts.cc"
+yy307:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy177;
+       if (yych != 'p') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy177;
+       if (yych != 'u') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 145 "../src/conf/parse_opts.re"
+#line 146 "../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:
+#line 988 "src/conf/parse_opts.cc"
+yy314:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy311;
-       goto yy177;
-yy300:
+       if (yych == '-') goto yy326;
+       goto yy192;
+yy315:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy177;
+       if (yych != 'd') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'f') goto yy177;
+       if (yych != 'f') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 135 "../src/conf/parse_opts.re"
+#line 136 "../src/conf/parse_opts.re"
        { opts.nested_ifs ();         goto opt; }
-#line 981 "src/conf/parse_opts.cc"
-yy311:
+#line 1015 "src/conf/parse_opts.cc"
+yy326:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy313;
-       if (yych != 'g') goto yy177;
+       if (yych == 'd') goto yy328;
+       if (yych != 'g') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy325;
-       goto yy177;
-yy313:
+       if (yych == 'e') goto yy340;
+       goto yy192;
+yy328:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy177;
+       if (yych != 'b') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy177;
+       if (yych != 'u') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy177;
+       if (yych != 'g') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'f') goto yy177;
+       if (yych != 'f') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 133 "../src/conf/parse_opts.re"
+#line 134 "../src/conf/parse_opts.re"
        { opts.no_debug_info ();      goto opt; }
-#line 1013 "src/conf/parse_opts.cc"
-yy325:
+#line 1047 "src/conf/parse_opts.cc"
+yy340:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy177;
+       if (yych != 'r') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy177;
+       if (yych != 'd') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 136 "../src/conf/parse_opts.re"
+#line 137 "../src/conf/parse_opts.re"
        { opts.no_generation_date (); goto opt; }
-#line 1046 "src/conf/parse_opts.cc"
-yy341:
+#line 1080 "src/conf/parse_opts.cc"
+yy356:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy177;
+       if (yych != 'p') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy177;
+       if (yych != 'u') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 148 "../src/conf/parse_opts.re"
+#line 149 "../src/conf/parse_opts.re"
        { goto opt_input; }
-#line 1059 "src/conf/parse_opts.cc"
-yy347:
+#line 1093 "src/conf/parse_opts.cc"
+yy362:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy177;
+       if (yych != 'l') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy177;
+       if (yych != 'p') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 123 "../src/conf/parse_opts.re"
+#line 124 "../src/conf/parse_opts.re"
        { usage ();   return EXIT_OK; }
-#line 1070 "src/conf/parse_opts.cc"
-yy352:
+#line 1104 "src/conf/parse_opts.cc"
+yy367:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'x') goto yy177;
+       if (yych != 'x') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy177;
+       if (yych != 'y') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'x') goto yy177;
+       if (yych != 'x') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 131 "../src/conf/parse_opts.re"
+#line 132 "../src/conf/parse_opts.re"
        { opts.flex_syntax ();        goto opt; }
-#line 1095 "src/conf/parse_opts.cc"
-yy364:
+#line 1129 "src/conf/parse_opts.cc"
+yy379:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy385;
-       if (yych == 'p') goto yy386;
-       goto yy177;
-yy365:
+       if (yych == 'i') goto yy400;
+       if (yych == 'p') goto yy401;
+       goto yy192;
+yy380:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy370;
-       goto yy177;
-yy366:
+       if (yych == 'c') goto yy385;
+       goto yy192;
+yy381:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy177;
+       if (yych != 'b') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 140 "../src/conf/parse_opts.re"
+#line 141 "../src/conf/parse_opts.re"
        { if (!opts.ecb ())        { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 1113 "src/conf/parse_opts.cc"
-yy370:
+#line 1147 "src/conf/parse_opts.cc"
+yy385:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy177;
+       if (yych != 'd') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy177;
+       if (yych != 'g') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy177;
+       if (yych != 'p') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy177;
+       if (yych != 'l') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy177;
+       if (yych != 'c') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy177;
+       if (yych != 'y') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 147 "../src/conf/parse_opts.re"
+#line 148 "../src/conf/parse_opts.re"
        { goto opt_encoding_policy; }
-#line 1144 "src/conf/parse_opts.cc"
-yy385:
+#line 1178 "src/conf/parse_opts.cc"
+yy400:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy397;
-       goto yy177;
-yy386:
+       if (yych == 't') goto yy412;
+       goto yy192;
+yy401:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy177;
+       if (yych != 'y') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy177;
+       if (yych != 'c') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy177;
+       if (yych != 'l') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy177;
+       if (yych != 'a') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 149 "../src/conf/parse_opts.re"
+#line 150 "../src/conf/parse_opts.re"
        { goto opt_empty_class; }
-#line 1171 "src/conf/parse_opts.cc"
-yy397:
+#line 1205 "src/conf/parse_opts.cc"
+yy412:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy177;
+       if (yych != 'd') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 129 "../src/conf/parse_opts.re"
+#line 130 "../src/conf/parse_opts.re"
        { opts.emit_dot ();           goto opt; }
-#line 1186 "src/conf/parse_opts.cc"
-yy404:
+#line 1220 "src/conf/parse_opts.cc"
+yy419:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy177;
+       if (yych != 'b') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy177;
+       if (yych != 'u') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy177;
+       if (yych != 'g') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy177;
+       if (yych != 'u') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy177;
+       if (yych != 'p') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy177;
+       if (yych != 'u') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 128 "../src/conf/parse_opts.re"
+#line 129 "../src/conf/parse_opts.re"
        { opts.debug_output ();       goto opt; }
-#line 1213 "src/conf/parse_opts.cc"
-yy417:
+#line 1247 "src/conf/parse_opts.cc"
+yy432:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy433;
-       goto yy177;
-yy418:
+       if (yych == 's') goto yy448;
+       goto yy192;
+yy433:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'm') goto yy177;
+       if (yych != 'm') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy177;
+       if (yych != 'p') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy177;
+       if (yych != 'u') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy177;
+       if (yych != 'd') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy177;
+       if (yych != 'g') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 132 "../src/conf/parse_opts.re"
+#line 133 "../src/conf/parse_opts.re"
        { opts.computed_gotos ();     goto opt; }
-#line 1248 "src/conf/parse_opts.cc"
-yy433:
+#line 1282 "src/conf/parse_opts.cc"
+yy448:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy439;
-       if (yych != 'v') goto yy177;
+       if (yych == 's') goto yy454;
+       if (yych != 'v') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy450;
-       goto yy177;
-yy439:
+       if (yych == 'e') goto yy465;
+       goto yy192;
+yy454:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy177;
+       if (yych != 'n') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy177;
+       if (yych != 'i') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'v') goto yy177;
+       if (yych != 'v') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 137 "../src/conf/parse_opts.re"
+#line 138 "../src/conf/parse_opts.re"
        { opts.case_insensitive ();   goto opt; }
-#line 1286 "src/conf/parse_opts.cc"
-yy450:
+#line 1320 "src/conf/parse_opts.cc"
+yy465:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy177;
+       if (yych != 'r') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy177;
+       if (yych != 'd') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 138 "../src/conf/parse_opts.re"
+#line 139 "../src/conf/parse_opts.re"
        { opts.case_inverted ();      goto opt; }
-#line 1301 "src/conf/parse_opts.cc"
-yy457:
+#line 1335 "src/conf/parse_opts.cc"
+yy472:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy177;
+       if (yych != '-') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'v') goto yy177;
+       if (yych != 'v') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy177;
+       if (yych != 'e') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy177;
+       if (yych != 'c') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy177;
+       if (yych != 't') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy177;
+       if (yych != 'o') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy177;
+       if (yych != 'r') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy177;
+       if (yych != 's') goto yy192;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy177;
+       if (yych >= 0x01) goto yy192;
        ++YYCURSOR;
-#line 126 "../src/conf/parse_opts.re"
+#line 127 "../src/conf/parse_opts.re"
        { opts.bit_vectors ();        goto opt; }
-#line 1326 "src/conf/parse_opts.cc"
+#line 1360 "src/conf/parse_opts.cc"
 }
-#line 151 "../src/conf/parse_opts.re"
+#line 152 "../src/conf/parse_opts.re"
 
 
 opt_output:
 
-#line 1333 "src/conf/parse_opts.cc"
+#line 1367 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -1367,37 +1401,37 @@ opt_output:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy471;
-       if (yych != '-') goto yy473;
-yy471:
+       if (yych <= 0x00) goto yy486;
+       if (yych != '-') goto yy488;
+yy486:
        ++YYCURSOR;
-#line 156 "../src/conf/parse_opts.re"
+#line 157 "../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:
+#line 1414 "src/conf/parse_opts.cc"
+yy488:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       goto yy475;
-yy474:
+       goto yy490;
+yy489:
        ++YYCURSOR;
        yych = (YYCTYPE)*YYCURSOR;
-yy475:
+yy490:
        if (yybm[0+yych] & 128) {
-               goto yy474;
+               goto yy489;
        }
        ++YYCURSOR;
-#line 160 "../src/conf/parse_opts.re"
+#line 161 "../src/conf/parse_opts.re"
        { if (!opts.output (*argv)) return EXIT_FAIL; goto opt; }
-#line 1394 "src/conf/parse_opts.cc"
+#line 1428 "src/conf/parse_opts.cc"
 }
-#line 161 "../src/conf/parse_opts.re"
+#line 162 "../src/conf/parse_opts.re"
 
 
 opt_header:
 
-#line 1401 "src/conf/parse_opts.cc"
+#line 1435 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -1435,32 +1469,32 @@ opt_header:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy480;
-       if (yych != '-') goto yy482;
-yy480:
+       if (yych <= 0x00) goto yy495;
+       if (yych != '-') goto yy497;
+yy495:
        ++YYCURSOR;
-#line 166 "../src/conf/parse_opts.re"
+#line 167 "../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:
+#line 1482 "src/conf/parse_opts.cc"
+yy497:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       goto yy484;
-yy483:
+       goto yy499;
+yy498:
        ++YYCURSOR;
        yych = (YYCTYPE)*YYCURSOR;
-yy484:
+yy499:
        if (yybm[0+yych] & 128) {
-               goto yy483;
+               goto yy498;
        }
        ++YYCURSOR;
-#line 170 "../src/conf/parse_opts.re"
+#line 171 "../src/conf/parse_opts.re"
        { if (!opts.type_header (*argv)) return EXIT_FAIL; goto opt; }
-#line 1462 "src/conf/parse_opts.cc"
+#line 1496 "src/conf/parse_opts.cc"
 }
-#line 171 "../src/conf/parse_opts.re"
+#line 172 "../src/conf/parse_opts.re"
 
 
 opt_encoding_policy:
@@ -1470,89 +1504,89 @@ opt_encoding_policy:
                return EXIT_FAIL;
        }
 
-#line 1474 "src/conf/parse_opts.cc"
+#line 1508 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy491;
+               if (yych == 'f') goto yy506;
        } else {
-               if (yych <= 'i') goto yy492;
-               if (yych == 's') goto yy493;
+               if (yych <= 'i') goto yy507;
+               if (yych == 's') goto yy508;
        }
        ++YYCURSOR;
-yy490:
-#line 181 "../src/conf/parse_opts.re"
+yy505:
+#line 182 "../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:
+#line 1525 "src/conf/parse_opts.cc"
+yy506:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy513;
-       goto yy490;
-yy492:
+       if (yych == 'a') goto yy528;
+       goto yy505;
+yy507:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'g') goto yy506;
-       goto yy490;
-yy493:
+       if (yych == 'g') goto yy521;
+       goto yy505;
+yy508:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'u') goto yy490;
+       if (yych != 'u') goto yy505;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy496;
-yy495:
+       if (yych == 'b') goto yy511;
+yy510:
        YYCURSOR = YYMARKER;
-       goto yy490;
-yy496:
+       goto yy505;
+yy511:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy495;
+       if (yych != 's') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy495;
+       if (yych != 't') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy495;
+       if (yych != 'i') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy495;
+       if (yych != 't') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy495;
+       if (yych != 'u') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy495;
+       if (yych != 't') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy495;
+       if (yych != 'e') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy495;
+       if (yych >= 0x01) goto yy510;
        ++YYCURSOR;
-#line 186 "../src/conf/parse_opts.re"
+#line 187 "../src/conf/parse_opts.re"
        { opts.encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; }
-#line 1528 "src/conf/parse_opts.cc"
-yy506:
+#line 1562 "src/conf/parse_opts.cc"
+yy521:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy495;
+       if (yych != 'n') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy495;
+       if (yych != 'o') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy495;
+       if (yych != 'r') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy495;
+       if (yych != 'e') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy495;
+       if (yych >= 0x01) goto yy510;
        ++YYCURSOR;
-#line 185 "../src/conf/parse_opts.re"
+#line 186 "../src/conf/parse_opts.re"
        { opts.encoding_policy (Enc::POLICY_IGNORE);     goto opt; }
-#line 1543 "src/conf/parse_opts.cc"
-yy513:
+#line 1577 "src/conf/parse_opts.cc"
+yy528:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy495;
+       if (yych != 'i') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy495;
+       if (yych != 'l') goto yy510;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy495;
+       if (yych >= 0x01) goto yy510;
        ++YYCURSOR;
-#line 187 "../src/conf/parse_opts.re"
+#line 188 "../src/conf/parse_opts.re"
        { opts.encoding_policy (Enc::POLICY_FAIL);       goto opt; }
-#line 1554 "src/conf/parse_opts.cc"
+#line 1588 "src/conf/parse_opts.cc"
 }
-#line 188 "../src/conf/parse_opts.re"
+#line 189 "../src/conf/parse_opts.re"
 
 
 opt_input:
@@ -1562,66 +1596,66 @@ opt_input:
                return EXIT_FAIL;
        }
 
-#line 1566 "src/conf/parse_opts.cc"
+#line 1600 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 'b') goto yy520;
-       if (yych <= 'c') goto yy522;
-       if (yych <= 'd') goto yy523;
-yy520:
+       if (yych <= 'b') goto yy535;
+       if (yych <= 'c') goto yy537;
+       if (yych <= 'd') goto yy538;
+yy535:
        ++YYCURSOR;
-yy521:
-#line 198 "../src/conf/parse_opts.re"
+yy536:
+#line 199 "../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:
+#line 1615 "src/conf/parse_opts.cc"
+yy537:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy533;
-       goto yy521;
-yy523:
+       if (yych == 'u') goto yy548;
+       goto yy536;
+yy538:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'e') goto yy521;
+       if (yych != 'e') goto yy536;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy526;
-yy525:
+       if (yych == 'f') goto yy541;
+yy540:
        YYCURSOR = YYMARKER;
-       goto yy521;
-yy526:
+       goto yy536;
+yy541:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy525;
+       if (yych != 'a') goto yy540;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy525;
+       if (yych != 'u') goto yy540;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy525;
+       if (yych != 'l') goto yy540;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy525;
+       if (yych != 't') goto yy540;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy525;
+       if (yych >= 0x01) goto yy540;
        ++YYCURSOR;
-#line 202 "../src/conf/parse_opts.re"
+#line 203 "../src/conf/parse_opts.re"
        { opts.input (InputAPI::DEFAULT); goto opt; }
-#line 1608 "src/conf/parse_opts.cc"
-yy533:
+#line 1642 "src/conf/parse_opts.cc"
+yy548:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy525;
+       if (yych != 's') goto yy540;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy525;
+       if (yych != 't') goto yy540;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy525;
+       if (yych != 'o') goto yy540;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'm') goto yy525;
+       if (yych != 'm') goto yy540;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy525;
+       if (yych >= 0x01) goto yy540;
        ++YYCURSOR;
-#line 203 "../src/conf/parse_opts.re"
+#line 204 "../src/conf/parse_opts.re"
        { opts.input (InputAPI::CUSTOM);  goto opt; }
-#line 1623 "src/conf/parse_opts.cc"
+#line 1657 "src/conf/parse_opts.cc"
 }
-#line 204 "../src/conf/parse_opts.re"
+#line 205 "../src/conf/parse_opts.re"
 
 
 opt_empty_class:
@@ -1631,88 +1665,88 @@ opt_empty_class:
                return EXIT_FAIL;
        }
 
-#line 1635 "src/conf/parse_opts.cc"
+#line 1669 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'e') goto yy544;
-       if (yych == 'm') goto yy545;
+       if (yych == 'e') goto yy559;
+       if (yych == 'm') goto yy560;
        ++YYCURSOR;
-yy543:
-#line 214 "../src/conf/parse_opts.re"
+yy558:
+#line 215 "../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:
+#line 1682 "src/conf/parse_opts.cc"
+yy559:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'r') goto yy565;
-       goto yy543;
-yy545:
+       if (yych == 'r') goto yy580;
+       goto yy558;
+yy560:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'a') goto yy543;
+       if (yych != 'a') goto yy558;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy548;
-yy547:
+       if (yych == 't') goto yy563;
+yy562:
        YYCURSOR = YYMARKER;
-       goto yy543;
-yy548:
+       goto yy558;
+yy563:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy547;
+       if (yych != 'c') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy547;
+       if (yych != 'h') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy547;
+       if (yych != '-') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy552;
-       if (yych == 'n') goto yy553;
-       goto yy547;
-yy552:
+       if (yych == 'e') goto yy567;
+       if (yych == 'n') goto yy568;
+       goto yy562;
+yy567:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy559;
-       goto yy547;
-yy553:
+       if (yych == 'm') goto yy574;
+       goto yy562;
+yy568:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy547;
+       if (yych != 'o') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy547;
+       if (yych != 'n') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy547;
+       if (yych != 'e') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy547;
+       if (yych >= 0x01) goto yy562;
        ++YYCURSOR;
-#line 219 "../src/conf/parse_opts.re"
+#line 220 "../src/conf/parse_opts.re"
        { opts.empty_class (EMPTY_CLASS_MATCH_NONE);  goto opt; }
-#line 1688 "src/conf/parse_opts.cc"
-yy559:
+#line 1722 "src/conf/parse_opts.cc"
+yy574:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy547;
+       if (yych != 'p') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy547;
+       if (yych != 't') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy547;
+       if (yych != 'y') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy547;
+       if (yych >= 0x01) goto yy562;
        ++YYCURSOR;
-#line 218 "../src/conf/parse_opts.re"
+#line 219 "../src/conf/parse_opts.re"
        { opts.empty_class (EMPTY_CLASS_MATCH_EMPTY); goto opt; }
-#line 1701 "src/conf/parse_opts.cc"
-yy565:
+#line 1735 "src/conf/parse_opts.cc"
+yy580:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy547;
+       if (yych != 'r') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy547;
+       if (yych != 'o') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy547;
+       if (yych != 'r') goto yy562;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy547;
+       if (yych >= 0x01) goto yy562;
        ++YYCURSOR;
-#line 220 "../src/conf/parse_opts.re"
+#line 221 "../src/conf/parse_opts.re"
        { opts.empty_class (EMPTY_CLASS_ERROR);       goto opt; }
-#line 1714 "src/conf/parse_opts.cc"
+#line 1748 "src/conf/parse_opts.cc"
 }
-#line 221 "../src/conf/parse_opts.re"
+#line 222 "../src/conf/parse_opts.re"
 
 
 end:
index 4779715349791530e311df5cf55ac0f602142e25..f4c50c82f814478239959d7e227a0a238ee7d086 100644 (file)
@@ -78,6 +78,7 @@ opt_warn:
        "empty-character-class" end { warn.set (Warn::EMPTY_CHARACTER_CLASS, option); goto opt; }
        "match-empty-string"    end { warn.set (Warn::MATCH_EMPTY_STRING,    option); goto opt; }
        "naked-default"         end { warn.set (Warn::NAKED_DEFAULT,         option); goto opt; }
+       "swapped-range"         end { warn.set (Warn::SWAPPED_RANGE,         option); goto opt; }
 */
 
 opt_short:
index f73456983fad891b834f5f513f1e74dbbef4f4ea..026b756044a1067a4f1970f1994471d76b183133 100644 (file)
@@ -119,4 +119,14 @@ void Warn::naked_default (uint32_t line, const std::vector<std::pair<uint32_t, u
        }
 }
 
+void Warn::swapped_range (uint32_t line, uint32_t l, uint32_t u)
+{
+       if (mask[SWAPPED_RANGE] & WARNING)
+       {
+               const bool e = mask[SWAPPED_RANGE] & ERROR;
+               error_accuml |= e;
+               warning (names[SWAPPED_RANGE], line, e, "range lower bound (0x%X) is greater than upper bound (0x%X), swapping", l, u);
+       }
+}
+
 } // namespace re2c
index 8e97d8cb3dfddef173f0b5c8fa11fa4ac48a18f0..3753c694e1432816bb92429ce334937828e51a73 100644 (file)
@@ -10,7 +10,8 @@ namespace re2c {
 #define RE2C_WARNING_TYPES \
        W (EMPTY_CHARACTER_CLASS, "empty-character-class"), \
        W (MATCH_EMPTY_STRING,    "match-empty-string"), \
-       W (NAKED_DEFAULT,         "naked-default"),
+       W (NAKED_DEFAULT,         "naked-default"), \
+       W (SWAPPED_RANGE,         "swapped-range"),
 
 class Warn
 {
@@ -47,6 +48,7 @@ public:
        void empty_class (uint32_t line);
        void match_empty_string (uint32_t line);
        void naked_default (uint32_t line, const std::vector<std::pair<uint32_t, uint32_t> > & stray_cunits, const std::string & cond);
+       void swapped_range (uint32_t line, uint32_t l, uint32_t u);
 };
 
 } // namespace re2c
index a0cacb23992491dc1181e6fd5526da586df4f831..cd4bf81b07ee7c2faa36bd0d13ac51ab74f661a8 100644 (file)
@@ -188,13 +188,16 @@ RegExp * Scanner::cpoint_class (const std::vector<uint32_t> & cs, bool neg) cons
        const size_t count = cs.size ();
        for (size_t i = 0; i < count; ++i)
        {
-               const uint32_t l = cs[i];
-               const uint32_t u = count - i >= 3 && cs[i + 1] == '-'
+               uint32_t l = cs[i];
+               uint32_t u = count - i >= 3 && cs[i + 1] == '-'
                        ? cs[i += 2]
                        : l;
-               Range * s = l > u
-                       ? encoding.encodeRange (u, l)
-                       : encoding.encodeRange (l, u);
+               if (l > u)
+               {
+                       warn.swapped_range (get_line (), l, u);
+                       std::swap (l, u);
+               }
+               Range * s = encoding.encodeRange (l, u);
                if (!s)
                {
                        fatalf ("Bad code point range: '0x%X - 0x%X'", l, u);
index acb2ca1dab13950369a7b6a46dbe8fc6d86002c1..a42b5a824c46c4491c76648c74f7b576081041d2 100644 (file)
@@ -1,3 +1,119 @@
+re2c: warning: line 8: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 9: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 14: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 15: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 20: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 21: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 23: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 24: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 29: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 30: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 32: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 33: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 35: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 36: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 38: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 39: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 41: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 42: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 47: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 48: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 50: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 51: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 56: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 57: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 59: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 60: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 62: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 63: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 65: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 66: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 68: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 69: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 74: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 75: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 77: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 78: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 83: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 84: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 86: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 87: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 89: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 90: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 95: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 96: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 116: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 117: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 134: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 135: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 140: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 141: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 143: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 144: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 152: range lower bound (0x2D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 153: range lower bound (0x2D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 164: range lower bound (0x2D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 165: range lower bound (0x2D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 179: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 180: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 191: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 192: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 194: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 195: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 200: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 201: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 203: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 204: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 206: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 207: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 212: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 213: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 215: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 216: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 230: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 231: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 236: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 237: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 239: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 240: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 242: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 243: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 245: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 246: range lower bound (0x5C) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 251: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 252: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 272: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 273: range lower bound (0x5C) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 278: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 279: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 281: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 282: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 287: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 288: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 293: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 294: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 299: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 300: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 302: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 303: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 308: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 309: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 311: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 312: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 314: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 315: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 320: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 321: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 323: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 324: range lower bound (0x5D) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 332: range lower bound (0x2D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 333: range lower bound (0x2D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 344: range lower bound (0x2D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 345: range lower bound (0x2D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 353: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 354: range lower bound (0x5D) is greater than upper bound (0x5C), swapping [-Wswapped-range]
+re2c: warning: line 359: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
+re2c: warning: line 360: range lower bound (0x5D) is greater than upper bound (0x7), swapping [-Wswapped-range]
 /* Generated by re2c */
 autogenerated by gen_class_examples.hs
 
index dfb44afa9cf7c2f724923185f153b36cc0d922de..05d7a793d06f48f78e0f499e2a7cc0c1f2387dd8 100644 (file)
@@ -1,3 +1,115 @@
+re2c: warning: line 8: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 9: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 14: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 15: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 20: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 21: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 23: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 24: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 29: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 30: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 35: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 36: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 38: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 39: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 41: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 42: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 47: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 48: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 50: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 51: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 56: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 57: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 62: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 63: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 65: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 66: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 68: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 69: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 74: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 75: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 77: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 78: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 80: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 81: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 86: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 87: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 89: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 90: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 92: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 93: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 95: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 96: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 134: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 135: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 140: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 141: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 143: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 144: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 146: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 147: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 158: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 159: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 194: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 195: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 197: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 198: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 203: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 204: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 206: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 207: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 209: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 210: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 215: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 216: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 230: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 231: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 236: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 237: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 239: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 240: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 242: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 243: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 245: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 246: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 248: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 249: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 278: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 279: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 281: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 282: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 284: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 285: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 287: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 288: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 293: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 294: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 299: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 300: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 302: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 303: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 305: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 306: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 308: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 309: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 311: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 312: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 314: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 315: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 317: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 318: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 320: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 321: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 323: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 324: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 326: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 327: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 338: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 339: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 353: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 354: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 359: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 360: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
 /* Generated by re2c */
 autogenerated by gen_class_examples.hs
 
index 534ef0ad12e7ab3758d2725e141c46abde29655f..692453795055a82646605f605d21a36cf3333b0a 100644 (file)
@@ -1,3 +1,75 @@
+re2c: warning: line 14: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 15: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 38: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 39: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 50: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 51: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 56: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 57: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 65: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 66: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 68: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 69: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 146: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 147: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 161: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 162: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 176: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 177: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 182: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 183: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 194: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 195: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 197: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 198: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 203: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 204: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 212: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 213: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 218: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 219: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 230: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 231: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 233: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 234: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 239: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 240: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 242: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 243: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 245: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 246: range lower bound (0x3456) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 248: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 249: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 254: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 255: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 269: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 270: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 278: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 279: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 281: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 282: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 284: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 285: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 290: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 291: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 302: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 303: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 305: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 306: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 311: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 312: range lower bound (0x7890) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 320: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 321: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 326: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 327: range lower bound (0x10FFFF) is greater than upper bound (0x12), swapping [-Wswapped-range]
+re2c: warning: line 341: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 342: range lower bound (0x10FFFF) is greater than upper bound (0x7890), swapping [-Wswapped-range]
+re2c: warning: line 350: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 351: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 353: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 354: range lower bound (0x7890) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 356: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
+re2c: warning: line 357: range lower bound (0x10FFFF) is greater than upper bound (0x3456), swapping [-Wswapped-range]
 /* Generated by re2c */
 autogenerated by gen_class_examples.hs
 
index 949220ae785377fcbd96e7a86e02dc77c0d34ca2..e6a4f5e3e64aea5488e9a357cc3e822244c4e681 100644 (file)
@@ -1,3 +1,75 @@
+re2c: warning: line 14: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 15: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 38: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 39: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 50: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 51: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 56: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 57: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 65: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 66: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 68: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 69: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 146: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 147: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 161: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 162: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 176: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 177: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 182: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 183: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 194: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 195: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 197: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 198: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 203: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 204: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 212: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 213: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 218: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 219: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 230: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 231: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 233: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 234: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 239: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 240: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 242: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 243: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 245: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 246: range lower bound (0x53) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 248: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 249: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 254: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 255: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 269: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 270: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 278: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 279: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 281: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 282: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 284: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 285: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 290: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 291: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 302: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 303: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 305: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 306: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 311: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 312: range lower bound (0xA5) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 320: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 321: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 326: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 327: range lower bound (0xF7) is greater than upper bound (0x1), swapping [-Wswapped-range]
+re2c: warning: line 341: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 342: range lower bound (0xF7) is greater than upper bound (0xA5), swapping [-Wswapped-range]
+re2c: warning: line 350: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 351: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 353: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 354: range lower bound (0xA5) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 356: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
+re2c: warning: line 357: range lower bound (0xF7) is greater than upper bound (0x53), swapping [-Wswapped-range]
 /* Generated by re2c */
 autogenerated by gen_class_examples.hs