This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
update the links to freenode
[perl5.git] / regcharclass.h
CommitLineData
8770da0e 1/* -*- buffer-read-only: t -*-
58fbde93
RGS
2 *
3 * regcharclass.h
4 *
2eee27d7 5 * Copyright (C) 2007, 2011 by Larry Wall and others
58fbde93
RGS
6 *
7 * You may distribute under the terms of either the GNU General Public
8 * License or the Artistic License, as specified in the README file.
9 *
10 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
98e310af 11 * This file is built by regen/regcharclass.pl.
58fbde93 12 * Any changes made here will be lost!
212b6c86
KW
13 * WARNING: These macros are for internal Perl core use only, and may be
14 * changed or removed without notice.
58fbde93 15 */
12b72891 16
d10c72f2 17
6a5bc5ac
KW
18#ifndef PERL_REGCHARCLASS_H_ /* Guard against nested #includes */
19#define PERL_REGCHARCLASS_H_
d10c72f2 20
a1b2a50f 21#if 'A' == 65 /* ASCII/Latin1 */
12b72891
RGS
22/*
23 LNBREAK: Line Break: \R
24
58fbde93 25 "\x0D\x0A" # CRLF - Network (Windows) line ending
05b688d9 26 \p{VertSpace}
12b72891
RGS
27*/
28/*** GENERATED CODE ***/
12b72891 29#define is_LNBREAK_safe(s,e,is_utf8) \
e64b1bd1 30( ((e)-(s) > 2) ? \
88086fd8 31 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') ) ? 1 \
fdc26d94
KW
32 : ( '\r' == ((const U8*)s)[0] ) ? \
33 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
e64b1bd1 34 : ( is_utf8 ) ? \
29f3ce8f
KW
35 ( ( 0xC2 == ((const U8*)s)[0] ) ? \
36 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
88086fd8 37 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) ) ) ? 3 : 0 )\
29f3ce8f 38 : ( 0x85 == ((const U8*)s)[0] ) ) \
e64b1bd1 39: ((e)-(s) > 1) ? \
88086fd8 40 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') ) ? 1 \
fdc26d94
KW
41 : ( '\r' == ((const U8*)s)[0] ) ? \
42 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
e64b1bd1 43 : ( is_utf8 ) ? \
29f3ce8f
KW
44 ( ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
45 : ( 0x85 == ((const U8*)s)[0] ) ) \
e64b1bd1 46: ((e)-(s) > 0) ? \
88086fd8 47 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\r') ) ? 1 \
e64b1bd1 48 : ( !( is_utf8 ) ) ? \
29f3ce8f 49 ( 0x85 == ((const U8*)s)[0] ) \
e64b1bd1
YO
50 : 0 ) \
51: 0 )
e1d1eefb 52
12b72891 53/*** GENERATED CODE ***/
12b72891 54#define is_LNBREAK_utf8_safe(s,e) \
e64b1bd1 55( ((e)-(s) > 2) ? \
88086fd8 56 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') ) ? 1 \
fdc26d94
KW
57 : ( '\r' == ((const U8*)s)[0] ) ? \
58 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
29f3ce8f
KW
59 : ( 0xC2 == ((const U8*)s)[0] ) ? \
60 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
88086fd8 61 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) ) ) ? 3 : 0 )\
e64b1bd1 62: ((e)-(s) > 1) ? \
88086fd8 63 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') ) ? 1 \
fdc26d94
KW
64 : ( '\r' == ((const U8*)s)[0] ) ? \
65 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
29f3ce8f 66 : ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
e64b1bd1 67: ((e)-(s) > 0) ? \
88086fd8 68 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\r') ) \
e64b1bd1 69: 0 )
e1d1eefb 70
12b72891 71/*** GENERATED CODE ***/
12b72891 72#define is_LNBREAK_latin1_safe(s,e) \
e64b1bd1 73( ((e)-(s) > 1) ? \
88086fd8 74 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') || 0x85 == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
75 : ( '\r' == ((const U8*)s)[0] ) ? \
76 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
9a3182e9 77 : 0 ) \
e64b1bd1 78: ((e)-(s) > 0) ? \
88086fd8 79 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\r') || 0x85 == ((const U8*)s)[0] )\
e64b1bd1 80: 0 )
12b72891
RGS
81
82/*
83 HORIZWS: Horizontal Whitespace: \h \H
84
05b688d9 85 \p{HorizSpace}
12b72891
RGS
86*/
87/*** GENERATED CODE ***/
2cafb56b 88#define is_HORIZWS_high(s) \
29f3ce8f
KW
89( ( 0xE1 == ((const U8*)s)[0] ) ? \
90 ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
91: ( 0xE2 == ((const U8*)s)[0] ) ? \
92 ( ( 0x80 == ((const U8*)s)[1] ) ? \
88086fd8 93 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x8A) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
94 : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
95: ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
2cafb56b
KW
96
97/*** GENERATED CODE ***/
2cafb56b 98#define is_HORIZWS_cp_high(cp) \
c7c8bf55 99( 0x1680 == cp || ( 0x1680 < cp && \
88086fd8 100( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
c7c8bf55
KW
101( 0x202F == cp || ( 0x202F < cp && \
102( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
2cafb56b 103
12b72891
RGS
104/*
105 VERTWS: Vertical Whitespace: \v \V
e1d1eefb 106
05b688d9 107 \p{VertSpace}
12b72891
RGS
108*/
109/*** GENERATED CODE ***/
840f8e92 110#define is_VERTWS_high(s) \
88086fd8 111( ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) ) ) ? 3 : 0 )
840f8e92
KW
112
113/*** GENERATED CODE ***/
840f8e92 114#define is_VERTWS_cp_high(cp) \
88086fd8 115( inRANGE_helper_(UV, cp, 0x2028, 0x2029) )
840f8e92 116
612ead59 117/*
4ac6419d
KW
118 XDIGIT: Hexadecimal digits
119
120 \p{XDigit}
121*/
122/*** GENERATED CODE ***/
4ac6419d 123#define is_XDIGIT_high(s) \
29f3ce8f
KW
124( ( 0xEF == ((const U8*)s)[0] ) ? \
125 ( ( 0xBC == ((const U8*)s)[1] ) ? \
88086fd8
KW
126 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0x99) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xA1, 0xA6) ) ? 3 : 0 )\
127 : ( ( 0xBD == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x81, 0x86) ) ) ? 3 : 0 )\
4ac6419d
KW
128: 0 )
129
130/*** GENERATED CODE ***/
131#define is_XDIGIT_cp_high(cp) \
88086fd8
KW
132( inRANGE_helper_(UV, cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
133( inRANGE_helper_(UV, cp, 0xFF21, 0xFF26) || inRANGE_helper_(UV, cp, 0xFF41, 0xFF46) ) ) )
4ac6419d
KW
134
135/*
bedac28b
KW
136 XPERLSPACE: \p{XPerlSpace}
137
138 \p{XPerlSpace}
139*/
140/*** GENERATED CODE ***/
bedac28b 141#define is_XPERLSPACE_high(s) \
29f3ce8f
KW
142( ( 0xE1 == ((const U8*)s)[0] ) ? \
143 ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
144: ( 0xE2 == ((const U8*)s)[0] ) ? \
145 ( ( 0x80 == ((const U8*)s)[1] ) ? \
88086fd8 146 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x8A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
147 : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
148: ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
bedac28b
KW
149
150/*** GENERATED CODE ***/
151#define is_XPERLSPACE_cp_high(cp) \
c7c8bf55 152( 0x1680 == cp || ( 0x1680 < cp && \
88086fd8
KW
153( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
154( inRANGE_helper_(UV, cp, 0x2028, 0x2029) || ( 0x2029 < cp && \
c7c8bf55 155( 0x202F == cp || ( 0x202F < cp && \
6d2bbfb0 156( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
bedac28b
KW
157
158/*
b96a92fb
KW
159 NONCHAR: Non character code points
160
099323b4 161 \p{_Perl_Nchar}
b96a92fb
KW
162*/
163/*** GENERATED CODE ***/
89d986df 164#define is_NONCHAR_utf8_safe(s,e) \
29f3ce8f
KW
165( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
166 ( ( 0xB7 == ((const U8*)s)[1] ) ? \
88086fd8
KW
167 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0xAF) ) ? 3 : 0 )\
168 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xBE, 0xBF) ) ) ? 3 : 0 )\
29f3ce8f 169 : ( 0xF0 == ((const U8*)s)[0] ) ? \
88086fd8
KW
170 ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )\
171 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xF1, 0xF3) ) ? \
172 ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )\
173 : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 ) : 0 )
b96a92fb
KW
174
175/*
21cb232c 176 SURROGATE: Surrogate code points
b96a92fb 177
099323b4 178 \p{_Perl_Surrogate}
b96a92fb
KW
179*/
180/*** GENERATED CODE ***/
89d986df 181#define is_SURROGATE_utf8_safe(s,e) \
88086fd8 182( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xA0, 0xBF) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xBF) ) ) ? 3 : 0 )
b96a92fb
KW
183
184/*
685289b5
KW
185 QUOTEMETA: Meta-characters that \Q should quote
186
187 \p{_Perl_Quotemeta}
188*/
189/*** GENERATED CODE ***/
190#define is_QUOTEMETA_high(s) \
29f3ce8f
KW
191( ( 0xCD == ((const U8*)s)[0] ) ? \
192 ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 ) \
193: ( 0xD8 == ((const U8*)s)[0] ) ? \
194 ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 ) \
195: ( 0xE1 == ((const U8*)s)[0] ) ? \
196 ( ( 0x85 == ((const U8*)s)[1] ) ? \
88086fd8 197 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x9F, 0xA0) ) ? 3 : 0 ) \
29f3ce8f
KW
198 : ( 0x9A == ((const U8*)s)[1] ) ? \
199 ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 ) \
200 : ( 0x9E == ((const U8*)s)[1] ) ? \
88086fd8
KW
201 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xB4, 0xB5) ) ? 3 : 0 ) \
202 : ( ( 0xA0 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x8B, 0x8E) ) ) ? 3 : 0 )\
29f3ce8f
KW
203: ( 0xE2 == ((const U8*)s)[0] ) ? \
204 ( ( 0x80 == ((const U8*)s)[1] ) ? \
88086fd8 205 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xBE) ) ? 3 : 0 ) \
29f3ce8f 206 : ( 0x81 == ((const U8*)s)[1] ) ? \
88086fd8 207 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x81, 0x93) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x95, 0xAF) ) ? 3 : 0 )\
29f3ce8f 208 : ( 0x86 == ((const U8*)s)[1] ) ? \
88086fd8
KW
209 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0xBF) ) ? 3 : 0 ) \
210 : ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x87, 0x90) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x94, 0x9C) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x9F, 0xAF) || inRANGE_helper_(U8, ((const U8*)s)[1], 0xB8, 0xB9) ) ?\
6e130234 211 3 \
29f3ce8f 212 : ( 0x91 == ((const U8*)s)[1] ) ? \
88086fd8 213 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x9F) ) ? 3 : 0 ) \
29f3ce8f 214 : ( 0x9D == ((const U8*)s)[1] ) ? \
88086fd8
KW
215 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xB5) ) ? 3 : 0 ) \
216 : ( ( 0x9E == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x94, 0xBF) ) ) ? 3 : 0 )\
29f3ce8f
KW
217: ( 0xE3 == ((const U8*)s)[0] ) ? \
218 ( ( 0x80 == ((const U8*)s)[1] ) ? \
88086fd8 219 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x83) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x88, 0xA0) || 0xB0 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
220 : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
221: ( 0xEF == ((const U8*)s)[0] ) ? \
222 ( ( 0xB4 == ((const U8*)s)[1] ) ? \
88086fd8 223 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xBE, 0xBF) ) ? 3 : 0 ) \
29f3ce8f 224 : ( 0xB8 == ((const U8*)s)[1] ) ? \
88086fd8 225 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x8F) ) ? 3 : 0 ) \
29f3ce8f 226 : ( 0xB9 == ((const U8*)s)[1] ) ? \
88086fd8 227 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x85, 0x86) ) ? 3 : 0 ) \
29f3ce8f
KW
228 : ( 0xBB == ((const U8*)s)[1] ) ? \
229 ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 ) \
230 : ( 0xBE == ((const U8*)s)[1] ) ? \
231 ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 ) \
88086fd8 232 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xB0, 0xB8) ) ) ? 3 : 0 )\
29f3ce8f
KW
233: ( 0xF0 == ((const U8*)s)[0] ) ? \
234 ( ( 0x9B == ((const U8*)s)[1] ) ? \
88086fd8
KW
235 ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xA0, 0xA3) ) ) ? 4 : 0 )\
236 : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xB3, 0xBA) ) ) ? 4 : 0 )\
29f3ce8f 237: ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
685289b5 238
8769f413
KW
239/*
240 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
241
a50454ce 242 %regcharclass_multi_char_folds::multi_char_folds('u', 'a')
8769f413
KW
243*/
244/*** GENERATED CODE ***/
2f338e94 245#define is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
114fc8b6
KW
246( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
247 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
248 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )
cf9d46fd
KW
249
250
251/*** GENERATED CODE ***/
2f338e94 252#define is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
114fc8b6 253( ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
29f3ce8f 254 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 255 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
29f3ce8f 256 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 257 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
29f3ce8f 258 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 259 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
88086fd8 260 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
114fc8b6 261 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 262 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
29f3ce8f 263 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 264 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
29f3ce8f
KW
265 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
266 : ( 0xC5 == ((const U8*)s)[0] ) ? \
114fc8b6 267 ( ( 0xBF == ((const U8*)s)[1] ) ? \
88086fd8 268 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ? 3\
114fc8b6
KW
269 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
270 : 0 ) \
29f3ce8f 271 : ( 0xCA == ((const U8*)s)[0] ) ? \
cf9d46fd 272 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
29f3ce8f
KW
273 : ( 0xCE == ((const U8*)s)[0] ) ? \
274 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
275 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
276 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
277 ( ( 0xCD == ((const U8*)s)[2] ) ? \
cf9d46fd
KW
278 ( ( 0x82 == ((const U8*)s)[3] ) ? \
279 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
280 : 0 ) \
29f3ce8f 281 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
cf9d46fd
KW
282 : ( 0xB9 == ((const U8*)s)[1] ) ? \
283 ( ( 0xCC == ((const U8*)s)[2] ) ? \
284 ( ( 0x88 == ((const U8*)s)[3] ) ? \
285 ( ( 0xCC == ((const U8*)s)[4] ) ? \
88086fd8 286 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
cf9d46fd
KW
287 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
288 : 0 ) \
289 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
290 : 0 ) \
29f3ce8f
KW
291 : ( 0xCF == ((const U8*)s)[0] ) ? \
292 ( ( 0x81 == ((const U8*)s)[1] ) ? \
293 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
294 : ( 0x85 == ((const U8*)s)[1] ) ? \
295 ( ( 0xCC == ((const U8*)s)[2] ) ? \
cf9d46fd
KW
296 ( ( 0x88 == ((const U8*)s)[3] ) ? \
297 ( ( 0xCC == ((const U8*)s)[4] ) ? \
88086fd8 298 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
cf9d46fd
KW
299 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
300 : ( 0x93 == ((const U8*)s)[3] ) ? \
301 ( ( 0xCC == ((const U8*)s)[4] ) ? \
88086fd8 302 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 4 )\
cf9d46fd
KW
303 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
304 : 0 ) \
29f3ce8f
KW
305 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
306 : ( 0x89 == ((const U8*)s)[1] ) ? \
307 ( ( 0xCD == ((const U8*)s)[2] ) ? \
cf9d46fd
KW
308 ( ( 0x82 == ((const U8*)s)[3] ) ? \
309 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
310 : 0 ) \
29f3ce8f
KW
311 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
312 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
313 : ( 0xD5 == ((const U8*)s)[0] ) ? \
314 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
315 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
316 : ( 0xB4 == ((const U8*)s)[1] ) ? \
317 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
318 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
319 : ( 0xE1 == ((const U8*)s)[0] ) ? \
320 ( ( 0xBC == ((const U8*)s)[1] ) ? \
321 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
322 : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
251b239f
KW
323 : 0 )
324
325
326/*** GENERATED CODE ***/
2f338e94 327#define is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
cf9d46fd 328( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
29f3ce8f 329 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd
KW
330 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
331 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
332 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
333 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
334 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
29f3ce8f 335 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 336 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
29f3ce8f 337 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 338 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
29f3ce8f 339 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 340 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
88086fd8 341 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
114fc8b6 342 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 343 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
29f3ce8f 344 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 345 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
29f3ce8f
KW
346 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
347 : ( 0xC5 == ((const U8*)s)[0] ) ? \
114fc8b6 348 ( ( 0xBF == ((const U8*)s)[1] ) ? \
88086fd8 349 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ? 3\
114fc8b6
KW
350 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
351 : 0 ) \
29f3ce8f 352 : ( 0xCA == ((const U8*)s)[0] ) ? \
cf9d46fd 353 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
29f3ce8f
KW
354 : ( 0xCE == ((const U8*)s)[0] ) ? \
355 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
356 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
357 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
358 ( ( 0xCD == ((const U8*)s)[2] ) ? \
359 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
360 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
361 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
362 : ( 0xCF == ((const U8*)s)[0] ) ? \
363 ( ( 0x81 == ((const U8*)s)[1] ) ? \
364 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
365 : ( 0x85 == ((const U8*)s)[1] ) ? \
366 ( ( 0xCC == ((const U8*)s)[2] ) ? \
367 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
368 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
369 : ( 0x89 == ((const U8*)s)[1] ) ? \
370 ( ( 0xCD == ((const U8*)s)[2] ) ? \
371 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
372 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
373 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
374 : ( 0xD5 == ((const U8*)s)[0] ) ? \
375 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
376 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
377 : ( 0xB4 == ((const U8*)s)[1] ) ? \
378 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
379 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
cf9d46fd
KW
380 : 0 )
381
382
383/*** GENERATED CODE ***/
2f338e94 384#define is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
cf9d46fd
KW
385( ((e)-(s) > 2) ? \
386 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
29f3ce8f 387 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd
KW
388 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
389 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
390 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
391 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
392 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
29f3ce8f 393 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 394 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
29f3ce8f 395 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 396 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
29f3ce8f 397 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 398 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
88086fd8 399 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
114fc8b6 400 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 401 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
29f3ce8f 402 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 403 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
29f3ce8f 404 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
114fc8b6 405 : ( 0xC5 == ((const U8*)s)[0] ) ? \
88086fd8 406 ( ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ) ? 3 : 0 )\
cf9d46fd 407 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
251b239f 408: ((e)-(s) > 1) ? \
cf9d46fd
KW
409 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
410 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
88086fd8 411 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
c4c8e615
KW
412: 0 )
413
414
415/*** GENERATED CODE ***/
251b239f 416#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
c7c8bf55 417( ((e)-(s) > 5) ? \
114fc8b6
KW
418 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
419 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2f338e94 420 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )\
cf9d46fd
KW
421: ((e)-(s) > 4) ? \
422 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
29f3ce8f 423 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd
KW
424 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
425 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
426 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
427 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
428 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
29f3ce8f 429 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 430 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
29f3ce8f 431 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 432 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
29f3ce8f 433 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 434 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
88086fd8 435 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
114fc8b6 436 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 437 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
29f3ce8f 438 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 439 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
29f3ce8f
KW
440 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
441 : ( 0xC5 == ((const U8*)s)[0] ) ? \
114fc8b6 442 ( ( 0xBF == ((const U8*)s)[1] ) ? \
88086fd8 443 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ? 3\
114fc8b6
KW
444 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
445 : 0 ) \
29f3ce8f 446 : ( 0xCA == ((const U8*)s)[0] ) ? \
cf9d46fd 447 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
29f3ce8f
KW
448 : ( 0xCE == ((const U8*)s)[0] ) ? \
449 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
450 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
451 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
452 ( ( 0xCD == ((const U8*)s)[2] ) ? \
cf9d46fd 453 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
29f3ce8f 454 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
cf9d46fd 455 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
29f3ce8f
KW
456 : ( 0xCF == ((const U8*)s)[0] ) ? \
457 ( ( 0x81 == ((const U8*)s)[1] ) ? \
458 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
459 : ( 0x85 == ((const U8*)s)[1] ) ? \
460 ( ( 0xCC == ((const U8*)s)[2] ) ? \
cf9d46fd 461 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
29f3ce8f
KW
462 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
463 : ( 0x89 == ((const U8*)s)[1] ) ? \
464 ( ( 0xCD == ((const U8*)s)[2] ) ? \
cf9d46fd 465 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
29f3ce8f
KW
466 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
467 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
468 : ( 0xD5 == ((const U8*)s)[0] ) ? \
469 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
470 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
471 : ( 0xB4 == ((const U8*)s)[1] ) ? \
472 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
473 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
474 : ( 0xE1 == ((const U8*)s)[0] ) ? \
475 ( ( 0xBC == ((const U8*)s)[1] ) ? \
476 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
477 : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
c7c8bf55 478 : 0 ) \
2f338e94 479: ((e)-(s) > 3) ? is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )
8769f413 480
a50454ce 481/*** GENERATED CODE ***/
2f338e94 482#define what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
a50454ce
KW
483( ( 0x81 == ((const U8*)s)[1] ) ? \
484 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
485 : ( 0x85 == ((const U8*)s)[1] ) ? \
486 ( ( 0xCC == ((const U8*)s)[2] ) ? \
487 ( ( 0x88 == ((const U8*)s)[3] ) ? \
488 ( ( 0xCC == ((const U8*)s)[4] ) ? \
489 ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1FE2 \
490 : ( 0x81 == ((const U8*)s)[5] ) ? 0x3B0 : 0 ) \
491 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1FE7 : 0 )\
492 : ( 0x93 == ((const U8*)s)[3] ) ? \
493 ( ( 0xCC == ((const U8*)s)[4] ) ? \
494 ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1F52 \
495 : ( 0x81 == ((const U8*)s)[5] ) ? 0x1F54 : 0x1F50 ) \
496 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1F56 : 0x1F50 )\
497 : 0 ) \
498 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
499 : ( 0x89 == ((const U8*)s)[1] ) ? \
500 ( ( 0xCD == ((const U8*)s)[2] ) ? \
501 ( ( 0x82 == ((const U8*)s)[3] ) ? \
502 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FF7 : 0x1FF6 )\
503 : 0 ) \
504 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
505 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
506
507
508/*** GENERATED CODE ***/
2f338e94 509#define what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
a50454ce
KW
510( ( 0xD5 == ((const U8*)s)[0] ) ? \
511 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
512 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
513 : ( 0xB4 == ((const U8*)s)[1] ) ? \
514 ( ( 0xD5 == ((const U8*)s)[2] ) ? \
515 ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
516 : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
517 : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
518 : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
519 : 0 ) \
520 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
521 : ( 0xE1 == ((const U8*)s)[0] ) ? \
522 ( ( 0xBC == ((const U8*)s)[1] ) ? \
523 ( ( 0x80 == ((const U8*)s)[2] ) ? \
524 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
525 : ( 0x81 == ((const U8*)s)[2] ) ? \
526 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
527 : ( 0x82 == ((const U8*)s)[2] ) ? \
528 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
529 : ( 0x83 == ((const U8*)s)[2] ) ? \
530 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
531 : ( 0x84 == ((const U8*)s)[2] ) ? \
532 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
533 : ( 0x85 == ((const U8*)s)[2] ) ? \
534 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
535 : ( 0x86 == ((const U8*)s)[2] ) ? \
536 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
537 : ( 0x87 == ((const U8*)s)[2] ) ? \
538 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
539 : ( 0xA0 == ((const U8*)s)[2] ) ? \
540 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
541 : ( 0xA1 == ((const U8*)s)[2] ) ? \
542 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
543 : ( 0xA2 == ((const U8*)s)[2] ) ? \
544 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
545 : ( 0xA3 == ((const U8*)s)[2] ) ? \
546 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
547 : ( 0xA4 == ((const U8*)s)[2] ) ? \
548 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
549 : ( 0xA5 == ((const U8*)s)[2] ) ? \
550 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
551 : ( 0xA6 == ((const U8*)s)[2] ) ? \
552 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
553 : ( ( ( 0xA7 == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
554 : ( 0xBD == ((const U8*)s)[1] ) ? \
555 ( ( 0xA0 == ((const U8*)s)[2] ) ? \
556 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
557 : ( 0xA1 == ((const U8*)s)[2] ) ? \
558 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
559 : ( 0xA2 == ((const U8*)s)[2] ) ? \
560 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
561 : ( 0xA3 == ((const U8*)s)[2] ) ? \
562 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
563 : ( 0xA4 == ((const U8*)s)[2] ) ? \
564 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
565 : ( 0xA5 == ((const U8*)s)[2] ) ? \
566 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
567 : ( 0xA6 == ((const U8*)s)[2] ) ? \
568 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
569 : ( 0xA7 == ((const U8*)s)[2] ) ? \
570 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
571 : ( 0xB0 == ((const U8*)s)[2] ) ? \
572 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
573 : ( 0xB4 == ((const U8*)s)[2] ) ? \
574 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
575 : ( ( ( 0xBC == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
576 : 0 ) \
577 : 0 )
578
579
580/*** GENERATED CODE ***/
2f338e94 581#define what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
a50454ce
KW
582( ( 0x81 == ((const U8*)s)[1] ) ? \
583 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
584 : ( 0x85 == ((const U8*)s)[1] ) ? \
585 ( ( 0xCC == ((const U8*)s)[2] ) ? \
586 ( ( 0x93 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
587 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
588 : ( 0x89 == ((const U8*)s)[1] ) ? \
589 ( ( 0xCD == ((const U8*)s)[2] ) ? \
590 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
591 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
592 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
593
594
595/*** GENERATED CODE ***/
2f338e94 596#define what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
a50454ce
KW
597( ( 0xD5 == ((const U8*)s)[0] ) ? \
598 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
599 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
600 : ( 0xB4 == ((const U8*)s)[1] ) ? \
601 ( ( 0xD5 == ((const U8*)s)[2] ) ? \
602 ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
603 : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
604 : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
605 : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
606 : 0 ) \
607 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
608 : ( 0xE1 == ((const U8*)s)[0] ) ? \
609 ( ( 0xBC == ((const U8*)s)[1] ) ? \
610 ( ( 0x80 == ((const U8*)s)[2] ) ? \
611 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
612 : ( 0x81 == ((const U8*)s)[2] ) ? \
613 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
614 : ( 0x82 == ((const U8*)s)[2] ) ? \
615 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
616 : ( 0x83 == ((const U8*)s)[2] ) ? \
617 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
618 : ( 0x84 == ((const U8*)s)[2] ) ? \
619 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
620 : ( 0x85 == ((const U8*)s)[2] ) ? \
621 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
622 : ( 0x86 == ((const U8*)s)[2] ) ? \
623 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
624 : ( 0x87 == ((const U8*)s)[2] ) ? \
625 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
626 : ( 0xA0 == ((const U8*)s)[2] ) ? \
627 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
628 : ( 0xA1 == ((const U8*)s)[2] ) ? \
629 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
630 : ( 0xA2 == ((const U8*)s)[2] ) ? \
631 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
632 : ( 0xA3 == ((const U8*)s)[2] ) ? \
633 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
634 : ( 0xA4 == ((const U8*)s)[2] ) ? \
635 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
636 : ( 0xA5 == ((const U8*)s)[2] ) ? \
637 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
638 : ( 0xA6 == ((const U8*)s)[2] ) ? \
639 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
640 : ( ( ( 0xA7 == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
641 : ( 0xBD == ((const U8*)s)[1] ) ? \
642 ( ( 0xA0 == ((const U8*)s)[2] ) ? \
643 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
644 : ( 0xA1 == ((const U8*)s)[2] ) ? \
645 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
646 : ( 0xA2 == ((const U8*)s)[2] ) ? \
647 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
648 : ( 0xA3 == ((const U8*)s)[2] ) ? \
649 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
650 : ( 0xA4 == ((const U8*)s)[2] ) ? \
651 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
652 : ( 0xA5 == ((const U8*)s)[2] ) ? \
653 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
654 : ( 0xA6 == ((const U8*)s)[2] ) ? \
655 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
656 : ( 0xA7 == ((const U8*)s)[2] ) ? \
657 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
658 : ( 0xB0 == ((const U8*)s)[2] ) ? \
659 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
660 : ( 0xB4 == ((const U8*)s)[2] ) ? \
661 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
662 : ( ( ( 0xBC == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
663 : 0 ) \
664 : 0 )
665
666
667/*** GENERATED CODE ***/
2f338e94 668#define what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) \
a50454ce
KW
669( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
670 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
671 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
672 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
673 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
674 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
675 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
676 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
677 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
678 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
679 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
680 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
681 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
682 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
683 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
684 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
685 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
686 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
687 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
688 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
689 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
690 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
691 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
692 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
693 : ( 0xC5 == ((const U8*)s)[0] ) ? \
694 ( ( 0xBF == ((const U8*)s)[1] ) ? \
695 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
696 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
697 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
698 : 0 ) \
699 : ( 0xCA == ((const U8*)s)[0] ) ? \
700 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
701 : ( 0xCE == ((const U8*)s)[0] ) ? \
702 ( ( 0xAC == ((const U8*)s)[1] ) ? \
703 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
704 : ( 0xAE == ((const U8*)s)[1] ) ? \
705 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
706 : ( 0xB1 == ((const U8*)s)[1] ) ? \
707 ( ( 0xCD == ((const U8*)s)[2] ) ? \
708 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
709 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
710 : ( 0xB7 == ((const U8*)s)[1] ) ? \
711 ( ( 0xCD == ((const U8*)s)[2] ) ? \
712 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
713 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
714 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
715 : ( 0xCF == ((const U8*)s)[0] ) ? \
716 ( ( 0x81 == ((const U8*)s)[1] ) ? \
717 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
718 : ( 0x85 == ((const U8*)s)[1] ) ? \
719 ( ( 0xCC == ((const U8*)s)[2] ) ? \
720 ( ( 0x93 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
721 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
722 : ( 0x89 == ((const U8*)s)[1] ) ? \
723 ( ( 0xCD == ((const U8*)s)[2] ) ? \
724 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
725 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
726 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
727 : ( 0xD5 == ((const U8*)s)[0] ) ? \
728 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
729 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
730 : ( 0xB4 == ((const U8*)s)[1] ) ? \
731 ( ( 0xD5 == ((const U8*)s)[2] ) ? \
732 ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
733 : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
734 : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
735 : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
736 : 0 ) \
737 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
738 : 0 )
739
740
741/*** GENERATED CODE ***/
2f338e94 742#define what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) \
a50454ce
KW
743( ((e)-(s) > 2) ? \
744 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
745 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
746 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
747 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
748 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
749 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
750 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
751 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
752 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
753 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
754 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
755 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
756 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
757 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
758 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
759 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
760 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
761 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
762 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
763 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
764 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
765 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
766 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
767 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
768 : ( 0xC5 == ((const U8*)s)[0] ) ? \
769 ( ( 0xBF == ((const U8*)s)[1] ) ? \
770 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
771 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
772 : 0 ) \
773 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
774: ((e)-(s) > 1) ? \
775 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
776 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 0xFB00 \
777 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
778 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
779 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
780 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
781 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
782 : 0 ) \
783: 0 )
784
785
786/*** GENERATED CODE ***/
2f338e94 787#define what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) \
a50454ce
KW
788( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
789 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
790 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
791 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
792 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
793 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
794 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
795 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
796 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
797 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
798 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
799 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
800 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
801 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
802 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
803 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
804 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
805 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
806 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
807 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
808 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
809 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
810 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
811 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
812 : ( 0xC5 == ((const U8*)s)[0] ) ? \
813 ( ( 0xBF == ((const U8*)s)[1] ) ? \
814 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
815 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
816 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
817 : 0 ) \
818 : ( 0xCA == ((const U8*)s)[0] ) ? \
819 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
820 : ( 0xCE == ((const U8*)s)[0] ) ? \
821 ( ( 0xAC == ((const U8*)s)[1] ) ? \
822 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
823 : ( 0xAE == ((const U8*)s)[1] ) ? \
824 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
825 : ( 0xB1 == ((const U8*)s)[1] ) ? \
826 ( ( 0xCD == ((const U8*)s)[2] ) ? \
827 ( ( 0x82 == ((const U8*)s)[3] ) ? \
828 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FB7 : 0x1FB6 )\
829 : 0 ) \
830 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
831 : ( 0xB7 == ((const U8*)s)[1] ) ? \
832 ( ( 0xCD == ((const U8*)s)[2] ) ? \
833 ( ( 0x82 == ((const U8*)s)[3] ) ? \
834 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FC7 : 0x1FC6 )\
835 : 0 ) \
836 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
837 : ( 0xB9 == ((const U8*)s)[1] ) ? \
838 ( ( 0xCC == ((const U8*)s)[2] ) ? \
839 ( ( 0x88 == ((const U8*)s)[3] ) ? \
840 ( ( 0xCC == ((const U8*)s)[4] ) ? \
841 ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1FD2 \
842 : ( 0x81 == ((const U8*)s)[5] ) ? 0x390 : 0 ) \
843 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1FD7 : 0 )\
844 : 0 ) \
845 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
846 : 0 ) \
2f338e94 847 : ( 0xCF == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )
a50454ce
KW
848
849
850/*** GENERATED CODE ***/
2f338e94 851#define what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) \
a50454ce
KW
852( ((e)-(s) > 4) ? \
853 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
854 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
855 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
856 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
857 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
858 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
859 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
860 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
861 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
862 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
863 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
864 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
865 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
866 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
867 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
868 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
869 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
870 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
871 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
872 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
873 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
874 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
875 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
876 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
877 : ( 0xC5 == ((const U8*)s)[0] ) ? \
878 ( ( 0xBF == ((const U8*)s)[1] ) ? \
879 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
880 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
881 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
882 : 0 ) \
883 : ( 0xCA == ((const U8*)s)[0] ) ? \
884 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
885 : ( 0xCE == ((const U8*)s)[0] ) ? \
886 ( ( 0xAC == ((const U8*)s)[1] ) ? \
887 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
888 : ( 0xAE == ((const U8*)s)[1] ) ? \
889 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
890 : ( 0xB1 == ((const U8*)s)[1] ) ? \
891 ( ( 0xCD == ((const U8*)s)[2] ) ? \
892 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
893 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
894 : ( 0xB7 == ((const U8*)s)[1] ) ? \
895 ( ( 0xCD == ((const U8*)s)[2] ) ? \
896 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
897 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
898 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
2f338e94
KW
899 : ( 0xCF == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )\
900: ((e)-(s) > 3) ? what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) )
a50454ce
KW
901
902
903/*** GENERATED CODE ***/
904#define what_MULTI_CHAR_FOLD_utf8_safe(s,e) \
2f338e94 905( ((e)-(s) > 5) ? what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) )
a50454ce 906
8769f413 907/*
40b1ba4f 908 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
8769f413 909
a50454ce 910 %regcharclass_multi_char_folds::multi_char_folds('l', 'a')
8769f413
KW
911*/
912/*** GENERATED CODE ***/
251b239f
KW
913#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
914( ((e)-(s) > 2) ? \
fdc26d94
KW
915 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
916 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
917 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
918 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
88086fd8 919 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
251b239f 920: ((e)-(s) > 1) ? \
fdc26d94
KW
921 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
922 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
88086fd8 923 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
251b239f 924: 0 )
8769f413 925
a50454ce
KW
926/*** GENERATED CODE ***/
927#define what_MULTI_CHAR_FOLD_latin1_safe(s,e) \
928( ((e)-(s) > 2) ? \
929 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
930 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
931 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
932 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
933 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
934 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
935 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
936 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
937 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
938 : 0 ) \
939: ((e)-(s) > 1) ? \
940 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
941 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 0xFB00 \
942 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
943 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
944 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
945 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
946 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
947 : 0 ) \
948: 0 )
949
0b50d62a 950/*
42d7c910
KW
951 THREE_CHAR_FOLD: A three-character multi-char fold
952
a50454ce 953 %regcharclass_multi_char_folds::multi_char_folds('u', '3')
42d7c910
KW
954*/
955/*** GENERATED CODE ***/
956#define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
957( ((e)-(s) > 5) ? \
cf9d46fd
KW
958 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
959 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ) ? 3 : 0 )\
42d7c910
KW
960 : ( 0xCE == ((const U8*)s)[0] ) ? \
961 ( ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
962 ( ( ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) && ( 0xCE == ((const U8*)s)[4] ) ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
963 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCC == ((const U8*)s)[2] ) ) && ( 0x88 == ((const U8*)s)[3] ) ) ? ( ( 0xCC == ((const U8*)s)[4] ) ?\
88086fd8 964 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
42d7c910
KW
965 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
966 : ( 0xCF == ((const U8*)s)[0] ) ? \
967 ( ( 0x85 == ((const U8*)s)[1] ) ? \
968 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] || 0x93 == ((const U8*)s)[3] ) ) ? ( ( 0xCC == ((const U8*)s)[4] ) ?\
88086fd8 969 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
42d7c910
KW
970 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
971 : ( ( ( ( ( 0x89 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) && ( 0xCE == ((const U8*)s)[4] ) ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
972 : 0 ) \
cf9d46fd 973: ( ( ( ((e)-(s) > 2) && ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ) && ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ) ? 3 : 0 )
42d7c910
KW
974
975/*
976 THREE_CHAR_FOLD: A three-character multi-char fold
977
a50454ce 978 %regcharclass_multi_char_folds::multi_char_folds('l', '3')
42d7c910
KW
979*/
980/*** GENERATED CODE ***/
981#define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
fdc26d94 982( ( ( ( ( ((e) - (s)) >= 3 ) && ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ) && ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ) ? 3 : 0 )
42d7c910
KW
983
984/*
985 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
986
a50454ce 987 %regcharclass_multi_char_folds::multi_char_folds('u', 'h')
42d7c910
KW
988*/
989/*** GENERATED CODE ***/
990#define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
991( ((e)-(s) > 3) ? \
cf9d46fd
KW
992 ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
993 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
994 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
114fc8b6
KW
995 : ( 0xC5 == ((const U8*)s)[0] ) ? \
996 ( ( 0xBF == ((const U8*)s)[1] ) ? 2 : 0 ) \
42d7c910
KW
997 : ( 0xCA == ((const U8*)s)[0] ) ? \
998 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
999 : ( 0xCE == ((const U8*)s)[0] ) ? \
1000 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? 2 \
1001 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
1002 ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1003 : ( 0xB9 == ((const U8*)s)[1] ) ? \
1004 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1005 : 0 ) \
1006 : ( 0xCF == ((const U8*)s)[0] ) ? \
1007 ( ( 0x81 == ((const U8*)s)[1] || 0x8E == ((const U8*)s)[1] ) ? 2 \
1008 : ( 0x85 == ((const U8*)s)[1] ) ? \
1009 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] || 0x93 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1010 : ( 0x89 == ((const U8*)s)[1] ) ? \
1011 ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1012 : 0 ) \
1013 : ( 0xD5 == ((const U8*)s)[0] ) ? \
1014 ( ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ? 2 : 0 )\
1015 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1016 ( ( 0xBC == ((const U8*)s)[1] ) ? \
1017 ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) ? 3 : 0 ) \
1018 : ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
1019 : 0 ) \
1020: ((e)-(s) > 2) ? \
cf9d46fd
KW
1021 ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
1022 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1023 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
114fc8b6
KW
1024 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1025 ( ( 0xBF == ((const U8*)s)[1] ) ? 2 : 0 ) \
42d7c910
KW
1026 : ( 0xCA == ((const U8*)s)[0] ) ? \
1027 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1028 : ( 0xCE == ((const U8*)s)[0] ) ? \
1029 ( ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) || ( ( ((const U8*)s)[1] & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0xB7 ) ? 2 : 0 )\
1030 : ( 0xCF == ((const U8*)s)[0] ) ? \
1031 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x81 ) || ((const U8*)s)[1] == 0x89 || ((const U8*)s)[1] == 0x8E ) ? 2 : 0 )\
1032 : ( 0xD5 == ((const U8*)s)[0] ) ? \
1033 ( ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ? 2 : 0 )\
1034 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1035 ( ( 0xBC == ((const U8*)s)[1] ) ? \
1036 ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) ? 3 : 0 ) \
1037 : ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
1038 : 0 ) \
1039: ((e)-(s) > 1) ? \
cf9d46fd
KW
1040 ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
1041 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1042 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
114fc8b6
KW
1043 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1044 ( ( 0xBF == ((const U8*)s)[1] ) ? 2 : 0 ) \
42d7c910
KW
1045 : ( 0xCA == ((const U8*)s)[0] ) ? \
1046 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1047 : ( 0xCE == ((const U8*)s)[0] ) ? \
1048 ( ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) || ( ( ((const U8*)s)[1] & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0xB7 ) ? 2 : 0 )\
1049 : ( 0xCF == ((const U8*)s)[0] ) ? \
1050 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x81 ) || ((const U8*)s)[1] == 0x89 || ((const U8*)s)[1] == 0x8E ) ? 2 : 0 )\
1051 : ( ( 0xD5 == ((const U8*)s)[0] ) && ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ) ? 2 : 0 )\
1052: ((e)-(s) > 0) ? \
cf9d46fd 1053 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) )\
42d7c910
KW
1054: 0 )
1055
1056/*
1057 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
1058
a50454ce 1059 %regcharclass_multi_char_folds::multi_char_folds('l', 'h')
42d7c910
KW
1060*/
1061/*** GENERATED CODE ***/
1062#define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
1063( ((e)-(s) > 1) ? \
fdc26d94
KW
1064 ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
1065 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1066 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
42d7c910
KW
1067 : 0 ) \
1068: ((e)-(s) > 0) ? \
fdc26d94 1069 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) )\
42d7c910
KW
1070: 0 )
1071
1072/*
1a27eb96
KW
1073 FOLDS_TO_MULTI: characters that fold to multi-char strings
1074
1075 \p{_Perl_Folds_To_Multi_Char}
1076*/
1077/*** GENERATED CODE ***/
1078#define is_FOLDS_TO_MULTI_utf8(s) \
29f3ce8f
KW
1079( ( 0xC3 == ((const U8*)s)[0] ) ? \
1080 ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 ) \
1081: ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
1082 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1083: ( 0xC5 == ((const U8*)s)[0] ) ? \
1084 ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1085: ( 0xCE == ((const U8*)s)[0] ) ? \
1086 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 ) \
1087: ( 0xD6 == ((const U8*)s)[0] ) ? \
1088 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1089: ( 0xE1 == ((const U8*)s)[0] ) ? \
1090 ( ( 0xBA == ((const U8*)s)[1] ) ? \
88086fd8 1091 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x96, 0x9A) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
1092 : ( 0xBD == ((const U8*)s)[1] ) ? \
1093 ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
1094 : ( 0xBE == ((const U8*)s)[1] ) ? \
88086fd8 1095 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xAF) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xB2, 0xB4) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xB6, 0xB7) || 0xBC == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f 1096 : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x84 ) || ((const U8*)s)[2] == 0xA4 || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
88086fd8 1097: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x86) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x93, 0x97) ) ) ? 3 : 0 )
1a27eb96
KW
1098
1099/*
31f05a37
KW
1100 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1101
1102 \p{_Perl_Problematic_Locale_Folds}
1103*/
1104/*** GENERATED CODE ***/
1105#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
29f3ce8f 1106( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
88086fd8 1107: ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xC2, 0xC3) ) ? \
31f05a37 1108 2 \
e061e593 1109: ( 0xC4 == ((const U8*)s)[0] ) ? \
88086fd8 1110 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xB0, 0xB1) ) ? 2 : 0 ) \
29f3ce8f
KW
1111: ( 0xC5 == ((const U8*)s)[0] ) ? \
1112 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
e061e593
KW
1113: ( 0xC7 == ((const U8*)s)[0] ) ? \
1114 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1115: ( 0xCC == ((const U8*)s)[0] ) ? \
1116 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
29f3ce8f
KW
1117: ( 0xCE == ((const U8*)s)[0] ) ? \
1118 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
1119: ( 0xE1 == ((const U8*)s)[0] ) ? \
88086fd8 1120 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x96, 0x9A) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 1121: ( 0xE2 == ((const U8*)s)[0] ) ? \
88086fd8
KW
1122 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xAA, 0xAB) ) ) ? 3 : 0 )\
1123: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x86) ) ) ? 3 : 0 )
31f05a37
KW
1124
1125/*** GENERATED CODE ***/
1126#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
c7c8bf55 1127( cp <= 0xFF || ( 0xFF < cp && \
88086fd8 1128( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
c7c8bf55
KW
1129( 0x149 == cp || ( 0x149 < cp && \
1130( 0x178 == cp || ( 0x178 < cp && \
1131( 0x17F == cp || ( 0x17F < cp && \
1132( 0x1F0 == cp || ( 0x1F0 < cp && \
e061e593 1133( 0x307 == cp || ( 0x307 < cp && \
c7c8bf55
KW
1134( 0x39C == cp || ( 0x39C < cp && \
1135( 0x3BC == cp || ( 0x3BC < cp && \
88086fd8 1136( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
c7c8bf55 1137( 0x1E9E == cp || ( 0x1E9E < cp && \
88086fd8 1138( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
31f05a37
KW
1139
1140/*
1141 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1142
1143 \p{_Perl_Problematic_Locale_Foldeds_Start}
1144*/
1145/*** GENERATED CODE ***/
1146#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
29f3ce8f 1147( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
88086fd8 1148: ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xC2, 0xC3) ) ? \
31f05a37 1149 2 \
e061e593 1150: ( 0xC4 == ((const U8*)s)[0] ) ? \
88086fd8 1151 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xB0, 0xB1) ) ? 2 : 0 ) \
29f3ce8f
KW
1152: ( 0xC5 == ((const U8*)s)[0] ) ? \
1153 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
e061e593
KW
1154: ( 0xC7 == ((const U8*)s)[0] ) ? \
1155 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
29f3ce8f
KW
1156: ( 0xCA == ((const U8*)s)[0] ) ? \
1157 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1158: ( 0xCE == ((const U8*)s)[0] ) ? \
1159 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
1160: ( 0xE1 == ((const U8*)s)[0] ) ? \
88086fd8 1161 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x96, 0x9A) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 1162: ( 0xE2 == ((const U8*)s)[0] ) ? \
88086fd8
KW
1163 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xAA, 0xAB) ) ) ? 3 : 0 )\
1164: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x86) ) ) ? 3 : 0 )
31f05a37
KW
1165
1166/*** GENERATED CODE ***/
1167#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
c7c8bf55 1168( cp <= 0xFF || ( 0xFF < cp && \
88086fd8 1169( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
c7c8bf55
KW
1170( 0x149 == cp || ( 0x149 < cp && \
1171( 0x178 == cp || ( 0x178 < cp && \
1172( 0x17F == cp || ( 0x17F < cp && \
1173( 0x1F0 == cp || ( 0x1F0 < cp && \
1174( 0x2BC == cp || ( 0x2BC < cp && \
1175( 0x39C == cp || ( 0x39C < cp && \
1176( 0x3BC == cp || ( 0x3BC < cp && \
88086fd8 1177( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
c7c8bf55 1178( 0x1E9E == cp || ( 0x1E9E < cp && \
88086fd8 1179( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
31f05a37
KW
1180
1181/*
0b50d62a
KW
1182 PATWS: pattern white space
1183
099323b4 1184 \p{_Perl_PatWS}
0b50d62a
KW
1185*/
1186/*** GENERATED CODE ***/
0b50d62a 1187#define is_PATWS_safe(s,e,is_utf8) \
dd9bc2b0 1188( ( LIKELY((e) > (s)) ) ? \
88086fd8 1189 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\t', '\r') || ' ' == ((const U8*)s)[0] ) ? 1\
5ab0c3af 1190 : (! is_utf8 ) ? \
29f3ce8f 1191 ( 0x85 == ((const U8*)s)[0] ) \
dd9bc2b0 1192 : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \
29f3ce8f
KW
1193 ( ( 0xC2 == ((const U8*)s)[0] ) ? \
1194 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
88086fd8 1195 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x8E, 0x8F) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) ) ) ? 3 : 0 )\
5ab0c3af 1196 : 0 ) \
0b50d62a
KW
1197: 0 )
1198
6c12993c
KW
1199/*
1200 HANGUL_ED: Hangul syllables whose first character is \xED
1201
1202 0xD000 - 0xD7FF
1203*/
1204/*** GENERATED CODE ***/
1205#define is_HANGUL_ED_utf8_safe(s,e) \
88086fd8 1206( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x80, 0x9F) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xBF) ) ) ? 3 : 0 )
6c12993c 1207
a1b2a50f
KW
1208#endif /* ASCII/Latin1 */
1209
1210#if 'A' == 193 /* EBCDIC 1047 */ \
1211 && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
1212 && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
c11f6329 1213 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
a1b2a50f
KW
1214/*
1215 LNBREAK: Line Break: \R
1216
1217 "\x0D\x0A" # CRLF - Network (Windows) line ending
1218 \p{VertSpace}
1219*/
1220/*** GENERATED CODE ***/
1221#define is_LNBREAK_safe(s,e,is_utf8) \
1222( ((e)-(s) > 2) ? \
88086fd8 1223 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
1224 : ( '\r' == ((const U8*)s)[0] ) ? \
1225 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
88086fd8 1226 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
a1b2a50f 1227: ((e)-(s) > 1) ? \
88086fd8 1228 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
1229 : ( '\r' == ((const U8*)s)[0] ) ? \
1230 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
1231 : 0 ) \
1232: ((e)-(s) > 0) ? \
88086fd8 1233 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
1234: 0 )
1235
1236/*** GENERATED CODE ***/
1237#define is_LNBREAK_utf8_safe(s,e) \
1238( ((e)-(s) > 2) ? \
88086fd8 1239 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
1240 : ( '\r' == ((const U8*)s)[0] ) ? \
1241 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
88086fd8 1242 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
a1b2a50f 1243: ((e)-(s) > 1) ? \
88086fd8 1244 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
1245 : ( '\r' == ((const U8*)s)[0] ) ? \
1246 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
1247 : 0 ) \
1248: ((e)-(s) > 0) ? \
88086fd8 1249 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
1250: 0 )
1251
1252/*** GENERATED CODE ***/
1253#define is_LNBREAK_latin1_safe(s,e) \
1254( ((e)-(s) > 1) ? \
88086fd8 1255 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
1256 : ( '\r' == ((const U8*)s)[0] ) ? \
1257 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
1258 : 0 ) \
1259: ((e)-(s) > 0) ? \
88086fd8 1260 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
1261: 0 )
1262
1263/*
1264 HORIZWS: Horizontal Whitespace: \h \H
1265
1266 \p{HorizSpace}
1267*/
1268/*** GENERATED CODE ***/
1269#define is_HORIZWS_high(s) \
29f3ce8f
KW
1270( ( 0xBC == ((const U8*)s)[0] ) ? \
1271 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1272: ( 0xCA == ((const U8*)s)[0] ) ? \
1273 ( ( 0x41 == ((const U8*)s)[1] ) ? \
88086fd8 1274 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
1275 : ( 0x42 == ((const U8*)s)[1] ) ? \
1276 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1277 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1278: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
1279
1280/*** GENERATED CODE ***/
1281#define is_HORIZWS_cp_high(cp) \
1282( 0x1680 == cp || ( 0x1680 < cp && \
88086fd8 1283( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
a1b2a50f
KW
1284( 0x202F == cp || ( 0x202F < cp && \
1285( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1286
1287/*
1288 VERTWS: Vertical Whitespace: \v \V
1289
1290 \p{VertSpace}
1291*/
1292/*** GENERATED CODE ***/
1293#define is_VERTWS_high(s) \
88086fd8 1294( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )
a1b2a50f
KW
1295
1296/*** GENERATED CODE ***/
1297#define is_VERTWS_cp_high(cp) \
88086fd8 1298( inRANGE_helper_(UV, cp, 0x2028, 0x2029) )
a1b2a50f
KW
1299
1300/*
1301 XDIGIT: Hexadecimal digits
1302
1303 \p{XDigit}
1304*/
1305/*** GENERATED CODE ***/
1306#define is_XDIGIT_high(s) \
29f3ce8f 1307( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
88086fd8
KW
1308 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x68) ) ? 4 : 0 )\
1309 : ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x68, 0x69) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x42, 0x47) ) ) ? 4 : 0 ) : 0 )
a1b2a50f
KW
1310
1311/*** GENERATED CODE ***/
1312#define is_XDIGIT_cp_high(cp) \
88086fd8
KW
1313( inRANGE_helper_(UV, cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
1314( inRANGE_helper_(UV, cp, 0xFF21, 0xFF26) || inRANGE_helper_(UV, cp, 0xFF41, 0xFF46) ) ) )
a1b2a50f
KW
1315
1316/*
1317 XPERLSPACE: \p{XPerlSpace}
1318
1319 \p{XPerlSpace}
1320*/
1321/*** GENERATED CODE ***/
1322#define is_XPERLSPACE_high(s) \
29f3ce8f
KW
1323( ( 0xBC == ((const U8*)s)[0] ) ? \
1324 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1325: ( 0xCA == ((const U8*)s)[0] ) ? \
1326 ( ( 0x41 == ((const U8*)s)[1] ) ? \
88086fd8 1327 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f 1328 : ( 0x42 == ((const U8*)s)[1] ) ? \
88086fd8 1329 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
1330 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1331: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
1332
1333/*** GENERATED CODE ***/
1334#define is_XPERLSPACE_cp_high(cp) \
1335( 0x1680 == cp || ( 0x1680 < cp && \
88086fd8
KW
1336( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
1337( inRANGE_helper_(UV, cp, 0x2028, 0x2029) || ( 0x2029 < cp && \
a1b2a50f 1338( 0x202F == cp || ( 0x202F < cp && \
6d2bbfb0 1339( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
a1b2a50f
KW
1340
1341/*
a1b2a50f
KW
1342 NONCHAR: Non character code points
1343
099323b4 1344 \p{_Perl_Nchar}
a1b2a50f
KW
1345*/
1346/*** GENERATED CODE ***/
89d986df 1347#define is_NONCHAR_utf8_safe(s,e) \
29f3ce8f
KW
1348( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1349 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1350 ( ( 0x55 == ((const U8*)s)[2] ) ? \
88086fd8 1351 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x73) ) ? 4 : 0 )\
29f3ce8f 1352 : ( 0x56 == ((const U8*)s)[2] ) ? \
88086fd8
KW
1353 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
1354 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
89d986df 1355 : 0 ) \
29f3ce8f 1356 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
88086fd8 1357 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
29f3ce8f 1358 : ( 0xED == ((const U8*)s)[0] ) ? \
88086fd8
KW
1359 ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 )\
1360 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 ) : 0 )
a1b2a50f
KW
1361
1362/*
21cb232c 1363 SURROGATE: Surrogate code points
a1b2a50f 1364
099323b4 1365 \p{_Perl_Surrogate}
a1b2a50f
KW
1366*/
1367/*** GENERATED CODE ***/
89d986df 1368#define is_SURROGATE_utf8_safe(s,e) \
88086fd8 1369( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x65, 0x66) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x73) ) ) ? 4 : 0 )
a1b2a50f
KW
1370
1371/*
a1b2a50f
KW
1372 QUOTEMETA: Meta-characters that \Q should quote
1373
1374 \p{_Perl_Quotemeta}
1375*/
1376/*** GENERATED CODE ***/
2f338e94 1377#define is_QUOTEMETA_high_part0_(s) \
88086fd8 1378( ( 0x63 == ((const U8*)s)[1] ) ? \
e42cde6b 1379 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
88086fd8
KW
1380 : ( ( 0x71 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x64) ) ) ? 3 : 0 )
1381
1382
1383/*** GENERATED CODE ***/
2f338e94 1384#define is_QUOTEMETA_high_part1_(s) \
88086fd8
KW
1385( ( 0xBE == ((const U8*)s)[0] ) ? \
1386 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x55) ) ) ? 3 : 0 )\
e42cde6b 1387: ( 0xCA == ((const U8*)s)[0] ) ? \
88086fd8
KW
1388 ( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x54, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) ?\
1389 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
29f3ce8f 1390 : ( 0x42 == ((const U8*)s)[1] ) ? \
88086fd8 1391 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
29f3ce8f 1392 : ( 0x43 == ((const U8*)s)[1] ) ? \
88086fd8 1393 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x42, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x62 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x64, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
29f3ce8f 1394 : ( 0x44 == ((const U8*)s)[1] ) ? \
88086fd8
KW
1395 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) ) ? 3 : 0 )\
1396 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
e42cde6b 1397: ( 0xCB == ((const U8*)s)[0] ) ? \
88086fd8
KW
1398 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x43) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x69) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x71, 0x73) ) ?\
1399 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
29f3ce8f 1400 : ( 0x6A == ((const U8*)s)[1] ) ? \
88086fd8
KW
1401 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x64) ) ? 3 : 0 )\
1402 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
29f3ce8f 1403: ( 0xCC == ((const U8*)s)[0] ) ? \
88086fd8 1404 ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
29f3ce8f 1405: ( 0xCD == ((const U8*)s)[0] ) ? \
88086fd8 1406 ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x59) || 0x62 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
29f3ce8f
KW
1407: ( 0xCE == ((const U8*)s)[0] ) ? \
1408 ( ( 0x41 == ((const U8*)s)[1] ) ? \
88086fd8 1409 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
29f3ce8f
KW
1410 : ( 0x42 == ((const U8*)s)[1] ) ? \
1411 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
1412 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1413: ( 0xDD == ((const U8*)s)[0] ) ? \
1414 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1415 ( ( 0x4A == ((const U8*)s)[2] ) ? \
88086fd8 1416 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ? 4 : 0 )\
29f3ce8f 1417 : ( 0x57 == ((const U8*)s)[2] ) ? \
88086fd8 1418 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
29f3ce8f 1419 : ( 0x59 == ((const U8*)s)[2] ) ? \
88086fd8 1420 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x46, 0x47) ) ? 4 : 0 )\
29f3ce8f
KW
1421 : ( 0x66 == ((const U8*)s)[2] ) ? \
1422 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1423 : ( 0x71 == ((const U8*)s)[2] ) ? \
1424 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
88086fd8 1425 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x67) ) ) ? 4 : 0 )\
a1b2a50f 1426 : 0 ) \
29f3ce8f
KW
1427: ( 0xDF == ((const U8*)s)[0] ) ? \
1428 ( ( 0x56 == ((const U8*)s)[1] ) ? \
88086fd8
KW
1429 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x44) ) ) ? 4 : 0 )\
1430 : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x69) ) ) ? 4 : 0 )\
1431: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x73) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x70, 0x73) ) ) ? 5 : 0 )
1432
1433
1434/*** GENERATED CODE ***/
1435#define is_QUOTEMETA_high(s) \
1436( ( 0xB1 == ((const U8*)s)[0] ) ? \
1437 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1438: ( 0xB8 == ((const U8*)s)[0] ) ? \
1439 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1440: ( 0xBB == ((const U8*)s)[0] ) ? \
1441 ( ( 0x51 == ((const U8*)s)[1] ) ? \
1442 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1443 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2f338e94 1444: ( 0xBC == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0_(s) : is_QUOTEMETA_high_part1_(s) )
a1b2a50f
KW
1445
1446/*
1447 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1448
a50454ce 1449 %regcharclass_multi_char_folds::multi_char_folds('u', 'a')
a1b2a50f
KW
1450*/
1451/*** GENERATED CODE ***/
2f338e94 1452#define is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
88086fd8 1453( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
1454
1455
1456/*** GENERATED CODE ***/
2f338e94 1457#define is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
88086fd8 1458( ( 0x8F == ((const U8*)s)[0] ) ? \
114fc8b6
KW
1459 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1460 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1461 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1462 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
1463 : 0 ) \
cf9d46fd 1464 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
29f3ce8f 1465 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1466 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
114fc8b6
KW
1467 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1468 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1469 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
cf9d46fd 1470 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
29f3ce8f 1471 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1472 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
29f3ce8f
KW
1473 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1474 : ( 0xAB == ((const U8*)s)[0] ) ? \
cf9d46fd 1475 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
29f3ce8f
KW
1476 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1477 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1478 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1479 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1480 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1481 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1482 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1483 : 0 ) \
1484 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1485 : ( 0x68 == ((const U8*)s)[1] ) ? \
1486 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1487 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1488 ( ( 0xAF == ((const U8*)s)[4] ) ? \
88086fd8 1489 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
29f3ce8f
KW
1490 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1491 : 0 ) \
1492 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1493 : 0 ) \
1494 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1495 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1496 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1497 : ( 0x46 == ((const U8*)s)[1] ) ? \
1498 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1499 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1500 ( ( 0xAF == ((const U8*)s)[4] ) ? \
88086fd8 1501 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
29f3ce8f
KW
1502 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1503 : ( 0x62 == ((const U8*)s)[3] ) ? \
1504 ( ( 0xAF == ((const U8*)s)[4] ) ? \
88086fd8 1505 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 4 )\
29f3ce8f
KW
1506 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1507 : 0 ) \
1508 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1509 : ( 0x4A == ((const U8*)s)[1] ) ? \
1510 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1511 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1512 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1513 : 0 ) \
1514 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1515 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1516 : ( 0xB8 == ((const U8*)s)[0] ) ? \
1517 ( ( 0x52 == ((const U8*)s)[1] ) ? \
1518 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1519 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1520 : ( 0x63 == ((const U8*)s)[2] ) ? \
1521 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1522 : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1523 : 0 ) \
1524 : ( 0xBF == ((const U8*)s)[0] ) ? \
88086fd8
KW
1525 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
1526 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1527 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
29f3ce8f
KW
1528 : 0 )
1529
1530
1531/*** GENERATED CODE ***/
2f338e94 1532#define is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
cf9d46fd 1533( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
29f3ce8f 1534 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd
KW
1535 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1536 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1537 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1538 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1539 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
29f3ce8f 1540 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1541 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
29f3ce8f
KW
1542 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1543 : ( 0x8F == ((const U8*)s)[0] ) ? \
114fc8b6
KW
1544 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1545 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1546 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1547 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
1548 : 0 ) \
cf9d46fd 1549 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
29f3ce8f 1550 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1551 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
114fc8b6
KW
1552 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1553 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1554 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
cf9d46fd 1555 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
29f3ce8f 1556 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1557 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
29f3ce8f
KW
1558 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1559 : ( 0xAB == ((const U8*)s)[0] ) ? \
cf9d46fd 1560 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
29f3ce8f
KW
1561 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1562 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1563 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1564 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1565 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1566 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1567 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1568 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1569 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1570 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1571 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1572 : ( 0x46 == ((const U8*)s)[1] ) ? \
1573 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1574 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1575 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1576 : ( 0x4A == ((const U8*)s)[1] ) ? \
1577 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1578 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1579 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1580 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1581 : ( 0xBF == ((const U8*)s)[0] ) ? \
88086fd8
KW
1582 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
1583 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1584 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
29f3ce8f
KW
1585 : 0 )
1586
1587
1588/*** GENERATED CODE ***/
2f338e94 1589#define is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
a1b2a50f 1590( ((e)-(s) > 3) ? \
cf9d46fd 1591 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
29f3ce8f 1592 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd
KW
1593 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1594 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1595 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1596 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1597 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
29f3ce8f 1598 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1599 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
29f3ce8f
KW
1600 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1601 : ( 0x8F == ((const U8*)s)[0] ) ? \
114fc8b6
KW
1602 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1603 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1604 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1605 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
1606 : 0 ) \
cf9d46fd 1607 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
29f3ce8f 1608 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1609 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
114fc8b6
KW
1610 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1611 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1612 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
cf9d46fd 1613 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
29f3ce8f 1614 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1615 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
29f3ce8f
KW
1616 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1617 : ( 0xAB == ((const U8*)s)[0] ) ? \
cf9d46fd 1618 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
29f3ce8f
KW
1619 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1620 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1621 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1622 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1623 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1624 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1625 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1626 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1627 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1628 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1629 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1630 : ( 0x46 == ((const U8*)s)[1] ) ? \
1631 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1632 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1633 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1634 : ( 0x4A == ((const U8*)s)[1] ) ? \
1635 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1636 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1637 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1638 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
a1b2a50f
KW
1639 : 0 ) \
1640: ((e)-(s) > 2) ? \
cf9d46fd 1641 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
29f3ce8f 1642 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd
KW
1643 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1644 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1645 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1646 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1647 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
29f3ce8f 1648 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1649 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
29f3ce8f 1650 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
114fc8b6
KW
1651 : ( 0x8F == ((const U8*)s)[0] ) ? \
1652 ( ( ( 0x73 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ) ? 3 : 0 )\
cf9d46fd 1653 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
29f3ce8f 1654 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1655 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
114fc8b6
KW
1656 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1657 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1658 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
cf9d46fd 1659 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
29f3ce8f 1660 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1661 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
29f3ce8f 1662 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 1663 : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
a1b2a50f 1664: ((e)-(s) > 1) ? \
cf9d46fd
KW
1665 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1666 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1667 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
a1b2a50f
KW
1668: 0 )
1669
1670
1671/*** GENERATED CODE ***/
1672#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
1673( ((e)-(s) > 5) ? \
cf9d46fd 1674 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
29f3ce8f 1675 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
114fc8b6
KW
1676 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1677 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1678 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1679 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
88086fd8
KW
1680 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1681 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2f338e94
KW
1682 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )\
1683: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )
a1b2a50f 1684
a50454ce 1685/*** GENERATED CODE ***/
2f338e94 1686#define what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
a50454ce
KW
1687( ( 0x52 == ((const U8*)s)[1] ) ? \
1688 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1689 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x587 : 0 )\
1690 : ( 0x63 == ((const U8*)s)[2] ) ? \
1691 ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) ? ( ( 0x46 == ((const U8*)s)[5] ) ? 0xFB14\
1692 : ( 0x52 == ((const U8*)s)[5] ) ? 0xFB15 \
1693 : ( 0x54 == ((const U8*)s)[5] ) ? 0xFB17 \
1694 : ( 0x65 == ((const U8*)s)[5] ) ? 0xFB13 : 0 ) : 0 )\
1695 : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 0xFB16 : 0 )\
1696 : 0 )
1697
1698
1699/*** GENERATED CODE ***/
2f338e94 1700#define what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
a50454ce
KW
1701( ( 0xBF == ((const U8*)s)[0] ) ? \
1702 ( ( 0x67 == ((const U8*)s)[1] ) ? \
1703 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1704 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
1705 : ( 0x42 == ((const U8*)s)[2] ) ? \
1706 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
1707 : ( 0x43 == ((const U8*)s)[2] ) ? \
1708 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
1709 : ( 0x44 == ((const U8*)s)[2] ) ? \
1710 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
1711 : ( 0x45 == ((const U8*)s)[2] ) ? \
1712 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
1713 : ( 0x46 == ((const U8*)s)[2] ) ? \
1714 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
1715 : ( 0x47 == ((const U8*)s)[2] ) ? \
1716 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
1717 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
1718 : ( 0x68 == ((const U8*)s)[1] ) ? \
1719 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1720 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
1721 : ( 0x42 == ((const U8*)s)[2] ) ? \
1722 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
1723 : ( 0x43 == ((const U8*)s)[2] ) ? \
1724 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
1725 : ( 0x44 == ((const U8*)s)[2] ) ? \
1726 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
1727 : ( 0x45 == ((const U8*)s)[2] ) ? \
1728 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
1729 : ( 0x46 == ((const U8*)s)[2] ) ? \
1730 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
1731 : ( 0x47 == ((const U8*)s)[2] ) ? \
1732 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
1733 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
1734 : ( 0x6A == ((const U8*)s)[1] ) ? \
1735 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1736 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
1737 : ( 0x42 == ((const U8*)s)[2] ) ? \
1738 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
1739 : ( 0x43 == ((const U8*)s)[2] ) ? \
1740 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
1741 : ( 0x44 == ((const U8*)s)[2] ) ? \
1742 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
1743 : ( 0x45 == ((const U8*)s)[2] ) ? \
1744 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
1745 : ( 0x46 == ((const U8*)s)[2] ) ? \
1746 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
1747 : ( 0x47 == ((const U8*)s)[2] ) ? \
1748 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
1749 : ( 0x48 == ((const U8*)s)[2] ) ? \
1750 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
1751 : ( 0x57 == ((const U8*)s)[2] ) ? \
1752 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
1753 : ( 0x63 == ((const U8*)s)[2] ) ? \
1754 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
1755 : ( ( ( 0x70 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
1756 : 0 ) \
1757 : 0 )
1758
1759
1760/*** GENERATED CODE ***/
2f338e94 1761#define what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
a50454ce
KW
1762( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1763 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
1764 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
1765 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
1766 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 )
1767
1768
1769/*** GENERATED CODE ***/
2f338e94 1770#define what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
a50454ce
KW
1771( ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1772 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
1773 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1774 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
1775 : ( 0x8F == ((const U8*)s)[0] ) ? \
1776 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1777 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1778 ( ( 0x73 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
1779 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
1780 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1781 : 0 ) \
1782 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1783 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
1784 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1785 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1786 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
1787 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
1788 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1789 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1790 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
1791 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
1792 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
1793 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
1794 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
1795 : ( 0xAB == ((const U8*)s)[0] ) ? \
1796 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
1797 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1798 ( ( 0x53 == ((const U8*)s)[1] ) ? \
1799 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
1800 : ( 0x55 == ((const U8*)s)[1] ) ? \
1801 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
1802 : ( 0x58 == ((const U8*)s)[1] ) ? \
1803 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1804 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1805 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 0x1FB7 : 0x1FB6 )\
1806 : 0 ) \
1807 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
1808 : ( 0x66 == ((const U8*)s)[1] ) ? \
1809 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1810 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1811 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 0x1FC7 : 0x1FC6 )\
1812 : 0 ) \
1813 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
1814 : ( 0x68 == ((const U8*)s)[1] ) ? \
1815 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1816 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1817 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1818 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FD2 \
1819 : ( 0x42 == ((const U8*)s)[5] ) ? 0x390 : 0 ) \
1820 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FD7 : 0 )\
1821 : 0 ) \
1822 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
1823 : 0 ) \
1824 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1825 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1826 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
1827 : ( 0x46 == ((const U8*)s)[1] ) ? \
1828 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1829 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1830 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1831 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FE2 \
1832 : ( 0x42 == ((const U8*)s)[5] ) ? 0x3B0 : 0 ) \
1833 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FE7 : 0 )\
1834 : ( 0x62 == ((const U8*)s)[3] ) ? \
1835 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1836 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1F52 \
1837 : ( 0x42 == ((const U8*)s)[5] ) ? 0x1F54 : 0x1F50 ) \
1838 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1F56 : 0x1F50 )\
1839 : 0 ) \
1840 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
1841 : ( 0x4A == ((const U8*)s)[1] ) ? \
1842 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1843 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1844 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 0x1FF7 : 0x1FF6 )\
1845 : 0 ) \
1846 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
1847 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
2f338e94 1848 : ( 0xB8 == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )
a50454ce
KW
1849
1850
1851/*** GENERATED CODE ***/
2f338e94 1852#define what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) \
a50454ce
KW
1853( ( 0x42 == ((const U8*)s)[1] ) ? \
1854 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
1855 : ( 0x46 == ((const U8*)s)[1] ) ? \
1856 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1857 ( ( 0x62 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
1858 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
1859 : ( 0x4A == ((const U8*)s)[1] ) ? \
1860 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1861 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
1862 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
1863 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
1864
1865
1866/*** GENERATED CODE ***/
2f338e94 1867#define what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) \
a50454ce
KW
1868( ( 0xBF == ((const U8*)s)[0] ) ? \
1869 ( ( 0x67 == ((const U8*)s)[1] ) ? \
1870 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1871 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
1872 : ( 0x42 == ((const U8*)s)[2] ) ? \
1873 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
1874 : ( 0x43 == ((const U8*)s)[2] ) ? \
1875 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
1876 : ( 0x44 == ((const U8*)s)[2] ) ? \
1877 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
1878 : ( 0x45 == ((const U8*)s)[2] ) ? \
1879 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
1880 : ( 0x46 == ((const U8*)s)[2] ) ? \
1881 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
1882 : ( 0x47 == ((const U8*)s)[2] ) ? \
1883 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
1884 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
1885 : ( 0x68 == ((const U8*)s)[1] ) ? \
1886 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1887 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
1888 : ( 0x42 == ((const U8*)s)[2] ) ? \
1889 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
1890 : ( 0x43 == ((const U8*)s)[2] ) ? \
1891 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
1892 : ( 0x44 == ((const U8*)s)[2] ) ? \
1893 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
1894 : ( 0x45 == ((const U8*)s)[2] ) ? \
1895 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
1896 : ( 0x46 == ((const U8*)s)[2] ) ? \
1897 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
1898 : ( 0x47 == ((const U8*)s)[2] ) ? \
1899 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
1900 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
1901 : ( 0x6A == ((const U8*)s)[1] ) ? \
1902 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1903 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
1904 : ( 0x42 == ((const U8*)s)[2] ) ? \
1905 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
1906 : ( 0x43 == ((const U8*)s)[2] ) ? \
1907 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
1908 : ( 0x44 == ((const U8*)s)[2] ) ? \
1909 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
1910 : ( 0x45 == ((const U8*)s)[2] ) ? \
1911 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
1912 : ( 0x46 == ((const U8*)s)[2] ) ? \
1913 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
1914 : ( 0x47 == ((const U8*)s)[2] ) ? \
1915 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
1916 : ( 0x48 == ((const U8*)s)[2] ) ? \
1917 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
1918 : ( 0x57 == ((const U8*)s)[2] ) ? \
1919 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
1920 : ( 0x63 == ((const U8*)s)[2] ) ? \
1921 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
1922 : ( ( ( 0x70 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
1923 : 0 ) \
1924 : 0 )
1925
1926
1927/*** GENERATED CODE ***/
2f338e94 1928#define what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) \
a50454ce
KW
1929( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1930 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
1931 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1932 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1933 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
1934 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
1935 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
1936 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
1937 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1938 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
1939 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1940 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
1941 : ( 0x8F == ((const U8*)s)[0] ) ? \
1942 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1943 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1944 ( ( 0x73 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
1945 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
1946 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1947 : 0 ) \
1948 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1949 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
1950 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1951 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1952 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
1953 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
1954 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1955 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1956 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
1957 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
1958 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
1959 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
1960 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
1961 : ( 0xAB == ((const U8*)s)[0] ) ? \
1962 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
1963 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1964 ( ( 0x53 == ((const U8*)s)[1] ) ? \
1965 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
1966 : ( 0x55 == ((const U8*)s)[1] ) ? \
1967 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
1968 : ( 0x58 == ((const U8*)s)[1] ) ? \
1969 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1970 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
1971 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
1972 : ( 0x66 == ((const U8*)s)[1] ) ? \
1973 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1974 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
1975 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
1976 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
1977 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1978 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1979 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
1980 : ( 0x46 == ((const U8*)s)[1] ) ? \
1981 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1982 ( ( 0x62 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
1983 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
1984 : ( 0x4A == ((const U8*)s)[1] ) ? \
1985 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1986 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
1987 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
1988 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
1989 : 0 )
1990
1991
1992/*** GENERATED CODE ***/
2f338e94 1993#define what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) \
a50454ce
KW
1994( ((e)-(s) > 2) ? \
1995 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1996 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
1997 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1998 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1999 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2000 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2001 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2002 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2003 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2004 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
2005 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2006 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
2007 : ( 0x8F == ((const U8*)s)[0] ) ? \
2008 ( ( 0x73 == ((const U8*)s)[1] ) ? \
2009 ( ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
2010 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2011 : 0 ) \
2012 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2013 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
2014 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2015 ( ( 0x8F == ((const U8*)s)[1] ) ? \
2016 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
2017 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2018 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2019 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2020 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
2021 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
2022 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
2023 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
2024 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
2025 : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
2026: ((e)-(s) > 1) ? \
2027 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2028 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 0xFB00 \
2029 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2030 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2031 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2032 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2033 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2034 : 0 ) \
2035: 0 )
2036
2037
2038/*** GENERATED CODE ***/
2039#define what_MULTI_CHAR_FOLD_utf8_safe(s,e) \
2040( ((e)-(s) > 5) ? \
2041 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2042 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
2f338e94 2043 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )\
a50454ce
KW
2044: ((e)-(s) > 4) ? \
2045 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2046 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
2047 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2048 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2049 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2050 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2051 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2052 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2053 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2054 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
2055 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2056 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
2057 : ( 0x8F == ((const U8*)s)[0] ) ? \
2058 ( ( 0x73 == ((const U8*)s)[1] ) ? \
2059 ( ( 0x8F == ((const U8*)s)[2] ) ? \
2060 ( ( 0x73 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
2061 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
2062 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2063 : 0 ) \
2064 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2065 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
2066 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2067 ( ( 0x8F == ((const U8*)s)[1] ) ? \
2068 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
2069 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2070 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2071 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2072 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
2073 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
2074 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
2075 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
2076 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
2077 : ( 0xAB == ((const U8*)s)[0] ) ? \
2078 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
2079 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2080 ( ( 0x53 == ((const U8*)s)[1] ) ? \
2081 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
2082 : ( 0x55 == ((const U8*)s)[1] ) ? \
2083 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
2084 : ( 0x58 == ((const U8*)s)[1] ) ? \
2085 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2086 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
2087 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
2088 : ( 0x66 == ((const U8*)s)[1] ) ? \
2089 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2090 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
2091 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
2092 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
2f338e94
KW
2093 : ( 0xB5 == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) )\
2094: ((e)-(s) > 3) ? what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) )
a50454ce 2095
a1b2a50f
KW
2096/*
2097 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
2098
a50454ce 2099 %regcharclass_multi_char_folds::multi_char_folds('l', 'a')
a1b2a50f
KW
2100*/
2101/*** GENERATED CODE ***/
2102#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
2103( ((e)-(s) > 2) ? \
fdc26d94
KW
2104 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2105 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2106 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2107 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2108 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
a1b2a50f 2109: ((e)-(s) > 1) ? \
fdc26d94
KW
2110 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2111 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2112 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
a1b2a50f
KW
2113: 0 )
2114
a50454ce
KW
2115/*** GENERATED CODE ***/
2116#define what_MULTI_CHAR_FOLD_latin1_safe(s,e) \
2117( ((e)-(s) > 2) ? \
2118 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2119 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2120 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2121 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2122 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2123 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2124 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2125 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2126 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2127 : 0 ) \
2128: ((e)-(s) > 1) ? \
2129 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2130 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 0xFB00 \
2131 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2132 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2133 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2134 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2135 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2136 : 0 ) \
2137: 0 )
2138
a1b2a50f 2139/*
42d7c910
KW
2140 THREE_CHAR_FOLD: A three-character multi-char fold
2141
a50454ce 2142 %regcharclass_multi_char_folds::multi_char_folds('u', '3')
42d7c910
KW
2143*/
2144/*** GENERATED CODE ***/
2145#define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
2146( ((e)-(s) > 5) ? \
cf9d46fd
KW
2147 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2148 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )\
42d7c910
KW
2149 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2150 ( ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
2151 ( ( ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB4 == ((const U8*)s)[4] ) ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2152 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x49 == ((const U8*)s)[3] ) ) ? ( ( 0xAF == ((const U8*)s)[4] ) ?\
88086fd8 2153 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
42d7c910
KW
2154 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
2155 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2156 ( ( 0x46 == ((const U8*)s)[1] ) ? \
2157 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x62 == ((const U8*)s)[3] ) ) ? ( ( 0xAF == ((const U8*)s)[4] ) ?\
88086fd8 2158 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
42d7c910
KW
2159 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
2160 : ( ( ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB4 == ((const U8*)s)[4] ) ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2161 : 0 ) \
cf9d46fd 2162: ( ( ( ((e)-(s) > 2) && ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )
42d7c910
KW
2163
2164/*
2165 THREE_CHAR_FOLD: A three-character multi-char fold
2166
a50454ce 2167 %regcharclass_multi_char_folds::multi_char_folds('l', '3')
42d7c910
KW
2168*/
2169/*** GENERATED CODE ***/
2170#define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
fdc26d94 2171( ( ( ( ( ((e) - (s)) >= 3 ) && ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )
42d7c910
KW
2172
2173/*
2174 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
2175
a50454ce 2176 %regcharclass_multi_char_folds::multi_char_folds('u', 'h')
42d7c910
KW
2177*/
2178/*** GENERATED CODE ***/
2179#define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
2180( ((e)-(s) > 3) ? \
cf9d46fd
KW
2181 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
2182 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2183 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
114fc8b6
KW
2184 : ( 0x8F == ((const U8*)s)[0] ) ? \
2185 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
42d7c910
KW
2186 : ( 0xAB == ((const U8*)s)[0] ) ? \
2187 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2188 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2189 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
2190 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
2191 ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2192 : ( 0x68 == ((const U8*)s)[1] ) ? \
2193 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2194 : 0 ) \
2195 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2196 ( ( 0x42 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
2197 : ( 0x46 == ((const U8*)s)[1] ) ? \
2198 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x62 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2199 : ( 0x4A == ((const U8*)s)[1] ) ? \
2200 ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2201 : 0 ) \
2202 : ( 0xB8 == ((const U8*)s)[0] ) ? \
2203 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2204 : ( 0xBF == ((const U8*)s)[0] ) ? \
88086fd8
KW
2205 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
2206 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
2207 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
42d7c910
KW
2208 : 0 ) \
2209: ((e)-(s) > 2) ? \
cf9d46fd
KW
2210 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
2211 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2212 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
114fc8b6
KW
2213 : ( 0x8F == ((const U8*)s)[0] ) ? \
2214 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
42d7c910
KW
2215 : ( 0xAB == ((const U8*)s)[0] ) ? \
2216 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2217 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2218 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? 2 : 0 )\
2219 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2220 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ? 2 : 0 )\
2221 : ( 0xB8 == ((const U8*)s)[0] ) ? \
2222 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2223 : ( 0xBF == ((const U8*)s)[0] ) ? \
88086fd8
KW
2224 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
2225 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
2226 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
42d7c910
KW
2227 : 0 ) \
2228: ((e)-(s) > 1) ? \
cf9d46fd
KW
2229 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
2230 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2231 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
114fc8b6
KW
2232 : ( 0x8F == ((const U8*)s)[0] ) ? \
2233 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
42d7c910
KW
2234 : ( 0xAB == ((const U8*)s)[0] ) ? \
2235 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2236 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2237 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? 2 : 0 )\
2238 : ( ( 0xB5 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
2239: ((e)-(s) > 0) ? \
cf9d46fd 2240 ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
42d7c910
KW
2241: 0 )
2242
2243/*
2244 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
2245
a50454ce 2246 %regcharclass_multi_char_folds::multi_char_folds('l', 'h')
42d7c910
KW
2247*/
2248/*** GENERATED CODE ***/
2249#define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
2250( ((e)-(s) > 1) ? \
fdc26d94
KW
2251 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
2252 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2253 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
42d7c910
KW
2254 : 0 ) \
2255: ((e)-(s) > 0) ? \
fdc26d94 2256 ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
42d7c910
KW
2257: 0 )
2258
2259/*
a1b2a50f
KW
2260 FOLDS_TO_MULTI: characters that fold to multi-char strings
2261
2262 \p{_Perl_Folds_To_Multi_Char}
2263*/
2264/*** GENERATED CODE ***/
2265#define is_FOLDS_TO_MULTI_utf8(s) \
29f3ce8f
KW
2266( ( 0x8A == ((const U8*)s)[0] ) ? \
2267 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
88086fd8 2268: ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0xB3, 0xB4) ) ?\
29f3ce8f
KW
2269 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2270: ( 0x8E == ((const U8*)s)[0] ) ? \
2271 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2272: ( 0xB8 == ((const U8*)s)[0] ) ? \
2273 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2274: ( 0xBF == ((const U8*)s)[0] ) ? \
2275 ( ( 0x63 == ((const U8*)s)[1] ) ? \
88086fd8 2276 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
2277 : ( 0x69 == ((const U8*)s)[1] ) ? \
2278 ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
2279 : ( 0x70 == ((const U8*)s)[1] ) ? \
88086fd8 2280 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
29f3ce8f 2281 : ( 0x71 == ((const U8*)s)[1] ) ? \
88086fd8 2282 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) || 0x59 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x66) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f 2283 : ( 0x72 == ((const U8*)s)[1] ) ? \
88086fd8
KW
2284 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x43, 0x45) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x47, 0x48) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x66) ) ? 3 : 0 )\
2285 : ( ( 0x73 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x43, 0x45) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x47, 0x48) || 0x59 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x66) || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2286: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x66) ) ) ? 4 : 0 )
a1b2a50f
KW
2287
2288/*
2289 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
2290
2291 \p{_Perl_Problematic_Locale_Folds}
2292*/
2293/*** GENERATED CODE ***/
2294#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
88086fd8
KW
2295( ( ( ((const U8*)s)[0] <= ' ' ) || inRANGE_helper_(U8, ((const U8*)s)[0], '.', '&') || inRANGE_helper_(U8, ((const U8*)s)[0], '!', '/') || inRANGE_helper_(U8, ((const U8*)s)[0], ',', '?') || inRANGE_helper_(U8, ((const U8*)s)[0], '`', '"') || inRANGE_helper_(U8, ((const U8*)s)[0], 'a', 'i') || inRANGE_helper_(U8, ((const U8*)s)[0], 'j', 'r') || inRANGE_helper_(U8, ((const U8*)s)[0], '~', 'z') || '[' == ((const U8*)s)[0] || ']' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '{', 'I') || inRANGE_helper_(U8, ((const U8*)s)[0], '}', 'R') || '\\' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 'S', 'Z') || inRANGE_helper_(U8, ((const U8*)s)[0], '0', '9') || 0xFF == ((const U8*)s)[0] ) ? 1\
2296: ( 0x80 == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0x8A, 0x8B) ) ?\
2297 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) ? 2 : 0 )\
e061e593 2298: ( 0x8D == ((const U8*)s)[0] ) ? \
88086fd8 2299 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
29f3ce8f
KW
2300: ( 0x8E == ((const U8*)s)[0] ) ? \
2301 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2302: ( 0x8F == ((const U8*)s)[0] ) ? \
2303 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e061e593
KW
2304: ( 0x9C == ((const U8*)s)[0] ) ? \
2305 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2306: ( 0xAF == ((const U8*)s)[0] ) ? \
2307 ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 ) \
88086fd8 2308: ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xB3, 0xB4) ) ? \
29f3ce8f
KW
2309 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2310: ( 0xBF == ((const U8*)s)[0] ) ? \
88086fd8 2311 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 2312: ( 0xCA == ((const U8*)s)[0] ) ? \
88086fd8
KW
2313 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x52) ) ) ? 3 : 0 )\
2314: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) ) ) ? 4 : 0 )
a1b2a50f
KW
2315
2316/*** GENERATED CODE ***/
2317#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
2318( cp <= 0xFF || ( 0xFF < cp && \
88086fd8 2319( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
a1b2a50f
KW
2320( 0x149 == cp || ( 0x149 < cp && \
2321( 0x178 == cp || ( 0x178 < cp && \
2322( 0x17F == cp || ( 0x17F < cp && \
2323( 0x1F0 == cp || ( 0x1F0 < cp && \
e061e593 2324( 0x307 == cp || ( 0x307 < cp && \
a1b2a50f
KW
2325( 0x39C == cp || ( 0x39C < cp && \
2326( 0x3BC == cp || ( 0x3BC < cp && \
88086fd8 2327( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
a1b2a50f 2328( 0x1E9E == cp || ( 0x1E9E < cp && \
88086fd8 2329( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
a1b2a50f
KW
2330
2331/*
2332 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
2333
2334 \p{_Perl_Problematic_Locale_Foldeds_Start}
2335*/
2336/*** GENERATED CODE ***/
2337#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
88086fd8
KW
2338( ( ( ((const U8*)s)[0] <= ' ' ) || inRANGE_helper_(U8, ((const U8*)s)[0], '.', '&') || inRANGE_helper_(U8, ((const U8*)s)[0], '!', '/') || inRANGE_helper_(U8, ((const U8*)s)[0], ',', '?') || inRANGE_helper_(U8, ((const U8*)s)[0], '`', '"') || inRANGE_helper_(U8, ((const U8*)s)[0], 'a', 'i') || inRANGE_helper_(U8, ((const U8*)s)[0], 'j', 'r') || inRANGE_helper_(U8, ((const U8*)s)[0], '~', 'z') || '[' == ((const U8*)s)[0] || ']' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '{', 'I') || inRANGE_helper_(U8, ((const U8*)s)[0], '}', 'R') || '\\' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 'S', 'Z') || inRANGE_helper_(U8, ((const U8*)s)[0], '0', '9') || 0xFF == ((const U8*)s)[0] ) ? 1\
2339: ( 0x80 == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0x8A, 0x8B) ) ?\
2340 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) ? 2 : 0 )\
e061e593 2341: ( 0x8D == ((const U8*)s)[0] ) ? \
88086fd8 2342 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
29f3ce8f
KW
2343: ( 0x8E == ((const U8*)s)[0] ) ? \
2344 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2345: ( 0x8F == ((const U8*)s)[0] ) ? \
2346 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e061e593
KW
2347: ( 0x9C == ((const U8*)s)[0] ) ? \
2348 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
88086fd8 2349: ( 0xAB == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0xB3, 0xB4) ) ?\
29f3ce8f
KW
2350 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2351: ( 0xBF == ((const U8*)s)[0] ) ? \
88086fd8 2352 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 2353: ( 0xCA == ((const U8*)s)[0] ) ? \
88086fd8
KW
2354 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x52) ) ) ? 3 : 0 )\
2355: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) ) ) ? 4 : 0 )
a1b2a50f
KW
2356
2357/*** GENERATED CODE ***/
2358#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
2359( cp <= 0xFF || ( 0xFF < cp && \
88086fd8 2360( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
a1b2a50f
KW
2361( 0x149 == cp || ( 0x149 < cp && \
2362( 0x178 == cp || ( 0x178 < cp && \
2363( 0x17F == cp || ( 0x17F < cp && \
2364( 0x1F0 == cp || ( 0x1F0 < cp && \
2365( 0x2BC == cp || ( 0x2BC < cp && \
2366( 0x39C == cp || ( 0x39C < cp && \
2367( 0x3BC == cp || ( 0x3BC < cp && \
88086fd8 2368( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
a1b2a50f 2369( 0x1E9E == cp || ( 0x1E9E < cp && \
88086fd8 2370( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
a1b2a50f
KW
2371
2372/*
2373 PATWS: pattern white space
2374
099323b4 2375 \p{_Perl_PatWS}
a1b2a50f
KW
2376*/
2377/*** GENERATED CODE ***/
2378#define is_PATWS_safe(s,e,is_utf8) \
dd9bc2b0 2379( ( LIKELY((e) > (s)) ) ? \
88086fd8 2380 ( ( '\t' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || ' ' == ((const U8*)s)[0] ) ? 1\
29f3ce8f 2381 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
88086fd8
KW
2382 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x55, 0x56) ) ? 3 : 0 )\
2383 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 ) : 0 )\
a1b2a50f
KW
2384: 0 )
2385
a1b2a50f
KW
2386#endif /* EBCDIC 1047 */
2387
2388#if 'A' == 193 /* EBCDIC 037 */ \
2389 && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
2390 && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
c11f6329 2391 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
a1b2a50f
KW
2392/*
2393 LNBREAK: Line Break: \R
2394
2395 "\x0D\x0A" # CRLF - Network (Windows) line ending
2396 \p{VertSpace}
2397*/
2398/*** GENERATED CODE ***/
2399#define is_LNBREAK_safe(s,e,is_utf8) \
2400( ((e)-(s) > 2) ? \
88086fd8 2401 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
2402 : ( '\r' == ((const U8*)s)[0] ) ? \
2403 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
88086fd8 2404 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
a1b2a50f 2405: ((e)-(s) > 1) ? \
88086fd8 2406 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
2407 : ( '\r' == ((const U8*)s)[0] ) ? \
2408 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
2409 : 0 ) \
2410: ((e)-(s) > 0) ? \
88086fd8 2411 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] )\
a1b2a50f
KW
2412: 0 )
2413
2414/*** GENERATED CODE ***/
2415#define is_LNBREAK_utf8_safe(s,e) \
2416( ((e)-(s) > 2) ? \
88086fd8 2417 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
2418 : ( '\r' == ((const U8*)s)[0] ) ? \
2419 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
88086fd8 2420 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
a1b2a50f 2421: ((e)-(s) > 1) ? \
88086fd8 2422 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
2423 : ( '\r' == ((const U8*)s)[0] ) ? \
2424 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
2425 : 0 ) \
2426: ((e)-(s) > 0) ? \
88086fd8 2427 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] )\
a1b2a50f
KW
2428: 0 )
2429
2430/*** GENERATED CODE ***/
2431#define is_LNBREAK_latin1_safe(s,e) \
2432( ((e)-(s) > 1) ? \
88086fd8 2433 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
fdc26d94
KW
2434 : ( '\r' == ((const U8*)s)[0] ) ? \
2435 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
2436 : 0 ) \
2437: ((e)-(s) > 0) ? \
88086fd8 2438 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] )\
a1b2a50f
KW
2439: 0 )
2440
2441/*
2442 HORIZWS: Horizontal Whitespace: \h \H
2443
2444 \p{HorizSpace}
2445*/
2446/*** GENERATED CODE ***/
2447#define is_HORIZWS_high(s) \
29f3ce8f
KW
2448( ( 0xBD == ((const U8*)s)[0] ) ? \
2449 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2450: ( 0xCA == ((const U8*)s)[0] ) ? \
2451 ( ( 0x41 == ((const U8*)s)[1] ) ? \
88086fd8 2452 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
2453 : ( 0x42 == ((const U8*)s)[1] ) ? \
2454 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2455 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2456: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
2457
2458/*** GENERATED CODE ***/
2459#define is_HORIZWS_cp_high(cp) \
2460( 0x1680 == cp || ( 0x1680 < cp && \
88086fd8 2461( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
a1b2a50f
KW
2462( 0x202F == cp || ( 0x202F < cp && \
2463( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
2464
2465/*
2466 VERTWS: Vertical Whitespace: \v \V
2467
2468 \p{VertSpace}
2469*/
2470/*** GENERATED CODE ***/
2471#define is_VERTWS_high(s) \
88086fd8 2472( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )
a1b2a50f
KW
2473
2474/*** GENERATED CODE ***/
2475#define is_VERTWS_cp_high(cp) \
88086fd8 2476( inRANGE_helper_(UV, cp, 0x2028, 0x2029) )
a1b2a50f
KW
2477
2478/*
2479 XDIGIT: Hexadecimal digits
2480
2481 \p{XDigit}
2482*/
2483/*** GENERATED CODE ***/
2484#define is_XDIGIT_high(s) \
29f3ce8f 2485( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
88086fd8
KW
2486 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x67) ) ? 4 : 0 )\
2487 : ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x67, 0x68) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x42, 0x47) ) ) ? 4 : 0 ) : 0 )
a1b2a50f
KW
2488
2489/*** GENERATED CODE ***/
2490#define is_XDIGIT_cp_high(cp) \
88086fd8
KW
2491( inRANGE_helper_(UV, cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
2492( inRANGE_helper_(UV, cp, 0xFF21, 0xFF26) || inRANGE_helper_(UV, cp, 0xFF41, 0xFF46) ) ) )
a1b2a50f
KW
2493
2494/*
2495 XPERLSPACE: \p{XPerlSpace}
2496
2497 \p{XPerlSpace}
2498*/
2499/*** GENERATED CODE ***/
2500#define is_XPERLSPACE_high(s) \
29f3ce8f
KW
2501( ( 0xBD == ((const U8*)s)[0] ) ? \
2502 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2503: ( 0xCA == ((const U8*)s)[0] ) ? \
2504 ( ( 0x41 == ((const U8*)s)[1] ) ? \
88086fd8 2505 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f 2506 : ( 0x42 == ((const U8*)s)[1] ) ? \
88086fd8 2507 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
2508 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2509: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
2510
2511/*** GENERATED CODE ***/
2512#define is_XPERLSPACE_cp_high(cp) \
2513( 0x1680 == cp || ( 0x1680 < cp && \
88086fd8
KW
2514( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
2515( inRANGE_helper_(UV, cp, 0x2028, 0x2029) || ( 0x2029 < cp && \
a1b2a50f 2516( 0x202F == cp || ( 0x202F < cp && \
6d2bbfb0 2517( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
a1b2a50f
KW
2518
2519/*
a1b2a50f
KW
2520 NONCHAR: Non character code points
2521
099323b4 2522 \p{_Perl_Nchar}
a1b2a50f
KW
2523*/
2524/*** GENERATED CODE ***/
89d986df 2525#define is_NONCHAR_utf8_safe(s,e) \
29f3ce8f
KW
2526( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
2527 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2528 ( ( 0x55 == ((const U8*)s)[2] ) ? \
88086fd8 2529 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x72) ) ? 4 : 0 )\
29f3ce8f 2530 : ( 0x56 == ((const U8*)s)[2] ) ? \
88086fd8
KW
2531 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
2532 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
89d986df 2533 : 0 ) \
29f3ce8f 2534 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
88086fd8 2535 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
29f3ce8f 2536 : ( 0xED == ((const U8*)s)[0] ) ? \
88086fd8
KW
2537 ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x5F || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 )\
2538 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 ) : 0 )
a1b2a50f
KW
2539
2540/*
21cb232c 2541 SURROGATE: Surrogate code points
a1b2a50f 2542
099323b4 2543 \p{_Perl_Surrogate}
a1b2a50f
KW
2544*/
2545/*** GENERATED CODE ***/
89d986df 2546#define is_SURROGATE_utf8_safe(s,e) \
88086fd8 2547( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x64, 0x65) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x72) ) ) ? 4 : 0 )
a1b2a50f
KW
2548
2549/*
a1b2a50f
KW
2550 QUOTEMETA: Meta-characters that \Q should quote
2551
2552 \p{_Perl_Quotemeta}
2553*/
2554/*** GENERATED CODE ***/
2f338e94 2555#define is_QUOTEMETA_high_part0_(s) \
88086fd8
KW
2556( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x54, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) ?\
2557 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
2558 : ( 0x42 == ((const U8*)s)[1] ) ? \
2559 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x71) ) ? 3 : 0 )\
2560 : ( 0x43 == ((const U8*)s)[1] ) ? \
2561 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x42, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
2562 : ( 0x44 == ((const U8*)s)[1] ) ? \
2563 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) ) ? 3 : 0 )\
2564 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x57, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )
a1b2a50f
KW
2565
2566
2567/*** GENERATED CODE ***/
2f338e94 2568#define is_QUOTEMETA_high_part1_(s) \
88086fd8
KW
2569( ( 0xCB == ((const U8*)s)[0] ) ? \
2570 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x43) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x68) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) ?\
2571 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
29f3ce8f 2572 : ( 0x69 == ((const U8*)s)[1] ) ? \
88086fd8
KW
2573 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) ) ? 3 : 0 )\
2574 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )\
29f3ce8f 2575: ( 0xCC == ((const U8*)s)[0] ) ? \
88086fd8 2576 ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )\
29f3ce8f 2577: ( 0xCD == ((const U8*)s)[0] ) ? \
88086fd8 2578 ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x59) || 0x5F == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )\
29f3ce8f
KW
2579: ( 0xCE == ((const U8*)s)[0] ) ? \
2580 ( ( 0x41 == ((const U8*)s)[1] ) ? \
88086fd8 2581 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
29f3ce8f
KW
2582 : ( 0x42 == ((const U8*)s)[1] ) ? \
2583 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
2584 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2585: ( 0xDD == ((const U8*)s)[0] ) ? \
2586 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2587 ( ( 0x4A == ((const U8*)s)[2] ) ? \
88086fd8 2588 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ? 4 : 0 )\
29f3ce8f 2589 : ( 0x57 == ((const U8*)s)[2] ) ? \
88086fd8 2590 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
29f3ce8f 2591 : ( 0x59 == ((const U8*)s)[2] ) ? \
88086fd8 2592 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x46, 0x47) ) ? 4 : 0 )\
29f3ce8f
KW
2593 : ( 0x65 == ((const U8*)s)[2] ) ? \
2594 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2595 : ( 0x70 == ((const U8*)s)[2] ) ? \
2596 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
88086fd8 2597 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x66) ) ) ? 4 : 0 )\
a1b2a50f 2598 : 0 ) \
29f3ce8f
KW
2599: ( 0xDF == ((const U8*)s)[0] ) ? \
2600 ( ( 0x56 == ((const U8*)s)[1] ) ? \
88086fd8
KW
2601 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x44) ) ) ? 4 : 0 )\
2602 : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x68) ) ) ? 4 : 0 )\
2603: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x72) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x51, 0x59) || 0x5F == ((const U8*)s)[4] || inRANGE_helper_(U8, ((const U8*)s)[4], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x70, 0x72) ) ) ? 5 : 0 )
a1b2a50f
KW
2604
2605
2606/*** GENERATED CODE ***/
2607#define is_QUOTEMETA_high(s) \
29f3ce8f
KW
2608( ( 0xAF == ((const U8*)s)[0] ) ? \
2609 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
88086fd8
KW
2610: ( 0xB7 == ((const U8*)s)[0] ) ? \
2611 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2612: ( 0xBC == ((const U8*)s)[0] ) ? \
2613 ( ( 0x51 == ((const U8*)s)[1] ) ? \
2614 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2615 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2616: ( 0xBD == ((const U8*)s)[0] ) ? \
2617 ( ( 0x62 == ((const U8*)s)[1] ) ? \
2618 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2619 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) ) ) ? 3 : 0 )\
2620: ( 0xBE == ((const U8*)s)[0] ) ? \
2621 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x55) ) ) ? 3 : 0 )\
2f338e94 2622: ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0_(s) : is_QUOTEMETA_high_part1_(s) )
a1b2a50f
KW
2623
2624/*
2625 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
2626
a50454ce 2627 %regcharclass_multi_char_folds::multi_char_folds('u', 'a')
a1b2a50f
KW
2628*/
2629/*** GENERATED CODE ***/
2f338e94 2630#define is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
88086fd8 2631( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
2632
2633
2634/*** GENERATED CODE ***/
2f338e94 2635#define is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
88086fd8 2636( ( 0x8E == ((const U8*)s)[0] ) ? \
114fc8b6
KW
2637 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2638 ( ( 0x8E == ((const U8*)s)[2] ) ? \
2639 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2640 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
2641 : 0 ) \
cf9d46fd 2642 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
29f3ce8f 2643 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2644 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
114fc8b6
KW
2645 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2646 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2647 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
cf9d46fd 2648 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
29f3ce8f 2649 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2650 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
29f3ce8f
KW
2651 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2652 : ( 0xAA == ((const U8*)s)[0] ) ? \
cf9d46fd 2653 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
29f3ce8f
KW
2654 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2655 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
2656 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2657 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
2658 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2659 ( ( 0x43 == ((const U8*)s)[3] ) ? \
2660 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
2661 : 0 ) \
2662 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2663 : ( 0x67 == ((const U8*)s)[1] ) ? \
2664 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2665 ( ( 0x49 == ((const U8*)s)[3] ) ? \
2666 ( ( 0xAD == ((const U8*)s)[4] ) ? \
88086fd8 2667 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
29f3ce8f
KW
2668 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2669 : 0 ) \
2670 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2671 : 0 ) \
2672 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2673 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2674 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2675 : ( 0x46 == ((const U8*)s)[1] ) ? \
2676 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2677 ( ( 0x49 == ((const U8*)s)[3] ) ? \
2678 ( ( 0xAD == ((const U8*)s)[4] ) ? \
88086fd8 2679 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
29f3ce8f
KW
2680 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2681 : ( 0x5F == ((const U8*)s)[3] ) ? \
2682 ( ( 0xAD == ((const U8*)s)[4] ) ? \
88086fd8 2683 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 4 )\
29f3ce8f
KW
2684 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
2685 : 0 ) \
2686 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2687 : ( 0x4A == ((const U8*)s)[1] ) ? \
2688 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2689 ( ( 0x43 == ((const U8*)s)[3] ) ? \
2690 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
2691 : 0 ) \
2692 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2693 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2694 : ( 0xB7 == ((const U8*)s)[0] ) ? \
2695 ( ( 0x52 == ((const U8*)s)[1] ) ? \
2696 ( ( 0x46 == ((const U8*)s)[2] ) ? \
2697 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2698 : ( 0x62 == ((const U8*)s)[2] ) ? \
2699 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2700 : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2701 : 0 ) \
2702 : ( 0xBF == ((const U8*)s)[0] ) ? \
88086fd8
KW
2703 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
2704 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2705 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
29f3ce8f
KW
2706 : 0 )
2707
2708
2709/*** GENERATED CODE ***/
2f338e94 2710#define is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
cf9d46fd 2711( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
29f3ce8f 2712 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd
KW
2713 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2714 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2715 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2716 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2717 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
29f3ce8f 2718 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2719 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
29f3ce8f
KW
2720 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2721 : ( 0x8E == ((const U8*)s)[0] ) ? \
114fc8b6
KW
2722 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2723 ( ( 0x8E == ((const U8*)s)[2] ) ? \
2724 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2725 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
2726 : 0 ) \
cf9d46fd 2727 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
29f3ce8f 2728 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2729 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
114fc8b6
KW
2730 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2731 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2732 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
cf9d46fd 2733 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
29f3ce8f 2734 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2735 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
29f3ce8f
KW
2736 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2737 : ( 0xAA == ((const U8*)s)[0] ) ? \
cf9d46fd 2738 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
29f3ce8f
KW
2739 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2740 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
2741 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2742 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
2743 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2744 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2745 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2746 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2747 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2748 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2749 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2750 : ( 0x46 == ((const U8*)s)[1] ) ? \
2751 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2752 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
2753 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2754 : ( 0x4A == ((const U8*)s)[1] ) ? \
2755 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2756 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2757 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2758 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2759 : ( 0xBF == ((const U8*)s)[0] ) ? \
88086fd8
KW
2760 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
2761 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2762 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
29f3ce8f
KW
2763 : 0 )
2764
2765
2766/*** GENERATED CODE ***/
2f338e94 2767#define is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
a1b2a50f 2768( ((e)-(s) > 3) ? \
cf9d46fd 2769 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
29f3ce8f 2770 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd
KW
2771 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2772 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2773 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2774 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2775 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
29f3ce8f 2776 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2777 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
29f3ce8f
KW
2778 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2779 : ( 0x8E == ((const U8*)s)[0] ) ? \
114fc8b6
KW
2780 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2781 ( ( 0x8E == ((const U8*)s)[2] ) ? \
2782 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2783 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
2784 : 0 ) \
cf9d46fd 2785 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
29f3ce8f 2786 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2787 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
114fc8b6
KW
2788 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2789 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2790 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
cf9d46fd 2791 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
29f3ce8f 2792 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2793 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
29f3ce8f
KW
2794 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2795 : ( 0xAA == ((const U8*)s)[0] ) ? \
cf9d46fd 2796 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
29f3ce8f
KW
2797 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2798 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
2799 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2800 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
2801 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2802 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2803 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2804 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2805 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2806 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2807 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2808 : ( 0x46 == ((const U8*)s)[1] ) ? \
2809 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2810 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
2811 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2812 : ( 0x4A == ((const U8*)s)[1] ) ? \
2813 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2814 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2815 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2816 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
a1b2a50f
KW
2817 : 0 ) \
2818: ((e)-(s) > 2) ? \
cf9d46fd 2819 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
29f3ce8f 2820 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd
KW
2821 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2822 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2823 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2824 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2825 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
29f3ce8f 2826 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2827 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
29f3ce8f 2828 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
114fc8b6
KW
2829 : ( 0x8E == ((const U8*)s)[0] ) ? \
2830 ( ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ) ? 3 : 0 )\
cf9d46fd 2831 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
29f3ce8f 2832 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2833 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
114fc8b6
KW
2834 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2835 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2836 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
cf9d46fd 2837 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
29f3ce8f 2838 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2839 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
29f3ce8f 2840 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
cf9d46fd 2841 : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
a1b2a50f 2842: ((e)-(s) > 1) ? \
cf9d46fd
KW
2843 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2844 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2845 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
a1b2a50f
KW
2846: 0 )
2847
2848
2849/*** GENERATED CODE ***/
2850#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
2851( ((e)-(s) > 5) ? \
cf9d46fd 2852 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
29f3ce8f 2853 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
114fc8b6
KW
2854 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2855 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2856 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2857 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
88086fd8
KW
2858 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2859 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2f338e94
KW
2860 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )\
2861: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )
a1b2a50f 2862
a50454ce 2863/*** GENERATED CODE ***/
2f338e94 2864#define what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
a50454ce
KW
2865( ( 0x52 == ((const U8*)s)[1] ) ? \
2866 ( ( 0x46 == ((const U8*)s)[2] ) ? \
2867 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x587 : 0 )\
2868 : ( 0x62 == ((const U8*)s)[2] ) ? \
2869 ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) ? ( ( 0x46 == ((const U8*)s)[5] ) ? 0xFB14\
2870 : ( 0x52 == ((const U8*)s)[5] ) ? 0xFB15 \
2871 : ( 0x54 == ((const U8*)s)[5] ) ? 0xFB17 \
2872 : ( 0x64 == ((const U8*)s)[5] ) ? 0xFB13 : 0 ) : 0 )\
2873 : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 0xFB16 : 0 )\
2874 : 0 )
2875
2876
2877/*** GENERATED CODE ***/
2f338e94 2878#define what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
a50454ce
KW
2879( ( 0xBF == ((const U8*)s)[0] ) ? \
2880 ( ( 0x66 == ((const U8*)s)[1] ) ? \
2881 ( ( 0x41 == ((const U8*)s)[2] ) ? \
2882 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
2883 : ( 0x42 == ((const U8*)s)[2] ) ? \
2884 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
2885 : ( 0x43 == ((const U8*)s)[2] ) ? \
2886 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
2887 : ( 0x44 == ((const U8*)s)[2] ) ? \
2888 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
2889 : ( 0x45 == ((const U8*)s)[2] ) ? \
2890 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
2891 : ( 0x46 == ((const U8*)s)[2] ) ? \
2892 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
2893 : ( 0x47 == ((const U8*)s)[2] ) ? \
2894 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
2895 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
2896 : ( 0x67 == ((const U8*)s)[1] ) ? \
2897 ( ( 0x41 == ((const U8*)s)[2] ) ? \
2898 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
2899 : ( 0x42 == ((const U8*)s)[2] ) ? \
2900 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
2901 : ( 0x43 == ((const U8*)s)[2] ) ? \
2902 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
2903 : ( 0x44 == ((const U8*)s)[2] ) ? \
2904 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
2905 : ( 0x45 == ((const U8*)s)[2] ) ? \
2906 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
2907 : ( 0x46 == ((const U8*)s)[2] ) ? \
2908 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
2909 : ( 0x47 == ((const U8*)s)[2] ) ? \
2910 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
2911 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
2912 : ( 0x69 == ((const U8*)s)[1] ) ? \
2913 ( ( 0x41 == ((const U8*)s)[2] ) ? \
2914 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
2915 : ( 0x42 == ((const U8*)s)[2] ) ? \
2916 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
2917 : ( 0x43 == ((const U8*)s)[2] ) ? \
2918 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
2919 : ( 0x44 == ((const U8*)s)[2] ) ? \
2920 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
2921 : ( 0x45 == ((const U8*)s)[2] ) ? \
2922 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
2923 : ( 0x46 == ((const U8*)s)[2] ) ? \
2924 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
2925 : ( 0x47 == ((const U8*)s)[2] ) ? \
2926 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
2927 : ( 0x48 == ((const U8*)s)[2] ) ? \
2928 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
2929 : ( 0x57 == ((const U8*)s)[2] ) ? \
2930 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
2931 : ( 0x62 == ((const U8*)s)[2] ) ? \
2932 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
2933 : ( ( ( 0x6A == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
2934 : 0 ) \
2935 : 0 )
2936
2937
2938/*** GENERATED CODE ***/
2f338e94 2939#define what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
a50454ce
KW
2940( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2941 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2942 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2943 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2944 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 )
2945
2946
2947/*** GENERATED CODE ***/
2f338e94 2948#define what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
a50454ce
KW
2949( ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2950 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
2951 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2952 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
2953 : ( 0x8E == ((const U8*)s)[0] ) ? \
2954 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2955 ( ( 0x8E == ((const U8*)s)[2] ) ? \
2956 ( ( 0x72 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
2957 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
2958 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2959 : 0 ) \
2960 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2961 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
2962 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2963 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2964 ( ( 0x72 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
2965 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2966 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2967 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2968 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
2969 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
2970 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
2971 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
2972 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
2973 : ( 0xAA == ((const U8*)s)[0] ) ? \
2974 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
2975 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2976 ( ( 0x53 == ((const U8*)s)[1] ) ? \
2977 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
2978 : ( 0x55 == ((const U8*)s)[1] ) ? \
2979 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
2980 : ( 0x58 == ((const U8*)s)[1] ) ? \
2981 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2982 ( ( 0x43 == ((const U8*)s)[3] ) ? \
2983 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 0x1FB7 : 0x1FB6 )\
2984 : 0 ) \
2985 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
2986 : ( 0x65 == ((const U8*)s)[1] ) ? \
2987 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2988 ( ( 0x43 == ((const U8*)s)[3] ) ? \
2989 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 0x1FC7 : 0x1FC6 )\
2990 : 0 ) \
2991 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
2992 : ( 0x67 == ((const U8*)s)[1] ) ? \
2993 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2994 ( ( 0x49 == ((const U8*)s)[3] ) ? \
2995 ( ( 0xAD == ((const U8*)s)[4] ) ? \
2996 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FD2 \
2997 : ( 0x42 == ((const U8*)s)[5] ) ? 0x390 : 0 ) \
2998 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FD7 : 0 )\
2999 : 0 ) \
3000 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
3001 : 0 ) \
3002 : ( 0xB4 == ((const U8*)s)[0] ) ? \
3003 ( ( 0x42 == ((const U8*)s)[1] ) ? \
3004 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
3005 : ( 0x46 == ((const U8*)s)[1] ) ? \
3006 ( ( 0xAD == ((const U8*)s)[2] ) ? \
3007 ( ( 0x49 == ((const U8*)s)[3] ) ? \
3008 ( ( 0xAD == ((const U8*)s)[4] ) ? \
3009 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FE2 \
3010 : ( 0x42 == ((const U8*)s)[5] ) ? 0x3B0 : 0 ) \
3011 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FE7 : 0 )\
3012 : ( 0x5F == ((const U8*)s)[3] ) ? \
3013 ( ( 0xAD == ((const U8*)s)[4] ) ? \
3014 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1F52 \
3015 : ( 0x42 == ((const U8*)s)[5] ) ? 0x1F54 : 0x1F50 ) \
3016 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1F56 : 0x1F50 )\
3017 : 0 ) \
3018 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
3019 : ( 0x4A == ((const U8*)s)[1] ) ? \
3020 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3021 ( ( 0x43 == ((const U8*)s)[3] ) ? \
3022 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 0x1FF7 : 0x1FF6 )\
3023 : 0 ) \
3024 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
3025 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
2f338e94 3026 : ( 0xB7 == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )
a50454ce
KW
3027
3028
3029/*** GENERATED CODE ***/
2f338e94 3030#define what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) \
a50454ce
KW
3031( ( 0x42 == ((const U8*)s)[1] ) ? \
3032 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
3033 : ( 0x46 == ((const U8*)s)[1] ) ? \
3034 ( ( 0xAD == ((const U8*)s)[2] ) ? \
3035 ( ( 0x5F == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
3036 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
3037 : ( 0x4A == ((const U8*)s)[1] ) ? \
3038 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3039 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
3040 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
3041 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
3042
3043
3044/*** GENERATED CODE ***/
2f338e94 3045#define what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) \
a50454ce
KW
3046( ( 0xBF == ((const U8*)s)[0] ) ? \
3047 ( ( 0x66 == ((const U8*)s)[1] ) ? \
3048 ( ( 0x41 == ((const U8*)s)[2] ) ? \
3049 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
3050 : ( 0x42 == ((const U8*)s)[2] ) ? \
3051 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
3052 : ( 0x43 == ((const U8*)s)[2] ) ? \
3053 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
3054 : ( 0x44 == ((const U8*)s)[2] ) ? \
3055 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
3056 : ( 0x45 == ((const U8*)s)[2] ) ? \
3057 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
3058 : ( 0x46 == ((const U8*)s)[2] ) ? \
3059 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
3060 : ( 0x47 == ((const U8*)s)[2] ) ? \
3061 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
3062 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
3063 : ( 0x67 == ((const U8*)s)[1] ) ? \
3064 ( ( 0x41 == ((const U8*)s)[2] ) ? \
3065 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
3066 : ( 0x42 == ((const U8*)s)[2] ) ? \
3067 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
3068 : ( 0x43 == ((const U8*)s)[2] ) ? \
3069 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
3070 : ( 0x44 == ((const U8*)s)[2] ) ? \
3071 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
3072 : ( 0x45 == ((const U8*)s)[2] ) ? \
3073 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
3074 : ( 0x46 == ((const U8*)s)[2] ) ? \
3075 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
3076 : ( 0x47 == ((const U8*)s)[2] ) ? \
3077 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
3078 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
3079 : ( 0x69 == ((const U8*)s)[1] ) ? \
3080 ( ( 0x41 == ((const U8*)s)[2] ) ? \
3081 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
3082 : ( 0x42 == ((const U8*)s)[2] ) ? \
3083 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
3084 : ( 0x43 == ((const U8*)s)[2] ) ? \
3085 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
3086 : ( 0x44 == ((const U8*)s)[2] ) ? \
3087 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
3088 : ( 0x45 == ((const U8*)s)[2] ) ? \
3089 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
3090 : ( 0x46 == ((const U8*)s)[2] ) ? \
3091 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
3092 : ( 0x47 == ((const U8*)s)[2] ) ? \
3093 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
3094 : ( 0x48 == ((const U8*)s)[2] ) ? \
3095 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
3096 : ( 0x57 == ((const U8*)s)[2] ) ? \
3097 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
3098 : ( 0x62 == ((const U8*)s)[2] ) ? \
3099 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
3100 : ( ( ( 0x6A == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
3101 : 0 ) \
3102 : 0 )
3103
3104
3105/*** GENERATED CODE ***/
2f338e94 3106#define what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) \
a50454ce
KW
3107( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3108 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
3109 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3110 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3111 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
3112 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
3113 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3114 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
3115 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
3116 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
3117 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
3118 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
3119 : ( 0x8E == ((const U8*)s)[0] ) ? \
3120 ( ( 0x72 == ((const U8*)s)[1] ) ? \
3121 ( ( 0x8E == ((const U8*)s)[2] ) ? \
3122 ( ( 0x72 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
3123 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
3124 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3125 : 0 ) \
3126 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
3127 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
3128 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3129 ( ( 0x8E == ((const U8*)s)[1] ) ? \
3130 ( ( 0x72 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
3131 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3132 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3133 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
3134 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
3135 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
3136 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
3137 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
3138 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
3139 : ( 0xAA == ((const U8*)s)[0] ) ? \
3140 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
3141 : ( 0xB3 == ((const U8*)s)[0] ) ? \
3142 ( ( 0x53 == ((const U8*)s)[1] ) ? \
3143 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
3144 : ( 0x55 == ((const U8*)s)[1] ) ? \
3145 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
3146 : ( 0x58 == ((const U8*)s)[1] ) ? \
3147 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3148 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
3149 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
3150 : ( 0x65 == ((const U8*)s)[1] ) ? \
3151 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3152 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
3153 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
3154 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
3155 : ( 0xB4 == ((const U8*)s)[0] ) ? \
3156 ( ( 0x42 == ((const U8*)s)[1] ) ? \
3157 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
3158 : ( 0x46 == ((const U8*)s)[1] ) ? \
3159 ( ( 0xAD == ((const U8*)s)[2] ) ? \
3160 ( ( 0x5F == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
3161 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
3162 : ( 0x4A == ((const U8*)s)[1] ) ? \
3163 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3164 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
3165 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
3166 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
3167 : 0 )
3168
3169
3170/*** GENERATED CODE ***/
2f338e94 3171#define what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) \
a50454ce
KW
3172( ((e)-(s) > 2) ? \
3173 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3174 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
3175 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3176 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3177 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
3178 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
3179 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3180 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
3181 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
3182 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
3183 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
3184 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
3185 : ( 0x8E == ((const U8*)s)[0] ) ? \
3186 ( ( 0x72 == ((const U8*)s)[1] ) ? \
3187 ( ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
3188 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3189 : 0 ) \
3190 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
3191 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
3192 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3193 ( ( 0x8E == ((const U8*)s)[1] ) ? \
3194 ( ( 0x72 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
3195 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3196 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3197 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
3198 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
3199 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
3200 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
3201 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
3202 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
3203 : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
3204: ((e)-(s) > 1) ? \
3205 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3206 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 0xFB00 \
3207 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3208 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
3209 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3210 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3211 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3212 : 0 ) \
3213: 0 )
3214
3215
3216/*** GENERATED CODE ***/
3217#define what_MULTI_CHAR_FOLD_utf8_safe(s,e) \
3218( ((e)-(s) > 5) ? \
3219 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3220 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
2f338e94 3221 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )\
a50454ce
KW
3222: ((e)-(s) > 4) ? \
3223 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3224 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
3225 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3226 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3227 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
3228 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
3229 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01