]> granicus.if.org Git - re2c/commitdiff
Added option --location-format <gnu | msvc> (default is gnu).
authorUlya Trofimovich <skvadrik@gmail.com>
Wed, 13 Feb 2019 13:50:00 +0000 (13:50 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Wed, 13 Feb 2019 13:50:00 +0000 (13:50 +0000)
This option controls the formatting of locations in error messages
and warnings.

With --location-format gnu:

    filename:line:column: ...

With --location-format msvc:

    filename(line,column): ...

22 files changed:
re2c/bootstrap/src/options/parse_opts.cc
re2c/src/msg/location.h
re2c/src/msg/msg.cc
re2c/src/msg/msg.h
re2c/src/options/parse_opts.re
re2c/test/messages/msg_00.i--location-format(gnu).c [new file with mode: 0644]
re2c/test/messages/msg_00.i--location-format(gnu).re [new file with mode: 0644]
re2c/test/messages/msg_00.i--location-format(msvc).c [new file with mode: 0644]
re2c/test/messages/msg_00.i--location-format(msvc).re [new file with mode: 0644]
re2c/test/messages/msg_01.i--location-format(gnu).c [new file with mode: 0644]
re2c/test/messages/msg_01.i--location-format(gnu).re [new file with mode: 0644]
re2c/test/messages/msg_01.i--location-format(msvc).c [new file with mode: 0644]
re2c/test/messages/msg_01.i--location-format(msvc).re [new file with mode: 0644]
re2c/test/messages/msg_02.i--location-format(gnu).c [new file with mode: 0644]
re2c/test/messages/msg_02.i--location-format(gnu).re [new file with mode: 0644]
re2c/test/messages/msg_02.i--location-format(msvc).c [new file with mode: 0644]
re2c/test/messages/msg_02.i--location-format(msvc).re [new file with mode: 0644]
re2c/test/messages/msg_03.i--location-format(gnu).c [new file with mode: 0644]
re2c/test/messages/msg_03.i--location-format(gnu).re [new file with mode: 0644]
re2c/test/messages/msg_03.i--location-format(msvc).c [new file with mode: 0644]
re2c/test/messages/msg_03.i--location-format(msvc).re [new file with mode: 0644]
re2c/test/messages/nested/msg_02.re.inc [new file with mode: 0644]

index d28f4354e247e931dfeab13da5f295e01a93af7f..6b25ac45f81b466e059bc6aaddf879e627022e72 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.1.1 on Tue Feb 12 22:50:47 2019 */
+/* Generated by re2c 1.1.1 on Wed Feb 13 13:22:04 2019 */
 #line 1 "../src/options/parse_opts.re"
 #include "src/codegen/input_api.h"
 #include "src/options/opt.h"
@@ -1105,15 +1105,16 @@ opt_long:
        case 'f':       goto yy270;
        case 'h':       goto yy271;
        case 'i':       goto yy272;
-       case 'n':       goto yy273;
-       case 'o':       goto yy274;
-       case 'p':       goto yy275;
-       case 'r':       goto yy276;
-       case 's':       goto yy277;
-       case 't':       goto yy278;
-       case 'u':       goto yy279;
-       case 'v':       goto yy280;
-       case 'w':       goto yy281;
+       case 'l':       goto yy273;
+       case 'n':       goto yy274;
+       case 'o':       goto yy275;
+       case 'p':       goto yy276;
+       case 'r':       goto yy277;
+       case 's':       goto yy278;
+       case 't':       goto yy279;
+       case 'u':       goto yy280;
+       case 'v':       goto yy281;
+       case 'w':       goto yy282;
        default:        goto yy264;
        }
 yy264:
@@ -1121,1716 +1122,1776 @@ yy264:
 yy265:
 #line 130 "../src/options/parse_opts.re"
        { ERROR("bad long option: %s", *argv); }
-#line 1125 "src/options/parse_opts.cc"
+#line 1126 "src/options/parse_opts.cc"
 yy266:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'i') goto yy282;
+       if (yych == 'i') goto yy283;
        goto yy265;
 yy267:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy284;
-       if (yych == 'o') goto yy285;
+       if (yych == 'a') goto yy285;
+       if (yych == 'o') goto yy286;
        goto yy265;
 yy268:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'f') {
                if (yych <= 'd') goto yy265;
-               if (yych <= 'e') goto yy286;
-               goto yy287;
+               if (yych <= 'e') goto yy287;
+               goto yy288;
        } else {
-               if (yych == 'u') goto yy288;
+               if (yych == 'u') goto yy289;
                goto yy265;
        }
 yy269:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'c') {
-               if (yych == 'a') goto yy289;
+               if (yych == 'a') goto yy290;
                if (yych <= 'b') goto yy265;
-               goto yy290;
+               goto yy291;
        } else {
                if (yych <= 'l') goto yy265;
-               if (yych <= 'm') goto yy291;
-               if (yych <= 'n') goto yy292;
+               if (yych <= 'm') goto yy292;
+               if (yych <= 'n') goto yy293;
                goto yy265;
        }
 yy270:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'l') goto yy293;
+       if (yych == 'l') goto yy294;
        goto yy265;
 yy271:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy294;
+       if (yych == 'e') goto yy295;
        goto yy265;
 yy272:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy295;
+       if (yych == 'n') goto yy296;
        goto yy265;
 yy273:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy296;
        if (yych == 'o') goto yy297;
        goto yy265;
 yy274:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy298;
+       if (yych == 'e') goto yy298;
+       if (yych == 'o') goto yy299;
        goto yy265;
 yy275:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy299;
+       if (yych == 'u') goto yy300;
        goto yy265;
 yy276:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy300;
+       if (yych == 'o') goto yy301;
        goto yy265;
 yy277:
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == 'e') goto yy302;
+       goto yy265;
+yy278:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
        if (yych <= 'j') {
-               if (yych == 'i') goto yy301;
+               if (yych == 'i') goto yy303;
                goto yy265;
        } else {
-               if (yych <= 'k') goto yy302;
-               if (yych == 't') goto yy303;
+               if (yych <= 'k') goto yy304;
+               if (yych == 't') goto yy305;
                goto yy265;
        }
-yy278:
-       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy304;
-       if (yych == 'y') goto yy305;
-       goto yy265;
 yy279:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'n') goto yy306;
-       if (yych == 't') goto yy307;
+       if (yych == 'a') goto yy306;
+       if (yych == 'y') goto yy307;
        goto yy265;
 yy280:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy308;
+       if (yych == 'n') goto yy308;
+       if (yych == 't') goto yy309;
        goto yy265;
 yy281:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'i') goto yy309;
+       if (yych == 'e') goto yy310;
        goto yy265;
 yy282:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy310;
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == 'i') goto yy311;
+       goto yy265;
 yy283:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy312;
+yy284:
        YYCURSOR = YYMARKER;
        goto yy265;
-yy284:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy311;
-       goto yy283;
 yy285:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 'l') goto yy283;
-       if (yych <= 'm') goto yy312;
-       if (yych <= 'n') goto yy313;
-       goto yy283;
+       if (yych == 's') goto yy313;
+       goto yy284;
 yy286:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy314;
-       goto yy283;
+       if (yych <= 'l') goto yy284;
+       if (yych <= 'm') goto yy314;
+       if (yych <= 'n') goto yy315;
+       goto yy284;
 yy287:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy315;
-       goto yy283;
+       if (yych == 'b') goto yy316;
+       goto yy284;
 yy288:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy316;
-       goto yy283;
+       if (yych == 'a') goto yy317;
+       goto yy284;
 yy289:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy317;
-       goto yy283;
+       if (yych == 'm') goto yy318;
+       goto yy284;
 yy290:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy318;
-       goto yy283;
+       if (yych == 'g') goto yy319;
+       goto yy284;
 yy291:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy319;
-       if (yych == 'p') goto yy320;
-       goto yy283;
+       if (yych == 'b') goto yy320;
+       goto yy284;
 yy292:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy321;
-       goto yy283;
+       if (yych == 'i') goto yy321;
+       if (yych == 'p') goto yy322;
+       goto yy284;
 yy293:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy322;
-       goto yy283;
+       if (yych == 'c') goto yy323;
+       goto yy284;
 yy294:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy323;
-       goto yy283;
+       if (yych == 'e') goto yy324;
+       goto yy284;
 yy295:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy324;
-       goto yy283;
+       if (yych == 'l') goto yy325;
+       goto yy284;
 yy296:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy325;
-       goto yy283;
+       if (yych == 'p') goto yy326;
+       goto yy284;
 yy297:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy326;
-       goto yy283;
+       if (yych == 'c') goto yy327;
+       goto yy284;
 yy298:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy327;
-       goto yy283;
+       if (yych == 's') goto yy328;
+       goto yy284;
 yy299:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy328;
-       goto yy283;
+       if (yych == '-') goto yy329;
+       goto yy284;
 yy300:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy329;
-       goto yy283;
+       if (yych == 't') goto yy330;
+       goto yy284;
 yy301:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy330;
-       goto yy283;
+       if (yych == 's') goto yy331;
+       goto yy284;
 yy302:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy331;
-       goto yy283;
+       if (yych == 'u') goto yy332;
+       goto yy284;
 yy303:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy332;
-       if (yych == 'o') goto yy333;
-       goto yy283;
+       if (yych == 'n') goto yy333;
+       goto yy284;
 yy304:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy334;
-       goto yy283;
+       if (yych == 'e') goto yy334;
+       goto yy284;
 yy305:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy335;
-       goto yy283;
+       if (yych == 'a') goto yy335;
+       if (yych == 'o') goto yy336;
+       goto yy284;
 yy306:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy336;
-       goto yy283;
+       if (yych == 'g') goto yy337;
+       goto yy284;
 yy307:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy337;
-       goto yy283;
+       if (yych == 'p') goto yy338;
+       goto yy284;
 yy308:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy338;
-       goto yy283;
+       if (yych == 'i') goto yy339;
+       goto yy284;
 yy309:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy339;
-       goto yy283;
+       if (yych == 'f') goto yy340;
+       goto yy284;
 yy310:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy340;
-       goto yy283;
+       if (yych == 'r') goto yy341;
+       goto yy284;
 yy311:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy341;
-       goto yy283;
+       if (yych == 'd') goto yy342;
+       goto yy284;
 yy312:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy342;
-       goto yy283;
+       if (yych == '-') goto yy343;
+       goto yy284;
 yy313:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy343;
-       goto yy283;
+       if (yych == 'e') goto yy344;
+       goto yy284;
 yy314:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy344;
-       goto yy283;
+       if (yych == 'p') goto yy345;
+       goto yy284;
 yy315:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy345;
-       goto yy283;
+       if (yych == 'd') goto yy346;
+       goto yy284;
 yy316:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy346;
-       goto yy283;
+       if (yych == 'u') goto yy347;
+       goto yy284;
 yy317:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy347;
-       goto yy283;
+       if (yych == '-') goto yy348;
+       goto yy284;
 yy318:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy348;
-       goto yy283;
+       if (yych == 'p') goto yy349;
+       goto yy284;
 yy319:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy350;
-       goto yy283;
+       if (yych == 'e') goto yy350;
+       goto yy284;
 yy320:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy351;
-       goto yy283;
+       if (yych <= 0x00) goto yy351;
+       goto yy284;
 yy321:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy352;
-       goto yy283;
+       if (yych == 't') goto yy353;
+       goto yy284;
 yy322:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy353;
-       goto yy283;
+       if (yych == 't') goto yy354;
+       goto yy284;
 yy323:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy354;
-       goto yy283;
+       if (yych == 'o') goto yy355;
+       goto yy284;
 yy324:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy355;
-       goto yy283;
+       if (yych == 'x') goto yy356;
+       goto yy284;
 yy325:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy356;
-       goto yy283;
+       if (yych == 'p') goto yy357;
+       goto yy284;
 yy326:
        yych = (YYCTYPE)*++YYCURSOR;
-       switch (yych) {
-       case 'd':       goto yy357;
-       case 'g':       goto yy358;
-       case 'l':       goto yy359;
-       case 'o':       goto yy360;
-       case 'v':       goto yy361;
-       default:        goto yy283;
-       }
+       if (yych == 'u') goto yy358;
+       goto yy284;
 yy327:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy362;
-       goto yy283;
+       if (yych == 'a') goto yy359;
+       goto yy284;
 yy328:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy363;
-       goto yy283;
+       if (yych == 't') goto yy360;
+       goto yy284;
 yy329:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy364;
-       goto yy283;
+       switch (yych) {
+       case 'd':       goto yy361;
+       case 'g':       goto yy362;
+       case 'l':       goto yy363;
+       case 'o':       goto yy364;
+       case 'v':       goto yy365;
+       default:        goto yy284;
+       }
 yy330:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy365;
-       goto yy283;
+       if (yych == 'p') goto yy366;
+       goto yy284;
 yy331:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy366;
