bool lex (FILE * f, const long limit)
{
    long marker;
    long ctxmarker;
#   define YYCTYPE        char
#   define YYPEEK()       peek (f)
#   define YYSKIP()       fgetc (f)
#   define YYBACKUP()     marker = ftell (f)
#   define YYBACKUPCTX()  ctxmarker = ftell (f)
#   define YYRESTORE()    fseek (f, marker, SEEK_SET)
#   define YYRESTORECTX() fseek (f, ctxmarker, SEEK_SET)
#   define YYLESSTHAN(n)  limit - ftell (f) < n
#   define YYFILL(n)      {}
    
#line 27 "input_custom_fgetc.--input(custom).c"
{
	YYCTYPE yych;
	if (YYLESSTHAN (13)) YYFILL(13);
	yych = YYPEEK ();
	switch (yych) {
	case 'i':	goto yy4;
	default:	goto yy2;
	}
yy2:
	YYSKIP ();
yy3:
#line 25 "input_custom_fgetc.--input(custom).re"
	{ return false; }
#line 41 "input_custom_fgetc.--input(custom).c"
yy4:
	YYSKIP ();
	YYBACKUP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'n':	goto yy5;
	default:	goto yy3;
	}
yy5:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 't':	goto yy7;
	default:	goto yy6;
	}
yy6:
	YYRESTORE ();
	goto yy3;
yy7:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case ' ':	goto yy8;
	default:	goto yy6;
	}
yy8:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'b':	goto yy9;
	default:	goto yy6;
	}
yy9:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'u':	goto yy10;
	default:	goto yy6;
	}
yy10:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'f':	goto yy11;
	default:	goto yy6;
	}
yy11:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'f':	goto yy12;
	default:	goto yy6;
	}
yy12:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'e':	goto yy13;
	default:	goto yy6;
	}
yy13:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'r':	goto yy14;
	default:	goto yy6;
	}
yy14:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case ' ':	goto yy15;
	default:	goto yy6;
	}
yy15:
	YYSKIP ();
	yych = YYPEEK ();
	YYBACKUPCTX ();
	switch (yych) {
	case '[':	goto yy16;
	default:	goto yy6;
	}
yy16:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy17;
	default:	goto yy6;
	}
yy17:
	YYSKIP ();
	if (YYLESSTHAN (1)) YYFILL(1);
	yych = YYPEEK ();
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy17;
	case ']':	goto yy19;
	default:	goto yy6;
	}
yy19:
	YYSKIP ();
	YYRESTORECTX ();
#line 24 "input_custom_fgetc.--input(custom).re"
	{ return true; }
