]> granicus.if.org Git - re2c/commitdiff
Added warning '-Wuseless-escape'.
authorUlya Trofimovich <skvadrik@gmail.com>
Tue, 18 Aug 2015 20:57:32 +0000 (21:57 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Tue, 18 Aug 2015 20:57:32 +0000 (21:57 +0100)
This is to warn about escaped printable ASCII characters that
shouldn't be escaped in the current context (e.g. quotes inside of
a character class).

25 files changed:
re2c/bootstrap/src/conf/parse_opts.cc
re2c/bootstrap/src/parse/scanner_lex.cc
re2c/src/conf/parse_opts.re
re2c/src/conf/warn.cc
re2c/src/conf/warn.h
re2c/src/parse/scanner_lex.re
re2c/test/bug1479044.b.c
re2c/test/bug1479044.c
re2c/test/bug1479044.s.c
re2c/test/class2.i.c
re2c/test/input_custom_mjson.--input(custom).c
re2c/test/php20140822_zend_language_scanner.igcFd.c
re2c/test/php20140822_zend_language_scanner_crlf.igcFd.c
re2c/test/php20150211_phpdbg_lexer.igcFd.c
re2c/test/php20150211_zend_ini_scanner.cDF--case-inverted.c
re2c/test/php20150211_zend_ini_scanner.igcFd--case-inverted.c
re2c/test/php20150211_zend_ini_scanner_trimmed.icF.c
re2c/test/php20150211_zend_ini_scanner_trimmed.icFwb.c
re2c/test/php20150211_zend_language_scanner.cDF--case-inverted.c
re2c/test/php20150211_zend_language_scanner.igcFd--case-inverted.c
re2c/test/push.c
re2c/test/push.f.c
re2c/test/push.fb.c
re2c/test/push.fg.c
re2c/test/push.fs.c

index bc05ed101a171d1e8c69d3197cb208df3fdd09dd..eaa9cc6e3cdba8c49e55f191673fcfcaaf2aca37 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.3 on Tue Aug 18 16:46:59 2015 */
+/* Generated by re2c 0.14.3 on Tue Aug 18 17:43:02 2015 */
 #line 1 "../src/conf/parse_opts.re"
 #include <stdio.h>
 
@@ -224,13 +224,15 @@ opt_warn:
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 'm') {
-               if (yych == 'e') goto yy46;
-               if (yych >= 'm') goto yy47;
-       } else {
-               if (yych <= 'n') goto yy48;
-               if (yych == 's') goto yy49;
+       switch (yych) {
+       case 'e':       goto yy46;
+       case 'm':       goto yy47;
+       case 'n':       goto yy48;
+       case 's':       goto yy49;
+       case 'u':       goto yy50;
+       default:        goto yy44;
        }
+yy44:
        ++YYCURSOR;
 yy45:
 #line 74 "../src/conf/parse_opts.re"
@@ -238,1132 +240,1167 @@ yy45:
                error ("bad warning: %s", *argv);
                return EXIT_FAIL;
        }
-#line 242 "src/conf/parse_opts.cc"
+#line 244 "src/conf/parse_opts.cc"
 yy46:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'm') goto yy98;
+       if (yych == 'm') goto yy114;
        goto yy45;
 yy47:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy79;
+       if (yych == 'a') goto yy95;
        goto yy45;
 yy48:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy65;
+       if (yych == 'a') goto yy81;
        goto yy45;
 yy49:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'w') goto yy45;
+       if (yych == 'w') goto yy67;
+       goto yy45;
+yy50:
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych != 's') goto yy45;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy52;
-yy51:
+       if (yych == 'e') goto yy53;
+yy52:
        YYCURSOR = YYMARKER;
        goto yy45;
-yy52:
+yy53:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'l') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'e') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 's') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 's') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != '-') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'e') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 's') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'c') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'a') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'p') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy51;
+       if (yych != 'e') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy51;
+       if (yych >= 0x01) goto yy52;
+       ++YYCURSOR;
+#line 82 "../src/conf/parse_opts.re"
+       { warn.set (Warn::USELESS_ESCAPE,        option); goto opt; }
+#line 297 "src/conf/parse_opts.cc"
+yy67:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'a') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych != 'p') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy51;
+       if (yych != 'p') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy51;
+       if (yych != 'e') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy51;
+       if (yych != 'd') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy51;
+       if (yych != '-') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy51;
+       if (yych != 'r') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy51;
+       if (yych != 'a') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy51;
+       if (yych != 'n') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy51;
+       if (yych != 'g') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy51;
+       if (yych != 'e') goto yy52;
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych >= 0x01) goto yy52;
        ++YYCURSOR;
 #line 81 "../src/conf/parse_opts.re"
        { warn.set (Warn::SWAPPED_RANGE,         option); goto opt; }
-#line 289 "src/conf/parse_opts.cc"
-yy65:
+#line 326 "src/conf/parse_opts.cc"
+yy81:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'k') goto yy51;
+       if (yych != 'k') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy51;
+       if (yych != 'e') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy51;
+       if (yych != 'd') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy51;
+       if (yych != '-') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy51;
+       if (yych != 'd') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy51;
+       if (yych != 'e') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'f') goto yy51;
+       if (yych != 'f') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy51;
+       if (yych != 'a') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy51;
+       if (yych != 'u') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy51;
+       if (yych != 'l') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy51;
+       if (yych != 't') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy51;
+       if (yych >= 0x01) goto yy52;
        ++YYCURSOR;
 #line 80 "../src/conf/parse_opts.re"
        { warn.set (Warn::NAKED_DEFAULT,         option); goto opt; }
-#line 318 "src/conf/parse_opts.cc"
-yy79:
+#line 355 "src/conf/parse_opts.cc"
+yy95:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy51;
+       if (yych != 't') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy51;
+       if (yych != 'c') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy51;
+       if (yych != 'h') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy51;
+       if (yych != '-') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy51;
+       if (yych != 'e') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'm') goto yy51;
+       if (yych != 'm') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy51;
+       if (yych != 'p') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy51;
+       if (yych != 't') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy51;
+       if (yych != 'y') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy51;
+       if (yych != '-') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy51;
+       if (yych != 's') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy51;
+       if (yych != 't') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy51;
+       if (yych != 'r') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy51;
+       if (yych != 'i') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy51;
+       if (yych != 'n') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy51;
+       if (yych != 'g') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy51;
+       if (yych >= 0x01) goto yy52;
        ++YYCURSOR;
 #line 79 "../src/conf/parse_opts.re"
        { warn.set (Warn::MATCH_EMPTY_STRING,    option); goto opt; }
-#line 357 "src/conf/parse_opts.cc"
-yy98:
+#line 394 "src/conf/parse_opts.cc"
+yy114:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy51;
+       if (yych != 'p') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy51;
+       if (yych != 't') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy51;
+       if (yych != 'y') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy51;
+       if (yych != '-') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy51;
+       if (yych != 'c') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy51;
+       if (yych != 'h') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy51;
+       if (yych != 'a') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy51;
+       if (yych != 'r') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy51;
+       if (yych != 'a') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy51;
+       if (yych != 'c') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy51;
+       if (yych != 't') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy51;
+       if (yych != 'e') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy51;
+       if (yych != 'r') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy51;
+       if (yych != '-') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy51;
+       if (yych != 'c') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy51;
+       if (yych != 'l') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy51;
+       if (yych != 'a') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy51;
+       if (yych != 's') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy51;
+       if (yych != 's') goto yy52;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy51;
+       if (yych >= 0x01) goto yy52;
        ++YYCURSOR;
 #line 78 "../src/conf/parse_opts.re"
        { warn.set (Warn::EMPTY_CHARACTER_CLASS, option); goto opt; }
-#line 402 "src/conf/parse_opts.cc"
+#line 439 "src/conf/parse_opts.cc"
 }
-#line 82 "../src/conf/parse_opts.re"
+#line 83 "../src/conf/parse_opts.re"
 
 
 opt_short:
 
-#line 409 "src/conf/parse_opts.cc"
+#line 446 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'c') {
                if (yych <= 'C') {
                        if (yych <= '7') {
-                               if (yych <= 0x00) goto yy122;
-                               if (yych == '1') goto yy126;
-                               goto yy124;
+                               if (yych <= 0x00) goto yy138;
+                               if (yych == '1') goto yy142;
+                               goto yy140;
                        } else {
-                               if (yych <= '8') goto yy128;
-                               if (yych == '?') goto yy130;
-                               goto yy124;
+                               if (yych <= '8') goto yy144;
+                               if (yych == '?') goto yy146;
+                               goto yy140;
                        }
                } else {
                        if (yych <= 'U') {
-                               if (yych <= 'D') goto yy132;
-                               if (yych == 'F') goto yy134;
-                               goto yy124;
-                       } else {
-                               if (yych <= 'V') goto yy136;
-                               if (yych <= 'a') goto yy124;
-                               if (yych <= 'b') goto yy138;
+                               if (yych <= 'D') goto yy148;
+                               if (yych == 'F') goto yy150;
                                goto yy140;
+                       } else {
+                               if (yych <= 'V') goto yy152;
+                               if (yych <= 'a') goto yy140;
+                               if (yych <= 'b') goto yy154;
+                               goto yy156;
                        }
                }
        } else {
                if (yych <= 'o') {
                        if (yych <= 'g') {
-                               if (yych <= 'd') goto yy142;
-                               if (yych <= 'e') goto yy144;
-                               if (yych <= 'f') goto yy146;
-                               goto yy148;
+                               if (yych <= 'd') goto yy158;
+                               if (yych <= 'e') goto yy160;
+                               if (yych <= 'f') goto yy162;
+                               goto yy164;
                        } else {
-                               if (yych <= 'h') goto yy130;
-                               if (yych <= 'i') goto yy150;
-                               if (yych <= 'n') goto yy124;
-                               goto yy152;
+                               if (yych <= 'h') goto yy146;
+                               if (yych <= 'i') goto yy166;
+                               if (yych <= 'n') goto yy140;
+                               goto yy168;
                        }
                } else {
                        if (yych <= 't') {
-                               if (yych <= 'q') goto yy124;
-                               if (yych <= 'r') goto yy154;
-                               if (yych <= 's') goto yy156;
-                               goto yy158;
+                               if (yych <= 'q') goto yy140;
+                               if (yych <= 'r') goto yy170;
+                               if (yych <= 's') goto yy172;
+                               goto yy174;
                        } else {
                                if (yych <= 'v') {
-                                       if (yych <= 'u') goto yy160;
-                                       goto yy162;
+                                       if (yych <= 'u') goto yy176;
+                                       goto yy178;
                                } else {
-                                       if (yych <= 'w') goto yy164;
-                                       if (yych <= 'x') goto yy166;
-                                       goto yy124;
+                                       if (yych <= 'w') goto yy180;
+                                       if (yych <= 'x') goto yy182;
+                                       goto yy140;
                                }
                        }
                }
        }
-yy122:
+yy138:
        ++YYCURSOR;
-#line 91 "../src/conf/parse_opts.re"
+#line 92 "../src/conf/parse_opts.re"
        { goto opt; }
-#line 471 "src/conf/parse_opts.cc"
-yy124:
+#line 508 "src/conf/parse_opts.cc"
+yy140:
        ++YYCURSOR;
-#line 87 "../src/conf/parse_opts.re"
+#line 88 "../src/conf/parse_opts.re"
        {
                error ("bad short option: %s", *argv);
                return EXIT_FAIL;
        }
-#line 479 "src/conf/parse_opts.cc"
-yy126:
+#line 516 "src/conf/parse_opts.cc"
+yy142:
        ++YYCURSOR;