-       goto yy283;
+       if (yych == 'i') goto yy367;
+       goto yy284;
 yy332:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy367;
-       goto yy283;
+       if (yych == 's') goto yy368;
+       goto yy284;
 yy333:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy368;
-       goto yy283;
+       if (yych == 'g') goto yy369;
+       goto yy284;
 yy334:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy369;
-       goto yy283;
+       if (yych == 'l') goto yy370;
+       goto yy284;
 yy335:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy370;
-       goto yy283;
+       if (yych == 'r') goto yy371;
+       goto yy284;
 yy336:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy371;
-       goto yy283;
+       if (yych == 'r') goto yy372;
+       goto yy284;
 yy337:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy372;
-       goto yy283;
+       if (yych == 's') goto yy373;
+       goto yy284;
 yy338:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy373;
-       if (yych == 's') goto yy374;
-       goto yy283;
+       if (yych == 'e') goto yy374;
+       goto yy284;
 yy339:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy375;
-       goto yy283;
+       if (yych == 'c') goto yy375;
+       goto yy284;
 yy340:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy376;
-       goto yy283;
+       if (yych == '-') goto yy376;
+       goto yy284;
 yy341:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy377;
-       goto yy283;
+       if (yych == 'n') goto yy377;
+       if (yych == 's') goto yy378;
+       goto yy284;
 yy342:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy378;
-       goto yy283;
+       if (yych == 'e') goto yy379;
+       goto yy284;
 yy343:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy379;
-       goto yy283;
+       if (yych == 'v') goto yy380;
+       goto yy284;
 yy344:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy380;
-       goto yy283;
+       if (yych == '-') goto yy381;
+       goto yy284;
 yy345:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy381;
-       goto yy283;
+       if (yych == 'u') goto yy382;
+       goto yy284;
 yy346:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy382;
-       goto yy283;
+       if (yych == 'i') goto yy383;
+       goto yy284;
 yy347:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy383;
-       goto yy283;
+       if (yych == 'g') goto yy384;
+       goto yy284;
 yy348:
-       ++YYCURSOR;
-#line 153 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::EBCDIC);    goto opt; }
-#line 1491 "src/options/parse_opts.cc"
-yy350:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy384;
-       goto yy283;
-yy351:
+       if (yych == 'm') goto yy385;
+       goto yy284;
+yy349:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy385;
-       goto yy283;
-yy352:
+       if (yych == '-') goto yy386;
+       goto yy284;
+yy350:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy386;
-       goto yy283;
+       if (yych == 'r') goto yy387;
+       goto yy284;
+yy351:
+       ++YYCURSOR;
+#line 153 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::EBCDIC);    goto opt; }
+#line 1504 "src/options/parse_opts.cc"
 yy353:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy387;
-       goto yy283;
+       if (yych == '-') goto yy388;
+       goto yy284;
 yy354:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy388;
-       goto yy283;
+       if (yych == 'y') goto yy389;
+       goto yy284;
 yy355:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy390;
-       goto yy283;
+       if (yych == 'd') goto yy390;
+       goto yy284;
 yy356:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy391;
-       goto yy283;
+       if (yych == '-') goto yy391;
+       goto yy284;
 yy357:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy392;
-       goto yy283;
+       if (yych <= 0x00) goto yy392;
+       goto yy284;
 yy358:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy393;
-       goto yy283;
+       if (yych == 't') goto yy394;
+       goto yy284;
 yy359:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy394;
-       goto yy283;
+       if (yych == 't') goto yy395;
+       goto yy284;
 yy360:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy395;
-       goto yy283;
+       if (yych == 'e') goto yy396;
+       goto yy284;
 yy361:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy396;
-       goto yy283;
+       if (yych == 'e') goto yy397;
+       goto yy284;
 yy362:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy397;
-       goto yy283;
+       if (yych == 'e') goto yy398;
+       goto yy284;
 yy363:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy398;
-       goto yy283;
+       if (yych == 'o') goto yy399;
+       goto yy284;
 yy364:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy399;
-       goto yy283;
+       if (yych == 'p') goto yy400;
+       goto yy284;
 yy365:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy400;
-       goto yy283;
+       if (yych == 'e') goto yy401;
+       goto yy284;
 yy366:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy401;
-       goto yy283;
+       if (yych == 'u') goto yy402;
+       goto yy284;
 yy367:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy402;
-       goto yy283;
+       if (yych == 'x') goto yy403;
+       goto yy284;
 yy368:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy403;
-       goto yy283;
+       if (yych == 'a') goto yy404;
+       goto yy284;
 yy369:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy404;
-       goto yy283;
+       if (yych == 'l') goto yy405;
+       goto yy284;
 yy370:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy406;
-       goto yy283;
+       if (yych == 'e') goto yy406;
+       goto yy284;
 yy371:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy407;
-       goto yy283;
+       if (yych == 't') goto yy407;
+       goto yy284;
 yy372:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '1') goto yy408;
-       if (yych == '8') goto yy409;
-       goto yy283;
+       if (yych == 'a') goto yy408;
+       goto yy284;
 yy373:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy410;
-       goto yy283;
+       if (yych <= 0x00) goto yy409;
+       goto yy284;
 yy374:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy411;
-       goto yy283;
+       if (yych == '-') goto yy411;
+       goto yy284;
 yy375:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy412;
-       goto yy283;
+       if (yych == 'o') goto yy412;
+       goto yy284;
 yy376:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy413;
-       goto yy283;
+       if (yych == '1') goto yy413;
+       if (yych == '8') goto yy414;
+       goto yy284;
 yy377:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy414;
-       goto yy283;
+       if (yych == 'u') goto yy415;
+       goto yy284;
 yy378:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy415;
-       goto yy283;
+       if (yych == 'i') goto yy416;
+       goto yy284;
 yy379:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy416;
-       goto yy283;
+       if (yych == '-') goto yy417;
+       goto yy284;
 yy380:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy417;
-       goto yy283;
+       if (yych == 'e') goto yy418;
+       goto yy284;
 yy381:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy418;
-       goto yy283;
+       if (yych == 'i') goto yy419;
+       goto yy284;
 yy382:
        yych = (YYCTYPE)*++YYCURSOR;
-       switch (yych) {
-       case 'a':       goto yy419;
-       case 'c':       goto yy420;
-       case 'd':       goto yy421;
-       case 'i':       goto yy422;
-       case 'n':       goto yy423;
-       default:        goto yy283;
-       }
+       if (yych == 't') goto yy420;
+       goto yy284;
 yy383:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy424;
-       goto yy283;
+       if (yych == 't') goto yy421;
+       goto yy284;
 yy384:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy425;
-       goto yy283;
+       if (yych == '-') goto yy422;
+       goto yy284;
 yy385:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy426;
-       goto yy283;
+       if (yych == 'i') goto yy423;
+       goto yy284;
 yy386:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy427;
-       goto yy283;
+       switch (yych) {
+       case 'a':       goto yy424;
+       case 'c':       goto yy425;
+       case 'd':       goto yy426;
+       case 'i':       goto yy427;
+       case 'n':       goto yy428;
+       default:        goto yy284;
+       }
 yy387:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy428;
-       goto yy283;
+       if (yych == '-') goto yy429;
+       goto yy284;
 yy388:
-       ++YYCURSOR;
-#line 132 "../src/options/parse_opts.re"
-       { usage ();   return EXIT_OK; }
-#line 1655 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'd') goto yy430;
+       goto yy284;
+yy389:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy431;
+       goto yy284;
 yy390:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy429;
-       goto yy283;
+       if (yych == 'i') goto yy432;
+       goto yy284;
 yy391:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy431;
-       goto yy283;
+       if (yych == 's') goto yy433;
+       goto yy284;
 yy392:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy432;
-       goto yy283;
-yy393:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy433;
-       goto yy283;
+       ++YYCURSOR;
+#line 132 "../src/options/parse_opts.re"
+       { usage ();   return EXIT_OK; }
+#line 1672 "src/options/parse_opts.cc"
 yy394:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy434;
-       goto yy283;
+       if (yych <= 0x00) goto yy434;
+       goto yy284;
 yy395:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy435;
-       goto yy283;
+       if (yych == 'i') goto yy436;
+       goto yy284;
 yy396:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy436;
-       goto yy283;
+       if (yych == 'd') goto yy437;
+       goto yy284;
 yy397:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy437;
-       goto yy283;
+       if (yych == 'b') goto yy438;
+       goto yy284;
 yy398:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy438;
-       goto yy283;
+       if (yych == 'n') goto yy439;
+       goto yy284;
 yy399:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy439;
-       goto yy283;
+       if (yych == 'o') goto yy440;
+       goto yy284;
 yy400:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy440;
-       goto yy283;
+       if (yych == 't') goto yy441;
+       goto yy284;
 yy401:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy441;
-       goto yy283;
+       if (yych == 'r') goto yy442;
+       goto yy284;
 yy402:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy442;
-       goto yy283;
+       if (yych == 't') goto yy443;
+       goto yy284;
 yy403:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy443;
-       goto yy283;
+       if (yych == '-') goto yy444;
+       goto yy284;
 yy404:
-       ++YYCURSOR;
-#line 152 "../src/options/parse_opts.re"
-       { opts.set_tags (true);              goto opt; }
-#line 1716 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'b') goto yy445;
+       goto yy284;
+yy405:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy446;
+       goto yy284;
 yy406:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy444;
-       goto yy283;
+       if (yych == 't') goto yy447;
+       goto yy284;
 yy407:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy445;
-       goto yy283;
+       if (yych == '-') goto yy448;
+       goto yy284;
 yy408:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '6') goto yy446;
-       goto yy283;
+       if (yych == 'b') goto yy449;
+       goto yy284;
 yy409:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy447;
-       goto yy283;
-yy410:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy449;
-       goto yy283;
+       ++YYCURSOR;
+#line 152 "../src/options/parse_opts.re"
+       { opts.set_tags (true);              goto opt; }
+#line 1737 "src/options/parse_opts.cc"
 yy411:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy450;
-       goto yy283;
+       if (yych == 'h') goto yy450;
+       goto yy284;
 yy412:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy451;
-       goto yy283;
+       if (yych == 'd') goto yy451;
+       goto yy284;
 yy413:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy452;
-       goto yy283;
+       if (yych == '6') goto yy452;
+       goto yy284;
 yy414:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy453;
-       goto yy283;
+       if (yych <= 0x00) goto yy453;
+       goto yy284;
 yy415:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy454;
-       goto yy283;
+       if (yych == 'm') goto yy455;
+       goto yy284;
 yy416:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy455;
-       goto yy283;
+       if (yych == 'o') goto yy456;
+       goto yy284;
 yy417:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy456;
-       goto yy283;
+       if (yych == 'c') goto yy457;
+       goto yy284;
 yy418:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy457;
-       goto yy283;
+       if (yych == 'c') goto yy458;
+       goto yy284;
 yy419:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy458;
-       goto yy283;
+       if (yych == 'n') goto yy459;
+       goto yy284;
 yy420:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy459;
-       if (yych == 'l') goto yy460;
-       goto yy283;
+       if (yych == 'e') goto yy460;
+       goto yy284;
 yy421:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy461;
-       goto yy283;
+       if (yych == 'i') goto yy461;
+       goto yy284;
 yy422:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy462;
-       goto yy283;
+       if (yych == 'o') goto yy462;
+       goto yy284;
 yy423:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy463;
-       goto yy283;
+       if (yych == 'n') goto yy463;
+       goto yy284;
 yy424:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy464;
-       goto yy283;
+       if (yych == 'd') goto yy464;
+       goto yy284;
 yy425:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy465;
-       goto yy283;
+       if (yych == 'f') goto yy465;
+       if (yych == 'l') goto yy466;
+       goto yy284;
 yy426:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy466;
-       goto yy283;
+       if (yych == 'f') goto yy467;
+       goto yy284;
 yy427:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy467;
-       goto yy283;
+       if (yych == 'n') goto yy468;
+       goto yy284;
 yy428:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy468;
-       goto yy283;
+       if (yych == 'f') goto yy469;
+       goto yy284;
 yy429:
-       ++YYCURSOR;
-#line 168 "../src/options/parse_opts.re"
-       { NEXT_ARG("--input",            opt_input); }
-#line 1814 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy470;
+       goto yy284;
+yy430:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy471;
+       goto yy284;
 yy431:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy469;
-       goto yy283;
+       if (yych == 'c') goto yy472;
+       goto yy284;
 yy432:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy470;
-       goto yy283;
+       if (yych == 'n') goto yy473;
+       goto yy284;
 yy433:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy471;
-       goto yy283;
+       if (yych == 'y') goto yy474;
+       goto yy284;
 yy434:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'k') goto yy472;