#line 163 "input_custom_fgetc.--input(custom).c"
}
#line 26 "input_custom_fgetc.--input(custom).re"

}
int lex_line13_r2()
{
    const size_t padding = 1; /* YYMAXFILL */
    int status = 0;
    size_t input_len = 0;
    size_t keys_count = 0;
    YYCTYPE *input = NULL;
    YYKEYTYPE *keys = NULL;
    const YYCTYPE *cursor = NULL;
    const YYCTYPE *limit = NULL;
    const YYCTYPE *token = NULL;
    const YYCTYPE *eof = NULL;
    unsigned int i = 0;

    input = (YYCTYPE *) read_file
        ("repeat-02.cgir--skeleton.c.line13_r2.input"
        , sizeof (YYCTYPE)
        , padding
        , &input_len
        );
    if (input == NULL) {
        status = 1;
        goto end;
    }

    keys = (YYKEYTYPE *) read_file
        ("repeat-02.cgir--skeleton.c.line13_r2.keys"
        , 3 * sizeof (YYKEYTYPE)
        , 0
        , &keys_count
        );
    if (keys == NULL) {
        status = 1;
        goto end;
    }

    cursor = input;
    limit = input + input_len + padding;
    eof = input + input_len;

    for (i = 0; status == 0 && i < keys_count; ++i) {
        token = cursor;
        YYCTYPE yych;

        if (YYLESSTHAN (1)) YYFILL(1);
        yych = YYPEEK ();
        if (yych <= '2') {
            if (yych <= '0') goto yy15;
            if (yych <= '1') goto yy18;
            goto yy16;
        } else {
            if (yych == 'b') goto yy20;
        }
yy15:
yy16:
        YYSKIP ();
        status = action_line13_r2(i, keys, input, token, &cursor, 6);
        continue;
yy18:
        YYSKIP ();
        status = action_line13_r2(i, keys, input, token, &cursor, 5);
        continue;
yy20:
        YYSKIP ();
        status = action_line13_r2(i, keys, input, token, &cursor, 4);
        continue;

    }
    if (status == 0) {
        if (cursor != eof) {
            status = 1;
            const long pos = token - input;
            fprintf(stderr, "error: lex_line13_r2: unused input strings left at position %ld\n", pos);
        }
        if (i != keys_count) {
            status = 1;
            fprintf(stderr, "error: lex_line13_r2: unused keys left after %u iterations\n", i);
        }
    }

end:
    free(input);
    free(keys);

    return status;
}
bool lex (const char * cursor, const char * const limit)
{
    const char * marker;
    const char * ctxmarker;
#   define YYCTYPE        char
#   define YYPEEK()       *cursor
#   define YYSKIP()       ++cursor
#   define YYBACKUP()     marker = cursor
#   define YYBACKUPCTX()  ctxmarker = cursor
#   define YYRESTORE()    cursor = marker
#   define YYRESTORECTX() cursor = ctxmarker
#   define YYLESSTHAN(n)  limit - cursor < n
#   define YYFILL(n)      {}
    
#line 18 "input_custom_default.--input(custom).c"
{
	YYCTYPE yych;
	if (YYLESSTHAN (13)) YYFILL(13);
	yych = YYPEEK ();
	switch (yych) {
	case 'i':	goto yy4;
	default:	goto yy2;
	}
yy2:
	YYSKIP ();
yy3:
#line 16 "input_custom_default.--input(custom).re"
	{ return false; }
#line 32 "input_custom_default.--input(custom).c"
yy4:
	YYSKIP ();
	YYBACKUP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'n':	goto yy5;
	default:	goto yy3;
	}
yy5:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 't':	goto yy7;
	default:	goto yy6;
	}
yy6:
	YYRESTORE ();
	goto yy3;
yy7:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case ' ':	goto yy8;
	default:	goto yy6;
	}
yy8:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'b':	goto yy9;
	default:	goto yy6;
	}
yy9:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'u':	goto yy10;
	default:	goto yy6;
	}
yy10:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'f':	goto yy11;
	default:	goto yy6;
	}
yy11:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'f':	goto yy12;
	default:	goto yy6;
	}
yy12:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'e':	goto yy13;
	default:	goto yy6;
	}
yy13:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'r':	goto yy14;
	default:	goto yy6;
	}
yy14:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case ' ':	goto yy15;
	default:	goto yy6;
	}
yy15:
	YYSKIP ();
	yych = YYPEEK ();
	YYBACKUPCTX ();
	switch (yych) {
	case '[':	goto yy16;
	default:	goto yy6;
	}
yy16:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy17;
	default:	goto yy6;
	}
yy17:
	YYSKIP ();
	if (YYLESSTHAN (1)) YYFILL(1);
	yych = YYPEEK ();
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy17;
	case ']':	goto yy19;
	default:	goto yy6;
	}
yy19:
	YYSKIP ();
	YYRESTORECTX ();
#line 15 "input_custom_default.--input(custom).re"
	{ return true; }
#line 154 "input_custom_default.--input(custom).c"
}
#line 17 "input_custom_default.--input(custom).re"

}
bool lex (std::istringstream & is, const std::streampos limit)
{
    std::streampos marker;
    std::streampos ctxmarker;
#   define YYCTYPE        char
#   define YYPEEK()       is.peek ()
#   define YYSKIP()       is.ignore ()
#   define YYBACKUP()     marker = is.tellg ()
#   define YYBACKUPCTX()  ctxmarker = is.tellg ()
#   define YYRESTORE()    is.seekg (marker)
#   define YYRESTORECTX() is.seekg (ctxmarker)
#   define YYLESSTHAN(n)  limit - is.tellg () < n
#   define YYFILL(n)      {}
    
#line 20 "input_custom_istringstream.--input(custom).c"
{
	YYCTYPE yych;
	if (YYLESSTHAN (13)) YYFILL(13);
	yych = YYPEEK ();
	switch (yych) {
	case 'i':	goto yy4;
	default:	goto yy2;
	}
yy2:
	YYSKIP ();
yy3:
#line 18 "input_custom_istringstream.--input(custom).re"
	{ return false; }
#line 34 "input_custom_istringstream.--input(custom).c"
yy4:
	YYSKIP ();
	YYBACKUP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'n':	goto yy5;
	default:	goto yy3;
	}
yy5:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 't':	goto yy7;
	default:	goto yy6;
	}
