/* Generated by re2c */
// re2c $INPUT -o $OUTPUT -ic

enum YYCONDTYPE {
	yycx,
	yycy,
	yycz,
	yycw
};


// conditions `x`, `y`, `z` have their own rules; condition `w` has only * rule - but that's fine

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycx: goto yyc_x;
		case yycy: goto yyc_y;
		case yycz: goto yyc_z;
		case yycw: goto yyc_w;
	}
/* *********************************** */
yyc_x:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'w': goto yy2;
		case 'y': goto yy3;
		case 'z': goto yy4;
		default: goto yy1;
	}
yy1:
	++YYCURSOR;
	{ * }
yy2:
	++YYCURSOR;
	YYSETCONDITION(yycw);
	{ x->w }
yy3:
	++YYCURSOR;
	YYSETCONDITION(yycy);
	{ x->y }
yy4:
	++YYCURSOR;
	YYSETCONDITION(yycz);
	{ x->z }
/* *********************************** */
yyc_y:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'y': goto yy7;
		default: goto yy6;
	}
yy6:
	++YYCURSOR;
	{ * }
yy7:
	++YYCURSOR;
	{ y }
/* *********************************** */
yyc_z:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'z': goto yy10;
		default: goto yy9;
	}
yy9:
	++YYCURSOR;
	{ * }
yy10:
	++YYCURSOR;
	{ z }
/* *********************************** */
yyc_w:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	++YYCURSOR;
	{ * }
}


// conditions `z`, `w` have their own rules

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycz: goto yyc_z;
		case yycw: goto yyc_w;
	}
/* *********************************** */
yyc_z:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'z': goto yy14;
		default: goto yy13;
	}
yy13:
	++YYCURSOR;
	{ * }
yy14:
	++YYCURSOR;
	{ z }
/* *********************************** */
yyc_w:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'w': goto yy17;
		default: goto yy16;
	}
yy16:
	++YYCURSOR;
	{ * }
yy17:
	++YYCURSOR;
	{ w }
}