-       goto yy283;
-yy435:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy473;
-       goto yy283;
+       ++YYCURSOR;
+#line 168 "../src/options/parse_opts.re"
+       { NEXT_ARG("--input",            opt_input); }
+#line 1835 "src/options/parse_opts.cc"
 yy436:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy474;
-       goto yy283;
+       if (yych == 'o') goto yy475;
+       goto yy284;
 yy437:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy475;
-       goto yy283;
+       if (yych == '-') goto yy476;
+       goto yy284;
 yy438:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy477;
-       goto yy283;
+       if (yych == 'u') goto yy477;
+       goto yy284;
 yy439:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy478;
-       goto yy283;
+       if (yych == 'e') goto yy478;
+       goto yy284;
 yy440:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy479;
-       goto yy283;
+       if (yych == 'k') goto yy479;
+       goto yy284;
 yy441:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy480;
-       goto yy283;
+       if (yych == 'i') goto yy480;
+       goto yy284;
 yy442:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy481;
-       goto yy283;
+       if (yych == 's') goto yy481;
+       goto yy284;
 yy443:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy482;
-       goto yy283;
+       if (yych <= 0x00) goto yy482;
+       goto yy284;
 yy444:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy483;
-       goto yy283;
+       if (yych == 'c') goto yy484;
+       goto yy284;
 yy445:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy484;
-       goto yy283;
+       if (yych == 'l') goto yy485;
+       goto yy284;
 yy446:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy485;
-       goto yy283;
+       if (yych == '-') goto yy486;
+       goto yy284;
 yy447:
-       ++YYCURSOR;
-#line 157 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::UTF8);      goto opt; }
-#line 1883 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy487;
+       goto yy284;
+yy448:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'c') goto yy488;
+       goto yy284;
 yy449:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy487;
-       goto yy283;
+       if (yych == 'l') goto yy489;
+       goto yy284;
 yy450:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy489;
-       goto yy283;
+       if (yych == 'e') goto yy490;
+       goto yy284;
 yy451:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy490;
-       goto yy283;
+       if (yych == 'e') goto yy491;
+       goto yy284;
 yy452:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy491;
-       goto yy283;
+       if (yych <= 0x00) goto yy492;
+       goto yy284;
 yy453:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy492;
-       if (yych == 'v') goto yy493;
-       goto yy283;
-yy454:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy494;
-       goto yy283;
+       ++YYCURSOR;
+#line 157 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::UTF8);      goto opt; }
+#line 1908 "src/options/parse_opts.cc"
 yy455:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy495;
-       goto yy283;
+       if (yych <= 0x00) goto yy494;
+       goto yy284;
 yy456:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy496;
-       goto yy283;
+       if (yych == 'n') goto yy496;
+       goto yy284;
 yy457:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy497;
-       goto yy283;
+       if (yych == 'h') goto yy497;
+       goto yy284;
 yy458:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy498;
-       goto yy283;
+       if (yych == 't') goto yy498;
+       goto yy284;
 yy459:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy499;
-       goto yy283;
+       if (yych == 's') goto yy499;
+       if (yych == 'v') goto yy500;
+       goto yy284;
 yy460:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy500;
-       goto yy283;
+       if (yych == 'd') goto yy501;
+       goto yy284;
 yy461:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy501;
-       goto yy283;
+       if (yych == 'o') goto yy502;
+       goto yy284;
 yy462:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy502;
-       goto yy283;
+       if (yych == 'u') goto yy503;
+       goto yy284;
 yy463:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy503;
-       goto yy283;
+       if (yych == 'i') goto yy504;
+       goto yy284;
 yy464:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'k') goto yy504;
-       goto yy283;
+       if (yych == 'f') goto yy505;
+       goto yy284;
 yy465:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy505;
-       goto yy283;
+       if (yych == 'g') goto yy506;
+       goto yy284;
 yy466:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy506;
-       goto yy283;
+       if (yych == 'o') goto yy507;
+       goto yy284;
 yy467:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy507;
-       goto yy283;
+       if (yych == 'a') goto yy508;
+       goto yy284;
 yy468:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy508;
-       goto yy283;
+       if (yych == 't') goto yy509;
+       goto yy284;
 yy469:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy509;
-       goto yy283;
+       if (yych == 'a') goto yy510;
+       goto yy284;
 yy470:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy510;
-       goto yy283;
+       if (yych == 'k') goto yy511;
+       goto yy284;
 yy471:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy511;
-       goto yy283;
+       if (yych == 't') goto yy512;
+       goto yy284;
 yy472:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy512;
-       goto yy283;
+       if (yych == 'l') goto yy513;
+       goto yy284;
 yy473:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy513;
-       goto yy283;
+       if (yych == 'g') goto yy514;
+       goto yy284;
 yy474:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy514;
-       goto yy283;
+       if (yych == 'n') goto yy515;
+       goto yy284;
 yy475:
-       ++YYCURSOR;
-#line 165 "../src/options/parse_opts.re"
-       { NEXT_ARG("-o, --output",       opt_output); }
-#line 1993 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy516;
+       goto yy284;
+yy476:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy517;
+       goto yy284;
 yy477:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy515;
-       if (yych == 'l') goto yy516;
-       goto yy283;
+       if (yych == 'g') goto yy518;
+       goto yy284;
 yy478:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy517;
-       goto yy283;
+       if (yych == 'r') goto yy519;
+       goto yy284;
 yy479:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy518;
-       goto yy283;
+       if (yych == 'a') goto yy520;
+       goto yy284;
 yy480:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy519;
-       goto yy283;
+       if (yych == 'm') goto yy521;
+       goto yy284;
 yy481:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy520;
-       goto yy283;
+       if (yych == 'i') goto yy522;
+       goto yy284;
 yy482:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy521;
-       goto yy283;
-yy483:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy522;
-       goto yy283;
+       ++YYCURSOR;
+#line 165 "../src/options/parse_opts.re"
+       { NEXT_ARG("-o, --output",       opt_output); }
+#line 2022 "src/options/parse_opts.cc"
 yy484:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy523;
-       goto yy283;
+       if (yych == 'a') goto yy523;
+       if (yych == 'l') goto yy524;
+       goto yy284;
 yy485:
-       ++YYCURSOR;
-#line 156 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::UTF16);     goto opt; }
-#line 2031 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy525;
+       goto yy284;
+yy486:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'p') goto yy526;
+       goto yy284;
 yy487:
-       ++YYCURSOR;
-#line 134 "../src/options/parse_opts.re"
-       { vernum ();  return EXIT_OK; }
-#line 2036 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy527;
+       goto yy284;
+yy488:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy528;
+       goto yy284;
 yy489:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy525;
-       goto yy283;
+       if (yych == 'e') goto yy529;
+       goto yy284;
 yy490:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy527;
-       goto yy283;
+       if (yych == 'a') goto yy530;
+       goto yy284;
 yy491:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy528;
-       goto yy283;
+       if (yych <= 0x00) goto yy531;
+       goto yy284;
 yy492:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy529;
-       goto yy283;
-yy493:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy530;
-       goto yy283;
+       ++YYCURSOR;
+#line 156 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::UTF16);     goto opt; }
+#line 2060 "src/options/parse_opts.cc"
 yy494:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy531;
-       goto yy283;
-yy495:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy532;
-       goto yy283;
+       ++YYCURSOR;
+#line 134 "../src/options/parse_opts.re"
+       { vernum ();  return EXIT_OK; }
+#line 2065 "src/options/parse_opts.cc"
 yy496:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy533;
-       goto yy283;
+       if (yych <= 0x00) goto yy533;
+       goto yy284;
 yy497:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy534;
-       goto yy283;
+       if (yych == 'a') goto yy535;
+       goto yy284;
 yy498:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy535;
-       goto yy283;
+       if (yych == 'o') goto yy536;
+       goto yy284;
 yy499:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy536;
-       goto yy283;
+       if (yych == 'e') goto yy537;
+       goto yy284;
 yy500:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy538;
-       goto yy283;
+       if (yych == 'e') goto yy538;
+       goto yy284;
 yy501:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yych == '-') goto yy539;
-       goto yy283;
+       goto yy284;
 yy502:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy540;
-       goto yy283;
+       if (yych == 'n') goto yy540;
+       goto yy284;
 yy503:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy541;
-       goto yy283;
+       if (yych == 't') goto yy541;
+       goto yy284;
 yy504:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy543;
-       goto yy283;
+       if (yych == 'm') goto yy542;
+       goto yy284;
 yy505:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy544;
-       goto yy283;
+       if (yych == 'a') goto yy543;
+       goto yy284;
 yy506:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy546;
-       goto yy283;
+       if (yych <= 0x00) goto yy544;
+       goto yy284;
 yy507:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy547;
-       goto yy283;
+       if (yych == 's') goto yy546;
+       goto yy284;
 yy508:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy548;
-       goto yy283;
+       if (yych == '-') goto yy547;
+       goto yy284;
 yy509:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy549;
-       goto yy283;
+       if (yych == 'e') goto yy548;
+       goto yy284;
 yy510:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy550;
-       goto yy283;
+       if (yych <= 0x00) goto yy549;
+       goto yy284;
 yy511:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy551;
-       goto yy283;
+       if (yych == 'i') goto yy551;
+       goto yy284;
 yy512:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy552;
-       goto yy283;
+       if (yych <= 0x00) goto yy552;
+       goto yy284;
 yy513:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy553;
-       goto yy283;
+       if (yych == 'a') goto yy554;
+       goto yy284;
 yy514:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy554;
-       goto yy283;
+       if (yych == '-') goto yy555;
+       goto yy284;
 yy515:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy555;
-       goto yy283;
+       if (yych == 't') goto yy556;
+       goto yy284;
 yy516:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy556;
-       goto yy283;
+       if (yych == '-') goto yy557;
+       goto yy284;
 yy517:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy557;
-       goto yy283;
+       if (yych == 'f') goto yy558;
+       goto yy284;
 yy518:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy559;
-       goto yy283;
+       if (yych == '-') goto yy559;
+       goto yy284;
 yy519:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy560;
-       goto yy283;
+       if (yych == 'a') goto yy560;
+       goto yy284;
 yy520:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy313;
-       goto yy283;
+       if (yych == 'h') goto yy561;
+       goto yy284;
 yy521:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy562;
-       goto yy283;
+       if (yych == 'i') goto yy562;
+       goto yy284;
 yy522:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy563;
-       goto yy283;
+       if (yych == 'o') goto yy563;
+       goto yy284;
 yy523:
-       ++YYCURSOR;
-#line 154 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::UTF32);     goto opt; }
-#line 2177 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'p') goto yy564;
+       goto yy284;
+yy524:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy565;
+       goto yy284;
 yy525:
-       ++YYCURSOR;
-#line 133 "../src/options/parse_opts.re"
-       { version (); return EXIT_OK; }
-#line 2182 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy566;
+       goto yy284;
+yy526:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy568;
+       goto yy284;
 yy527:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy564;
-       goto yy283;
+       if (yych <= 0x00) goto yy569;
+       goto yy284;
 yy528:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy565;
-       goto yy283;
+       if (yych == 'n') goto yy315;
+       goto yy284;
 yy529:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy566;
-       goto yy283;
+       if (yych == '-') goto yy571;
+       goto yy284;
 yy530:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy567;
-       goto yy283;
+       if (yych == 'd') goto yy572;
+       goto yy284;
 yy531:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy568;
-       goto yy283;
-yy532:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy569;
-       goto yy283;
+       ++YYCURSOR;
+#line 154 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::UTF32);     goto opt; }
+#line 2210 "src/options/parse_opts.cc"
 yy533:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy570;
-       goto yy283;
-yy534:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy571;
-       goto yy283;
+       ++YYCURSOR;
+#line 133 "../src/options/parse_opts.re"
+       { version (); return EXIT_OK; }
+#line 2215 "src/options/parse_opts.cc"
 yy535:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy572;
-       goto yy283;
+       if (yych == 'r') goto yy573;
+       goto yy284;
 yy536:
-       ++YYCURSOR;
-#line 187 "../src/options/parse_opts.re"
-       { globopts.dump_cfg = true;           goto opt; }
-#line 2223 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'r') goto yy574;
+       goto yy284;
+yy537:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy575;
+       goto yy284;
 yy538:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy574;
-       goto yy283;
+       if (yych == 'r') goto yy576;
+       goto yy284;
 yy539:
        yych = (YYCTYPE)*++YYCURSOR;
-       switch (yych) {
-       case 'd':       goto yy575;
-       case 'm':       goto yy576;
-       case 'r':       goto yy577;
-       case 't':       goto yy578;
-       default:        goto yy283;
-       }
+       if (yych == 'g') goto yy577;
+       goto yy284;
 yy540:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy579;
-       goto yy283;
+       if (yych == 's') goto yy578;
+       goto yy284;
 yy541:
-       ++YYCURSOR;
-#line 181 "../src/options/parse_opts.re"
-       { globopts.dump_nfa = true;           goto opt; }
-#line 2245 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'p') goto yy579;
+       goto yy284;
+yy542:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy580;
+       goto yy284;
 yy543:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy580;
-       goto yy283;
+       if (yych <= 0x00) goto yy581;
+       goto yy284;
 yy544:
        ++YYCURSOR;
-#line 137 "../src/options/parse_opts.re"
-       { globopts.target = TARGET_DOT;      goto opt; }
-#line 2254 "src/options/parse_opts.cc"
+#line 188 "../src/options/parse_opts.re"
+       { globopts.dump_cfg = true;           goto opt; }
+#line 2256 "src/options/parse_opts.cc"
 yy546:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy581;
-       goto yy283;
+       if (yych == 'u') goto yy583;
+       goto yy284;
 yy547:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy582;
-       goto yy283;
+       switch (yych) {
+       case 'd':       goto yy584;
+       case 'm':       goto yy585;
+       case 'r':       goto yy586;
+       case 't':       goto yy587;
+       default:        goto yy284;
+       }
 yy548:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy583;
-       goto yy283;
+       if (yych == 'r') goto yy588;
+       goto yy284;
 yy549:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy584;
-       goto yy283;
-yy550:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy585;
-       goto yy283;
+       ++YYCURSOR;
+#line 182 "../src/options/parse_opts.re"
+       { globopts.dump_nfa = true;           goto opt; }
+#line 2278 "src/options/parse_opts.cc"
 yy551:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy586;
-       goto yy283;
+       if (yych == 'p') goto yy589;
+       goto yy284;
 yy552:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy587;
-       goto yy283;
-yy553:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'z') goto yy588;
-       goto yy283;
+       ++YYCURSOR;
+#line 137 "../src/options/parse_opts.re"
+       { globopts.target = TARGET_DOT;      goto opt; }
+#line 2287 "src/options/parse_opts.cc"
 yy554:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy589;
-       goto yy283;
+       if (yych == 's') goto yy590;
+       goto yy284;
 yy555:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy590;
-       goto yy283;
+       if (yych == 'p') goto yy591;
+       goto yy284;
 yy556:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy591;
-       goto yy283;
+       if (yych == 'a') goto yy592;
+       goto yy284;
 yy557:
-       ++YYCURSOR;
-#line 140 "../src/options/parse_opts.re"
-       { globopts.rFlag = true;             goto opt; }
-#line 2303 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'f') goto yy593;
+       goto yy284;
+yy558:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy594;
+       goto yy284;
 yy559:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy592;
-       goto yy283;
+       if (yych == 'i') goto yy595;
+       goto yy284;
 yy560:
-       ++YYCURSOR;
-#line 143 "../src/options/parse_opts.re"
-       { globopts.target = TARGET_SKELETON; goto opt; }
-#line 2312 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy596;
+       goto yy284;
+yy561:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy597;
+       goto yy284;
 yy562:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy593;
-       goto yy283;
+       if (yych == 'z') goto yy598;
+       goto yy284;
 yy563:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy594;
-       goto yy283;
+       if (yych == 'n') goto yy599;
+       goto yy284;
 yy564:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy595;
-       goto yy283;
+       if (yych == 't') goto yy600;
+       goto yy284;
 yy565:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy596;
-       goto yy283;
+       if (yych == 's') goto yy601;
+       goto yy284;
 yy566:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy597;
-       goto yy283;
-yy567:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy598;
-       goto yy283;
+       ++YYCURSOR;
+#line 140 "../src/options/parse_opts.re"
+       { globopts.rFlag = true;             goto opt; }
+#line 2340 "src/options/parse_opts.cc"
 yy568:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy599;
-       goto yy283;
+       if (yych == 's') goto yy602;
+       goto yy284;
 yy569:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy600;
-       goto yy283;
-yy570:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy602;
-       goto yy283;
+       ++YYCURSOR;
+#line 143 "../src/options/parse_opts.re"
+       { globopts.target = TARGET_SKELETON; goto opt; }
+#line 2349 "src/options/parse_opts.cc"
 yy571:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'z') goto yy603;
-       goto yy283;
+       if (yych == 's') goto yy603;
+       goto yy284;
 yy572:
-       ++YYCURSOR;
-#line 186 "../src/options/parse_opts.re"
-       { globopts.dump_adfa = true;          goto opt; }
-#line 2357 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy604;
+       goto yy284;
+yy573:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy605;
+       goto yy284;
 yy574:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy604;
-       goto yy283;
+       if (yych == 's') goto yy606;
+       goto yy284;
 yy575:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy605;
-       goto yy283;
+       if (yych == 's') goto yy607;
+       goto yy284;
 yy576:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy606;
-       goto yy283;
+       if (yych == 't') goto yy608;
+       goto yy284;
 yy577:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy607;
-       goto yy283;
+       if (yych == 'o') goto yy609;
+       goto yy284;
 yy578:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy608;
-       goto yy283;
+       if (yych <= 0x00) goto yy610;
+       goto yy284;
 yy579:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy609;
-       goto yy283;
+       if (yych == 'u') goto yy612;
+       goto yy284;
 yy580:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy610;
-       goto yy283;
+       if (yych == 'z') goto yy613;
+       goto yy284;
 yy581:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy612;
-       goto yy283;
-yy582:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy613;
-       goto yy283;
+       ++YYCURSOR;
+#line 187 "../src/options/parse_opts.re"
+       { globopts.dump_adfa = true;          goto opt; }
+#line 2394 "src/options/parse_opts.cc"
 yy583:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'x') goto yy614;
-       goto yy283;
+       if (yych == 'r') goto yy614;
+       goto yy284;
 yy584:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy615;
-       goto yy283;
+       if (yych == 'e') goto yy615;
+       goto yy284;
 yy585:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy617;
-       goto yy283;
+       if (yych == 'i') goto yy616;
+       goto yy284;
 yy586:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy618;
-       goto yy283;
+       if (yych == 'a') goto yy617;
+       goto yy284;
 yy587:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy619;
-       goto yy283;
+       if (yych == 'a') goto yy618;
+       goto yy284;
 yy588:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy620;
-       goto yy283;
+       if (yych == 'f') goto yy619;
+       goto yy284;
 yy589:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy621;
-       goto yy283;
+       if (yych <= 0x00) goto yy620;
+       goto yy284;
 yy590:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy623;
-       goto yy283;
+       if (yych == 's') goto yy622;
+       goto yy284;
 yy591:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy624;
-       goto yy283;
+       if (yych == 'o') goto yy623;
+       goto yy284;
 yy592:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy625;
-       goto yy283;
+       if (yych == 'x') goto yy624;
+       goto yy284;
 yy593:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy626;
-       goto yy283;
+       if (yych == 'o') goto yy625;
+       goto yy284;
 yy594:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy627;
-       goto yy283;
+       if (yych <= 0x00) goto yy626;
+       goto yy284;
 yy595:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy628;
-       goto yy283;
+       if (yych == 'n') goto yy628;
+       goto yy284;
 yy596:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy630;
-       goto yy283;
+       if (yych == 'i') goto yy629;
+       goto yy284;
 yy597:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy632;
-       goto yy283;
+       if (yych == 'a') goto yy630;
+       goto yy284;
 yy598:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy633;
-       goto yy283;
+       if (yych == 'e') goto yy631;
+       goto yy284;
 yy599:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy634;
-       goto yy283;
+       if (yych <= 0x00) goto yy632;
+       goto yy284;
 yy600:
-       ++YYCURSOR;
-#line 136 "../src/options/parse_opts.re"
-       { globopts.cFlag = true;             goto opt; }
-#line 2466 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'u') goto yy634;
+       goto yy284;
+yy601:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'u') goto yy635;
+       goto yy284;
 yy602:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy635;
-       goto yy283;
+       if (yych == 's') goto yy636;
+       goto yy284;
 yy603:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy636;
-       goto yy283;
+       if (yych == 't') goto yy637;
+       goto yy284;
 yy604:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy637;
-       goto yy283;
+       if (yych == 'r') goto yy638;
+       goto yy284;
 yy605:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy638;
-       goto yy283;
+       if (yych <= 0x00) goto yy639;
+       goto yy284;
 yy606:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy639;
-       goto yy283;
+       if (yych <= 0x00) goto yy641;
+       goto yy284;
 yy607:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'w') goto yy640;
-       goto yy283;
+       if (yych == 'i') goto yy643;
+       goto yy284;
 yy608:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy641;
-       goto yy283;
+       if (yych == 'e') goto yy644;
+       goto yy284;
 yy609:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy642;
-       goto yy283;
+       if (yych == 't') goto yy645;
+       goto yy284;
 yy610:
        ++YYCURSOR;
-#line 178 "../src/options/parse_opts.re"
-       { globopts.eager_skip = true;     goto opt; }
-#line 2503 "src/options/parse_opts.cc"
+#line 136 "../src/options/parse_opts.re"
+       { globopts.cFlag = true;             goto opt; }
+#line 2507 "src/options/parse_opts.cc"
 yy612:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy644;
-       goto yy283;
+       if (yych == 't') goto yy646;
+       goto yy284;
 yy613:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy646;
-       goto yy283;
+       if (yych == 'a') goto yy647;
+       goto yy284;
 yy614:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy647;
-       goto yy283;
+       if (yych == 'e') goto yy648;
+       goto yy284;
 yy615:
-       ++YYCURSOR;
-#line 149 "../src/options/parse_opts.re"
-       { opts.set_sFlag (true);             goto opt; }
-#line 2520 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy649;
+       goto yy284;
+yy616:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy650;
+       goto yy284;
 yy617:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy649;
-       goto yy283;
+       if (yych == 'w') goto yy651;
+       goto yy284;
 yy618:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy650;
-       goto yy283;
+       if (yych == 'g') goto yy652;
+       goto yy284;
 yy619:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy651;
-       goto yy283;
+       if (yych <= 0x00) goto yy653;
+       goto yy284;
 yy620:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy652;
-       goto yy283;
-yy621:
        ++YYCURSOR;
-#line 142 "../src/options/parse_opts.re"
-       { globopts.version = false;          goto opt; }
-#line 2541 "src/options/parse_opts.cc"
+#line 179 "../src/options/parse_opts.re"
+       { globopts.eager_skip = true;     goto opt; }
+#line 2544 "src/options/parse_opts.cc"
+yy622:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy655;
+       goto yy284;
 yy623:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy653;
-       goto yy283;
+       if (yych == 'l') goto yy657;
+       goto yy284;
 yy624:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy654;
-       goto yy283;
+       if (yych <= 0x00) goto yy658;
+       goto yy284;
 yy625:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy655;
-       goto yy283;
+       if (yych == 'r') goto yy660;
+       goto yy284;
 yy626:
+       ++YYCURSOR;
+#line 149 "../src/options/parse_opts.re"
+       { opts.set_sFlag (true);             goto opt; }
+#line 2565 "src/options/parse_opts.cc"
+yy628:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy657;
-       goto yy283;
-yy627:
+       if (yych == 'f') goto yy661;
+       goto yy284;
+yy629:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy658;
-       goto yy283;
-yy628:
-       ++YYCURSOR;
-#line 155 "../src/options/parse_opts.re"
-       { opts.set_encoding(Enc::UCS2);      goto opt; }
-#line 2566 "src/options/parse_opts.cc"
+       if (yych == 'o') goto yy662;
+       goto yy284;
 yy630:
-       ++YYCURSOR;
-#line 145 "../src/options/parse_opts.re"
-       { opts.set_bFlag (true);             goto opt; }
-#line 2571 "src/options/parse_opts.cc"
-yy632:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy660;
-       goto yy283;
-yy633:
+       if (yych == 'd') goto yy663;
+       goto yy284;
+yy631:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy661;
-       goto yy283;
+       if (yych == '-') goto yy664;
+       goto yy284;
+yy632:
+       ++YYCURSOR;
+#line 142 "../src/options/parse_opts.re"
+       { globopts.version = false;          goto opt; }
+#line 2586 "src/options/parse_opts.cc"
 yy634:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy662;
-       goto yy283;
+       if (yych == 'r') goto yy665;
+       goto yy284;
 yy635:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy663;
-       goto yy283;
+       if (yych == 'r') goto yy666;
+       goto yy284;
 yy636:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy665;
-       goto yy283;
+       if (yych <= 0x00) goto yy667;
+       goto yy284;
 yy637:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy666;
-       goto yy283;
+       if (yych == 'a') goto yy669;
+       goto yy284;
 yy638:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy667;
-       goto yy283;
+       if (yych <= 0x00) goto yy670;
+       goto yy284;
 yy639:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy669;
-       goto yy283;
-yy640:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy671;
-       goto yy283;
+       ++YYCURSOR;
+#line 155 "../src/options/parse_opts.re"
+       { opts.set_encoding(Enc::UCS2);      goto opt; }
+#line 2611 "src/options/parse_opts.cc"
 yy641:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy673;