yy6:
	YYRESTORE ();
	goto yy3;
yy7:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case ' ':	goto yy8;
	default:	goto yy6;
	}
yy8:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'b':	goto yy9;
	default:	goto yy6;
	}
yy9:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'u':	goto yy10;
	default:	goto yy6;
	}
yy10:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'f':	goto yy11;
	default:	goto yy6;
	}
yy11:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'f':	goto yy12;
	default:	goto yy6;
	}
yy12:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'e':	goto yy13;
	default:	goto yy6;
	}
yy13:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case 'r':	goto yy14;
	default:	goto yy6;
	}
yy14:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case ' ':	goto yy15;
	default:	goto yy6;
	}
yy15:
	YYSKIP ();
	yych = YYPEEK ();
	YYBACKUPCTX ();
	switch (yych) {
	case '[':	goto yy16;
	default:	goto yy6;
	}
yy16:
	YYSKIP ();
	yych = YYPEEK ();
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy17;
	default:	goto yy6;
	}
yy17:
	YYSKIP ();
	if (YYLESSTHAN (1)) YYFILL(1);
	yych = YYPEEK ();
	switch (yych) {
	case '0':
	case '1':
	case '2':
	case '3':
	case '4':
	case '5':
	case '6':
	case '7':
	case '8':
	case '9':	goto yy17;
	case ']':	goto yy19;
	default:	goto yy6;
	}
yy19:
	YYSKIP ();
	YYRESTORECTX ();
#line 17 "input_custom_istringstream.--input(custom).re"
	{ return true; }