-#line 114 "../src/conf/parse_opts.re"
+#line 115 "../src/conf/parse_opts.re"
        { goto opt_short; }
-#line 484 "src/conf/parse_opts.cc"
-yy128:
+#line 521 "src/conf/parse_opts.cc"
+yy144:
        ++YYCURSOR;
-#line 109 "../src/conf/parse_opts.re"
+#line 110 "../src/conf/parse_opts.re"
        { if (!opts.utf_8 ())      { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 489 "src/conf/parse_opts.cc"
-yy130:
+#line 526 "src/conf/parse_opts.cc"
+yy146:
        ++YYCURSOR;
-#line 92 "../src/conf/parse_opts.re"
+#line 93 "../src/conf/parse_opts.re"
        { usage ();   return EXIT_OK; }
-#line 494 "src/conf/parse_opts.cc"
-yy132:
+#line 531 "src/conf/parse_opts.cc"
+yy148:
        ++YYCURSOR;
-#line 98 "../src/conf/parse_opts.re"
+#line 99 "../src/conf/parse_opts.re"
        { opts.emit_dot ();         goto opt_short; }
-#line 499 "src/conf/parse_opts.cc"
-yy134:
+#line 536 "src/conf/parse_opts.cc"
+yy150:
        ++YYCURSOR;
-#line 100 "../src/conf/parse_opts.re"
+#line 101 "../src/conf/parse_opts.re"
        { opts.flex_syntax ();      goto opt_short; }
-#line 504 "src/conf/parse_opts.cc"
-yy136:
+#line 541 "src/conf/parse_opts.cc"
+yy152:
        ++YYCURSOR;
-#line 94 "../src/conf/parse_opts.re"
+#line 95 "../src/conf/parse_opts.re"
        { vernum ();  return EXIT_OK; }
-#line 509 "src/conf/parse_opts.cc"
-yy138:
+#line 546 "src/conf/parse_opts.cc"
+yy154:
        ++YYCURSOR;
-#line 95 "../src/conf/parse_opts.re"
+#line 96 "../src/conf/parse_opts.re"
        { opts.bit_vectors ();      goto opt_short; }
-#line 514 "src/conf/parse_opts.cc"
-yy140:
+#line 551 "src/conf/parse_opts.cc"
+yy156:
        ++YYCURSOR;
-#line 96 "../src/conf/parse_opts.re"
+#line 97 "../src/conf/parse_opts.re"
        { opts.start_conditions (); goto opt_short; }
-#line 519 "src/conf/parse_opts.cc"
-yy142:
+#line 556 "src/conf/parse_opts.cc"
+yy158:
        ++YYCURSOR;
-#line 97 "../src/conf/parse_opts.re"
+#line 98 "../src/conf/parse_opts.re"
        { opts.debug_output ();     goto opt_short; }
-#line 524 "src/conf/parse_opts.cc"
-yy144:
+#line 561 "src/conf/parse_opts.cc"
+yy160:
        ++YYCURSOR;
-#line 105 "../src/conf/parse_opts.re"
+#line 106 "../src/conf/parse_opts.re"
        { if (!opts.ecb ())        { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 529 "src/conf/parse_opts.cc"
-yy146:
+#line 566 "src/conf/parse_opts.cc"
+yy162:
        ++YYCURSOR;
-#line 99 "../src/conf/parse_opts.re"
+#line 100 "../src/conf/parse_opts.re"
        { opts.storable_state ();   goto opt_short; }
-#line 534 "src/conf/parse_opts.cc"
-yy148:
+#line 571 "src/conf/parse_opts.cc"
+yy164:
        ++YYCURSOR;
-#line 101 "../src/conf/parse_opts.re"
+#line 102 "../src/conf/parse_opts.re"
        { opts.computed_gotos ();   goto opt_short; }
-#line 539 "src/conf/parse_opts.cc"
-yy150:
+#line 576 "src/conf/parse_opts.cc"
+yy166:
        ++YYCURSOR;
-#line 102 "../src/conf/parse_opts.re"
+#line 103 "../src/conf/parse_opts.re"
        { opts.no_debug_info ();    goto opt_short; }
-#line 544 "src/conf/parse_opts.cc"
-yy152:
+#line 581 "src/conf/parse_opts.cc"
+yy168:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy170;
-#line 111 "../src/conf/parse_opts.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy186;
+#line 112 "../src/conf/parse_opts.re"
        { *argv = YYCURSOR;                                                             goto opt_output; }
-#line 550 "src/conf/parse_opts.cc"
-yy154:
+#line 587 "src/conf/parse_opts.cc"
+yy170:
        ++YYCURSOR;
-#line 103 "../src/conf/parse_opts.re"
+#line 104 "../src/conf/parse_opts.re"
        { opts.reusable ();         goto opt_short; }
-#line 555 "src/conf/parse_opts.cc"
-yy156:
+#line 592 "src/conf/parse_opts.cc"
+yy172:
        ++YYCURSOR;
-#line 104 "../src/conf/parse_opts.re"
+#line 105 "../src/conf/parse_opts.re"
        { opts.nested_ifs ();       goto opt_short; }
-#line 560 "src/conf/parse_opts.cc"
-yy158:
+#line 597 "src/conf/parse_opts.cc"
+yy174:
        ++YYCURSOR;
-       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy168;
-#line 113 "../src/conf/parse_opts.re"
+       if ((yych = (YYCTYPE)*YYCURSOR) <= 0x00) goto yy184;
+#line 114 "../src/conf/parse_opts.re"
        { *argv = YYCURSOR;                                                                  goto opt_header; }
-#line 566 "src/conf/parse_opts.cc"
-yy160:
+#line 603 "src/conf/parse_opts.cc"
+yy176:
        ++YYCURSOR;
-#line 106 "../src/conf/parse_opts.re"
+#line 107 "../src/conf/parse_opts.re"
        { if (!opts.unicode ())    { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 571 "src/conf/parse_opts.cc"
-yy162:
+#line 608 "src/conf/parse_opts.cc"
+yy178:
        ++YYCURSOR;
-#line 93 "../src/conf/parse_opts.re"
+#line 94 "../src/conf/parse_opts.re"
        { version (); return EXIT_OK; }
-#line 576 "src/conf/parse_opts.cc"
-yy164:
+#line 613 "src/conf/parse_opts.cc"
+yy180:
        ++YYCURSOR;
-#line 107 "../src/conf/parse_opts.re"
+#line 108 "../src/conf/parse_opts.re"
        { if (!opts.wide_chars ()) { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 581 "src/conf/parse_opts.cc"
-yy166:
+#line 618 "src/conf/parse_opts.cc"
+yy182:
        ++YYCURSOR;
-#line 108 "../src/conf/parse_opts.re"
+#line 109 "../src/conf/parse_opts.re"
        { if (!opts.utf_16 ())     { error_encoding (); return EXIT_FAIL; } goto opt_short; }
-#line 586 "src/conf/parse_opts.cc"
-yy168:
+#line 623 "src/conf/parse_opts.cc"
+yy184:
        ++YYCURSOR;
-#line 112 "../src/conf/parse_opts.re"
+#line 113 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
-#line 591 "src/conf/parse_opts.cc"
-yy170:
+#line 628 "src/conf/parse_opts.cc"
+yy186:
        ++YYCURSOR;
-#line 110 "../src/conf/parse_opts.re"
+#line 111 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
-#line 596 "src/conf/parse_opts.cc"
+#line 633 "src/conf/parse_opts.cc"
 }
-#line 115 "../src/conf/parse_opts.re"
+#line 116 "../src/conf/parse_opts.re"
 
 
 opt_long:
 
-#line 603 "src/conf/parse_opts.cc"
+#line 640 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        switch (yych) {
-       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;
+       case 'b':       goto yy192;
+       case 'c':       goto yy193;
+       case 'd':       goto yy194;
+       case 'e':       goto yy195;
+       case 'f':       goto yy196;
+       case 'h':       goto yy197;
+       case 'i':       goto yy198;
+       case 'n':       goto yy199;
+       case 'o':       goto yy200;
+       case 'r':       goto yy201;
+       case 's':       goto yy202;
+       case 't':       goto yy203;
+       case 'u':       goto yy204;
+       case 'v':       goto yy205;
+       case 'w':       goto yy206;
+       default:        goto yy190;
        }
-yy174:
+yy190:
        ++YYCURSOR;
-yy175:
-#line 120 "../src/conf/parse_opts.re"
+yy191:
+#line 121 "../src/conf/parse_opts.re"
        {
                error ("bad long option: %s", *argv);
                return EXIT_FAIL;
        }
-#line 633 "src/conf/parse_opts.cc"
-yy176:
+#line 670 "src/conf/parse_opts.cc"
+yy192:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'i') goto yy472;
-       goto yy175;
-yy177:
+       if (yych == 'i') goto yy488;
+       goto yy191;
+yy193:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy432;
-       if (yych == 'o') goto yy433;
-       goto yy175;
-yy178:
+       if (yych == 'a') goto yy448;
+       if (yych == 'o') goto yy449;
+       goto yy191;
+yy194:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy419;
-       goto yy175;
-yy179:
+       if (yych == 'e') goto yy435;
+       goto yy191;
+yy195:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'l') {
-               if (yych == 'c') goto yy381;
-               goto yy175;
+               if (yych == 'c') goto yy397;
+               goto yy191;
        } else {
-               if (yych <= 'm') goto yy379;
-               if (yych <= 'n') goto yy380;
-               goto yy175;
+               if (yych <= 'm') goto yy395;
+               if (yych <= 'n') goto yy396;
+               goto yy191;
        }
-yy180:
+yy196:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'l') goto yy367;
-       goto yy175;
-yy181:
+       if (yych == 'l') goto yy383;
+       goto yy191;
+yy197:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy362;
-       goto yy175;
-yy182:
+       if (yych == 'e') goto yy378;
+       goto yy191;
+yy198:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy356;
-       goto yy175;
-yy183:
+       if (yych == 'n') goto yy372;
+       goto yy191;
+yy199:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy315;
-       if (yych == 'o') goto yy314;
-       goto yy175;
-yy184:
+       if (yych == 'e') goto yy331;
+       if (yych == 'o') goto yy330;
+       goto yy191;
+yy200:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy307;
-       goto yy175;
-yy185:
+       if (yych == 'u') goto yy323;
+       goto yy191;
+yy201:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy298;
-       goto yy175;
-yy186:
+       if (yych == 'e') goto yy314;
+       goto yy191;
+yy202:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'j') {
-               if (yych == 'i') goto yy246;
-               goto yy175;
+               if (yych == 'i') goto yy262;
+               goto yy191;
        } else {
-               if (yych <= 'k') goto yy247;
-               if (yych == 't') goto yy248;
-               goto yy175;
+               if (yych <= 'k') goto yy263;
+               if (yych == 't') goto yy264;
+               goto yy191;
        }
-yy187:
+yy203:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'y') goto yy234;
-       goto yy175;
-yy188:
+       if (yych == 'y') goto yy250;
+       goto yy191;
+yy204:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy217;
-       if (yych == 't') goto yy216;
-       goto yy175;
-yy189:
+       if (yych == 'n') goto yy233;
+       if (yych == 't') goto yy232;
+       goto yy191;
+yy205:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy203;
-       goto yy175;
-yy190:
+       if (yych == 'e') goto yy219;
+       goto yy191;
+yy206:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'i') goto yy175;
+       if (yych != 'i') goto yy191;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy193;
-yy192:
+       if (yych == 'd') goto yy209;
+yy208:
        YYCURSOR = YYMARKER;
