/* Generated by re2c */
#line 1 "input_custom_istringstream.re"
// re2c $INPUT -o $OUTPUT  --input custom
#include <sstream>

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 21 "input_custom_istringstream.c"
{
	YYCTYPE yych;
	if (YYLESSTHAN(13)) YYFILL(13);
	yych = YYPEEK();
	switch (yych) {
		case 'i': goto yy3;
		default: goto yy1;
	}
yy1:
	YYSKIP();
yy2:
#line 19 "input_custom_istringstream.re"
	{ return false; }
#line 35 "input_custom_istringstream.c"
yy3:
	YYSKIP();
	YYBACKUP();
	yych = YYPEEK();
	switch (yych) {
		case 'n': goto yy4;
		default: goto yy2;
	}
yy4:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case 't': goto yy6;
		default: goto yy5;
	}
yy5:
	YYRESTORE();
	goto yy2;
yy6:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case ' ': goto yy7;
		default: goto yy5;
	}
yy7:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case 'b': goto yy8;
		default: goto yy5;
	}
yy8:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case 'u': goto yy9;
		default: goto yy5;
	}
yy9:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case 'f': goto yy10;
		default: goto yy5;
	}
yy10:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case 'f': goto yy11;
		default: goto yy5;
	}
yy11:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case 'e': goto yy12;
		default: goto yy5;
	}
yy12:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case 'r': goto yy13;
		default: goto yy5;
	}
yy13:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case ' ': goto yy14;
		default: goto yy5;
	}
yy14:
	YYSKIP();
	yych = YYPEEK();
	switch (yych) {
		case '[':
			YYBACKUPCTX();
			goto yy15;
		default: goto yy5;
	}
yy15:
	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 yy16;
		default: goto yy5;
	}
yy16:
	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 yy16;
		case ']': goto yy17;
		default: goto yy5;
	}
yy17:
	YYSKIP();
	YYRESTORECTX();
#line 18 "input_custom_istringstream.re"
	{ return true; }
#line 158 "input_custom_istringstream.c"
}
#line 20 "input_custom_istringstream.re"

}

int main ()
{
    const char buffer [] = "int buffer [1024]";
    std::istringstream is (buffer);
    return !lex (is, sizeof (buffer));
}