#line 156 "input_custom_istringstream.--input(custom).c"
}
#line 19 "input_custom_istringstream.--input(custom).re"

}
int lex_line108()
{
    const size_t padding = 4; /* YYMAXFILL */
    int status = 0;
    size_t input_len = 0;
    size_t keys_count = 0;
    YYCTYPE *input = NULL;
    YYKEYTYPE *keys = NULL;
    const YYCTYPE *cursor = NULL;
    const YYCTYPE *limit = NULL;
    const YYCTYPE *token = NULL;
    const YYCTYPE *eof = NULL;
    unsigned int i = 0;

    input = (YYCTYPE *) read_file
        ("php20150211_phar_path_check.ig--skeleton.c.line108.input"
        , sizeof (YYCTYPE)
        , padding
        , &input_len
        );
    if (input == NULL) {
        status = 1;
        goto end;
    }

    keys = (YYKEYTYPE *) read_file
        ("php20150211_phar_path_check.ig--skeleton.c.line108.keys"
        , 3 * sizeof (YYKEYTYPE)
        , 0
        , &keys_count
        );
    if (keys == NULL) {
        status = 1;
        goto end;
    }

    cursor = input;
    limit = input + input_len + padding;
    eof = input + input_len;

    for (i = 0; status == 0 && i < keys_count; ++i) {
        token = cursor;
        const YYCTYPE *marker = NULL;
        YYCTYPE yych;
        unsigned int yyaccept = 0;

        if (YYLESSTHAN (4)) YYFILL(4);
        yych = YYPEEK ();
        {
            static void *yytarget[256] = {
                &&yy21, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy2,  &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy7,  &&yy11, &&yy11, &&yy11, &&yy11, &&yy3,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy9,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy5,  &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11, &&yy11,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12,
                &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12,
                &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12,
                &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12, &&yy12,
                &&yy14, &&yy15, &&yy15, &&yy15, &&yy15, &&yy15, &&yy15, &&yy15,
                &&yy15, &&yy15, &&yy15, &&yy15, &&yy15, &&yy16, &&yy17, &&yy17,
                &&yy18, &&yy19, &&yy19, &&yy19, &&yy20, &&yy23, &&yy23, &&yy23,
                &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23, &&yy23
            };
            goto *yytarget[yych];
        }
yy2:
        YYRESTORE ();
        if (yyaccept == 0) {
            goto yy4;
        } else {
            goto yy13;
        }
yy3:
        yyaccept = 0;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        if (yych <= '-') goto yy4;
        if (yych <= '.') goto yy35;
        if (yych <= '/') goto yy36;
yy4:
        status = action_line108(i, keys, input, token, &cursor, 6);
        continue;
yy5:
        YYSKIP ();
        status = action_line108(i, keys, input, token, &cursor, 3);
        continue;
yy7:
        YYSKIP ();
        status = action_line108(i, keys, input, token, &cursor, 4);
        continue;
yy9:
        YYSKIP ();
        status = action_line108(i, keys, input, token, &cursor, 5);
        continue;
yy11:
        YYSKIP ();
        yych = YYPEEK ();
        goto yy4;
yy12:
        YYSKIP ();
        if ((yych = YYPEEK ()) <= 0x7F) goto yy13;
        if (yych <= 0xBF) goto yy26;
yy13:
        status = action_line108(i, keys, input, token, &cursor, 8);
        continue;
yy14:
        yyaccept = 1;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        if (yych <= 0x9F) goto yy13;
        if (yych <= 0xBF) goto yy34;
        goto yy13;
yy15:
        yyaccept = 1;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy13;
        if (yych <= 0xBF) goto yy33;
        goto yy13;
yy16:
        yyaccept = 1;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy13;
        if (yych <= 0x9F) goto yy32;
        goto yy13;
yy17:
        yyaccept = 1;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy13;
        if (yych <= 0xBF) goto yy31;
        goto yy13;
yy18:
        yyaccept = 1;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        if (yych <= 0x8F) goto yy13;
        if (yych <= 0xBF) goto yy29;
        goto yy13;
yy19:
        yyaccept = 1;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy13;
        if (yych <= 0xBF) goto yy27;
        goto yy13;
yy20:
        yyaccept = 1;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy13;
        if (yych <= 0x8F) goto yy24;
        goto yy13;
yy21:
        YYSKIP ();
        status = action_line108(i, keys, input, token, &cursor, 7);
        continue;
yy23:
        YYSKIP ();
        yych = YYPEEK ();
        goto yy13;
yy24:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych >= 0xC0) goto yy2;
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych >= 0xC0) goto yy2;
yy26:
        YYSKIP ();
        yych = YYPEEK ();
        goto yy4;
yy27:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych >= 0xC0) goto yy2;
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych <= 0xBF) goto yy26;
        goto yy2;
yy29:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych >= 0xC0) goto yy2;
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych <= 0xBF) goto yy26;
        goto yy2;
yy31:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych <= 0xBF) goto yy26;
        goto yy2;
yy32:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych <= 0xBF) goto yy26;
        goto yy2;
yy33:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych <= 0xBF) goto yy26;
        goto yy2;
yy34:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x7F) goto yy2;
        if (yych <= 0xBF) goto yy26;
        goto yy2;
yy35:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x00) goto yy39;
        if (yych <= '-') goto yy2;
        if (yych <= '.') goto yy38;
        if (yych <= '/') goto yy39;
        goto yy2;
yy36:
        YYSKIP ();
        status = action_line108(i, keys, input, token, &cursor, 0);
        continue;
yy38:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych <= 0x00) goto yy41;
        if (yych == '/') goto yy41;
        goto yy2;
yy39:
        YYSKIP ();
        status = action_line108(i, keys, input, token, &cursor, 2);
        continue;
yy41:
        YYSKIP ();
        status = action_line108(i, keys, input, token, &cursor, 1);
        continue;

    }
    if (status == 0) {
        if (cursor != eof) {
            status = 1;
            const long pos = token - input;
            fprintf(stderr, "error: lex_line108: unused input strings left at position %ld\n", pos);
        }
        if (i != keys_count) {
            status = 1;
            fprintf(stderr, "error: lex_line108: unused keys left after %u iterations\n", i);
        }
    }

