/* Generated by re2c */
// re2c $INPUT -o $OUTPUT -fi --recursive-functions


void yy0(X x);
void yy1(X x);
void yy2(X x);
void lex_y(Y y);

void yy0(X x) {
	if (YYLIMIT <= YYCURSOR) {
		YYSETSTATE(0);
		YYFILL(1);
	}
	YYCTYPE yych = *YYCURSOR++;
	switch (yych) {
		case 'a': return yy2(x);
		default: return yy1(x);
	}
}

void yy1(X x) {
	YYSETSTATE(-1);
	*
}

void yy2(X x) {
	YYSETSTATE(-1);
	a
}

void lex_y(Y y) {
	switch (YYGETSTATE()) {
		case -1: return yy0(x);
		case 0: return yy0(x);
		case 1:
			if (YYLIMIT <= YYCURSOR) return yy6(y);
			else return yy3(y);
		default: abort();
	}
}




void yy3(Y y);
void yy4(Y y);
void yy5(Y y);
void yy6(Y y);

void yy3(Y y) {
	YYCTYPE yych = *YYCURSOR;
	switch (yych) {
		case 'b':
			++YYCURSOR;
			return yy5(y);
		default:
			if (YYLIMIT <= YYCURSOR) {
				YYSETSTATE(1);
				YYFILL();
			} else {
				++YYCURSOR;
				return yy4(y);
			}
	}
}

void yy4(Y y) {
	YYSETSTATE(-1);
	*
}

void yy5(Y y) {
	YYSETSTATE(-1);
	b
}

void yy6(Y y) {
	YYSETSTATE(-1);
	$
}