-       goto yy283;
-yy642:
        ++YYCURSOR;
-#line 188 "../src/options/parse_opts.re"
-       { globopts.dump_interf = true;        goto opt; }
-#line 2616 "src/options/parse_opts.cc"
+#line 145 "../src/options/parse_opts.re"
+       { opts.set_bFlag (true);             goto opt; }
+#line 2616 "src/options/parse_opts.cc"
+yy643:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy672;
+       goto yy284;
 yy644:
-       ++YYCURSOR;
-#line 169 "../src/options/parse_opts.re"
-       { NEXT_ARG("--empty-class",      opt_empty_class); }
-#line 2621 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'd') goto yy673;
+       goto yy284;
+yy645:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy674;
+       goto yy284;
 yy646:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy674;
-       goto yy283;
+       if (yych <= 0x00) goto yy675;
+       goto yy284;
 yy647:
-       ++YYCURSOR;
-#line 139 "../src/options/parse_opts.re"
-       { globopts.FFlag = true;             goto opt; }
-#line 2630 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy677;
+       goto yy284;
+yy648:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == '-') goto yy678;
+       goto yy284;
 yy649:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy675;
-       goto yy283;
+       if (yych <= 0x00) goto yy679;
+       goto yy284;
 yy650:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy676;
-       goto yy283;
+       if (yych <= 0x00) goto yy681;
+       goto yy284;
 yy651:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy677;
-       goto yy283;
+       if (yych <= 0x00) goto yy683;
+       goto yy284;
 yy652:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy679;
-       goto yy283;
+       if (yych == 'o') goto yy685;
+       goto yy284;
 yy653:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy680;
-       goto yy283;
-yy654:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy681;
-       goto yy283;
+       ++YYCURSOR;
+#line 189 "../src/options/parse_opts.re"
+       { globopts.dump_interf = true;        goto opt; }
+#line 2661 "src/options/parse_opts.cc"
 yy655:
        ++YYCURSOR;
-#line 171 "../src/options/parse_opts.re"
-       { goto opt; }
-#line 2659 "src/options/parse_opts.cc"
+#line 169 "../src/options/parse_opts.re"
+       { NEXT_ARG("--empty-class",      opt_empty_class); }
+#line 2666 "src/options/parse_opts.cc"
 yy657:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy682;
-       goto yy283;
+       if (yych == 'i') goto yy686;
+       goto yy284;
 yy658:
        ++YYCURSOR;
-#line 166 "../src/options/parse_opts.re"
-       { NEXT_ARG("-t, --type-header",  opt_header); }
-#line 2668 "src/options/parse_opts.cc"
+#line 139 "../src/options/parse_opts.re"
+       { globopts.FFlag = true;             goto opt; }
+#line 2675 "src/options/parse_opts.cc"
 yy660:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy683;
-       goto yy283;
+       if (yych == 'm') goto yy687;
+       goto yy284;
 yy661:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy684;
-       goto yy283;
+       if (yych == 'o') goto yy688;
+       goto yy284;
 yy662:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy686;
-       goto yy283;
+       if (yych == 'n') goto yy689;
+       goto yy284;
 yy663:
-       ++YYCURSOR;
-#line 146 "../src/options/parse_opts.re"
-       { opts.set_dFlag (true);             goto opt; }
-#line 2685 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy690;
+       goto yy284;
+yy664:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy692;
+       goto yy284;
 yy665:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy687;
-       goto yy283;
+       if (yych == 'e') goto yy693;
+       goto yy284;
 yy666:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy688;
-       goto yy283;
+       if (yych == 'e') goto yy694;
+       goto yy284;
 yy667:
        ++YYCURSOR;
-#line 183 "../src/options/parse_opts.re"
-       { globopts.dump_dfa_det = true;       goto opt; }
-#line 2698 "src/options/parse_opts.cc"
+#line 172 "../src/options/parse_opts.re"
+       { goto opt; }
+#line 2708 "src/options/parse_opts.cc"
 yy669:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy695;
+       goto yy284;
+yy670:
        ++YYCURSOR;
-#line 185 "../src/options/parse_opts.re"
-       { globopts.dump_dfa_min = true;       goto opt; }
-#line 2703 "src/options/parse_opts.cc"
-yy671:
-       ++YYCURSOR;
-#line 182 "../src/options/parse_opts.re"
-       { globopts.dump_dfa_raw = true;       goto opt; }
-#line 2708 "src/options/parse_opts.cc"
+#line 166 "../src/options/parse_opts.re"
+       { NEXT_ARG("-t, --type-header",  opt_header); }
+#line 2717 "src/options/parse_opts.cc"
+yy672:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'i') goto yy696;
+       goto yy284;
 yy673:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy689;
-       goto yy283;
+       if (yych <= 0x00) goto yy697;
+       goto yy284;
 yy674:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy690;
-       goto yy283;
+       if (yych == 's') goto yy699;
+       goto yy284;
 yy675:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy691;
-       goto yy283;
-yy676:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy693;
-       goto yy283;
-yy677:
        ++YYCURSOR;
-#line 176 "../src/options/parse_opts.re"
-       { globopts.lookahead = false;     goto opt; }
-#line 2729 "src/options/parse_opts.cc"
-yy679:
+#line 146 "../src/options/parse_opts.re"
+       { opts.set_dFlag (true);             goto opt; }
+#line 2734 "src/options/parse_opts.cc"
+yy677:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy694;
-       goto yy283;
-yy680:
+       if (yych == 'i') goto yy700;
+       goto yy284;
+yy678:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy695;
-       goto yy283;
+       if (yych == 's') goto yy701;
+       goto yy284;
+yy679:
+       ++YYCURSOR;
+#line 184 "../src/options/parse_opts.re"
+       { globopts.dump_dfa_det = true;       goto opt; }
+#line 2747 "src/options/parse_opts.cc"
 yy681:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy696;
-       goto yy283;
-yy682:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy698;
-       goto yy283;
+       ++YYCURSOR;
+#line 186 "../src/options/parse_opts.re"
+       { globopts.dump_dfa_min = true;       goto opt; }
+#line 2752 "src/options/parse_opts.cc"
 yy683:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'v') goto yy699;
-       goto yy283;
-yy684:
        ++YYCURSOR;
-#line 151 "../src/options/parse_opts.re"
-       { opts.set_bCaseInverted (true);     goto opt; }
-#line 2754 "src/options/parse_opts.cc"
+#line 183 "../src/options/parse_opts.re"
+       { globopts.dump_dfa_raw = true;       goto opt; }
+#line 2757 "src/options/parse_opts.cc"
+yy685:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'p') goto yy702;
+       goto yy284;
 yy686:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy700;
-       goto yy283;
+       if (yych == 'c') goto yy703;
+       goto yy284;
 yy687:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy702;
-       goto yy283;
+       if (yych == 'a') goto yy704;
+       goto yy284;
 yy688:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy703;
-       goto yy283;
+       if (yych <= 0x00) goto yy705;
+       goto yy284;
 yy689:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy704;
-       goto yy283;
+       if (yych == '-') goto yy707;
+       goto yy284;
 yy690:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy705;
-       goto yy283;
-yy691:
        ++YYCURSOR;
-#line 148 "../src/options/parse_opts.re"
-       { opts.set_iFlag (true);             goto opt; }
-#line 2779 "src/options/parse_opts.cc"
+#line 177 "../src/options/parse_opts.re"
+       { globopts.lookahead = false;     goto opt; }
+#line 2782 "src/options/parse_opts.cc"
+yy692:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy708;
+       goto yy284;
 yy693:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'd') goto yy706;
-       goto yy283;
+       if (yych == 's') goto yy709;
+       goto yy284;
 yy694:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'g') goto yy707;
-       goto yy283;
+       if (yych <= 0x00) goto yy710;
+       goto yy284;
 yy695:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy708;
-       goto yy283;
+       if (yych == 'e') goto yy712;
+       goto yy284;
 yy696:
-       ++YYCURSOR;
-#line 175 "../src/options/parse_opts.re"
-       { NEXT_ARG("--posix-closure",    opt_posix_closure); }
-#line 2796 "src/options/parse_opts.cc"
-yy698:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy710;
-       goto yy283;
+       if (yych == 'v') goto yy713;
+       goto yy284;
+yy697:
+       ++YYCURSOR;
+#line 151 "../src/options/parse_opts.re"
+       { opts.set_bCaseInverted (true);     goto opt; }
+#line 2807 "src/options/parse_opts.cc"
 yy699:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy712;
-       goto yy283;
+       if (yych <= 0x00) goto yy714;
+       goto yy284;
 yy700:
-       ++YYCURSOR;
-#line 147 "../src/options/parse_opts.re"
-       { opts.set_gFlag (true);             goto opt; }
-#line 2809 "src/options/parse_opts.cc"
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'o') goto yy716;
+       goto yy284;
+yy701:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 't') goto yy717;
+       goto yy284;
 yy702:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy713;
-       goto yy283;
+       if (yych == 't') goto yy718;
+       goto yy284;
 yy703:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy714;
-       goto yy283;
+       if (yych == 'y') goto yy719;
+       goto yy284;
 yy704:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy715;
-       goto yy283;
+       if (yych == 't') goto yy720;
+       goto yy284;
 yy705:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy717;
-       goto yy283;
-yy706:
-       yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy719;
-       goto yy283;
+       ++YYCURSOR;
+#line 148 "../src/options/parse_opts.re"
+       { opts.set_iFlag (true);             goto opt; }
+#line 2836 "src/options/parse_opts.cc"
 yy707:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy720;
-       goto yy283;
+       if (yych == 'd') goto yy721;
+       goto yy284;
 yy708:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'g') goto yy722;
+       goto yy284;
+yy709:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy723;
+       goto yy284;
+yy710:
+       ++YYCURSOR;
+#line 176 "../src/options/parse_opts.re"
+       { NEXT_ARG("--posix-closure",    opt_posix_closure); }
+#line 2853 "src/options/parse_opts.cc"
+yy712:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy725;
+       goto yy284;
+yy713:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'e') goto yy727;
+       goto yy284;
+yy714:
+       ++YYCURSOR;
+#line 147 "../src/options/parse_opts.re"
+       { opts.set_gFlag (true);             goto opt; }
+#line 2866 "src/options/parse_opts.cc"
+yy716:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'n') goto yy728;
+       goto yy284;
+yy717:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy729;
+       goto yy284;
+yy718:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy730;
+       goto yy284;
+yy719:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy732;
+       goto yy284;
+yy720:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy734;
+       goto yy284;
+yy721:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'a') goto yy736;
+       goto yy284;
+yy722:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 's') goto yy737;
+       goto yy284;
+yy723:
        ++YYCURSOR;
 #line 159 "../src/options/parse_opts.re"
        {
@@ -2838,90 +2899,95 @@ yy708:
         opts.set_posix_semantics(true);
         goto opt;
     }
-#line 2842 "src/options/parse_opts.cc"
-yy710:
+#line 2903 "src/options/parse_opts.cc"
+yy725:
        ++YYCURSOR;
 #line 138 "../src/options/parse_opts.re"
        { globopts.fFlag = true;             goto opt; }
-#line 2847 "src/options/parse_opts.cc"
-yy712:
+#line 2908 "src/options/parse_opts.cc"
+yy727:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy721;
-       goto yy283;
-yy713:
+       if (yych <= 0x00) goto yy738;
+       goto yy284;
+yy728:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy723;
-       goto yy283;
-yy714:
+       if (yych <= 0x00) goto yy740;
+       goto yy284;
+yy729:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy725;
-       goto yy283;
-yy715:
+       if (yych == 't') goto yy742;
+       goto yy284;
+yy730:
        ++YYCURSOR;
-#line 184 "../src/options/parse_opts.re"
+#line 185 "../src/options/parse_opts.re"
        { globopts.dump_dfa_tagopt = true;    goto opt; }
-#line 2864 "src/options/parse_opts.cc"
-yy717:
+#line 2925 "src/options/parse_opts.cc"
+yy732:
        ++YYCURSOR;
 #line 167 "../src/options/parse_opts.re"
        { NEXT_ARG("--encoding-policy",  opt_encoding_policy); }
-#line 2869 "src/options/parse_opts.cc"
-yy719:
+#line 2930 "src/options/parse_opts.cc"
+yy734:
+       ++YYCURSOR;
+#line 170 "../src/options/parse_opts.re"
+       { NEXT_ARG("--location-format",  opt_location_format); }
+#line 2935 "src/options/parse_opts.cc"
+yy736:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy726;
-       goto yy283;
-yy720:
+       if (yych == 't') goto yy743;
+       goto yy284;
+yy737:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy727;
-       goto yy283;
-yy721:
+       if (yych <= 0x00) goto yy744;
+       goto yy284;
+yy738:
        ++YYCURSOR;
 #line 150 "../src/options/parse_opts.re"
        { opts.set_bCaseInsensitive (true);  goto opt; }