end:
    free(input);
    free(keys);

    return status;
}

#undef YYCTYPE
#undef YYKEYTYPE
#undef YYPEEK
#undef YYSKIP
#undef YYBACKUP
#undef YYRESTORE
#undef YYLESSTHAN
#undef YYFILL

int main()
{
    if(lex_line108() != 0) {
        return 1;
    }
    return 0;
}
/../..//../../../../../../../../..	/..
/../../..
int lex_line19()
{
    const size_t padding = 13; /* YYMAXFILL */
    int status = 0;
    size_t input_len = 0;
    size_t keys_count = 0;
    YYCTYPE *input = NULL;
    YYKEYTYPE *keys = NULL;
    const YYCTYPE *cursor = NULL;
    const YYCTYPE *limit = NULL;
    const YYCTYPE *token = NULL;
    const YYCTYPE *eof = NULL;
    unsigned int i = 0;

    input = (YYCTYPE *) read_file
        ("input_custom_istringstream.--skeleton--input(custom).c.line19.input"
        , sizeof (YYCTYPE)
        , padding
        , &input_len
        );
    if (input == NULL) {
        status = 1;
        goto end;
    }

    keys = (YYKEYTYPE *) read_file
        ("input_custom_istringstream.--skeleton--input(custom).c.line19.keys"
        , 3 * sizeof (YYKEYTYPE)
        , 0
        , &keys_count
        );
    if (keys == NULL) {
        status = 1;
        goto end;
    }

    cursor = input;
    limit = input + input_len + padding;
    eof = input + input_len;

    for (i = 0; status == 0 && i < keys_count; ++i) {
        token = cursor;
        const YYCTYPE *marker = NULL;
        const YYCTYPE *ctxmarker = NULL;
        YYCTYPE yych;

        if (YYLESSTHAN (13)) YYFILL(13);
        yych = YYPEEK ();
        switch (yych) {
        case 'i':    goto yy4;
        default:    goto yy2;
        }
yy2:
        YYSKIP ();
yy3:
        status = action_line19(i, keys, input, token, &cursor, 254);
        continue;
yy4:
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'n':    goto yy5;
        default:    goto yy3;
        }
yy5:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 't':    goto yy7;
        default:    goto yy6;
        }
yy6:
        YYRESTORE ();
        goto yy3;
yy7:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case ' ':    goto yy8;
        default:    goto yy6;
        }
yy8:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'b':    goto yy9;
        default:    goto yy6;
        }
yy9:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'u':    goto yy10;
        default:    goto yy6;
        }
yy10:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'f':    goto yy11;
        default:    goto yy6;
        }
yy11:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'f':    goto yy12;
        default:    goto yy6;
        }
yy12:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'e':    goto yy13;
        default:    goto yy6;
        }
yy13:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'r':    goto yy14;
        default:    goto yy6;
        }
yy14:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case ' ':    goto yy15;
        default:    goto yy6;
        }
yy15:
        YYSKIP ();
        yych = YYPEEK ();
        YYBACKUPCTX ();
        switch (yych) {
        case '[':    goto yy16;
        default:    goto yy6;
        }
yy16:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':    goto yy17;
        default:    goto yy6;
        }
yy17:
        YYSKIP ();
        if (YYLESSTHAN (1)) YYFILL(1);
        yych = YYPEEK ();
        switch (yych) {
        case '0':
        case '1':
        case '2':
        case '3':
        case '4':
        case '5':
        case '6':
        case '7':
        case '8':
        case '9':    goto yy17;
        case ']':    goto yy19;
        default:    goto yy6;
        }
yy19:
        YYSKIP ();
        YYRESTORECTX ();
        status = action_line19(i, keys, input, token, &cursor, 0);
        continue;

    }
    if (status == 0) {
        if (cursor != eof) {
            status = 1;
            const long pos = token - input;
            fprintf(stderr, "error: lex_line19: unused input strings left at position %ld\n", pos);
        }
        if (i != keys_count) {
            status = 1;
            fprintf(stderr, "error: lex_line19: unused keys left after %u iterations\n", i);
        }
    }

