/* Generated by re2c */
// re2c $INPUT -o $OUTPUT -ci -Wno-error-deprecated-eof-rule



// no error/warning, both rules are reachable

{
	YYCTYPE yych;
	if (YYEND()) goto yy1;
	{ empty }
yy1:
	{ eof }
}


// error: unreachable rule eof

{
	YYCTYPE yych;
	{ empty }
}


// error: unreachable rule eof2

{
	YYCTYPE yych;
	if (YYEND()) goto yy4;
yy4:
	{ eof1 }
}


// warning: unreachable empty, error - unreachable eof

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




// use block
//   c1: error: *-eof-2 shadowed by c1-empty, error: *-eof shadowed by c1-empty
//   c2: error: *-eof-2 shadowed by *-eof, *-a shadowed by c2-a but not reported because it's reachable in other conditions
//   c3: warning: *-eof-2 shadowed by c3-eof, *-eof shadowed by c3-eof but not reported because it's reachable in c1
//   c4: warning: *-eof-2 shadowed by c4-eof, error: c4-eof-2 shadowed by c4-eof

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc4: goto yyc_c4;
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
		case yycc3: goto yyc_c3;
	}
/* *********************************** */
yyc_c4:
yyFillLabel1:
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy10;
		default:
			if (YYLIMIT <= YYCURSOR) {
				if (YYFILL() == 0) goto yyFillLabel1;
				goto yy11;
			}
			goto yy9;
	}
yy9:
	++YYCURSOR;
	{ c4-default }
yy10:
	++YYCURSOR;
	{ *-a }
yy11:
	{ c4-eof }
/* *********************************** */
yyc_c1:
yyFillLabel2:
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy14;
		default:
			if (YYLIMIT <= YYCURSOR) {
				if (YYFILL() == 0) goto yyFillLabel2;
			}
			goto yy13;
	}
yy13:
	{ c1-empty }
yy14:
	++YYCURSOR;
	{ *-a }
/* *********************************** */
yyc_c2:
yyFillLabel3:
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy17;
		default:
			if (YYLIMIT <= YYCURSOR) {
				if (YYFILL() == 0) goto yyFillLabel3;
				goto yy18;
			}
			goto yy16;
	}
yy16:
	++YYCURSOR;
	{ c2-default }
yy17:
	++YYCURSOR;
	{ c2-a }
yy18:
	{ *-eof }
/* *********************************** */
yyc_c3:
yyFillLabel4:
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy21;
		default:
			if (YYLIMIT <= YYCURSOR) {
				if (YYFILL() == 0) goto yyFillLabel4;
				goto yy22;
			}
			goto yy20;
	}
yy20:
	++YYCURSOR;
	{ c3-default }
yy21:
	++YYCURSOR;
	{ *-a }
yy22:
	{ c3-eof }
}


// use directive
//   c1: error: *-eof-2 shadowed by c1-empty, error: *-eof shadowed by c1-empty
//   c2: error: *-eof-2 shadowed by *-eof, *-a shadowed by c2-a but not reported because it's reachable in other conditions
//   c3: warning: *-eof-2 shadowed by c3-eof, *-eof shadowed by c3-eof but not reported because it's reachable in c1
//   c4: warning: *-eof-2 shadowed by c4-eof, error: c4-eof-2 shadowed by c4-eof

{
	YYCTYPE yych;
	switch (YYGETCONDITION()) {
		case yycc4: goto yyc_c4;
		case yycc1: goto yyc_c1;
		case yycc2: goto yyc_c2;
		case yycc3: goto yyc_c3;
	}
/* *********************************** */
yyc_c4:
yyFillLabel5:
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy25;
		default:
			if (YYLIMIT <= YYCURSOR) {
				if (YYFILL() == 0) goto yyFillLabel5;
				goto yy26;
			}
			goto yy24;
	}
yy24:
	++YYCURSOR;
	{ c4-default }
yy25:
	++YYCURSOR;
	{ *-a }
yy26:
	{ c4-eof }
/* *********************************** */
yyc_c1:
yyFillLabel6:
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy29;
		default:
			if (YYLIMIT <= YYCURSOR) {
				if (YYFILL() == 0) goto yyFillLabel6;
			}
			goto yy28;
	}
yy28:
	{ c1-empty }
yy29:
	++YYCURSOR;
	{ *-a }
/* *********************************** */
yyc_c2:
yyFillLabel7:
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy32;
		default:
			if (YYLIMIT <= YYCURSOR) {
				if (YYFILL() == 0) goto yyFillLabel7;
				goto yy33;
			}
			goto yy31;
	}
yy31:
	++YYCURSOR;
	{ c2-default }
yy32:
	++YYCURSOR;
	{ c2-a }
yy33:
	{ *-eof }
/* *********************************** */
yyc_c3:
yyFillLabel8:
	yych = *YYCURSOR;
	switch (yych) {
		case 'a': goto yy36;
		default:
			if (YYLIMIT <= YYCURSOR) {
				if (YYFILL() == 0) goto yyFillLabel8;
				goto yy37;
			}
			goto yy35;
	}
yy35:
	++YYCURSOR;
	{ c3-default }
yy36:
	++YYCURSOR;
	{ *-a }
yy37:
	{ c3-eof }
}

eof/shadowrule_05.re:16:7: warning: unreachable end-of-input rule at line 16 (shadowed by rule at line 15) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:20:0: warning: control flow is undefined for strings that match '[\x0-\xFF]', use default rule '*' [-Wundefined-control-flow]
eof/shadowrule_05.re:22:7: warning: unreachable end-of-input rule at line 22 (shadowed by rule at line 21) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:27:9: warning: rule matches empty string [-Wmatch-empty-string]
eof/shadowrule_05.re:28:9: warning: unreachable rule (shadowed by rule at line 27) [-Wunreachable-rules]
eof/shadowrule_05.re:29:9: warning: unreachable end-of-input rule at line 29 (shadowed by rule at line 27) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:53:13: warning: unreachable end-of-input rule at line 53 in condition 'c4' (shadowed by rule at line 36) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:33:12: warning: unreachable end-of-input rule at line 33 in condition 'c1' (shadowed by rule at line 45) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:56:13: warning: unreachable end-of-input rule at line 56 in condition 'c1' (shadowed by rule at line 45) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:56:13: warning: unreachable end-of-input rule at line 56 in condition 'c2' (shadowed by rule at line 33) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:56:13: warning: unreachable end-of-input rule at line 56 in condition 'c4' (shadowed by rule at line 36) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:56:13: warning: unreachable end-of-input rule at line 56 in condition 'c3' (shadowed by rule at line 50) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:75:13: warning: unreachable end-of-input rule at line 75 in condition 'c4' (shadowed by rule at line 36) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:33:12: warning: unreachable end-of-input rule at line 33 in condition 'c1' (shadowed by rule at line 67) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:78:13: warning: unreachable end-of-input rule at line 78 in condition 'c1' (shadowed by rule at line 67) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:78:13: warning: unreachable end-of-input rule at line 78 in condition 'c2' (shadowed by rule at line 33) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:78:13: warning: unreachable end-of-input rule at line 78 in condition 'c4' (shadowed by rule at line 36) [-Wdeprecated-eof-rule]
eof/shadowrule_05.re:78:13: warning: unreachable end-of-input rule at line 78 in condition 'c3' (shadowed by rule at line 72) [-Wdeprecated-eof-rule]
