/* Generated by re2c */
#line 1 "encodings/unicode_group_L__u_encoding_policy_fail.re"
// re2c $INPUT -o $OUTPUT -u --encoding-policy fail
#include <stdio.h>

#define YYCTYPE unsigned int
bool scan(const YYCTYPE * start, const YYCTYPE * const limit)
{
	__attribute__((unused)) const YYCTYPE * YYMARKER; // silence compiler warnings when YYMARKER is not used
#	define YYCURSOR start
L_:
	
#line 14 "encodings/unicode_group_L__u_encoding_policy_fail.c"
{
	YYCTYPE yych;
	yych = *YYCURSOR;
	if (yych <= 0x0000213B) {
		if (yych <= 0x00001CFF) {
			if (yych <= 0x0000038C) {
				if (yych <= 0x00000293) {
					if (yych <= 0x000000D6) {
						if (yych <= 'z') {
							if (yych <= '@') goto yy1;
							if (yych <= 'Z') goto yy2;
							if (yych >= 'a') goto yy2;
						} else {
							if (yych == 0x000000B5) goto yy2;
							if (yych >= 0x000000C0) goto yy2;
						}
					} else {
						if (yych <= 0x000001BA) {
							if (yych <= 0x000000D7) goto yy1;
							if (yych != 0x000000F7) goto yy2;
						} else {
							if (yych <= 0x000001BB) goto yy1;
							if (yych <= 0x000001BF) goto yy2;
							if (yych >= 0x000001C4) goto yy2;
						}
					}
				} else {
					if (yych <= 0x0000037D) {
						if (yych <= 0x00000373) {
							if (yych <= 0x00000294) goto yy1;
							if (yych <= 0x000002AF) goto yy2;
							if (yych >= 0x00000370) goto yy2;
						} else {
							if (yych <= 0x00000375) goto yy1;
							if (yych <= 0x00000377) goto yy2;
							if (yych >= 0x0000037B) goto yy2;
						}
					} else {
						if (yych <= 0x00000386) {
							if (yych == 0x0000037F) goto yy2;
							if (yych >= 0x00000386) goto yy2;
						} else {
							if (yych <= 0x00000387) goto yy1;
							if (yych != 0x0000038B) goto yy2;
						}
					}
				}
			} else {
				if (yych <= 0x000010C7) {
					if (yych <= 0x0000052F) {
						if (yych <= 0x000003F5) {
							if (yych <= 0x0000038D) goto yy1;
							if (yych != 0x000003A2) goto yy2;
						} else {
							if (yych <= 0x000003F6) goto yy1;
							if (yych <= 0x00000481) goto yy2;
							if (yych >= 0x0000048A) goto yy2;
						}
					} else {
						if (yych <= 0x00000588) {
							if (yych <= 0x00000530) goto yy1;
							if (yych <= 0x00000556) goto yy2;
							if (yych >= 0x00000560) goto yy2;
						} else {
							if (yych <= 0x0000109F) goto yy1;
							if (yych != 0x000010C6) goto yy2;
						}
					}
				} else {
					if (yych <= 0x000013F5) {
						if (yych <= 0x000010FA) {
							if (yych == 0x000010CD) goto yy2;
							if (yych >= 0x000010D0) goto yy2;
						} else {
							if (yych <= 0x000010FC) goto yy1;
							if (yych <= 0x000010FF) goto yy2;
							if (yych >= 0x000013A0) goto yy2;
						}
					} else {
						if (yych <= 0x00001C88) {
							if (yych <= 0x000013F7) goto yy1;
							if (yych <= 0x000013FD) goto yy2;
							if (yych >= 0x00001C80) goto yy2;
						} else {
							if (yych <= 0x00001CBA) {
								if (yych >= 0x00001C90) goto yy2;
							} else {
								if (yych <= 0x00001CBC) goto yy1;
								if (yych <= 0x00001CBF) goto yy2;
							}
						}
					}
				}
			}
		} else {
			if (yych <= 0x00001FCC) {
				if (yych <= 0x00001F58) {
					if (yych <= 0x00001F17) {
						if (yych <= 0x00001D78) {
							if (yych <= 0x00001D2B) goto yy2;
							if (yych <= 0x00001D6A) goto yy1;
							if (yych <= 0x00001D77) goto yy2;
						} else {
							if (yych <= 0x00001D9A) goto yy2;
							if (yych <= 0x00001DFF) goto yy1;
							if (yych <= 0x00001F15) goto yy2;
						}
					} else {
						if (yych <= 0x00001F47) {
							if (yych <= 0x00001F1D) goto yy2;
							if (yych <= 0x00001F1F) goto yy1;
							if (yych <= 0x00001F45) goto yy2;
						} else {
							if (yych <= 0x00001F4D) goto yy2;
							if (yych <= 0x00001F4F) goto yy1;
							if (yych <= 0x00001F57) goto yy2;
						}
					}
				} else {
					if (yych <= 0x00001F7F) {
						if (yych <= 0x00001F5C) {
							if (yych == 0x00001F5A) goto yy1;
							if (yych <= 0x00001F5B) goto yy2;
						} else {
							if (yych == 0x00001F5E) goto yy1;
							if (yych <= 0x00001F7D) goto yy2;
						}
					} else {
						if (yych <= 0x00001FBD) {
							if (yych == 0x00001FB5) goto yy1;
							if (yych <= 0x00001FBC) goto yy2;
						} else {
							if (yych <= 0x00001FC1) {
								if (yych <= 0x00001FBE) goto yy2;
							} else {
								if (yych != 0x00001FC5) goto yy2;
							}
						}
					}
				}
			} else {
				if (yych <= 0x00002113) {
					if (yych <= 0x00001FF4) {
						if (yych <= 0x00001FDB) {
							if (yych <= 0x00001FCF) goto yy1;
							if (yych <= 0x00001FD3) goto yy2;
							if (yych >= 0x00001FD6) goto yy2;
						} else {
							if (yych <= 0x00001FDF) goto yy1;
							if (yych <= 0x00001FEC) goto yy2;
							if (yych >= 0x00001FF2) goto yy2;
						}
					} else {
						if (yych <= 0x00002102) {
							if (yych <= 0x00001FF5) goto yy1;
							if (yych <= 0x00001FFC) goto yy2;
							if (yych >= 0x00002102) goto yy2;
						} else {
							if (yych == 0x00002107) goto yy2;
							if (yych >= 0x0000210A) goto yy2;
						}
					}
				} else {
					if (yych <= 0x00002126) {
						if (yych <= 0x0000211D) {
							if (yych == 0x00002115) goto yy2;
							if (yych >= 0x00002119) goto yy2;
						} else {
							if (yych == 0x00002124) goto yy2;
							if (yych >= 0x00002126) goto yy2;
						}
					} else {
						if (yych <= 0x0000212D) {
							if (yych == 0x00002128) goto yy2;
							if (yych >= 0x0000212A) goto yy2;
						} else {
							if (yych <= 0x00002134) {
								if (yych >= 0x0000212F) goto yy2;
							} else {
								if (yych == 0x00002139) goto yy2;
							}
						}
					}
				}
			}
		}
	} else {
		if (yych <= 0x0001189F) {
			if (yych <= 0x0000A787) {
				if (yych <= 0x00002CEA) {
					if (yych <= 0x00002BFF) {
						if (yych <= 0x0000214D) {
							if (yych <= 0x0000213F) goto yy2;
							if (yych <= 0x00002144) goto yy1;
							if (yych <= 0x00002149) goto yy2;
						} else {
							if (yych <= 0x0000214E) goto yy2;
							if (yych <= 0x00002182) goto yy1;
							if (yych <= 0x00002184) goto yy2;
						}
					} else {
						if (yych <= 0x00002C5F) {
							if (yych == 0x00002C2F) goto yy1;
							if (yych <= 0x00002C5E) goto yy2;
						} else {
							if (yych <= 0x00002C7B) goto yy2;
							if (yych <= 0x00002C7D) goto yy1;
							if (yych <= 0x00002CE4) goto yy2;
						}
					}
				} else {
					if (yych <= 0x00002D2C) {
						if (yych <= 0x00002CFF) {
							if (yych <= 0x00002CEE) goto yy2;
							if (yych <= 0x00002CF1) goto yy1;
							if (yych <= 0x00002CF3) goto yy2;
						} else {
							if (yych == 0x00002D26) goto yy1;
							if (yych <= 0x00002D27) goto yy2;
						}
					} else {
						if (yych <= 0x0000A67F) {
							if (yych <= 0x00002D2D) goto yy2;
							if (yych <= 0x0000A63F) goto yy1;
							if (yych <= 0x0000A66D) goto yy2;
						} else {
							if (yych <= 0x0000A721) {
								if (yych <= 0x0000A69B) goto yy2;
							} else {
								if (yych != 0x0000A770) goto yy2;
							}
						}
					}
				}
			} else {
				if (yych <= 0x0000FB06) {
					if (yych <= 0x0000A7FA) {
						if (yych <= 0x0000A7BF) {
							if (yych <= 0x0000A78A) goto yy1;
							if (yych != 0x0000A78F) goto yy2;
						} else {
							if (yych <= 0x0000A7C1) goto yy1;
							if (yych <= 0x0000A7C6) goto yy2;
							if (yych >= 0x0000A7FA) goto yy2;
						}
					} else {
						if (yych <= 0x0000AB67) {
							if (yych <= 0x0000AB2F) goto yy1;
							if (yych <= 0x0000AB5A) goto yy2;
							if (yych >= 0x0000AB60) goto yy2;
						} else {
							if (yych <= 0x0000AB6F) goto yy1;
							if (yych <= 0x0000ABBF) goto yy2;
							if (yych >= 0x0000FB00) goto yy2;
						}
					}
				} else {
					if (yych <= 0x0001044F) {
						if (yych <= 0x0000FF3A) {
							if (yych <= 0x0000FB12) goto yy1;
							if (yych <= 0x0000FB17) goto yy2;
							if (yych >= 0x0000FF21) goto yy2;
						} else {
							if (yych <= 0x0000FF40) goto yy1;
							if (yych <= 0x0000FF5A) goto yy2;
							if (yych >= 0x00010400) goto yy2;
						}
					} else {
						if (yych <= 0x000104FB) {
							if (yych <= 0x000104AF) goto yy1;
							if (yych <= 0x000104D3) goto yy2;
							if (yych >= 0x000104D8) goto yy2;
						} else {
							if (yych <= 0x00010CB2) {
								if (yych >= 0x00010C80) goto yy2;
							} else {
								if (yych <= 0x00010CBF) goto yy1;
								if (yych <= 0x00010CF2) goto yy2;
							}
						}
					}
				}
			}
		} else {
			if (yych <= 0x0001D53E) {
				if (yych <= 0x0001D4AD) {
					if (yych <= 0x0001D49D) {
						if (yych <= 0x0001D3FF) {
							if (yych <= 0x000118DF) goto yy2;
							if (yych <= 0x00016E3F) goto yy1;
							if (yych <= 0x00016E7F) goto yy2;
						} else {
							if (yych == 0x0001D455) goto yy1;
							if (yych <= 0x0001D49C) goto yy2;
						}
					} else {
						if (yych <= 0x0001D4A4) {
							if (yych <= 0x0001D49F) goto yy2;
							if (yych == 0x0001D4A2) goto yy2;
						} else {
							if (yych <= 0x0001D4A6) goto yy2;
							if (yych <= 0x0001D4A8) goto yy1;
							if (yych <= 0x0001D4AC) goto yy2;
						}
					}
				} else {
					if (yych <= 0x0001D506) {
						if (yych <= 0x0001D4BC) {
							if (yych == 0x0001D4BA) goto yy1;
							if (yych <= 0x0001D4BB) goto yy2;
						} else {
							if (yych == 0x0001D4C4) goto yy1;
							if (yych <= 0x0001D505) goto yy2;
						}
					} else {
						if (yych <= 0x0001D515) {
							if (yych <= 0x0001D50A) goto yy2;
							if (yych <= 0x0001D50C) goto yy1;
							if (yych <= 0x0001D514) goto yy2;
						} else {
							if (yych <= 0x0001D51D) {
								if (yych <= 0x0001D51C) goto yy2;
							} else {
								if (yych != 0x0001D53A) goto yy2;
							}
						}
					}
				}
			} else {
				if (yych <= 0x0001D714) {
					if (yych <= 0x0001D6A5) {
						if (yych <= 0x0001D546) {
							if (yych <= 0x0001D53F) goto yy1;
							if (yych != 0x0001D545) goto yy2;
						} else {
							if (yych <= 0x0001D549) goto yy1;
							if (yych != 0x0001D551) goto yy2;
						}
					} else {
						if (yych <= 0x0001D6DA) {
							if (yych <= 0x0001D6A7) goto yy1;
							if (yych != 0x0001D6C1) goto yy2;
						} else {
							if (yych <= 0x0001D6DB) goto yy1;
							if (yych != 0x0001D6FB) goto yy2;
						}
					}
				} else {
					if (yych <= 0x0001D788) {
						if (yych <= 0x0001D74E) {
							if (yych <= 0x0001D715) goto yy1;
							if (yych != 0x0001D735) goto yy2;
						} else {
							if (yych <= 0x0001D74F) goto yy1;
							if (yych != 0x0001D76F) goto yy2;
						}
					} else {
						if (yych <= 0x0001D7C2) {
							if (yych <= 0x0001D789) goto yy1;
							if (yych != 0x0001D7A9) goto yy2;
						} else {
							if (yych <= 0x0001D7CB) {
								if (yych >= 0x0001D7C4) goto yy2;
							} else {
								if (yych <= 0x0001E8FF) goto yy1;
								if (yych <= 0x0001E943) goto yy2;
							}
						}
					}
				}
			}
		}
	}
yy1:
	++YYCURSOR;
#line 14 "encodings/unicode_group_L__u_encoding_policy_fail.re"
	{ return YYCURSOR == limit; }
#line 392 "encodings/unicode_group_L__u_encoding_policy_fail.c"
yy2:
	++YYCURSOR;
#line 13 "encodings/unicode_group_L__u_encoding_policy_fail.re"
	{ goto L_; }
#line 397 "encodings/unicode_group_L__u_encoding_policy_fail.c"
}
#line 15 "encodings/unicode_group_L__u_encoding_policy_fail.re"

}
static const unsigned int chars_L_ [] = {0x41,0x5a,  0x61,0x7a,  0xb5,0xb5,  0xc0,0xd6,  0xd8,0xf6,  0xf8,0x1ba,  0x1bc,0x1bf,  0x1c4,0x293,  0x295,0x2af,  0x370,0x373,  0x376,0x377,  0x37b,0x37d,  0x37f,0x37f,  0x386,0x386,  0x388,0x38a,  0x38c,0x38c,  0x38e,0x3a1,  0x3a3,0x3f5,  0x3f7,0x481,  0x48a,0x52f,  0x531,0x556,  0x560,0x588,  0x10a0,0x10c5,  0x10c7,0x10c7,  0x10cd,0x10cd,  0x10d0,0x10fa,  0x10fd,0x10ff,  0x13a0,0x13f5,  0x13f8,0x13fd,  0x1c80,0x1c88,  0x1c90,0x1cba,  0x1cbd,0x1cbf,  0x1d00,0x1d2b,  0x1d6b,0x1d77,  0x1d79,0x1d9a,  0x1e00,0x1f15,  0x1f18,0x1f1d,  0x1f20,0x1f45,  0x1f48,0x1f4d,  0x1f50,0x1f57,  0x1f59,0x1f59,  0x1f5b,0x1f5b,  0x1f5d,0x1f5d,  0x1f5f,0x1f7d,  0x1f80,0x1fb4,  0x1fb6,0x1fbc,  0x1fbe,0x1fbe,  0x1fc2,0x1fc4,  0x1fc6,0x1fcc,  0x1fd0,0x1fd3,  0x1fd6,0x1fdb,  0x1fe0,0x1fec,  0x1ff2,0x1ff4,  0x1ff6,0x1ffc,  0x2102,0x2102,  0x2107,0x2107,  0x210a,0x2113,  0x2115,0x2115,  0x2119,0x211d,  0x2124,0x2124,  0x2126,0x2126,  0x2128,0x2128,  0x212a,0x212d,  0x212f,0x2134,  0x2139,0x2139,  0x213c,0x213f,  0x2145,0x2149,  0x214e,0x214e,  0x2183,0x2184,  0x2c00,0x2c2e,  0x2c30,0x2c5e,  0x2c60,0x2c7b,  0x2c7e,0x2ce4,  0x2ceb,0x2cee,  0x2cf2,0x2cf3,  0x2d00,0x2d25,  0x2d27,0x2d27,  0x2d2d,0x2d2d,  0xa640,0xa66d,  0xa680,0xa69b,  0xa722,0xa76f,  0xa771,0xa787,  0xa78b,0xa78e,  0xa790,0xa7bf,  0xa7c2,0xa7c6,  0xa7fa,0xa7fa,  0xab30,0xab5a,  0xab60,0xab67,  0xab70,0xabbf,  0xfb00,0xfb06,  0xfb13,0xfb17,  0xff21,0xff3a,  0xff41,0xff5a,  0x10400,0x1044f,  0x104b0,0x104d3,  0x104d8,0x104fb,  0x10c80,0x10cb2,  0x10cc0,0x10cf2,  0x118a0,0x118df,  0x16e40,0x16e7f,  0x1d400,0x1d454,  0x1d456,0x1d49c,  0x1d49e,0x1d49f,  0x1d4a2,0x1d4a2,  0x1d4a5,0x1d4a6,  0x1d4a9,0x1d4ac,  0x1d4ae,0x1d4b9,  0x1d4bb,0x1d4bb,  0x1d4bd,0x1d4c3,  0x1d4c5,0x1d505,  0x1d507,0x1d50a,  0x1d50d,0x1d514,  0x1d516,0x1d51c,  0x1d51e,0x1d539,  0x1d53b,0x1d53e,  0x1d540,0x1d544,  0x1d546,0x1d546,  0x1d54a,0x1d550,  0x1d552,0x1d6a5,  0x1d6a8,0x1d6c0,  0x1d6c2,0x1d6da,  0x1d6dc,0x1d6fa,  0x1d6fc,0x1d714,  0x1d716,0x1d734,  0x1d736,0x1d74e,  0x1d750,0x1d76e,  0x1d770,0x1d788,  0x1d78a,0x1d7a8,  0x1d7aa,0x1d7c2,  0x1d7c4,0x1d7cb,  0x1e900,0x1e943,  0x0,0x0};
static unsigned int encode_utf32 (const unsigned int * ranges, unsigned int ranges_count, unsigned int * s)
{
	unsigned int * const s_start = s;
	for (unsigned int i = 0; i < ranges_count; i += 2)
		for (unsigned int j = ranges[i]; j <= ranges[i + 1]; ++j)
			*s++ = j;
	return s - s_start;
}

int main ()
{
	unsigned int * buffer_L_ = new unsigned int [3971];
	YYCTYPE * s = (YYCTYPE *) buffer_L_;
	unsigned int buffer_len = encode_utf32 (chars_L_, sizeof (chars_L_) / sizeof (unsigned int), buffer_L_);
	/* convert 32-bit code units to YYCTYPE; reuse the same buffer */
	for (unsigned int i = 0; i < buffer_len; ++i) s[i] = buffer_L_[i];
	if (!scan (s, s + buffer_len))
		printf("test 'L_' failed\n");
	delete [] buffer_L_;
	return 0;
}