end:
    free(input);
    free(keys);

    return status;
}
int lex_line158()
{
    const size_t padding = 2; /* YYMAXFILL */
    int status = 0;
    size_t input_len = 0;
    size_t keys_count = 0;
    YYCTYPE *input = NULL;
    YYKEYTYPE *keys = NULL;
    const YYCTYPE *cursor = NULL;
    const YYCTYPE *limit = NULL;
    const YYCTYPE *token = NULL;
    const YYCTYPE *eof = NULL;
    unsigned int i = 0;

    input = (YYCTYPE *) read_file
        ("strip_003.b--skeleton.c.line158.input"
        , sizeof (YYCTYPE)
        , padding
        , &input_len
        );
    if (input == NULL) {
        status = 1;
        goto end;
    }

    keys = (YYKEYTYPE *) read_file
        ("strip_003.b--skeleton.c.line158.keys"
        , sizeof (YYKEYTYPE)
        , 0
        , &keys_count
        );
    if (keys == NULL) {
        status = 1;
        goto end;
    }

    cursor = input;
    limit = input + input_len + padding;
    eof = input + input_len;

    for (i = 0; status == 0 && cursor < eof && i < keys_count;) {
        token = cursor;
        YYCTYPE yych;

        if (YYLESSTHAN (2)) YYFILL(2);
        yych = YYPEEK ();
        if (yych == '\n') goto yy41;
        if (yych == '\r') goto yy43;
        YYSKIP ();
yy40:
        status = check_key_count_line158(keys_count, i, 3)
             || action_line158(&i, keys, input, token, &cursor, 1);
        continue;
yy41:
        YYSKIP ();
        status = check_key_count_line158(keys_count, i, 3)
             || action_line158(&i, keys, input, token, &cursor, 0);
        continue;
yy43:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych == '\n') goto yy41;
        goto yy40;

    }
    if (status == 0) {
        if (cursor != eof) {
            status = 1;
            const long pos = token - input;
            fprintf(stderr, "error: lex_line158: unused input strings left at position %ld\n", pos);
        }
        if (i != keys_count) {
            status = 1;
            fprintf(stderr, "error: lex_line158: unused keys left after %u keys\n", i);
        }
    }

end:
    free(input);
    free(keys);

    return status;
}
int lex_line152()
{
    const size_t padding = 4; /* YYMAXFILL */
    int status = 0;
    size_t input_len = 0;
    size_t keys_count = 0;
    YYCTYPE *input = NULL;
    YYKEYTYPE *keys = NULL;
    const YYCTYPE *cursor = NULL;
    const YYCTYPE *limit = NULL;
    const YYCTYPE *token = NULL;
    const YYCTYPE *eof = NULL;
    unsigned int i = 0;

    input = (YYCTYPE *) read_file
        ("strip_003.b--skeleton.c.line152.input"
        , sizeof (YYCTYPE)
        , padding
        , &input_len
        );
    if (input == NULL) {
        status = 1;
        goto end;
    }

    keys = (YYKEYTYPE *) read_file
        ("strip_003.b--skeleton.c.line152.keys"
        , sizeof (YYKEYTYPE)
        , 0
        , &keys_count
        );
    if (keys == NULL) {
        status = 1;
        goto end;
    }

    cursor = input;
    limit = input + input_len + padding;
    eof = input + input_len;

    for (i = 0; status == 0 && cursor < eof && i < keys_count;) {
        token = cursor;
        const YYCTYPE *marker = NULL;
        YYCTYPE yych;

        if (YYLESSTHAN (4)) YYFILL(4);
        yych = YYPEEK ();
        if (yych <= '\r') {
            if (yych <= '\t') {
                if (yych >= '\t') goto yy27;
            } else {
                if (yych <= '\n') goto yy29;
                if (yych >= '\r') goto yy31;
            }
        } else {
            if (yych <= ' ') {
                if (yych >= ' ') goto yy27;
            } else {
                if (yych == '/') goto yy32;
            }
        }
        YYSKIP ();
yy26:
        status = check_key_count_line152(keys_count, i, 3)
             || action_line152(&i, keys, input, token, &cursor, 3);
        continue;
yy27:
        YYSKIP ();
yy28:
        status = check_key_count_line152(keys_count, i, 3)
             || action_line152(&i, keys, input, token, &cursor, 2);
        continue;
yy29:
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        if (yych == '/') goto yy33;
yy30:
        status = check_key_count_line152(keys_count, i, 3)
             || action_line152(&i, keys, input, token, &cursor, 1);
        continue;
yy31:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych == '\n') goto yy29;
        goto yy28;
yy32:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych == '*') goto yy35;
        goto yy26;
