/* Generated by re2c */
// re2c $INPUT -o $OUTPUT -i
#include <assert.h>
#include <stdio.h>
#include <string>
#include <vector>

typedef std::vector<std::pair<std::string, std::string> > unknown_t;

struct options_t
{
    std::string date;
    std::string path;
    std::string format;
    std::string limit;
    bool verbose;
};

static void show(const options_t &o, const unknown_t &u)
{
    fprintf(stderr, "\noptions:\n");
    fprintf(stderr, "  date:    %s\n", o.date.c_str());
    fprintf(stderr, "  path:    %s\n", o.path.c_str());
    fprintf(stderr, "  format:  %s\n", o.format.c_str());
    fprintf(stderr, "  limit:   %s\n", o.limit.c_str());
    fprintf(stderr, "  verbose: %s\n", o.verbose ? "yes" : "no");

    fprintf(stderr, "\nunknown:\n");
    unknown_t::const_iterator i = u.begin(), e = u.end();
    for (; i != e; ++i) {
        fprintf(stderr, "  %s: '%s'\n", i->first.c_str(), i->second.c_str());
    }
}

static void bad_arg(const char *k, const char *v, const char *e)
{
    fprintf(stderr, "bad argument '%.*s' to option %.*s\n",
        (int) (e - v), v, (int) (v - k), k);
}

static int lex(const char *s)
{
    options_t o;
    unknown_t u;
    const char *m, *k, *v;
    const char *yyt1;const char *yyt2;const char *yyt3;const char *yyt4;const char *yyt5;
loop:
    
{
	char yych;
	unsigned int yyaccept = 0;
	yych = *s;
	switch (yych) {
	case 0x00:	goto yy2;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy6;
	case '-':
		yyt2 = s;
		goto yy9;
	default:	goto yy4;
	}
yy2:
	++s;
	{ show(o, u); return 0; }
yy4:
	++s;
yy5:
	{ fprintf(stderr, "error: %s\n", s); return 1; }
yy6:
	yych = *++s;
	switch (yych) {
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy6;
	default:	goto yy8;
	}
yy8:
	{ goto loop; }
yy9:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
	case '=':	goto yy5;
	case '-':
		yyt3 = s;
		goto yy13;
	case 'd':
		yyt3 = s;
		goto yy14;
	case 'f':
		yyt3 = s;
		goto yy16;
	case 'l':
		yyt3 = s;
		goto yy17;
	case 'p':
		yyt3 = s;
		goto yy18;
	case 'v':
		yyt3 = s;
		goto yy20;
	default:
		yyt3 = s;
		goto yy10;
	}
yy10:
	yych = *++s;
yy11:
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt4 = s;
		goto yy12;
	case '"':
		yyt4 = s;
		goto yy22;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy10;
	}
yy12:
	k = yyt3;
	v = yyt4;
	{
            u.push_back(std::make_pair(std::string(k, v), std::string(v, s)));
            goto loop;
        }
yy13:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt4 = s;
		goto yy12;
	case '"':
		yyt1 = yyt4 = s;
		goto yy25;
	case '=':
		yyt4 = s;
		goto yy24;
	case 'd':
		yyt1 = s;
		goto yy27;
	case 'f':
		yyt1 = s;
		goto yy28;
	case 'l':
		yyt1 = s;
		goto yy29;
	case 'p':
		yyt1 = s;
		goto yy30;
	case 'v':
		yyt1 = s;
		goto yy31;
	default:
		yyt3 = s;
		goto yy10;
	}
yy14:
	yych = *++s;
	yyt5 = s;
	switch (yych) {
	case '"':	goto yy34;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy36;
	case '=':	goto yy37;
	default:	goto yy33;
	}
yy15:
	k = yyt2;
	v = yyt5;
	{
            bad_arg(k, v, s);
            goto loop;
        }
yy16:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt5 = s;
		goto yy15;
	case '"':
		yyt1 = yyt5 = s;
		goto yy38;
	case '=':
		yyt5 = s;
		goto yy37;
	default:
		yyt5 = s;
		goto yy32;
	}
yy17:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt5 = s;
		goto yy15;
	case '"':
		yyt5 = s;
		goto yy34;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt1 = yyt5 = s;
		goto yy40;
	case '=':
		yyt5 = s;
		goto yy37;
	default:
		yyt5 = s;
		goto yy32;
	}
yy18:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt1 = s;
		goto yy19;
	case '"':
		yyt1 = yyt5 = s;
		goto yy45;
	case '=':
		yyt5 = s;
		goto yy37;
	default:
		yyt1 = s;
		goto yy43;
	}
yy19:
	v = yyt1;
	{ o.path   = std::string(v, s); goto loop; }
yy20:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy21;
	default:	goto yy11;
	}
yy21:
	{ o.verbose = true; goto loop; }