-       goto yy175;
-yy193:
+       goto yy191;
+yy209:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy192;
+       if (yych != 'c') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy192;
+       if (yych != 'h') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy192;
+       if (yych != 'r') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 143 "../src/conf/parse_opts.re"
+#line 144 "../src/conf/parse_opts.re"
        { if (!opts.wide_chars ()) { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 733 "src/conf/parse_opts.cc"
-yy203:
+#line 770 "src/conf/parse_opts.cc"
+yy219:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy192;
+       if (yych != 'r') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy205;
-       if (yych == 's') goto yy206;
-       goto yy192;
-yy205:
+       if (yych == 'n') goto yy221;
+       if (yych == 's') goto yy222;
+       goto yy208;
+yy221:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy212;
-       goto yy192;
-yy206:
+       if (yych == 'u') goto yy228;
+       goto yy208;
+yy222:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 125 "../src/conf/parse_opts.re"
+#line 126 "../src/conf/parse_opts.re"
        { version (); return EXIT_OK; }
-#line 757 "src/conf/parse_opts.cc"
-yy212:
+#line 794 "src/conf/parse_opts.cc"
+yy228:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'm') goto yy192;
+       if (yych != 'm') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 126 "../src/conf/parse_opts.re"
+#line 127 "../src/conf/parse_opts.re"
        { vernum ();  return EXIT_OK; }
-#line 766 "src/conf/parse_opts.cc"
-yy216:
+#line 803 "src/conf/parse_opts.cc"
+yy232:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy225;
-       goto yy192;
-yy217:
+       if (yych == 'f') goto yy241;
+       goto yy208;
+yy233:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy192;
+       if (yych != 'c') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy192;
+       if (yych != 'd') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 142 "../src/conf/parse_opts.re"
+#line 143 "../src/conf/parse_opts.re"
        { if (!opts.unicode ())    { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 787 "src/conf/parse_opts.cc"
-yy225:
+#line 824 "src/conf/parse_opts.cc"
+yy241:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '1') goto yy227;
-       if (yych == '8') goto yy228;
-       goto yy192;
-yy227:
+       if (yych == '1') goto yy243;
+       if (yych == '8') goto yy244;
+       goto yy208;
+yy243:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '6') goto yy231;
-       goto yy192;
-yy228:
+       if (yych == '6') goto yy247;
+       goto yy208;
+yy244:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 145 "../src/conf/parse_opts.re"
+#line 146 "../src/conf/parse_opts.re"
        { if (!opts.utf_8 ())      { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 805 "src/conf/parse_opts.cc"
-yy231:
+#line 842 "src/conf/parse_opts.cc"
+yy247:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 144 "../src/conf/parse_opts.re"
+#line 145 "../src/conf/parse_opts.re"
        { if (!opts.utf_16 ())     { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 812 "src/conf/parse_opts.cc"
-yy234:
+#line 849 "src/conf/parse_opts.cc"
+yy250:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy192;
+       if (yych != 'p') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy192;
+       if (yych != 'h') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy192;
+       if (yych != 'd') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy192;
+       if (yych != 'r') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 147 "../src/conf/parse_opts.re"
+#line 148 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-t, --type-header"); return EXIT_FAIL; } goto opt_header; }
-#line 837 "src/conf/parse_opts.cc"
-yy246:
+#line 874 "src/conf/parse_opts.cc"
+yy262:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy287;
-       goto yy192;
-yy247:
+       if (yych == 'n') goto yy303;
+       goto yy208;
+yy263:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy279;
-       goto yy192;
-yy248:
+       if (yych == 'e') goto yy295;
+       goto yy208;
+yy264:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy249;
-       if (yych == 'o') goto yy250;
-       goto yy192;
-yy249:
+       if (yych == 'a') goto yy265;
+       if (yych == 'o') goto yy266;
+       goto yy208;
+yy265:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy264;
-       goto yy192;
-yy250:
+       if (yych == 'r') goto yy280;
+       goto yy208;
+yy266:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy192;
+       if (yych != 'r') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy192;
+       if (yych != 'b') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy192;
+       if (yych != 'l') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 131 "../src/conf/parse_opts.re"
+#line 132 "../src/conf/parse_opts.re"
        { opts.storable_state ();     goto opt; }
-#line 883 "src/conf/parse_opts.cc"
-yy264:
+#line 920 "src/conf/parse_opts.cc"
+yy280:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy192;
+       if (yych != 'c') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy192;
+       if (yych != 'd') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 128 "../src/conf/parse_opts.re"
+#line 129 "../src/conf/parse_opts.re"
        { opts.start_conditions ();   goto opt; }
-#line 914 "src/conf/parse_opts.cc"
-yy279:
+#line 951 "src/conf/parse_opts.cc"
+yy295:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy192;
+       if (yych != 'l') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 140 "../src/conf/parse_opts.re"
+#line 141 "../src/conf/parse_opts.re"
        { opts.skeleton ();           goto opt; }
-#line 931 "src/conf/parse_opts.cc"
-yy287:
+#line 968 "src/conf/parse_opts.cc"
+yy303:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy192;
+       if (yych != 'g') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy192;
+       if (yych != 'l') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy192;
+       if (yych != 'p') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 151 "../src/conf/parse_opts.re"
+#line 152 "../src/conf/parse_opts.re"
        { goto opt; }
-#line 954 "src/conf/parse_opts.cc"
-yy298:
+#line 991 "src/conf/parse_opts.cc"
+yy314:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy192;
+       if (yych != 'u') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy192;
+       if (yych != 'b') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy192;
+       if (yych != 'l') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 135 "../src/conf/parse_opts.re"
+#line 136 "../src/conf/parse_opts.re"
        { opts.reusable ();           goto opt; }
-#line 973 "src/conf/parse_opts.cc"
-yy307:
+#line 1010 "src/conf/parse_opts.cc"
+yy323:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy192;
+       if (yych != 'p') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy192;
+       if (yych != 'u') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 146 "../src/conf/parse_opts.re"
+#line 147 "../src/conf/parse_opts.re"
        { if (!next (YYCURSOR, argv)) { error_arg ("-o, --output"); return EXIT_FAIL; } goto opt_output; }
-#line 988 "src/conf/parse_opts.cc"
-yy314:
+#line 1025 "src/conf/parse_opts.cc"
+yy330:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy326;
-       goto yy192;
-yy315:
+       if (yych == '-') goto yy342;
+       goto yy208;
+yy331:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy192;
+       if (yych != 'd') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'f') goto yy192;
+       if (yych != 'f') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 136 "../src/conf/parse_opts.re"
+#line 137 "../src/conf/parse_opts.re"
        { opts.nested_ifs ();         goto opt; }
-#line 1015 "src/conf/parse_opts.cc"
-yy326:
+#line 1052 "src/conf/parse_opts.cc"
+yy342:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy328;
-       if (yych != 'g') goto yy192;
+       if (yych == 'd') goto yy344;
+       if (yych != 'g') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy340;
-       goto yy192;
-yy328:
+       if (yych == 'e') goto yy356;
+       goto yy208;
+yy344:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy192;
+       if (yych != 'b') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy192;
+       if (yych != 'u') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy192;
+       if (yych != 'g') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'f') goto yy192;
+       if (yych != 'f') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 134 "../src/conf/parse_opts.re"
+#line 135 "../src/conf/parse_opts.re"
        { opts.no_debug_info ();      goto opt; }
-#line 1047 "src/conf/parse_opts.cc"
-yy340:
+#line 1084 "src/conf/parse_opts.cc"
+yy356:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy192;
+       if (yych != 'r') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy192;
+       if (yych != 'd') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 137 "../src/conf/parse_opts.re"
+#line 138 "../src/conf/parse_opts.re"
        { opts.no_generation_date (); goto opt; }
-#line 1080 "src/conf/parse_opts.cc"
-yy356:
+#line 1117 "src/conf/parse_opts.cc"
+yy372:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy192;
+       if (yych != 'p') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy192;
+       if (yych != 'u') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 149 "../src/conf/parse_opts.re"
+#line 150 "../src/conf/parse_opts.re"
        { goto opt_input; }
-#line 1093 "src/conf/parse_opts.cc"
-yy362:
+#line 1130 "src/conf/parse_opts.cc"
+yy378:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy192;
+       if (yych != 'l') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy192;
+       if (yych != 'p') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 124 "../src/conf/parse_opts.re"
+#line 125 "../src/conf/parse_opts.re"
        { usage ();   return EXIT_OK; }
-#line 1104 "src/conf/parse_opts.cc"
-yy367:
+#line 1141 "src/conf/parse_opts.cc"
+yy383:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'x') goto yy192;
+       if (yych != 'x') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy192;
+       if (yych != 'y') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'x') goto yy192;
+       if (yych != 'x') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 132 "../src/conf/parse_opts.re"
+#line 133 "../src/conf/parse_opts.re"
        { opts.flex_syntax ();        goto opt; }
-#line 1129 "src/conf/parse_opts.cc"
-yy379:
+#line 1166 "src/conf/parse_opts.cc"
+yy395:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy400;
-       if (yych == 'p') goto yy401;
-       goto yy192;
-yy380:
+       if (yych == 'i') goto yy416;
+       if (yych == 'p') goto yy417;
+       goto yy208;
+yy396:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy385;
-       goto yy192;
-yy381:
+       if (yych == 'c') goto yy401;
+       goto yy208;
+yy397:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy192;
+       if (yych != 'b') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 141 "../src/conf/parse_opts.re"
+#line 142 "../src/conf/parse_opts.re"
        { if (!opts.ecb ())        { error_encoding (); return EXIT_FAIL; } goto opt; }
-#line 1147 "src/conf/parse_opts.cc"
-yy385:
+#line 1184 "src/conf/parse_opts.cc"
+yy401:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy192;
+       if (yych != 'd') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy192;
+       if (yych != 'g') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy192;
+       if (yych != 'p') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy192;
+       if (yych != 'l') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy192;
+       if (yych != 'c') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy192;
+       if (yych != 'y') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 148 "../src/conf/parse_opts.re"
+#line 149 "../src/conf/parse_opts.re"
        { goto opt_encoding_policy; }
-#line 1178 "src/conf/parse_opts.cc"
-yy400:
+#line 1215 "src/conf/parse_opts.cc"
+yy416:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy412;
-       goto yy192;
-yy401:
+       if (yych == 't') goto yy428;
+       goto yy208;
+yy417:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy192;
+       if (yych != 'y') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy192;
+       if (yych != 'c') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy192;
+       if (yych != 'l') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy192;
+       if (yych != 'a') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 150 "../src/conf/parse_opts.re"
+#line 151 "../src/conf/parse_opts.re"
        { goto opt_empty_class; }
-#line 1205 "src/conf/parse_opts.cc"
-yy412:
+#line 1242 "src/conf/parse_opts.cc"
+yy428:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy192;
+       if (yych != 'd') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 130 "../src/conf/parse_opts.re"
+#line 131 "../src/conf/parse_opts.re"
        { opts.emit_dot ();           goto opt; }
-#line 1220 "src/conf/parse_opts.cc"
-yy419:
+#line 1257 "src/conf/parse_opts.cc"
+yy435:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'b') goto yy192;
+       if (yych != 'b') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy192;
+       if (yych != 'u') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy192;
+       if (yych != 'g') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy192;
+       if (yych != 'u') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy192;
+       if (yych != 'p') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy192;
+       if (yych != 'u') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 129 "../src/conf/parse_opts.re"
+#line 130 "../src/conf/parse_opts.re"
        { opts.debug_output ();       goto opt; }
-#line 1247 "src/conf/parse_opts.cc"
-yy432:
+#line 1284 "src/conf/parse_opts.cc"
+yy448:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy448;
-       goto yy192;
-yy433:
+       if (yych == 's') goto yy464;
+       goto yy208;
+yy449:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'm') goto yy192;
+       if (yych != 'm') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy192;
+       if (yych != 'p') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy192;
+       if (yych != 'u') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy192;
+       if (yych != 'd') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'g') goto yy192;
+       if (yych != 'g') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 133 "../src/conf/parse_opts.re"
+#line 134 "../src/conf/parse_opts.re"
        { opts.computed_gotos ();     goto opt; }
