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

{
	YYCTYPE yych;
	goto yy0;
yy1:
	++YYCURSOR;
yy0:
	if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy2;
		default: goto yy1;
	}
yy2:
	yych = *++YYCURSOR;
	switch (yych) {
		case 'a': goto yy4;
		default: goto yy3;
	}
yy3:
	{ 0 }
yy4:
	++YYCURSOR;
	goto yy3;
}



{
	YYCTYPE yych;
	goto yy5;
yy6:
	++YYCURSOR;
yy5:
	if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy7;
		default: goto yy6;
	}
yy7:
	yych = *++YYCURSOR;
	switch (yych) {
		case 'a': goto yy9;
		default: goto yy8;
	}
yy8:
	{ 0 }
yy9:
	yych = *++YYCURSOR;
	switch (yych) {
		case 'a': goto yy10;
		default: goto yy8;
	}
yy10:
	++YYCURSOR;
	goto yy8;
}



{
	YYCTYPE yych;
	goto yy11;
yy12:
	++YYCURSOR;
yy11:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy13;
		default: goto yy12;
	}
yy13:
	++YYCURSOR;
	{ 0 }
}



{
	YYCTYPE yych;
	goto yy14;
yy15:
	++YYCURSOR;
yy14:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy16;
		default: goto yy15;
	}
yy16:
	++YYCURSOR;
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy16;
		default: goto yy17;
	}
yy17:
	{ 0 }
}


// test that <*> rules are only reported when shadowed in all conditions
// specifically check that block reuse doesn't mess things up

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycx: goto yyc_x;
		case yycy: goto yyc_y;
	}
/* *********************************** */
yyc_x:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy20;
		default: goto yy19;
	}
yy19:
	++YYCURSOR;
	{}
yy20:
	++YYCURSOR;
	{}
/* *********************************** */
yyc_y:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy23;
		case 'b': goto yy24;
		default: goto yy22;
	}
yy22:
	++YYCURSOR;
	{}
yy23:
	++YYCURSOR;
	{}
yy24:
	++YYCURSOR;
	{}
}

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycx: goto yyc_x;
		case yycz: goto yyc_z;
	}
/* *********************************** */
yyc_x:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy27;
		default: goto yy26;
	}
yy26:
	++YYCURSOR;
	{}
yy27:
	++YYCURSOR;
	{}
/* *********************************** */
yyc_z:
	if (YYLIMIT <= YYCURSOR) YYFILL(1);
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy30;
		default: goto yy29;
	}
yy29:
	++YYCURSOR;
	{}
yy30:
	++YYCURSOR;
	{}
}

wunreachable_rules.re:4:21: warning: unreachable rule (shadowed by rule at line 3) [-Wunreachable-rules]
wunreachable_rules.re:9:19: warning: unreachable rule (shadowed by rule at line 8) [-Wunreachable-rules]
wunreachable_rules.re:13:15: warning: rule matches empty string [-Wmatch-empty-string]
wunreachable_rules.re:14:15: warning: unreachable rule (shadowed by rule at line 13) [-Wunreachable-rules]
wunreachable_rules.re:19:15: warning: unreachable rule (shadowed by rule at line 18) [-Wunreachable-rules]
wunreachable_rules.re:26:12: warning: unreachable rule in condition 'x' (shadowed by rule at line 25) [-Wunreachable-rules]
wunreachable_rules.re:26:12: warning: unreachable rule in condition 'z' (shadowed by rule at line 31) [-Wunreachable-rules]