yy22:
	yyaccept = 0;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
		yyt4 = s;
		goto yy12;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy47;
	case '"':
		yyt4 = s;
		goto yy22;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy22;
	}
yy24:
	yych = *++s;
	switch (yych) {
	case '"':	goto yy52;
	default:	goto yy51;
	}
yy25:
	yyaccept = 1;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy47;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	default:	goto yy25;
	}
yy27:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'a':	goto yy54;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy28:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'o':	goto yy55;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy29:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'i':	goto yy56;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy30:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'a':	goto yy57;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy31:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'e':	goto yy58;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy32:
	yych = *++s;
yy33:
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy15;
	case '"':
		yyt4 = s;
		goto yy59;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy32;
	}
yy34:
	yyaccept = 2;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:	goto yy15;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy61;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy34;
	}
yy36:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy63;
	default:	goto yy33;
	}
yy37:
	yych = *++s;
	switch (yych) {
	case '"':	goto yy66;
	default:	goto yy65;
	}
yy38:
	yyaccept = 2;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:	goto yy15;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy68;
	case '"':	goto yy70;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy38;
	}
yy40:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy42;
	case '"':
		yyt4 = s;
		goto yy59;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy40;
	case '=':
		yyt4 = s;
		goto yy24;
	case 'B':
	case 'G':
	case 'K':
	case 'M':	goto yy73;
	default:	goto yy32;
	}
yy42:
	v = yyt1;
	{ o.limit  = std::string(v, s); goto loop; }
yy43:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy19;
	case '"':
		yyt4 = s;
		goto yy74;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy43;
	}
yy45:
	yyaccept = 3;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:	goto yy19;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy61;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy45;
	}
yy47:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '=':	goto yy49;
	case '"':	goto yy76;
	default:	goto yy47;
	}
yy49:
	s = m;
	switch (yyaccept) {
	case 0:
		yyt4 = s;
		goto yy12;
	case 1:
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case 2:
		goto yy15;
	case 3:
		goto yy19;
	case 4:
		goto yy12;
	default:
		goto yy72;
	}
yy50:
	yych = *++s;
yy51:
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
	case '=':	goto yy12;
	default:	goto yy50;
	}
yy52:
	yyaccept = 4;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
	case '=':	goto yy12;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy47;
	default:	goto yy52;
	}
yy54:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 't':	goto yy78;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy55:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'r':	goto yy79;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy56:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'm':	goto yy80;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy57:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 't':	goto yy81;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy58:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'r':	goto yy82;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy59:
	yyaccept = 2;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:	goto yy15;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy47;
	case '"':
		yyt4 = s;
		goto yy59;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy59;
	}
yy61:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '=':	goto yy49;
	case '"':	goto yy83;
	default:	goto yy61;
	}
yy63:
	yych = *++s;
	switch (yych) {
	case '/':	goto yy85;
	default:	goto yy33;
	}
yy64:
	yych = *++s;
yy65:
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
	case '=':	goto yy15;
	default:	goto yy64;
	}
yy66:
	yyaccept = 2;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
	case '=':	goto yy15;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy61;
	default:	goto yy66;
	}
yy68:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '=':	goto yy49;
	case '"':	goto yy86;
	default:	goto yy68;
	}
yy70:
	yyaccept = 5;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:	goto yy72;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy68;
	case '"':	goto yy70;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy38;
	}
yy72:
	v = yyt1;
	{ o.format = std::string(v, s); goto loop; }
yy73:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy42;
	default:	goto yy33;
	}
yy74:
	yyaccept = 3;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:	goto yy19;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy47;
	case '"':
		yyt4 = s;
		goto yy74;
	case '=':
		yyt4 = s;
		goto yy24;
	default:	goto yy74;
	}
yy76:
	yyaccept = 4;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
	case '=':	goto yy12;
	case '"':	goto yy76;
	default:	goto yy47;
	}
yy78:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'e':	goto yy88;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy79:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'm':	goto yy89;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy80:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'i':	goto yy90;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy81:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'h':	goto yy91;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy82:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'b':	goto yy92;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy83:
	yyaccept = 2;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
	case '=':	goto yy15;
	case '"':	goto yy83;
	default:	goto yy61;
	}
yy85:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy93;
	default:	goto yy33;
	}
yy86:
	yyaccept = 5;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
	case '=':	goto yy72;
	case '"':	goto yy86;
	default:	goto yy68;
	}
yy88:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt5 = s;
		goto yy15;
	case '"':
		yyt3 = yyt1;
		yyt5 = s;
		goto yy34;
	case '=':
		yyt5 = s;
		goto yy94;
	default:
		yyt3 = yyt1;
		yyt5 = s;
		goto yy32;
	}