-#line 1282 "src/conf/parse_opts.cc"
-yy448:
+#line 1319 "src/conf/parse_opts.cc"
+yy464:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy454;
-       if (yych != 'v') goto yy192;
+       if (yych == 's') goto yy470;
+       if (yych != 'v') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy465;
-       goto yy192;
-yy454:
+       if (yych == 'e') goto yy481;
+       goto yy208;
+yy470:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy192;
+       if (yych != 'n') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy192;
+       if (yych != 'i') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'v') goto yy192;
+       if (yych != 'v') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 138 "../src/conf/parse_opts.re"
+#line 139 "../src/conf/parse_opts.re"
        { opts.case_insensitive ();   goto opt; }
-#line 1320 "src/conf/parse_opts.cc"
-yy465:
+#line 1357 "src/conf/parse_opts.cc"
+yy481:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy192;
+       if (yych != 'r') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'd') goto yy192;
+       if (yych != 'd') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 139 "../src/conf/parse_opts.re"
+#line 140 "../src/conf/parse_opts.re"
        { opts.case_inverted ();      goto opt; }
-#line 1335 "src/conf/parse_opts.cc"
-yy472:
+#line 1372 "src/conf/parse_opts.cc"
+yy488:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy192;
+       if (yych != '-') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'v') goto yy192;
+       if (yych != 'v') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy192;
+       if (yych != 'e') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy192;
+       if (yych != 'c') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy192;
+       if (yych != 't') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy192;
+       if (yych != 'o') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy192;
+       if (yych != 'r') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy192;
+       if (yych != 's') goto yy208;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy192;
+       if (yych >= 0x01) goto yy208;
        ++YYCURSOR;
-#line 127 "../src/conf/parse_opts.re"
+#line 128 "../src/conf/parse_opts.re"
        { opts.bit_vectors ();        goto opt; }
-#line 1360 "src/conf/parse_opts.cc"
+#line 1397 "src/conf/parse_opts.cc"
 }
-#line 152 "../src/conf/parse_opts.re"
+#line 153 "../src/conf/parse_opts.re"
 
 
 opt_output:
 
-#line 1367 "src/conf/parse_opts.cc"
+#line 1404 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -1401,37 +1438,37 @@ opt_output:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy486;
-       if (yych != '-') goto yy488;
-yy486:
+       if (yych <= 0x00) goto yy502;
+       if (yych != '-') goto yy504;
+yy502:
        ++YYCURSOR;
-#line 157 "../src/conf/parse_opts.re"
+#line 158 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option -o, --output: %s", *argv);
                return EXIT_FAIL;
        }
-#line 1414 "src/conf/parse_opts.cc"
-yy488:
+#line 1451 "src/conf/parse_opts.cc"
+yy504:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       goto yy490;
-yy489:
+       goto yy506;
+yy505:
        ++YYCURSOR;
        yych = (YYCTYPE)*YYCURSOR;
-yy490:
+yy506:
        if (yybm[0+yych] & 128) {
-               goto yy489;
+               goto yy505;
        }
        ++YYCURSOR;
-#line 161 "../src/conf/parse_opts.re"
+#line 162 "../src/conf/parse_opts.re"
        { if (!opts.output (*argv)) return EXIT_FAIL; goto opt; }
-#line 1428 "src/conf/parse_opts.cc"
+#line 1465 "src/conf/parse_opts.cc"
 }
-#line 162 "../src/conf/parse_opts.re"
+#line 163 "../src/conf/parse_opts.re"
 
 
 opt_header:
 
-#line 1435 "src/conf/parse_opts.cc"
+#line 1472 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -1469,32 +1506,32 @@ opt_header:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy495;
-       if (yych != '-') goto yy497;
-yy495:
+       if (yych <= 0x00) goto yy511;
+       if (yych != '-') goto yy513;
+yy511:
        ++YYCURSOR;
-#line 167 "../src/conf/parse_opts.re"
+#line 168 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option -t, --type-header: %s", *argv);
                return EXIT_FAIL;
        }
-#line 1482 "src/conf/parse_opts.cc"
-yy497:
+#line 1519 "src/conf/parse_opts.cc"
+yy513:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       goto yy499;
-yy498:
+       goto yy515;
+yy514:
        ++YYCURSOR;
        yych = (YYCTYPE)*YYCURSOR;
-yy499:
+yy515:
        if (yybm[0+yych] & 128) {
-               goto yy498;
+               goto yy514;
        }
        ++YYCURSOR;
-#line 171 "../src/conf/parse_opts.re"
+#line 172 "../src/conf/parse_opts.re"
        { if (!opts.type_header (*argv)) return EXIT_FAIL; goto opt; }
-#line 1496 "src/conf/parse_opts.cc"
+#line 1533 "src/conf/parse_opts.cc"
 }
-#line 172 "../src/conf/parse_opts.re"
+#line 173 "../src/conf/parse_opts.re"
 
 
 opt_encoding_policy:
@@ -1504,89 +1541,89 @@ opt_encoding_policy:
                return EXIT_FAIL;
        }
 
-#line 1508 "src/conf/parse_opts.cc"
+#line 1545 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy506;
+               if (yych == 'f') goto yy522;
        } else {
-               if (yych <= 'i') goto yy507;
-               if (yych == 's') goto yy508;
+               if (yych <= 'i') goto yy523;
+               if (yych == 's') goto yy524;
        }
        ++YYCURSOR;
-yy505:
-#line 182 "../src/conf/parse_opts.re"
+yy521:
+#line 183 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --encoding-policy (expected: ignore | substitute | fail): %s", *argv);
                return EXIT_FAIL;
        }
-#line 1525 "src/conf/parse_opts.cc"
-yy506:
+#line 1562 "src/conf/parse_opts.cc"
+yy522:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy528;
-       goto yy505;
-yy507:
+       if (yych == 'a') goto yy544;
+       goto yy521;
+yy523:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'g') goto yy521;
-       goto yy505;
-yy508:
+       if (yych == 'g') goto yy537;
+       goto yy521;
+yy524:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'u') goto yy505;
+       if (yych != 'u') goto yy521;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy511;
-yy510:
+       if (yych == 'b') goto yy527;
+yy526:
        YYCURSOR = YYMARKER;
-       goto yy505;
-yy511:
+       goto yy521;
+yy527:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy510;
+       if (yych != 's') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy510;
+       if (yych != 't') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy510;
+       if (yych != 'i') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy510;
+       if (yych != 't') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy510;
+       if (yych != 'u') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy510;
+       if (yych != 't') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy510;
+       if (yych != 'e') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy510;
+       if (yych >= 0x01) goto yy526;
        ++YYCURSOR;
-#line 187 "../src/conf/parse_opts.re"
+#line 188 "../src/conf/parse_opts.re"
        { opts.encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; }
-#line 1562 "src/conf/parse_opts.cc"
-yy521:
+#line 1599 "src/conf/parse_opts.cc"
+yy537:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy510;
+       if (yych != 'n') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy510;
+       if (yych != 'o') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy510;
+       if (yych != 'r') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy510;
+       if (yych != 'e') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy510;
+       if (yych >= 0x01) goto yy526;
        ++YYCURSOR;
-#line 186 "../src/conf/parse_opts.re"
+#line 187 "../src/conf/parse_opts.re"
        { opts.encoding_policy (Enc::POLICY_IGNORE);     goto opt; }
-#line 1577 "src/conf/parse_opts.cc"
-yy528:
+#line 1614 "src/conf/parse_opts.cc"
+yy544:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'i') goto yy510;
+       if (yych != 'i') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy510;
+       if (yych != 'l') goto yy526;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy510;
+       if (yych >= 0x01) goto yy526;
        ++YYCURSOR;
-#line 188 "../src/conf/parse_opts.re"
+#line 189 "../src/conf/parse_opts.re"
        { opts.encoding_policy (Enc::POLICY_FAIL);       goto opt; }
-#line 1588 "src/conf/parse_opts.cc"
+#line 1625 "src/conf/parse_opts.cc"
 }
-#line 189 "../src/conf/parse_opts.re"
+#line 190 "../src/conf/parse_opts.re"
 
 
 opt_input:
@@ -1596,66 +1633,66 @@ opt_input:
                return EXIT_FAIL;
        }
 
-#line 1600 "src/conf/parse_opts.cc"
+#line 1637 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 'b') goto yy535;
-       if (yych <= 'c') goto yy537;
-       if (yych <= 'd') goto yy538;
-yy535:
+       if (yych <= 'b') goto yy551;
+       if (yych <= 'c') goto yy553;
+       if (yych <= 'd') goto yy554;
+yy551:
        ++YYCURSOR;
-yy536:
-#line 199 "../src/conf/parse_opts.re"
+yy552:
+#line 200 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --input (expected: default | custom): %s", *argv);
                return EXIT_FAIL;
        }
-#line 1615 "src/conf/parse_opts.cc"
-yy537:
+#line 1652 "src/conf/parse_opts.cc"
+yy553:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy548;
-       goto yy536;
-yy538:
+       if (yych == 'u') goto yy564;
+       goto yy552;
+yy554:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'e') goto yy536;
+       if (yych != 'e') goto yy552;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy541;
-yy540:
+       if (yych == 'f') goto yy557;
+yy556:
        YYCURSOR = YYMARKER;
-       goto yy536;
-yy541:
+       goto yy552;
+yy557:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'a') goto yy540;
+       if (yych != 'a') goto yy556;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy540;
+       if (yych != 'u') goto yy556;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'l') goto yy540;
+       if (yych != 'l') goto yy556;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy540;
+       if (yych != 't') goto yy556;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy540;
+       if (yych >= 0x01) goto yy556;
        ++YYCURSOR;
-#line 203 "../src/conf/parse_opts.re"
+#line 204 "../src/conf/parse_opts.re"
        { opts.input (InputAPI::DEFAULT); goto opt; }
-#line 1642 "src/conf/parse_opts.cc"
-yy548:
+#line 1679 "src/conf/parse_opts.cc"
+yy564:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 's') goto yy540;
+       if (yych != 's') goto yy556;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy540;
+       if (yych != 't') goto yy556;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy540;
+       if (yych != 'o') goto yy556;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'm') goto yy540;
+       if (yych != 'm') goto yy556;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy540;
+       if (yych >= 0x01) goto yy556;
        ++YYCURSOR;
-#line 204 "../src/conf/parse_opts.re"
+#line 205 "../src/conf/parse_opts.re"
        { opts.input (InputAPI::CUSTOM);  goto opt; }
-#line 1657 "src/conf/parse_opts.cc"
+#line 1694 "src/conf/parse_opts.cc"
 }
-#line 205 "../src/conf/parse_opts.re"
+#line 206 "../src/conf/parse_opts.re"
 
 
 opt_empty_class:
@@ -1665,88 +1702,88 @@ opt_empty_class:
                return EXIT_FAIL;
        }
 
-#line 1669 "src/conf/parse_opts.cc"
+#line 1706 "src/conf/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'e') goto yy559;
-       if (yych == 'm') goto yy560;
+       if (yych == 'e') goto yy575;
+       if (yych == 'm') goto yy576;
        ++YYCURSOR;
-yy558:
-#line 215 "../src/conf/parse_opts.re"
+yy574:
+#line 216 "../src/conf/parse_opts.re"
        {
                error ("bad argument to option --empty-class (expected: match-empty | match-none | error): %s", *argv);
                return EXIT_FAIL;
        }