-#line 2882 "src/options/parse_opts.cc"
-yy723:
+#line 2948 "src/options/parse_opts.cc"
+yy740:
        ++YYCURSOR;
-#line 174 "../src/options/parse_opts.re"
+#line 175 "../src/options/parse_opts.re"
        { NEXT_ARG("--dfa-minimization", opt_dfa_minimization); }
-#line 2887 "src/options/parse_opts.cc"
-yy725:
+#line 2953 "src/options/parse_opts.cc"
+yy742:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy729;
-       goto yy283;
-yy726:
+       if (yych == 's') goto yy746;
+       goto yy284;
+yy743:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy730;
-       goto yy283;
-yy727:
+       if (yych == 'e') goto yy747;
+       goto yy284;
+yy744:
        ++YYCURSOR;
-#line 177 "../src/options/parse_opts.re"
+#line 178 "../src/options/parse_opts.re"
        { globopts.optimize_tags = false; goto opt; }
-#line 2900 "src/options/parse_opts.cc"
-yy729:
+#line 2966 "src/options/parse_opts.cc"
+yy746:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy731;
-       goto yy283;
-yy730:
+       if (yych <= 0x00) goto yy748;
+       goto yy284;
+yy747:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy733;
-       goto yy283;
-yy731:
+       if (yych <= 0x00) goto yy750;
+       goto yy284;
+yy748:
        ++YYCURSOR;
-#line 189 "../src/options/parse_opts.re"
+#line 190 "../src/options/parse_opts.re"
        { globopts.dump_closure_stats = true; goto opt; }
-#line 2913 "src/options/parse_opts.cc"
-yy733:
+#line 2979 "src/options/parse_opts.cc"
+yy750:
        ++YYCURSOR;
 #line 141 "../src/options/parse_opts.re"
        { globopts.bNoGenerationDate = true; goto opt; }
-#line 2918 "src/options/parse_opts.cc"
+#line 2984 "src/options/parse_opts.cc"
 }
-#line 190 "../src/options/parse_opts.re"
+#line 191 "../src/options/parse_opts.re"
 
 
 opt_output:
 
-#line 2925 "src/options/parse_opts.cc"
+#line 2991 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -2959,29 +3025,29 @@ opt_output:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy737;
-       if (yych != '-') goto yy739;
-yy737:
+       if (yych <= 0x00) goto yy754;
+       if (yych != '-') goto yy756;
+yy754:
        ++YYCURSOR;
-#line 194 "../src/options/parse_opts.re"
+#line 195 "../src/options/parse_opts.re"
        { ERROR("bad argument to option -o, --output: %s", *argv); }
-#line 2969 "src/options/parse_opts.cc"
-yy739:
+#line 3035 "src/options/parse_opts.cc"
+yy756:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy739;
+               goto yy756;
        }
        ++YYCURSOR;
-#line 195 "../src/options/parse_opts.re"
+#line 196 "../src/options/parse_opts.re"
        { opts.set_output_file (*argv); goto opt; }
-#line 2978 "src/options/parse_opts.cc"
+#line 3044 "src/options/parse_opts.cc"
 }
-#line 196 "../src/options/parse_opts.re"
+#line 197 "../src/options/parse_opts.re"
 
 
 opt_header:
 
-#line 2985 "src/options/parse_opts.cc"
+#line 3051 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -3019,29 +3085,29 @@ opt_header:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy745;
-       if (yych != '-') goto yy747;
-yy745:
+       if (yych <= 0x00) goto yy762;
+       if (yych != '-') goto yy764;
+yy762:
        ++YYCURSOR;
-#line 200 "../src/options/parse_opts.re"
+#line 201 "../src/options/parse_opts.re"
        { ERROR("bad argument to option -t, --type-header: %s", *argv); }
-#line 3029 "src/options/parse_opts.cc"
-yy747:
+#line 3095 "src/options/parse_opts.cc"
+yy764:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy747;
+               goto yy764;
        }
        ++YYCURSOR;
-#line 201 "../src/options/parse_opts.re"
+#line 202 "../src/options/parse_opts.re"
        { opts.set_header_file (*argv); goto opt; }
-#line 3038 "src/options/parse_opts.cc"
+#line 3104 "src/options/parse_opts.cc"
 }
-#line 202 "../src/options/parse_opts.re"
+#line 203 "../src/options/parse_opts.re"
 
 
 opt_incpath:
 
-#line 3045 "src/options/parse_opts.cc"
+#line 3111 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        static const unsigned char yybm[] = {
@@ -3079,471 +3145,528 @@ opt_incpath:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 0x00) goto yy753;
-       if (yych != '-') goto yy755;
-yy753:
+       if (yych <= 0x00) goto yy770;
+       if (yych != '-') goto yy772;
+yy770:
        ++YYCURSOR;
-#line 206 "../src/options/parse_opts.re"
+#line 207 "../src/options/parse_opts.re"
        { ERROR("bad argument to option -I: %s", *argv); }
-#line 3089 "src/options/parse_opts.cc"
-yy755:
+#line 3155 "src/options/parse_opts.cc"
+yy772:
        yych = (YYCTYPE)*++YYCURSOR;
        if (yybm[0+yych] & 128) {
-               goto yy755;
+               goto yy772;
        }
        ++YYCURSOR;
-#line 207 "../src/options/parse_opts.re"
+#line 208 "../src/options/parse_opts.re"
        { globopts.incpaths.push_back(*argv); goto opt; }
-#line 3098 "src/options/parse_opts.cc"
+#line 3164 "src/options/parse_opts.cc"
 }
-#line 208 "../src/options/parse_opts.re"
+#line 209 "../src/options/parse_opts.re"
 
 
 opt_encoding_policy:
 
-#line 3105 "src/options/parse_opts.cc"
+#line 3171 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
        if (yych <= 'h') {
-               if (yych == 'f') goto yy763;
+               if (yych == 'f') goto yy780;
        } else {
-               if (yych <= 'i') goto yy764;
-               if (yych == 's') goto yy765;
+               if (yych <= 'i') goto yy781;
+               if (yych == 's') goto yy782;
        }
        ++YYCURSOR;
-yy762:
-#line 212 "../src/options/parse_opts.re"
+yy779:
+#line 213 "../src/options/parse_opts.re"
        {
         ERROR("bad argument to option --encoding-policy "
             "(expected: ignore | substitute | fail): %s", *argv);
     }
-#line 3122 "src/options/parse_opts.cc"
-yy763:
+#line 3188 "src/options/parse_opts.cc"
+yy780:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy766;
-       goto yy762;
-yy764:
+       if (yych == 'a') goto yy783;
+       goto yy779;
+yy781:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'g') goto yy768;
-       goto yy762;
-yy765:
+       if (yych == 'g') goto yy785;
+       goto yy779;
+yy782:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy769;
-       goto yy762;
-yy766:
+       if (yych == 'u') goto yy786;
+       goto yy779;
+yy783:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy770;
-yy767:
+       if (yych == 'i') goto yy787;
+yy784:
        YYCURSOR = YYMARKER;
-       goto yy762;
-yy768:
+       goto yy779;
+yy785:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy771;
-       goto yy767;
-yy769:
+       if (yych == 'n') goto yy788;
+       goto yy784;
+yy786:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy772;
-       goto yy767;
-yy770:
+       if (yych == 'b') goto yy789;
+       goto yy784;
+yy787:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy773;
-       goto yy767;
-yy771:
+       if (yych == 'l') goto yy790;
+       goto yy784;
+yy788:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy774;
-       goto yy767;
-yy772:
+       if (yych == 'o') goto yy791;
+       goto yy784;
+yy789:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy775;
-       goto yy767;
-yy773:
+       if (yych == 's') goto yy792;
+       goto yy784;
+yy790:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy776;
-       goto yy767;
-yy774:
+       if (yych <= 0x00) goto yy793;
+       goto yy784;
+yy791:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy778;
-       goto yy767;
-yy775:
+       if (yych == 'r') goto yy795;
+       goto yy784;
+yy792:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy779;
-       goto yy767;
-yy776:
+       if (yych == 't') goto yy796;
+       goto yy784;
+yy793:
        ++YYCURSOR;
-#line 218 "../src/options/parse_opts.re"
+#line 219 "../src/options/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_FAIL);       goto opt; }
-#line 3177 "src/options/parse_opts.cc"
-yy778:
+#line 3243 "src/options/parse_opts.cc"
+yy795:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy780;
-       goto yy767;
-yy779:
+       if (yych == 'e') goto yy797;
+       goto yy784;
+yy796:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'i') goto yy781;
-       goto yy767;
-yy780:
+       if (yych == 'i') goto yy798;
+       goto yy784;
+yy797:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy782;
-       goto yy767;
-yy781:
+       if (yych <= 0x00) goto yy799;
+       goto yy784;
+yy798:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy784;
-       goto yy767;
-yy782:
+       if (yych == 't') goto yy801;
+       goto yy784;
+yy799:
        ++YYCURSOR;
-#line 216 "../src/options/parse_opts.re"
+#line 217 "../src/options/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_IGNORE);     goto opt; }
-#line 3198 "src/options/parse_opts.cc"
-yy784:
+#line 3264 "src/options/parse_opts.cc"
+yy801:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'u') goto yy767;
+       if (yych != 'u') goto yy784;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 't') goto yy767;
+       if (yych != 't') goto yy784;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych != 'e') goto yy767;
+       if (yych != 'e') goto yy784;
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy767;
+       if (yych >= 0x01) goto yy784;
        ++YYCURSOR;
-#line 217 "../src/options/parse_opts.re"
+#line 218 "../src/options/parse_opts.re"
        { opts.set_encoding_policy (Enc::POLICY_SUBSTITUTE); goto opt; }
-#line 3211 "src/options/parse_opts.cc"
+#line 3277 "src/options/parse_opts.cc"
 }
-#line 219 "../src/options/parse_opts.re"
+#line 220 "../src/options/parse_opts.re"
 
 
 opt_input:
 
-#line 3218 "src/options/parse_opts.cc"
+#line 3284 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych <= 'b') goto yy792;
-       if (yych <= 'c') goto yy794;
-       if (yych <= 'd') goto yy795;
-yy792:
+       if (yych <= 'b') goto yy809;
+       if (yych <= 'c') goto yy811;
+       if (yych <= 'd') goto yy812;
+yy809:
        ++YYCURSOR;
-yy793:
-#line 223 "../src/options/parse_opts.re"
+yy810:
+#line 224 "../src/options/parse_opts.re"
        {
         ERROR("bad argument to option --input "
             "(expected: default | custom): %s", *argv);
     }
-#line 3233 "src/options/parse_opts.cc"
-yy794:
+#line 3299 "src/options/parse_opts.cc"
+yy811:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'u') goto yy796;
-       goto yy793;
-yy795:
+       if (yych == 'u') goto yy813;
+       goto yy810;
+yy812:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'e') goto yy798;
-       goto yy793;
-yy796:
+       if (yych == 'e') goto yy815;
+       goto yy810;
+yy813:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 's') goto yy799;
-yy797:
+       if (yych == 's') goto yy816;
+yy814:
        YYCURSOR = YYMARKER;
-       goto yy793;
-yy798:
+       goto yy810;
+yy815:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'f') goto yy800;
-       goto yy797;
-yy799:
+       if (yych == 'f') goto yy817;
+       goto yy814;
+yy816:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy801;
-       goto yy797;
-yy800:
+       if (yych == 't') goto yy818;
+       goto yy814;
+yy817:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'a') goto yy802;
-       goto yy797;
-yy801:
+       if (yych == 'a') goto yy819;
+       goto yy814;
+yy818:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy803;
-       goto yy797;
-yy802:
+       if (yych == 'o') goto yy820;
+       goto yy814;
+yy819:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'u') goto yy804;
-       goto yy797;
-yy803:
+       if (yych == 'u') goto yy821;
+       goto yy814;
+yy820:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy805;
-       goto yy797;
-yy804:
+       if (yych == 'm') goto yy822;
+       goto yy814;
+yy821:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy806;
-       goto yy797;
-yy805:
+       if (yych == 'l') goto yy823;
+       goto yy814;
+yy822:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy807;
-       goto yy797;
-yy806:
+       if (yych <= 0x00) goto yy824;
+       goto yy814;
+yy823:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy809;
-       goto yy797;
-yy807:
+       if (yych == 't') goto yy826;
+       goto yy814;
+yy824:
        ++YYCURSOR;
-#line 228 "../src/options/parse_opts.re"
+#line 229 "../src/options/parse_opts.re"
        { opts.set_input_api(INPUT_CUSTOM);  goto opt; }