yy89:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'a':	goto yy95;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy90:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 't':	goto yy96;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy91:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt5 = s;
		goto yy15;
	case '"':
		yyt3 = yyt1;
		yyt5 = s;
		goto yy34;
	case '=':
		yyt5 = s;
		goto yy97;
	default:
		yyt3 = yyt1;
		yyt5 = s;
		goto yy32;
	}
yy92:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'o':	goto yy98;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy93:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy99;
	default:	goto yy33;
	}
yy94:
	yych = *++s;
	switch (yych) {
	case '"':	goto yy66;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy100;
	default:	goto yy65;
	}
yy95:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 't':	goto yy101;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy96:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt5 = s;
		goto yy15;
	case '"':
		yyt3 = yyt1;
		yyt5 = s;
		goto yy34;
	case '=':
		yyt5 = s;
		goto yy102;
	default:
		yyt3 = yyt1;
		yyt5 = s;
		goto yy32;
	}
yy97:
	yych = *++s;
	yyt1 = s;
	switch (yych) {
	case '"':	goto yy105;
	default:	goto yy104;
	}
yy98:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 's':	goto yy107;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy99:
	yych = *++s;
	switch (yych) {
	case '/':	goto yy108;
	default:	goto yy33;
	}
yy100:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy109;
	default:	goto yy65;
	}
yy101:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt5 = s;
		goto yy15;
	case '"':
		yyt3 = yyt1;
		yyt5 = s;
		goto yy34;
	case '=':
		yyt5 = s;
		goto yy110;
	default:
		yyt3 = yyt1;
		yyt5 = s;
		goto yy32;
	}
yy102:
	yych = *++s;
	switch (yych) {
	case '"':	goto yy66;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':
		yyt1 = s;
		goto yy111;
	default:	goto yy65;
	}
yy103:
	yych = *++s;
yy104:
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
	case '=':	goto yy19;
	default:	goto yy103;
	}
yy105:
	yyaccept = 3;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
	case '=':	goto yy19;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy61;
	default:	goto yy105;
	}
yy107:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy12;
	case '"':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy22;
	case '=':
		yyt3 = yyt1;
		yyt4 = s;
		goto yy24;
	case 'e':
		yyt3 = yyt1;
		goto yy20;
	default:
		yyt3 = yyt1;
		goto yy10;
	}
yy108:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy113;
	default:	goto yy33;
	}
yy109:
	yych = *++s;
	switch (yych) {
	case '/':	goto yy114;
	default:	goto yy65;
	}
yy110:
	yych = *++s;
	switch (yych) {
	case '"':
		yyt1 = s;
		goto yy115;
	default:	goto yy65;
	}
yy111:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
	case '=':	goto yy42;
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy111;
	case 'B':
	case 'G':
	case 'K':
	case 'M':	goto yy117;
	default:	goto yy64;
	}
yy113:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy118;
	default:	goto yy33;
	}
yy114:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy119;
	default:	goto yy65;
	}
yy115:
	yyaccept = 2;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
	case '=':	goto yy15;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy68;
	case '"':	goto yy120;
	default:	goto yy115;
	}
yy117:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
	case '=':	goto yy42;
	default:	goto yy64;
	}
yy118:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy122;
	default:	goto yy33;
	}
yy119:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy123;
	default:	goto yy65;
	}
yy120:
	yyaccept = 5;
	yych = *(m = ++s);
	switch (yych) {
	case 0x00:
	case '=':	goto yy72;
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy68;
	case '"':	goto yy120;
	default:	goto yy115;
	}
yy122:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy124;
	default:	goto yy33;
	}
yy123:
	yych = *++s;
	switch (yych) {
	case '/':	goto yy126;
	default:	goto yy65;
	}
yy124:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':	goto yy125;
	default:	goto yy33;
	}
yy125:
	v = s - 10;
	{ o.date   = std::string(v, s); goto loop; }
yy126:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy127;
	default:	goto yy65;
	}
yy127:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy128;
	default:	goto yy65;
	}
yy128:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy129;
	default:	goto yy65;
	}
yy129:
	yych = *++s;
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy130;
	default:	goto yy65;
	}
yy130:
	yych = *++s;
	switch (yych) {
	case 0x00:
	case '\t':
	case '\n':
	case '\r':
	case ' ':
	case '=':	goto yy125;
	default:	goto yy64;
	}
}

}

int main()
{
    assert(lex("-v --limit=8K -d08/08/1985 -p/usr/src/linux "
        "--format=\"%s\" --limit -f=3 --verbos --d\"19th May\"") == 0);
    return 0;
}
c/submatch/parse_options.re:71:12: warning: rule matches empty string [-Wmatch-empty-string]
c/submatch/parse_options.re:83:35: warning: tag 'k' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
c/submatch/parse_options.re:83:35: warning: tag 'v' has 2nd degree of nondeterminism [-Wnondeterministic-tags]