-#line 1682 "src/conf/parse_opts.cc"
-yy559:
+#line 1719 "src/conf/parse_opts.cc"
+yy575:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'r') goto yy580;
-       goto yy558;
-yy560:
+       if (yych == 'r') goto yy596;
+       goto yy574;
+yy576:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych != 'a') goto yy558;
+       if (yych != 'a') goto yy574;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy563;
-yy562:
+       if (yych == 't') goto yy579;
+yy578:
        YYCURSOR = YYMARKER;
-       goto yy558;
-yy563:
+       goto yy574;
+yy579:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'c') goto yy562;
+       if (yych != 'c') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'h') goto yy562;
+       if (yych != 'h') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != '-') goto yy562;
+       if (yych != '-') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy567;
-       if (yych == 'n') goto yy568;
-       goto yy562;
-yy567:
+       if (yych == 'e') goto yy583;
+       if (yych == 'n') goto yy584;
+       goto yy578;
+yy583:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy574;
-       goto yy562;
-yy568:
+       if (yych == 'm') goto yy590;
+       goto yy578;
+yy584:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy562;
+       if (yych != 'o') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'n') goto yy562;
+       if (yych != 'n') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy562;
+       if (yych != 'e') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy562;
+       if (yych >= 0x01) goto yy578;
        ++YYCURSOR;
-#line 220 "../src/conf/parse_opts.re"
+#line 221 "../src/conf/parse_opts.re"
        { opts.empty_class (EMPTY_CLASS_MATCH_NONE);  goto opt; }
-#line 1722 "src/conf/parse_opts.cc"
-yy574:
+#line 1759 "src/conf/parse_opts.cc"
+yy590:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'p') goto yy562;
+       if (yych != 'p') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy562;
+       if (yych != 't') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'y') goto yy562;
+       if (yych != 'y') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy562;
+       if (yych >= 0x01) goto yy578;
        ++YYCURSOR;
-#line 219 "../src/conf/parse_opts.re"
+#line 220 "../src/conf/parse_opts.re"
        { opts.empty_class (EMPTY_CLASS_MATCH_EMPTY); goto opt; }
-#line 1735 "src/conf/parse_opts.cc"
-yy580:
+#line 1772 "src/conf/parse_opts.cc"
+yy596:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy562;
+       if (yych != 'r') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'o') goto yy562;
+       if (yych != 'o') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'r') goto yy562;
+       if (yych != 'r') goto yy578;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy562;
+       if (yych >= 0x01) goto yy578;
        ++YYCURSOR;
-#line 221 "../src/conf/parse_opts.re"
+#line 222 "../src/conf/parse_opts.re"
        { opts.empty_class (EMPTY_CLASS_ERROR);       goto opt; }
-#line 1748 "src/conf/parse_opts.cc"
+#line 1785 "src/conf/parse_opts.cc"
 }
-#line 222 "../src/conf/parse_opts.re"
+#line 223 "../src/conf/parse_opts.re"
 
 
 end:
index 48a727a436d881117ed8a1d7c37193217b458e49..1c9b109edfd015e50c6e725c8f76f9080c87699e 100644 (file)
@@ -1,5 +1,5 @@
-/* Generated by re2c 0.14.3 on Tue Aug 18 13:29:34 2015 */
-#line 1 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+/* Generated by re2c 0.14.3 on Tue Aug 18 21:48:49 2015 */
+#line 1 "../src/parse/scanner_lex.re"
 #include <stdlib.h>
 #include <string.h>
 #include <iostream>
@@ -29,10 +29,10 @@ namespace re2c
 // source code is in ASCII: pointers have type 'char *'
 // but re2c makes an implicit assumption that YYCTYPE is unsigned
 // when it generates comparisons
-#line 32 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 32 "../src/parse/scanner_lex.re"
 
 
-#line 50 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 50 "../src/parse/scanner_lex.re"
 
 
 Scanner::ParseMode Scanner::echo()
@@ -107,7 +107,7 @@ echo:
                }
        }
        ++YYCURSOR;