yy33:
        YYSKIP ();
        yych = YYPEEK ();
        if (yych == '*') goto yy35;
        YYRESTORE ();
        goto yy30;
yy35:
        YYSKIP ();
        status = check_key_count_line152(keys_count, i, 3)
             || action_line152(&i, keys, input, token, &cursor, 0);
        continue;

    }
    if (status == 0) {
        if (cursor != eof) {
            status = 1;
            const long pos = token - input;
            fprintf(stderr, "error: lex_line152: unused input strings left at position %ld\n", pos);
        }
        if (i != keys_count) {
            status = 1;
            fprintf(stderr, "error: lex_line152: unused keys left after %u keys\n", i);
        }
    }

end:
    free(input);
    free(keys);

    return status;
}
int lex_line7()
{
    const size_t padding = 6; /* YYMAXFILL */
    int status = 0;
    size_t input_len = 0;
    size_t keys_count = 0;
    YYCTYPE *input = NULL;
    YYKEYTYPE *keys = NULL;
    const YYCTYPE *cursor = NULL;
    const YYCTYPE *limit = NULL;
    const YYCTYPE *token = NULL;
    const YYCTYPE *eof = NULL;
    unsigned int i = 0;

    input = (YYCTYPE *) read_file
        ("control_flow_yymarker_yyaccept_fail.--skeleton.c.line7.input"
        , sizeof (YYCTYPE)
        , padding
        , &input_len
        );
    if (input == NULL) {
        status = 1;
        goto end;
    }

    keys = (YYKEYTYPE *) read_file
        ("control_flow_yymarker_yyaccept_fail.--skeleton.c.line7.keys"
        , 3 * sizeof (YYKEYTYPE)
        , 0
        , &keys_count
        );
    if (keys == NULL) {
        status = 1;
        goto end;
    }

    cursor = input;
    limit = input + input_len + padding;
    eof = input + input_len;

    for (i = 0; status == 0 && i < keys_count; ++i) {
        token = cursor;
        const YYCTYPE *marker = NULL;
        YYCTYPE yych;
        unsigned int yyaccept = 0;

        if (YYLESSTHAN (6)) YYFILL(6);
        yych = YYPEEK ();
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'a':    goto yy5;
        default:    goto yy3;
        }
yy3:
        yyaccept = 0;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        goto yy6;
yy4:
        status = action_line7(i, keys, input, token, &cursor, 2);
        continue;
yy5:
        YYSKIP ();
        yych = YYPEEK ();
yy6:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'a':    goto yy8;
        default:    goto yy7;
        }
yy7:
        YYSKIP ();
        yych = YYPEEK ();
        goto yy10;
yy8:
        yyaccept = 1;
        YYSKIP ();
        YYBACKUP ();
        yych = YYPEEK ();
        goto yy10;
yy9:
        status = action_line7(i, keys, input, token, &cursor, 1);
        continue;
yy10:
        YYSKIP ();
        yych = YYPEEK ();
        switch (yych) {
        case 'a':    goto yy12;
        default:    goto yy11;
        }
yy11:
        YYRESTORE ();
        if (yyaccept == 0) {
            goto yy4;
        } else {
            goto yy9;
        }
yy12:
        YYSKIP ();
        status = action_line7(i, keys, input, token, &cursor, 0);
        continue;

    }
    if (status == 0) {
        if (cursor != eof) {
            status = 1;
            const long pos = token - input;
            fprintf(stderr, "error: lex_line7: unused input strings left at position %ld\n", pos);
        }
        if (i != keys_count) {
            status = 1;
            fprintf(stderr, "error: lex_line7: unused keys left after %u iterations\n", i);
        }
    }

end:
    free(input);
    free(keys);

    return status;
}