-#line 3288 "src/options/parse_opts.cc"
-yy809:
+#line 3354 "src/options/parse_opts.cc"
+yy826:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych >= 0x01) goto yy797;
+       if (yych >= 0x01) goto yy814;
        ++YYCURSOR;
-#line 227 "../src/options/parse_opts.re"
+#line 228 "../src/options/parse_opts.re"
        { opts.set_input_api(INPUT_DEFAULT); goto opt; }
-#line 3295 "src/options/parse_opts.cc"
+#line 3361 "src/options/parse_opts.cc"
 }
-#line 229 "../src/options/parse_opts.re"
+#line 230 "../src/options/parse_opts.re"
 
 
 opt_empty_class:
 
-#line 3302 "src/options/parse_opts.cc"
+#line 3368 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'e') goto yy816;
-       if (yych == 'm') goto yy817;
+       if (yych == 'e') goto yy833;
+       if (yych == 'm') goto yy834;
        ++YYCURSOR;
-yy815:
-#line 233 "../src/options/parse_opts.re"
+yy832:
+#line 234 "../src/options/parse_opts.re"
        {
         ERROR("bad argument to option --empty-class "
             "(expected: match-empty | match-none | error): %s", *argv);
     }
-#line 3315 "src/options/parse_opts.cc"
-yy816:
+#line 3381 "src/options/parse_opts.cc"
+yy833:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'r') goto yy818;
-       goto yy815;
-yy817:
+       if (yych == 'r') goto yy835;
+       goto yy832;
+yy834:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy820;
-       goto yy815;
-yy818:
+       if (yych == 'a') goto yy837;
+       goto yy832;
+yy835:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy821;
-yy819:
+       if (yych == 'r') goto yy838;
+yy836:
        YYCURSOR = YYMARKER;
-       goto yy815;
-yy820:
+       goto yy832;
+yy837:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy822;
-       goto yy819;
-yy821:
+       if (yych == 't') goto yy839;
+       goto yy836;
+yy838:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy823;
-       goto yy819;
-yy822:
+       if (yych == 'o') goto yy840;
+       goto yy836;
+yy839:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'c') goto yy824;
-       goto yy819;
-yy823:
+       if (yych == 'c') goto yy841;
+       goto yy836;
+yy840:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy825;
-       goto yy819;
-yy824:
+       if (yych == 'r') goto yy842;
+       goto yy836;
+yy841:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'h') goto yy826;
-       goto yy819;
-yy825:
+       if (yych == 'h') goto yy843;
+       goto yy836;
+yy842:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy827;
-       goto yy819;
-yy826:
+       if (yych <= 0x00) goto yy844;
+       goto yy836;
+yy843:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '-') goto yy829;
-       goto yy819;
-yy827:
+       if (yych == '-') goto yy846;
+       goto yy836;
+yy844:
        ++YYCURSOR;
-#line 239 "../src/options/parse_opts.re"
+#line 240 "../src/options/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_ERROR);       goto opt; }
-#line 3362 "src/options/parse_opts.cc"
-yy829:
+#line 3428 "src/options/parse_opts.cc"
+yy846:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy830;
-       if (yych == 'n') goto yy831;
-       goto yy819;
-yy830:
+       if (yych == 'e') goto yy847;
+       if (yych == 'n') goto yy848;
+       goto yy836;
+yy847:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'm') goto yy832;
-       goto yy819;
-yy831:
+       if (yych == 'm') goto yy849;
+       goto yy836;
+yy848:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy833;
-       goto yy819;
-yy832:
+       if (yych == 'o') goto yy850;
+       goto yy836;
+yy849:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy834;
-       goto yy819;
-yy833:
+       if (yych == 'p') goto yy851;
+       goto yy836;
+yy850:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'n') goto yy835;
-       goto yy819;
-yy834:
+       if (yych == 'n') goto yy852;
+       goto yy836;
+yy851:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 't') goto yy836;
-       goto yy819;
-yy835:
+       if (yych == 't') goto yy853;
+       goto yy836;
+yy852:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy837;
-       goto yy819;
-yy836:
+       if (yych == 'e') goto yy854;
+       goto yy836;
+yy853:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'y') goto yy838;
-       goto yy819;
-yy837:
+       if (yych == 'y') goto yy855;
+       goto yy836;
+yy854:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy839;
-       goto yy819;
-yy838:
+       if (yych <= 0x00) goto yy856;
+       goto yy836;
+yy855:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy841;
-       goto yy819;
-yy839:
+       if (yych <= 0x00) goto yy858;
+       goto yy836;
+yy856:
        ++YYCURSOR;
-#line 238 "../src/options/parse_opts.re"
+#line 239 "../src/options/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_NONE);  goto opt; }
-#line 3408 "src/options/parse_opts.cc"
-yy841:
+#line 3474 "src/options/parse_opts.cc"
+yy858:
        ++YYCURSOR;
-#line 237 "../src/options/parse_opts.re"
+#line 238 "../src/options/parse_opts.re"
        { opts.set_empty_class_policy (EMPTY_CLASS_MATCH_EMPTY); goto opt; }
-#line 3413 "src/options/parse_opts.cc"
+#line 3479 "src/options/parse_opts.cc"
 }
-#line 240 "../src/options/parse_opts.re"
+#line 241 "../src/options/parse_opts.re"
+
+
+opt_location_format:
+
+#line 3486 "src/options/parse_opts.cc"
+{
+       YYCTYPE yych;
+       yych = (YYCTYPE)*YYCURSOR;
+       if (yych == 'g') goto yy864;
+       if (yych == 'm') goto yy865;
+       ++YYCURSOR;
+yy863:
+#line 245 "../src/options/parse_opts.re"
+       {
+        ERROR("bad argument to option --location-format (expected: gnu | msvc): %s", *argv);
+    }
+#line 3498 "src/options/parse_opts.cc"
+yy864:
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == 'n') goto yy866;
+       goto yy863;
+yy865:
+       yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
+       if (yych == 's') goto yy868;
+       goto yy863;
+yy866:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'u') goto yy869;
+yy867:
+       YYCURSOR = YYMARKER;
+       goto yy863;
+yy868:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'v') goto yy870;
+       goto yy867;
+yy869:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych <= 0x00) goto yy871;
+       goto yy867;
+yy870:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych == 'c') goto yy873;
+       goto yy867;
+yy871:
+       ++YYCURSOR;
+#line 248 "../src/options/parse_opts.re"
+       { msg.locfmt = LOCFMT_GNU;  goto opt; }
+#line 3529 "src/options/parse_opts.cc"
+yy873:
+       yych = (YYCTYPE)*++YYCURSOR;
+       if (yych >= 0x01) goto yy867;
+       ++YYCURSOR;
+#line 249 "../src/options/parse_opts.re"
+       { msg.locfmt = LOCFMT_MSVC; goto opt; }
+#line 3536 "src/options/parse_opts.cc"
+}
+#line 250 "../src/options/parse_opts.re"
 
 
 opt_dfa_minimization:
 
-#line 3420 "src/options/parse_opts.cc"
+#line 3543 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'm') goto yy847;
-       if (yych == 't') goto yy848;
+       if (yych == 'm') goto yy880;
+       if (yych == 't') goto yy881;
        ++YYCURSOR;
-yy846:
-#line 244 "../src/options/parse_opts.re"
+yy879:
+#line 254 "../src/options/parse_opts.re"
        {
         ERROR("bad argument to option --dfa-minimization "
             "(expected: table | moore): %s", *argv);
     }
-#line 3433 "src/options/parse_opts.cc"
-yy847:
+#line 3556 "src/options/parse_opts.cc"
+yy880:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy849;
-       goto yy846;
-yy848:
+       if (yych == 'o') goto yy882;
+       goto yy879;
+yy881:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'a') goto yy851;
-       goto yy846;
-yy849:
+       if (yych == 'a') goto yy884;
+       goto yy879;
+yy882:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy852;
-yy850:
+       if (yych == 'o') goto yy885;
+yy883:
        YYCURSOR = YYMARKER;
-       goto yy846;
-yy851:
+       goto yy879;
+yy884:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'b') goto yy853;
-       goto yy850;
-yy852:
+       if (yych == 'b') goto yy886;
+       goto yy883;
+yy885:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy854;
-       goto yy850;
-yy853:
+       if (yych == 'r') goto yy887;
+       goto yy883;
+yy886:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'l') goto yy855;
-       goto yy850;
-yy854:
+       if (yych == 'l') goto yy888;
+       goto yy883;
+yy887:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy856;
-       goto yy850;
-yy855:
+       if (yych == 'e') goto yy889;
+       goto yy883;
+yy888:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'e') goto yy857;
-       goto yy850;
-yy856:
+       if (yych == 'e') goto yy890;
+       goto yy883;
+yy889:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy858;
-       goto yy850;
-yy857:
+       if (yych <= 0x00) goto yy891;
+       goto yy883;
+yy890:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy860;
-       goto yy850;
-yy858:
+       if (yych <= 0x00) goto yy893;
+       goto yy883;
+yy891:
        ++YYCURSOR;
-#line 249 "../src/options/parse_opts.re"
+#line 259 "../src/options/parse_opts.re"
        { globopts.dfa_minimization = DFA_MINIMIZATION_MOORE; goto opt; }
-#line 3480 "src/options/parse_opts.cc"
-yy860:
+#line 3603 "src/options/parse_opts.cc"
+yy893:
        ++YYCURSOR;
-#line 248 "../src/options/parse_opts.re"
+#line 258 "../src/options/parse_opts.re"
        { globopts.dfa_minimization = DFA_MINIMIZATION_TABLE; goto opt; }
-#line 3485 "src/options/parse_opts.cc"
+#line 3608 "src/options/parse_opts.cc"
 }
-#line 250 "../src/options/parse_opts.re"
+#line 260 "../src/options/parse_opts.re"
 
 
 opt_posix_closure:
 
-#line 3492 "src/options/parse_opts.cc"
+#line 3615 "src/options/parse_opts.cc"
 {
        YYCTYPE yych;
        yych = (YYCTYPE)*YYCURSOR;
-       if (yych == 'g') goto yy866;
+       if (yych == 'g') goto yy899;
        ++YYCURSOR;
-yy865:
-#line 254 "../src/options/parse_opts.re"
+yy898:
+#line 264 "../src/options/parse_opts.re"
        {
         ERROR("bad argument to option --posix_closure "
             "(expected: gor1 | gtop): %s", *argv);
     }
-#line 3504 "src/options/parse_opts.cc"
-yy866:
+#line 3627 "src/options/parse_opts.cc"
+yy899:
        yych = (YYCTYPE)*(YYMARKER = ++YYCURSOR);
-       if (yych == 'o') goto yy867;
-       if (yych == 't') goto yy869;
-       goto yy865;
-yy867:
+       if (yych == 'o') goto yy900;
+       if (yych == 't') goto yy902;
+       goto yy898;
+yy900:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'r') goto yy870;
-yy868:
+       if (yych == 'r') goto yy903;
+yy901:
        YYCURSOR = YYMARKER;
-       goto yy865;
-yy869:
+       goto yy898;
+yy902:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'o') goto yy871;
-       goto yy868;
-yy870:
+       if (yych == 'o') goto yy904;
+       goto yy901;
+yy903:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == '1') goto yy872;
-       goto yy868;
-yy871:
+       if (yych == '1') goto yy905;
+       goto yy901;
+yy904:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych == 'p') goto yy873;
-       goto yy868;
-yy872:
+       if (yych == 'p') goto yy906;
+       goto yy901;
+yy905:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy874;
-       goto yy868;
-yy873:
+       if (yych <= 0x00) goto yy907;
+       goto yy901;
+yy906:
        yych = (YYCTYPE)*++YYCURSOR;
-       if (yych <= 0x00) goto yy876;
-       goto yy868;
-yy874:
+       if (yych <= 0x00) goto yy909;
+       goto yy901;
+yy907:
        ++YYCURSOR;
-#line 258 "../src/options/parse_opts.re"
+#line 268 "../src/options/parse_opts.re"
        { globopts.posix_closure = POSIX_CLOSURE_GOR1; goto opt; }
-#line 3540 "src/options/parse_opts.cc"
-yy876:
+#line 3663 "src/options/parse_opts.cc"
+yy909:
        ++YYCURSOR;
-#line 259 "../src/options/parse_opts.re"
+#line 269 "../src/options/parse_opts.re"
        { globopts.posix_closure = POSIX_CLOSURE_GTOP; goto opt; }
-#line 3545 "src/options/parse_opts.cc"
+#line 3668 "src/options/parse_opts.cc"
 }
-#line 260 "../src/options/parse_opts.re"
+#line 270 "../src/options/parse_opts.re"
 
 
 end:
index 5c0d91af9c8ca3f689a056f03517db2fdcaec56e..2bfc58eda2fa30de171f06fe555f08e1b70f0d36 100644 (file)
@@ -16,6 +16,11 @@ struct loc_t
 static const loc_t ATSTART = {1, 0, 0};
 static const loc_t NOWHERE = {~0u, ~0u, ~0u};
 
+enum locfmt_t
+    { LOCFMT_GNU
+    , LOCFMT_MSVC
+    };
+
 } // namespace re2c
 
 #endif // _RE2C_MSG_LOCATION_
index d8bfb906c10719f50e2455fa7ef108f4df58c914..044a5b389c7d239da1bfe4129d0ddf36f92c4344 100644 (file)
@@ -36,10 +36,23 @@ void fatal(const char *fmt, ...)
     exit(1);
 }
 
+void Msg::print_location(const loc_t &loc) const
+{
+    const char *f = filenames[loc.file].c_str();
+    switch (locfmt) {
+        case LOCFMT_GNU:
+            fprintf(stderr, "%s:%u:%u: ", f, loc.line, loc.coln);
+            break;
+        case LOCFMT_MSVC:
+            fprintf(stderr, "%s(%u,%u): ", f, loc.line, loc.coln);
+            break;
+    }
+}
+
 void Msg::fatal(const loc_t &loc, const char *fmt, ...)
 {
-    fprintf(stderr, "%s:%u:%u: error: "
-        , filenames[loc.file].c_str(), loc.line, loc.coln);
+    print_location(loc);
+    fprintf(stderr, "error: ");
 
     va_list args;
     va_start(args, fmt);
@@ -57,9 +70,9 @@ void error_arg(const char *option)
 
 void Msg::warning_start(const loc_t &loc, bool error)
 {
+    print_location(loc);
     const char *msg = error ? "error" : "warning";
-    fprintf(stderr, "%s:%u:%u: %s: "
-        , filenames[loc.file].c_str(), loc.line, loc.coln, msg);
+    fprintf(stderr, "%s: ", msg);
 }
 
 void Msg::warning_end(const char *type, bool error)
index 2f1b5045856a24eec8a2c107f427f69e6ff7bdec..9cd7e0845ba3a62c2a441f9f15243469f55ad5f2 100644 (file)
@@ -17,9 +17,10 @@ class Msg
 public:
     std::vector<std::string> filenames;
     Warn warn;
+    locfmt_t locfmt;
 
 public:
-    inline Msg(): filenames(), warn(*this) {}
+    inline Msg(): filenames(), warn(*this), locfmt(LOCFMT_GNU) {}
 
     size_t register_filename(const std::string &filename);
     void fatal(const loc_t &loc, const char *fmt, ...) RE2C_GXX_ATTRIBUTE ((format (printf, 3, 4), noreturn));
@@ -28,6 +29,7 @@ public:
     friend class Warn;
 
 private:
+    void print_location(const loc_t &loc) const;
     void warning_start(const loc_t &loc, bool error);
     void warning_end(const char *type, bool error);
 };
index 236cab8d240c247eba72cd8761fa718d0ba88b33..94257f6dcb36dd5ef6a06873d69d31dd9ac81b12 100644 (file)
@@ -167,6 +167,7 @@ opt_long:
     "encoding-policy"       end { NEXT_ARG("--encoding-policy",  opt_encoding_policy); }
     "input"                 end { NEXT_ARG("--input",            opt_input); }
     "empty-class"           end { NEXT_ARG("--empty-class",      opt_empty_class); }
+    "location-format"       end { NEXT_ARG("--location-format",  opt_location_format); }
 
     "single-pass"           end { goto opt; } // deprecated
 
@@ -239,6 +240,15 @@ opt_empty_class:
     "error"       end { opts.set_empty_class_policy (EMPTY_CLASS_ERROR);       goto opt; }
 */
 
+opt_location_format:
+/*!re2c
+    * {
+        ERROR("bad argument to option --location-format (expected: gnu | msvc): %s", *argv);
+    }
+    "gnu"  end { msg.locfmt = LOCFMT_GNU;  goto opt; }
+    "msvc" end { msg.locfmt = LOCFMT_MSVC; goto opt; }
+*/
+
 opt_dfa_minimization:
 /*!re2c
     * {
diff --git a/re2c/test/messages/msg_00.i--location-format(gnu).c b/re2c/test/messages/msg_00.i--location-format(gnu).c
new file mode 100644 (file)
index 0000000..bad3131
--- /dev/null
@@ -0,0 +1,17 @@
+/* Generated by re2c */
+
+{
+       YYCTYPE yych;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 'a':       goto yy3;
+       default:        goto yy2;
+       }
+yy2:
+yy3:
+       ++YYCURSOR;
+       {}
+}
+
+messages/msg_00.i--location-format(gnu).re:3:2: warning: control flow is undefined for strings that match '[\x0-\x60\x62-\xFF]', use default rule '*' [-Wundefined-control-flow]
diff --git a/re2c/test/messages/msg_00.i--location-format(gnu).re b/re2c/test/messages/msg_00.i--location-format(gnu).re
new file mode 100644 (file)
index 0000000..7f71109
--- /dev/null
@@ -0,0 +1,3 @@
+/*!re2c
+    "a" {}
+*/
diff --git a/re2c/test/messages/msg_00.i--location-format(msvc).c b/re2c/test/messages/msg_00.i--location-format(msvc).c
new file mode 100644 (file)
index 0000000..60f9d77
--- /dev/null
@@ -0,0 +1,17 @@
+/* Generated by re2c */
+
+{
+       YYCTYPE yych;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 'a':       goto yy3;
+       default:        goto yy2;
+       }
+yy2:
+yy3:
+       ++YYCURSOR;
+       {}
+}
+
+messages/msg_00.i--location-format(msvc).re(3,2): warning: control flow is undefined for strings that match '[\x0-\x60\x62-\xFF]', use default rule '*' [-Wundefined-control-flow]
diff --git a/re2c/test/messages/msg_00.i--location-format(msvc).re b/re2c/test/messages/msg_00.i--location-format(msvc).re
new file mode 100644 (file)
index 0000000..7f71109
--- /dev/null
@@ -0,0 +1,3 @@
+/*!re2c
+    "a" {}
+*/
diff --git a/re2c/test/messages/msg_01.i--location-format(gnu).c b/re2c/test/messages/msg_01.i--location-format(gnu).c
new file mode 100644 (file)
index 0000000..ce6f842
--- /dev/null
@@ -0,0 +1 @@
+messages/msg_01.i--location-format(gnu).re:2:12: error: conditions are only allowed with '-c', '--conditions' option
diff --git a/re2c/test/messages/msg_01.i--location-format(gnu).re b/re2c/test/messages/msg_01.i--location-format(gnu).re
new file mode 100644 (file)
index 0000000..857e129
--- /dev/null
@@ -0,0 +1,3 @@
+/*!re2c
+    <c> "a" {}
+*/
diff --git a/re2c/test/messages/msg_01.i--location-format(msvc).c b/re2c/test/messages/msg_01.i--location-format(msvc).c
new file mode 100644 (file)
index 0000000..7f9fe89
--- /dev/null
@@ -0,0 +1 @@
+messages/msg_01.i--location-format(msvc).re(2,12): error: conditions are only allowed with '-c', '--conditions' option
diff --git a/re2c/test/messages/msg_01.i--location-format(msvc).re b/re2c/test/messages/msg_01.i--location-format(msvc).re
new file mode 100644 (file)
index 0000000..857e129
--- /dev/null
@@ -0,0 +1,3 @@
+/*!re2c
+    <c> "a" {}
+*/
diff --git a/re2c/test/messages/msg_02.i--location-format(gnu).c b/re2c/test/messages/msg_02.i--location-format(gnu).c
new file mode 100644 (file)
index 0000000..7f7f436
--- /dev/null
@@ -0,0 +1,50 @@
+/* Generated by re2c */
+
+
+
+
+
+
+{
+       YYCTYPE yych;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 'Z':
+       case '[':
+       case '\\':
+       case ']':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':       goto yy4;
+       default:        goto yy2;
+       }
+yy2:
+       ++YYCURSOR;
+       {}
+yy4:
+       ++YYCURSOR;
+       {}
+}
+
+
+
+{
+       YYCTYPE yych;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x07:
+       case 'h':       goto yy9;
+       default:        goto yy8;
+       }
+yy8:
+yy9:
+       ++YYCURSOR;
+       {}
+}
+
+../messages/nested/msg_02.re.inc:2:9: warning: range lower bound (0x61) is greater than upper bound (0x5A), swapping [-Wswapped-range]
+../messages/nested/msg_02.re.inc:6:11: warning: escape has no effect: '\h' [-Wuseless-escape]
+messages/msg_02.i--location-format(gnu).re:10:2: warning: control flow is undefined for strings that match '[\x0-\x6\x8-\x67\x69-\xFF]', use default rule '*' [-Wundefined-control-flow]
diff --git a/re2c/test/messages/msg_02.i--location-format(gnu).re b/re2c/test/messages/msg_02.i--location-format(gnu).re
new file mode 100644 (file)
index 0000000..9ef2f58
--- /dev/null
@@ -0,0 +1,10 @@
+/*!include:re2c "msg_02.re.inc" */
+
+/*!re2c
+    a {}
+    * {}
+*/
+
+/*!re2c
+    b {}
+*/
diff --git a/re2c/test/messages/msg_02.i--location-format(msvc).c b/re2c/test/messages/msg_02.i--location-format(msvc).c
new file mode 100644 (file)
index 0000000..f8d59ab
--- /dev/null
@@ -0,0 +1,50 @@
+/* Generated by re2c */
+
+
+
+
+
+
+{
+       YYCTYPE yych;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 'Z':
+       case '[':
+       case '\\':
+       case ']':
+       case '^':
+       case '_':
+       case '`':
+       case 'a':       goto yy4;
+       default:        goto yy2;
+       }
+yy2:
+       ++YYCURSOR;
+       {}
+yy4:
+       ++YYCURSOR;
+       {}
+}
+
+
+
+{
+       YYCTYPE yych;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       switch (yych) {
+       case 0x07:
+       case 'h':       goto yy9;
+       default:        goto yy8;
+       }
+yy8:
+yy9:
+       ++YYCURSOR;
+       {}
+}
+
+../messages/nested/msg_02.re.inc(2,9): warning: range lower bound (0x61) is greater than upper bound (0x5A), swapping [-Wswapped-range]
+../messages/nested/msg_02.re.inc(6,11): warning: escape has no effect: '\h' [-Wuseless-escape]
+messages/msg_02.i--location-format(msvc).re(10,2): warning: control flow is undefined for strings that match '[\x0-\x6\x8-\x67\x69-\xFF]', use default rule '*' [-Wundefined-control-flow]
diff --git a/re2c/test/messages/msg_02.i--location-format(msvc).re b/re2c/test/messages/msg_02.i--location-format(msvc).re
new file mode 100644 (file)
index 0000000..9ef2f58
--- /dev/null
@@ -0,0 +1,10 @@
+/*!include:re2c "msg_02.re.inc" */
+
+/*!re2c
+    a {}
+    * {}
+*/
+
+/*!re2c
+    b {}
+*/
diff --git a/re2c/test/messages/msg_03.i--location-format(gnu).c b/re2c/test/messages/msg_03.i--location-format(gnu).c
new file mode 100644 (file)
index 0000000..4aa3b59
--- /dev/null
@@ -0,0 +1 @@
+messages/msg_03.i--location-format(gnu).re:1:17: error: unexpected end of input
diff --git a/re2c/test/messages/msg_03.i--location-format(gnu).re b/re2c/test/messages/msg_03.i--location-format(gnu).re
new file mode 100644 (file)
index 0000000..83cfcec
--- /dev/null
@@ -0,0 +1 @@
+/*!re2c <c> "a" {
\ No newline at end of file
diff --git a/re2c/test/messages/msg_03.i--location-format(msvc).c b/re2c/test/messages/msg_03.i--location-format(msvc).c
new file mode 100644 (file)
index 0000000..30a8e94
--- /dev/null
@@ -0,0 +1 @@
+messages/msg_03.i--location-format(msvc).re(1,17): error: unexpected end of input
diff --git a/re2c/test/messages/msg_03.i--location-format(msvc).re b/re2c/test/messages/msg_03.i--location-format(msvc).re
new file mode 100644 (file)
index 0000000..83cfcec
--- /dev/null
@@ -0,0 +1 @@
+/*!re2c <c> "a" {
\ No newline at end of file
diff --git a/re2c/test/messages/nested/msg_02.re.inc b/re2c/test/messages/nested/msg_02.re.inc
new file mode 100644 (file)
index 0000000..2baf0fc
--- /dev/null
@@ -0,0 +1,7 @@
+/*!re2c
+    a = [a-Z];
+*/
+
+/*!re2c
+    b = [\a\h];
+*/