-#line 193 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 193 "../src/parse/scanner_lex.re"
        {
                                        if (!(ignore_eoc || DFlag || flag_skeleton))
                                        {
@@ -123,7 +123,7 @@ echo:
 yy4:
        ++YYCURSOR;
 yy5:
-#line 204 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 204 "../src/parse/scanner_lex.re"
        {
                                        goto echo;
                                }
@@ -136,7 +136,7 @@ yy6:
        }
        if (yych == '#') goto yy91;
 yy7:
-#line 180 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 180 "../src/parse/scanner_lex.re"
        {
                                        if (ignore_eoc)
                                        {
@@ -234,7 +234,7 @@ yy21:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy12;
        ++YYCURSOR;
-#line 81 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 81 "../src/parse/scanner_lex.re"
        {
                                        if (rFlag)
                                        {
@@ -253,7 +253,7 @@ yy31:
        if (yych != 'c') goto yy12;
 yy32:
        ++YYCURSOR;
-#line 66 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 66 "../src/parse/scanner_lex.re"
        {
                                        if (rFlag)
                                        {
@@ -284,7 +284,7 @@ yy34:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy12;
        ++YYCURSOR;
-#line 93 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 93 "../src/parse/scanner_lex.re"
        {
                                        if (!rFlag)
                                        {
@@ -314,7 +314,7 @@ yy42:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy12;
        ++YYCURSOR;
-#line 107 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 107 "../src/parse/scanner_lex.re"
        {
                                        if (!DFlag)
                                        {
@@ -349,7 +349,7 @@ yy50:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy12;
        ++YYCURSOR;
-#line 116 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 116 "../src/parse/scanner_lex.re"
        {
                                        tok = pos = cur;
                                        out.insert_state_goto (topIndent);
@@ -377,7 +377,7 @@ yy63:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy12;
        ++YYCURSOR;
-#line 122 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 122 "../src/parse/scanner_lex.re"
        {
                                        tok = pos = cur;
                                        ignore_eoc = true;
@@ -402,7 +402,7 @@ yy74:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych != 'c') goto yy12;
        ++YYCURSOR;
-#line 127 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 127 "../src/parse/scanner_lex.re"
        {
                                        tok = pos = cur;
                                        ignore_eoc = true;
@@ -423,7 +423,7 @@ yy84:
        if (yych == '\n') goto yy87;
        if (yych == '\r') goto yy86;
 yy85:
-#line 158 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 158 "../src/parse/scanner_lex.re"
        {
                                        if (ignore_eoc)
                                        {
@@ -448,7 +448,7 @@ yy86:
        if (yych != '\n') goto yy12;
 yy87:
        ++YYCURSOR;
-#line 140 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 140 "../src/parse/scanner_lex.re"
        {
                                        cline++;
                                        if (ignore_eoc)
@@ -542,7 +542,7 @@ yy101:
 yy103:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 176 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 176 "../src/parse/scanner_lex.re"
        {
                                        set_sourceline ();
                                        goto echo;
@@ -572,7 +572,7 @@ yy109:
        if (yych == '\r') goto yy105;
        goto yy12;
 }
-#line 207 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 207 "../src/parse/scanner_lex.re"
 
 }
 
@@ -711,7 +711,7 @@ start:
 yy112:
        ++YYCURSOR;
 yy113:
-#line 422 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 422 "../src/parse/scanner_lex.re"
        {
                                        fatalf("unexpected character: '%c'", *tok);
                                        goto scan;
@@ -722,7 +722,7 @@ yy114:
        yych = (YYCTYPE)*YYCURSOR;
        goto yy236;
 yy115:
-#line 406 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 406 "../src/parse/scanner_lex.re"
        {
                                        goto scan;
                                }
@@ -737,7 +737,7 @@ yy116:
                if (yych == '#') goto yy216;
        }
 yy117:
-#line 415 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 415 "../src/parse/scanner_lex.re"
        {
                                        if (cur == eof) return 0;
                                        pos = cur;
@@ -754,7 +754,7 @@ yy119:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych != '\n') goto yy209;
 yy120:
-#line 285 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 285 "../src/parse/scanner_lex.re"
        {
                                        fatal("unterminated string constant (missing \")");
                                }
@@ -768,7 +768,7 @@ yy122:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych != '\n') goto yy204;
 yy123:
-#line 288 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 288 "../src/parse/scanner_lex.re"
        {
                                        fatal("unterminated string constant (missing ')");
                                }
@@ -776,7 +776,7 @@ yy123:
 yy124:
        ++YYCURSOR;
 yy125:
-#line 301 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 301 "../src/parse/scanner_lex.re"
        {
                                        return *tok;
                                }
@@ -784,7 +784,7 @@ yy125:
 yy126:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) == '/') goto yy201;
-#line 305 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 305 "../src/parse/scanner_lex.re"
        {
                                        yylval.op = *tok;
                                        return STAR;
@@ -792,7 +792,7 @@ yy126:
 #line 793 "src/parse/scanner_lex.cc"
 yy128:
        ++YYCURSOR;
-#line 309 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 309 "../src/parse/scanner_lex.re"
        {
                                        yylval.op = *tok;
                                        return CLOSE;
@@ -800,7 +800,7 @@ yy128:
 #line 801 "src/parse/scanner_lex.cc"
 yy130:
        ++YYCURSOR;
-#line 401 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 401 "../src/parse/scanner_lex.re"
        {
                                        yylval.regexp = mkDot();
                                        return RANGE;
@@ -829,7 +829,7 @@ yy135:
 yy136:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) == '^') goto yy182;
-#line 292 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 292 "../src/parse/scanner_lex.re"
        {                       goto cpoint_class; }
 #line 835 "src/parse/scanner_lex.cc"
 yy138:
@@ -855,7 +855,7 @@ yy139:
                }
        }
 yy140:
-#line 230 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 230 "../src/parse/scanner_lex.re"
        {
                                        depth = 1;
                                        goto code;
@@ -921,14 +921,14 @@ yy144:
 yy146:
        ++YYCURSOR;
 yy147:
-#line 345 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 345 "../src/parse/scanner_lex.re"
        {
                                        fatal("illegal closure form, use '{n}', '{n,}', '{n,m}' where n and m are numbers");
                                }
 #line 929 "src/parse/scanner_lex.cc"
 yy148:
        ++YYCURSOR;
-#line 349 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 349 "../src/parse/scanner_lex.re"
        {
                                        if (!FFlag) {
                                                fatal("curly braces for names only allowed with -F switch");
@@ -939,7 +939,7 @@ yy148:
 #line 940 "src/parse/scanner_lex.cc"
 yy150:
        ++YYCURSOR;
-#line 314 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 314 "../src/parse/scanner_lex.re"
        {
                                        if (!s_to_u32_unsafe (tok + 1, cur - 1, yylval.extop.min))
                                        {
@@ -956,7 +956,7 @@ yy152:
        if (yych <= '9') goto yy155;
        if (yych != '}') goto yy147;
        ++YYCURSOR;
-#line 336 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 336 "../src/parse/scanner_lex.re"
        {
                                        if (!s_to_u32_unsafe (tok + 1, cur - 2, yylval.extop.min))
                                        {
@@ -974,7 +974,7 @@ yy155:
        if (yych <= '9') goto yy155;
        if (yych != '}') goto yy143;
        ++YYCURSOR;
-#line 323 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 323 "../src/parse/scanner_lex.re"
        {
                                        const char * p = strchr (tok, ',');
                                        if (!s_to_u32_unsafe (tok + 1, p, yylval.extop.min))
@@ -992,7 +992,7 @@ yy159:
        ++YYCURSOR;
 yy160:
        YYCURSOR = YYCTXMARKER;
-#line 382 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 382 "../src/parse/scanner_lex.re"
        {
                                        if (!FFlag) {
                                                yylval.str = new std::string (tok, tok_len ());
@@ -1019,7 +1019,7 @@ yy162:
        ++YYCURSOR;
 yy163:
        YYCURSOR = YYCTXMARKER;
-#line 377 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 377 "../src/parse/scanner_lex.re"
        {
                                        yylval.str = new std::string (tok, tok_len ());
                                        return ID;
@@ -1103,7 +1103,7 @@ yy170:
                }
        }
 yy172:
-#line 357 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 357 "../src/parse/scanner_lex.re"
        {
                                        tok += 5; /* skip "re2c:" */
                                        lexer_state = LEX_CONFIG;
@@ -1169,7 +1169,7 @@ yy175:
 yy177:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 364 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 364 "../src/parse/scanner_lex.re"
        {
                                        yylval.str = new std::string (tok, tok_len ());
                                        if (FFlag)
@@ -1199,12 +1199,12 @@ yy181:
        goto yy163;
 yy182:
        ++YYCURSOR;
-#line 293 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 293 "../src/parse/scanner_lex.re"
        { negated_class = true; goto cpoint_class; }
 #line 1205 "src/parse/scanner_lex.cc"
 yy184:
        ++YYCURSOR;
-#line 298 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 298 "../src/parse/scanner_lex.re"
        {
                                        return SETUP;
                                }
@@ -1238,7 +1238,7 @@ yy188:
 yy189:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 295 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 295 "../src/parse/scanner_lex.re"
        {
                                        return NOCOND;
                                }
@@ -1254,7 +1254,7 @@ yy192:
 yy193:
        ++YYCURSOR;
        if ((yych = (YYCTYPE)*YYCURSOR) == '>') goto yy195;
-#line 239 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 239 "../src/parse/scanner_lex.re"
        {
                                        tok += 2; /* skip ":=" */
                                        depth = 0;
@@ -1264,14 +1264,14 @@ yy193:
 yy195:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 235 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 235 "../src/parse/scanner_lex.re"
        {
                                        return *tok;
                                }
 #line 1272 "src/parse/scanner_lex.cc"
 yy197:
        ++YYCURSOR;
-#line 248 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 248 "../src/parse/scanner_lex.re"
        {
                                        depth = 1;
                                        goto comment;
@@ -1279,14 +1279,14 @@ yy197:
 #line 1280 "src/parse/scanner_lex.cc"
 yy199:
        ++YYCURSOR;
-#line 245 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 245 "../src/parse/scanner_lex.re"
        {
                                goto nextLine;
                        }
 #line 1287 "src/parse/scanner_lex.cc"
 yy201:
        ++YYCURSOR;
-#line 254 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 254 "../src/parse/scanner_lex.re"
        {
                                        tok = cur;
                                        return 0;
@@ -1309,7 +1309,7 @@ yy204:
        goto yy203;
 yy206:
        ++YYCURSOR;
-#line 272 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 272 "../src/parse/scanner_lex.re"
        {
                                        SubStr s (tok + 1, tok_len () - 2); // -2 to omit quotes
                                        if (bCaseInverted)
@@ -1340,7 +1340,7 @@ yy209:
        goto yy208;
 yy211:
        ++YYCURSOR;
-#line 259 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 259 "../src/parse/scanner_lex.re"
        {
                                        SubStr s (tok + 1, tok_len () - 2); // -2 to omit quotes
                                        if (bCaseInsensitive || bCaseInverted)
@@ -1446,7 +1446,7 @@ yy226:
 yy228:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 410 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 410 "../src/parse/scanner_lex.re"
        {
                                        set_sourceline ();
                                        goto scan;
@@ -1486,7 +1486,7 @@ yy236:
        if (yych == ' ') goto yy235;
        goto yy115;
 }
-#line 426 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 426 "../src/parse/scanner_lex.re"
 
 
 flex_name:
@@ -1500,7 +1500,7 @@ flex_name:
        if (yych == '\r') goto yy243;
        ++YYCURSOR;
 yy240:
-#line 437 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 437 "../src/parse/scanner_lex.re"
        {
                YYCURSOR = tok;
                goto start;
@@ -1509,7 +1509,7 @@ yy240:
 yy241:
        ++YYCURSOR;
 yy242:
-#line 431 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 431 "../src/parse/scanner_lex.re"
        {
                YYCURSOR = tok;
                lexer_state = LEX_NORMAL;
@@ -1523,7 +1523,7 @@ yy243:
        yych = (YYCTYPE)*YYCURSOR;
        goto yy242;
 }
-#line 441 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 441 "../src/parse/scanner_lex.re"
 
 
 cpoint_class:
@@ -1545,12 +1545,12 @@ cpoint_class:
        }
 yy247:
        ++YYCURSOR;
-#line 453 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 453 "../src/parse/scanner_lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in character range"); }
 #line 1551 "src/parse/scanner_lex.cc"
 yy249:
        ++YYCURSOR;
-#line 462 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 462 "../src/parse/scanner_lex.re"
        { cpoints.push_back (static_cast<uint32_t> (tok[0])); goto cpoint_class; }
 #line 1556 "src/parse/scanner_lex.cc"
 yy251:
@@ -1598,12 +1598,12 @@ yy251:
                }
        }
 yy252:
-#line 456 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 456 "../src/parse/scanner_lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in escape sequence"); }
 #line 1604 "src/parse/scanner_lex.cc"
 yy253:
        ++YYCURSOR;
-#line 465 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 471 "../src/parse/scanner_lex.re"
        {
                yylval.regexp = cpoint_class (cpoints, negated_class);
                return RANGE;
@@ -1611,18 +1611,23 @@ yy253:
 #line 1612 "src/parse/scanner_lex.cc"
 yy255:
        ++YYCURSOR;
-#line 463 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
-       { cpoints.push_back (static_cast<uint32_t> (tok[1])); goto cpoint_class; }
-#line 1617 "src/parse/scanner_lex.cc"
+#line 464 "../src/parse/scanner_lex.re"
+       {
+               const char c = tok[1];
+               warn.useless_escape (tline, tok - pos, c);
+               cpoints.push_back (static_cast<uint32_t> (c));
+               goto cpoint_class;
+       }
+#line 1622 "src/parse/scanner_lex.cc"
 yy257:
        yyaccept = 0;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= '/') goto yy258;
        if (yych <= '7') goto yy282;
 yy258:
-#line 455 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 455 "../src/parse/scanner_lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in octal escape sequence"); }
-#line 1626 "src/parse/scanner_lex.cc"
+#line 1631 "src/parse/scanner_lex.cc"
 yy259:
        yych = (YYCTYPE)*++YYCURSOR;
        goto yy258;
@@ -1638,9 +1643,9 @@ yy260:
                if (yych <= 'f') goto yy275;
        }
 yy261:
-#line 454 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 454 "../src/parse/scanner_lex.re"
        { fatal ((tok - pos) - tchar, "syntax error in hexadecimal escape sequence"); }
-#line 1644 "src/parse/scanner_lex.cc"
+#line 1649 "src/parse/scanner_lex.cc"
 yy262:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
@@ -1656,14 +1661,14 @@ yy262:
        }
 yy263:
        ++YYCURSOR;
-#line 460 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 460 "../src/parse/scanner_lex.re"
        { cpoints.push_back (unesc_escapable (tok));          goto cpoint_class; }
-#line 1662 "src/parse/scanner_lex.cc"
+#line 1667 "src/parse/scanner_lex.cc"
 yy265:
        ++YYCURSOR;
-#line 461 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 461 "../src/parse/scanner_lex.re"
        { cpoints.push_back (']');                            goto cpoint_class; }
-#line 1667 "src/parse/scanner_lex.cc"
+#line 1672 "src/parse/scanner_lex.cc"
 yy267:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
@@ -1694,9 +1699,9 @@ yy269:
        }
 yy270:
        ++YYCURSOR;
-#line 458 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 458 "../src/parse/scanner_lex.re"
        { cpoints.push_back (unesc_hex (tok, cur));           goto cpoint_class; }
-#line 1700 "src/parse/scanner_lex.cc"
+#line 1705 "src/parse/scanner_lex.cc"
 yy272:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '@') {
@@ -1806,16 +1811,16 @@ yy282:
        if (yych <= '/') goto yy269;
        if (yych >= '8') goto yy269;
        ++YYCURSOR;
-#line 459 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 459 "../src/parse/scanner_lex.re"
        { cpoints.push_back (unesc_oct (tok, cur));           goto cpoint_class; }
-#line 1812 "src/parse/scanner_lex.cc"
+#line 1817 "src/parse/scanner_lex.cc"
 }
-#line 469 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 475 "../src/parse/scanner_lex.re"
 
 
 code:
 
-#line 1819 "src/parse/scanner_lex.cc"
+#line 1824 "src/parse/scanner_lex.cc"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -1876,7 +1881,7 @@ code:
        }
 yy287:
        ++YYCURSOR;
-#line 532 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 538 "../src/parse/scanner_lex.re"
        {
                                        if (cur == eof)
                                        {
@@ -1888,15 +1893,15 @@ yy287:
                                        }
                                        goto code;
                                }
-#line 1892 "src/parse/scanner_lex.cc"
+#line 1897 "src/parse/scanner_lex.cc"
 yy289:
        ++YYCURSOR;
 yy290:
-#line 546 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 552 "../src/parse/scanner_lex.re"
        {
                                        goto code;
                                }
-#line 1900 "src/parse/scanner_lex.cc"
+#line 1905 "src/parse/scanner_lex.cc"
 yy291:
        YYCTXMARKER = YYCURSOR + 1;
        yyaccept = 0;
@@ -1916,7 +1921,7 @@ yy291:
                }
        }
 yy292:
-#line 513 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 519 "../src/parse/scanner_lex.re"
        {
                                        if (depth == 0)
                                        {
@@ -1936,7 +1941,7 @@ yy292:
                                        cline++;
                                        goto code;
                                }
-#line 1940 "src/parse/scanner_lex.cc"
+#line 1945 "src/parse/scanner_lex.cc"
 yy293:
        yyaccept = 1;
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
@@ -1949,7 +1954,7 @@ yy294:
        goto yy300;
 yy295:
        ++YYCURSOR;
-#line 485 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 491 "../src/parse/scanner_lex.re"
        {
                                        if (depth == 0)
                                        {
@@ -1961,10 +1966,10 @@ yy295:
                                        }
                                        goto code;
                                }
-#line 1965 "src/parse/scanner_lex.cc"
+#line 1970 "src/parse/scanner_lex.cc"
 yy297:
        ++YYCURSOR;
-#line 473 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 479 "../src/parse/scanner_lex.re"
        {
                                        if (depth == 0)
                                        {
@@ -1977,7 +1982,7 @@ yy297:
                                        }
                                        goto code;
                                }
-#line 1981 "src/parse/scanner_lex.cc"
+#line 1986 "src/parse/scanner_lex.cc"
 yy299:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -2008,11 +2013,11 @@ yy302:
        goto yy299;
 yy303:
        ++YYCURSOR;
-#line 543 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 549 "../src/parse/scanner_lex.re"
        {
                                        goto code;
                                }
-#line 2016 "src/parse/scanner_lex.cc"
+#line 2021 "src/parse/scanner_lex.cc"
 yy305:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -2039,7 +2044,7 @@ yy308:
        }
 yy309:
        YYCURSOR = YYCTXMARKER;
-#line 500 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 506 "../src/parse/scanner_lex.re"
        {
                                        if (depth == 0)
                                        {
@@ -2053,7 +2058,7 @@ yy309:
                                        cline++;
                                        goto code;
                                }
-#line 2057 "src/parse/scanner_lex.cc"
+#line 2062 "src/parse/scanner_lex.cc"
 yy310:
        yych = (YYCTYPE)*++YYCURSOR;
        goto yy309;
@@ -2120,12 +2125,12 @@ yy321:
 yy323:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 496 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 502 "../src/parse/scanner_lex.re"
        {
                                        set_sourceline ();
                                        goto code;
                                }
-#line 2129 "src/parse/scanner_lex.cc"
+#line 2134 "src/parse/scanner_lex.cc"
 yy325:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '\n') goto yy323;
@@ -2164,12 +2169,12 @@ yy330:
                goto yy301;
        }
 }
-#line 549 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 555 "../src/parse/scanner_lex.re"
 
 
 comment:
 
-#line 2173 "src/parse/scanner_lex.cc"
+#line 2178 "src/parse/scanner_lex.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2216,7 +2221,7 @@ comment:
        }
        ++YYCURSOR;
 yy335:
-#line 581 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 587 "../src/parse/scanner_lex.re"
        {
                                        if (cur == eof)
                                        {
@@ -2224,7 +2229,7 @@ yy335:
                                        }
                                        goto comment;
                                }
-#line 2228 "src/parse/scanner_lex.cc"
+#line 2233 "src/parse/scanner_lex.cc"
 yy336:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yybm[0+yych] & 32) {
@@ -2232,7 +2237,7 @@ yy336:
        }
        if (yych == '#') goto yy347;
 yy337:
-#line 572 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 578 "../src/parse/scanner_lex.re"
        {
                                        if (cur == eof)
                                        {
@@ -2242,7 +2247,7 @@ yy337:
                                        cline++;
                                        goto comment;
                                }
-#line 2246 "src/parse/scanner_lex.cc"
+#line 2251 "src/parse/scanner_lex.cc"
 yy338:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '/') goto yy342;
@@ -2251,16 +2256,16 @@ yy339:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych != '*') goto yy335;
        ++YYCURSOR;
-#line 563 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 569 "../src/parse/scanner_lex.re"
        {
                                        ++depth;
                                        fatal("ambiguous /* found");
                                        goto comment;
                                }
-#line 2261 "src/parse/scanner_lex.cc"
+#line 2266 "src/parse/scanner_lex.cc"
 yy342:
        ++YYCURSOR;
-#line 553 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 559 "../src/parse/scanner_lex.re"
        {
                                        if (--depth == 0)
                                        {
@@ -2271,7 +2276,7 @@ yy342:
                                                goto comment;
                                        }
                                }
-#line 2275 "src/parse/scanner_lex.cc"
+#line 2280 "src/parse/scanner_lex.cc"
 yy344:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -2349,12 +2354,12 @@ yy357:
 yy359:
        ++YYCURSOR;
        YYCURSOR = YYCTXMARKER;
-#line 568 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 574 "../src/parse/scanner_lex.re"
        {
                                        set_sourceline ();
                                        goto comment;
                                }
-#line 2358 "src/parse/scanner_lex.cc"
+#line 2363 "src/parse/scanner_lex.cc"
 yy361:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '\n') goto yy359;
@@ -2379,28 +2384,28 @@ yy365:
        if (yych == '\r') goto yy361;
        goto yy346;
 }
-#line 588 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 594 "../src/parse/scanner_lex.re"
 
 
 nextLine:
 
-#line 2388 "src/parse/scanner_lex.cc"
+#line 2393 "src/parse/scanner_lex.cc"
 {
        YYCTYPE yych;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
        yych = (YYCTYPE)*YYCURSOR;
        if (yych == '\n') goto yy370;
        ++YYCURSOR;
-#line 599 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 605 "../src/parse/scanner_lex.re"
        {  if(cur == eof) {
                   return 0;
                }
                goto nextLine;
             }
-#line 2401 "src/parse/scanner_lex.cc"
+#line 2406 "src/parse/scanner_lex.cc"
 yy370:
        ++YYCURSOR;
-#line 592 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 598 "../src/parse/scanner_lex.re"
        { if(cur == eof) {
                   return 0;
                }
@@ -2408,14 +2413,14 @@ yy370:
                cline++;
                goto scan;
             }
-#line 2412 "src/parse/scanner_lex.cc"
+#line 2417 "src/parse/scanner_lex.cc"
 }
-#line 604 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 610 "../src/parse/scanner_lex.re"
 
 
 config:
 
-#line 2419 "src/parse/scanner_lex.cc"
+#line 2424 "src/parse/scanner_lex.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2461,32 +2466,32 @@ config:
                if (yych == '=') goto yy378;
        }
        ++YYCURSOR;
-#line 615 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 621 "../src/parse/scanner_lex.re"
        {
                                        fatal("missing '='");
                                }
-#line 2469 "src/parse/scanner_lex.cc"
+#line 2474 "src/parse/scanner_lex.cc"
 yy376:
        ++YYCURSOR;
        yych = (YYCTYPE)*YYCURSOR;
        goto yy383;
 yy377:
-#line 608 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 614 "../src/parse/scanner_lex.re"
        {
                                        goto config;
                                }
-#line 2479 "src/parse/scanner_lex.cc"
+#line 2484 "src/parse/scanner_lex.cc"
 yy378:
        ++YYCURSOR;
        yych = (YYCTYPE)*YYCURSOR;
        goto yy381;
 yy379:
-#line 611 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 617 "../src/parse/scanner_lex.re"
        {
                                        lexer_state = LEX_CONFIG_VALUE;
                                        return '=';
                                }
-#line 2490 "src/parse/scanner_lex.cc"
+#line 2495 "src/parse/scanner_lex.cc"
 yy380:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -2505,12 +2510,12 @@ yy383:
        if (yych == ' ') goto yy382;
        goto yy377;
 }
-#line 618 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 624 "../src/parse/scanner_lex.re"
 
 
 value:
 
-#line 2514 "src/parse/scanner_lex.cc"
+#line 2519 "src/parse/scanner_lex.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2577,20 +2582,20 @@ value:
                }
        }
 yy386:
-#line 630 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 636 "../src/parse/scanner_lex.re"
        {
                                        yylval.str = new std::string (tok, tok_len ());
                                        lexer_state = LEX_NORMAL;
                                        return VALUE;
                                }
-#line 2587 "src/parse/scanner_lex.cc"
+#line 2592 "src/parse/scanner_lex.cc"
 yy387:
        ++YYCURSOR;
        if (yybm[0+(yych = (YYCTYPE)*YYCURSOR)] & 8) {
                goto yy392;
        }
 yy388:
-#line 622 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 628 "../src/parse/scanner_lex.re"
        {
                                        if (!s_to_i32_unsafe (tok, cur, yylval.number))
                                        {
@@ -2599,7 +2604,7 @@ yy388:
                                        lexer_state = LEX_NORMAL;
                                        return NUMBER;
                                }
-#line 2603 "src/parse/scanner_lex.cc"
+#line 2608 "src/parse/scanner_lex.cc"
 yy389:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych <= '0') goto yy393;
@@ -2742,7 +2747,7 @@ yy407:
        if (yych == '\n') goto yy400;
        goto yy404;
 }
-#line 635 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 641 "../src/parse/scanner_lex.re"
 
 }
 
@@ -2765,7 +2770,7 @@ void Scanner::set_sourceline ()
 sourceline:
        tok = cur;
 
-#line 2769 "src/parse/scanner_lex.cc"
+#line 2774 "src/parse/scanner_lex.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2814,14 +2819,14 @@ sourceline:
 yy410:
        ++YYCURSOR;
 yy411:
-#line 680 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 686 "../src/parse/scanner_lex.re"
        {
                                        goto sourceline;
                                }
-#line 2822 "src/parse/scanner_lex.cc"
+#line 2827 "src/parse/scanner_lex.cc"
 yy412:
        ++YYCURSOR;
-#line 668 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 674 "../src/parse/scanner_lex.re"
        {
                                        if (cur == eof)
                                        {
@@ -2834,7 +2839,7 @@ yy412:
                                        tok = cur;
                                        return; 
                                }
-#line 2838 "src/parse/scanner_lex.cc"
+#line 2843 "src/parse/scanner_lex.cc"
 yy414:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych == '\n') goto yy411;
@@ -2844,7 +2849,7 @@ yy415:
        yych = (YYCTYPE)*YYCURSOR;
        goto yy418;
 yy416:
-#line 657 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 663 "../src/parse/scanner_lex.re"
        {
                                        if (!s_to_u32_unsafe (tok, cur, cline))
                                        {
@@ -2852,7 +2857,7 @@ yy416:
                                        }
                                        goto sourceline; 
                                }
-#line 2856 "src/parse/scanner_lex.cc"
+#line 2861 "src/parse/scanner_lex.cc"
 yy417:
        ++YYCURSOR;
        if (YYLIMIT <= YYCURSOR) YYFILL(1);
@@ -2884,14 +2889,14 @@ yy422:
        goto yy419;
 yy423:
        ++YYCURSOR;
-#line 664 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 670 "../src/parse/scanner_lex.re"
        {
                                        escape (in.file_name, std::string (tok + 1, tok_len () - 2)); // -2 to omit quotes
                                        goto sourceline; 
                                }
-#line 2893 "src/parse/scanner_lex.cc"
+#line 2898 "src/parse/scanner_lex.cc"
 }
-#line 683 "/home/skvadrik/devel/re2c/code-git/re2c/src/parse/scanner_lex.re"
+#line 689 "../src/parse/scanner_lex.re"
 
 }
 
index f4c50c82f814478239959d7e227a0a238ee7d086..009c655882512c428e68758425476dd119c08da1 100644 (file)
@@ -79,6 +79,7 @@ opt_warn:
        "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; }
+       "useless-escape"        end { warn.set (Warn::USELESS_ESCAPE,        option); goto opt; }
 */
 
 opt_short:
index 026b756044a1067a4f1970f1994471d76b183133..25b5633b4546c5c071aa1cf9f80f1f8a483cdbf6 100644 (file)
@@ -129,4 +129,14 @@ void Warn::swapped_range (uint32_t line, uint32_t l, uint32_t u)
        }
 }
 
+void Warn::useless_escape (uint32_t line, uint32_t col, char c)
+{
+       if (mask[USELESS_ESCAPE] & WARNING)
+       {
+               const bool e = mask[USELESS_ESCAPE] & ERROR;
+               error_accuml |= e;
+               warning (names[USELESS_ESCAPE], line, e, "column %u: escape has no effect: '\\%c'", col, c);
+       }
+}
+
 } // namespace re2c
index 3753c694e1432816bb92429ce334937828e51a73..74633c76c8f3806cae20e68b468c66bac68cd350 100644 (file)
@@ -11,7 +11,8 @@ namespace re2c {
        W (EMPTY_CHARACTER_CLASS, "empty-character-class"), \
        W (MATCH_EMPTY_STRING,    "match-empty-string"), \
        W (NAKED_DEFAULT,         "naked-default"), \
-       W (SWAPPED_RANGE,         "swapped-range"),
+       W (SWAPPED_RANGE,         "swapped-range"), \
+       W (USELESS_ESCAPE,        "useless-escape"),
 
 class Warn
 {
@@ -49,6 +50,7 @@ public:
        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);
+       void useless_escape (uint32_t line, uint32_t col, char c);
 };
 
 } // namespace re2c
index 37ed6402d4a50cc4c2ab65aaf23fab678b23962f..2ae89ce49459b1980c38affb461ebea66e2ac7cb 100644 (file)
@@ -460,7 +460,13 @@ cpoint_class:
        esc escapable           { cpoints.push_back (unesc_escapable (tok));          goto cpoint_class; }
        esc "]"                 { cpoints.push_back (']');                            goto cpoint_class; }
        printable \ (esc | "]") { cpoints.push_back (static_cast<uint32_t> (tok[0])); goto cpoint_class; }
-       esc printable           { cpoints.push_back (static_cast<uint32_t> (tok[1])); goto cpoint_class; } // for backwards compatibility
+       esc printable
+       {
+               const char c = tok[1];
+               warn.useless_escape (tline, tok - pos, c);
+               cpoints.push_back (static_cast<uint32_t> (c));
+               goto cpoint_class;
+       }
        "]"
        {
                yylval.regexp = cpoint_class (cpoints, negated_class);
index 2e1a76d26df4fabf05e1c015c86db88fd47c77e5..8bbf74d328d86e53d46cb0de1c12bcc221a3af5a 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 16: column 156: escape has no effect: '\-' [-Wuseless-escape]
 /* Generated by re2c */
 #line 1 "bug1479044.b.re"
 #define NULL ((char*) 0)
index a0e78c74d8e387e8ecd4df9568f52cf8a2a15ea5..3d9b9f5850df524328a52c28cf0c97f6b5a3ee56 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 16: column 156: escape has no effect: '\-' [-Wuseless-escape]
 /* Generated by re2c */
 #line 1 "bug1479044.re"
 #define NULL ((char*) 0)
index a8a8a35a8d673a63ac5704dec314a83e5e12687e..ab4ae4ede3b152c9a3d125abeea63d4d655aa42c 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 16: column 156: escape has no effect: '\-' [-Wuseless-escape]
 /* Generated by re2c */
 #line 1 "bug1479044.s.re"
 #define NULL ((char*) 0)
index 05d7a793d06f48f78e0f499e2a7cc0c1f2387dd8..7bfde95b100ae26ad3c68b5d591765b4765eff54 100644 (file)
+re2c: warning: line 2: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 3: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 5: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 6: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 8: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 8: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 9: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 9: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 11: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 12: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 14: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 14: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 15: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 15: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 17: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 18: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 20: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 20: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 21: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 21: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 23: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 23: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 24: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 24: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 26: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 27: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 29: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 29: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 30: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 30: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 32: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 33: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 35: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 35: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 36: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 36: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 38: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 38: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 39: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 39: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 41: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 41: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 42: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 42: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 44: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 45: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 47: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 47: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 48: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 48: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 50: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 50: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 51: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 51: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 53: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 54: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 56: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 56: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 57: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 57: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 59: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 60: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 62: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 62: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 63: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 63: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 65: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 65: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 66: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 66: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 68: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 68: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 69: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 69: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 71: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 72: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 74: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 74: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 75: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 75: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 77: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 77: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 78: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 78: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 80: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 80: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 81: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 81: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 83: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 84: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 86: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 86: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 87: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 87: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 89: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 89: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 90: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 90: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 92: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 92: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 93: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 93: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 95: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 95: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 96: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 96: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 98: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 99: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 101: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 102: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 104: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 105: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 107: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 108: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 110: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 111: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 113: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 114: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 116: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 117: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 119: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 120: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 122: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 123: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 125: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 126: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 128: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 129: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 131: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 132: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 134: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 134: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 135: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 135: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 137: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 138: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 140: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 140: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 141: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 141: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 143: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 143: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 144: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 144: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 146: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 146: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 147: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 147: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 149: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 150: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 152: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 153: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 155: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 156: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 158: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 158: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 159: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 159: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 161: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 162: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 164: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 165: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 167: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 168: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 170: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 171: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 173: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 174: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 176: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 177: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 179: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 180: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 182: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 183: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 185: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 186: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 188: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 189: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 191: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 192: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 194: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 194: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 195: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 195: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 197: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 197: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 198: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 198: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 200: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 201: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 203: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 203: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 204: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 204: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 206: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 206: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 207: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 207: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 209: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 209: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 210: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 210: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 212: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 213: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 215: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 215: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 216: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 216: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 218: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 219: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 221: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 222: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 224: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 225: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 227: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 228: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 230: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 230: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 231: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 231: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 233: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 234: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 236: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 236: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 237: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 237: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 239: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 239: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 240: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 240: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 242: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 242: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 243: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 243: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 245: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 245: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 246: column 12: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 246: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 248: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 248: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 249: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 249: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 251: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 252: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 254: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 255: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 257: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 258: column 12: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 260: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 261: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 263: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 264: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 266: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 267: column 11: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 269: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 270: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 272: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 273: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 275: column 9: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 276: column 10: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 278: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 278: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 279: column 11: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 279: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 281: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 281: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 282: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 282: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 284: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 284: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 285: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 285: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 287: column 9: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 287: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 288: column 10: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 288: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 290: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 291: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 293: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 293: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 294: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 294: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 296: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 297: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 299: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 299: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 300: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 300: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 302: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 302: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 303: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 303: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 305: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 305: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 306: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 306: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 308: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 308: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 309: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 309: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 311: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 311: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 312: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 312: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 314: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 314: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 315: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 315: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 317: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 317: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 318: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 318: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 320: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 320: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 321: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 321: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 323: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 323: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 324: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 324: range lower bound (0x61) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 326: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 326: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 327: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 327: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 329: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 330: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 332: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 333: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 335: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 336: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 338: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 338: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 339: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 339: range lower bound (0x2F) is greater than upper bound (0x2D), swapping [-Wswapped-range]
+re2c: warning: line 341: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 342: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 344: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 345: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 347: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 348: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 350: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 351: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 353: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 353: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 354: column 14: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 354: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 356: column 13: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 357: column 14: escape has no effect: '\/' [-Wuseless-escape]
+re2c: warning: line 359: column 13: escape has no effect: '\/' [-Wuseless-escape]
 re2c: warning: line 359: range lower bound (0x61) is greater than upper bound (0x2F), swapping [-Wswapped-range]
+re2c: warning: line 360: column 14: escape has no effect: '\/' [-Wuseless-escape]
 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 2c10b2897ddba5f013ff8ebaf3926ad406a25747..82b930fed8a0f1b8aee53c7d901df82a93eac367 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 490: column 50: escape has no effect: '\/' [-Wuseless-escape]
 /* Generated by re2c */
 #line 1 "input_custom_mjson.--input(custom).re"
 #include <assert.h>
index cd1d341c6c6a37018745a268f88a759bc994e940..c61b3c41bdf72138c1b5a88092c1ad5d7fa2cc4f 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 1016: column 12: escape has no effect: '\[' [-Wuseless-escape]
 /* Generated by re2c */
 /*
    +----------------------------------------------------------------------+
index a65e6a530c5c4a968b61ce55e480ce2810c3e115..17b7a2f95b9db52b91ba84a39dd91a9f6d9b0466 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 1016: column 12: escape has no effect: '\[' [-Wuseless-escape]
 /* Generated by re2c */
 /*\r
    +----------------------------------------------------------------------+\r
index 6138f1d87d7b9a29e5b5662b4b00e35ac048d1fc..bac9be344a6ccc59635a24ab108c24d91cabc454 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 60: column 20: escape has no effect: '\.' [-Wuseless-escape]
 /* Generated by re2c */
 /*
  * phpdbg_lexer.l
index d1b503bc5c7e6aa3e6d8748ed0f70b7aa92e17c1..fa63114b1454f7a61be6c483c72f14667e24e230 100644 (file)
@@ -1,3 +1,7 @@
+re2c: warning: line 384: column 13: escape has no effect: '\.' [-Wuseless-escape]
+re2c: warning: line 384: column 32: escape has no effect: '\.' [-Wuseless-escape]
+re2c: warning: line 391: column 27: escape has no effect: '\[' [-Wuseless-escape]
+re2c: warning: line 392: column 11: escape has no effect: '\[' [-Wuseless-escape]
 /* Generated by re2c */
 
 digraph re2c {
index 7fdfb961b70fb016aac200e1b8fc6eec6082dadc..eb04b3959e8689fa3eb1aabf02770d7fd074718e 100644 (file)
@@ -1,3 +1,7 @@
+re2c: warning: line 384: column 13: escape has no effect: '\.' [-Wuseless-escape]
+re2c: warning: line 384: column 32: escape has no effect: '\.' [-Wuseless-escape]
+re2c: warning: line 391: column 27: escape has no effect: '\[' [-Wuseless-escape]
+re2c: warning: line 392: column 11: escape has no effect: '\[' [-Wuseless-escape]
 /* Generated by re2c */
 /*
    +----------------------------------------------------------------------+
index 90dc61aa3c9ad9ec61a5d2eacf4c62d829ef2c2a..e9dbfd783378e20225dbe9ede4fbe8290c1faa35 100644 (file)
@@ -1,3 +1,7 @@
+re2c: warning: line 4: column 13: escape has no effect: '\.' [-Wuseless-escape]
+re2c: warning: line 4: column 32: escape has no effect: '\.' [-Wuseless-escape]
+re2c: warning: line 11: column 27: escape has no effect: '\[' [-Wuseless-escape]
+re2c: warning: line 12: column 11: escape has no effect: '\[' [-Wuseless-escape]
 /* Generated by re2c */
 
 {
index b015b38fc69f1fe7e9d9e799ed509a5b4d5afb64..8e8e12145013b6cdbdddebc5ff8d10f586170318 100644 (file)
@@ -1,3 +1,7 @@
+re2c: warning: line 4: column 13: escape has no effect: '\.' [-Wuseless-escape]
+re2c: warning: line 4: column 32: escape has no effect: '\.' [-Wuseless-escape]
+re2c: warning: line 11: column 27: escape has no effect: '\[' [-Wuseless-escape]
+re2c: warning: line 12: column 11: escape has no effect: '\[' [-Wuseless-escape]
 /* Generated by re2c */
 
 {
index fc04c3306ebf5f9e235a7f38f1101a940e5dc9c6..8d97f57e39a5feada9c859b58fc1d0bbc5101c50 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 1095: column 12: escape has no effect: '\[' [-Wuseless-escape]
 /* Generated by re2c */
 
 digraph re2c {
index 913cfef39563861738153d35479189151ebbf44b..3b2b0b93ac3cf09fe7afe719cc3afca1d5646cc0 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 1095: column 12: escape has no effect: '\[' [-Wuseless-escape]
 /* Generated by re2c */
 /*
    +----------------------------------------------------------------------+
index 28cc7df2bef7872bbd1f0d4992101b94851927cc..5c781838a71cd11cac263db0fd0ff7da95b3d1f7 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 237: column 22: escape has no effect: '\h' [-Wuseless-escape]
 /* Generated by re2c */
 #line 1 "push.re"
 /*
index fd71343575a32a279cbc7065b0bf8702eb2870ca..5f37783b5803b290731ad1bcbb6323e8f1b20a9c 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 237: column 22: escape has no effect: '\h' [-Wuseless-escape]
 /* Generated by re2c */
 #line 1 "push.f.re"
 /*
index 511960becefcb8cf949d9acc4d4eee4a60482ccf..0d4e0ac7b46b1c7b90384b2c63f1673d5700e3ab 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 237: column 22: escape has no effect: '\h' [-Wuseless-escape]
 /* Generated by re2c */
 #line 1 "push.fb.re"
 /*
index 3efad9256eafaeca0fb7afab5285621d817af0bc..b685c66e84556f2ae4f54521f36385b2e6d3f685 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 237: column 22: escape has no effect: '\h' [-Wuseless-escape]
 /* Generated by re2c */
 #line 1 "push.fg.re"
 /*
index 82fbff68379929b326080692f43c0ea72f8da244..0c9fde3f5f65412e7352ca07cde9bfe5bdc690ae 100644 (file)
@@ -1,3 +1,4 @@
+re2c: warning: line 26: column 18: escape has no effect: '\h' [-Wuseless-escape]
 /* Generated by re2c */
 #line 1 "push.fs.re"
 uint32_t push()