This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Fix Posix ASCII defins for cased, vert space
[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) ? \
29f3ce8f
KW
31 ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1 \
32 : ( 0x0D == ((const U8*)s)[0] ) ? \
33 ( ( 0x0A == ((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 ) \
37 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
38 : ( 0x85 == ((const U8*)s)[0] ) ) \
e64b1bd1 39: ((e)-(s) > 1) ? \
29f3ce8f
KW
40 ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1 \
41 : ( 0x0D == ((const U8*)s)[0] ) ? \
42 ( ( 0x0A == ((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) ? \
29f3ce8f 47 ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) ? 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) ? \
29f3ce8f
KW
56 ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1 \
57 : ( 0x0D == ((const U8*)s)[0] ) ? \
58 ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
59 : ( 0xC2 == ((const U8*)s)[0] ) ? \
60 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
61 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
e64b1bd1 62: ((e)-(s) > 1) ? \
29f3ce8f
KW
63 ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1 \
64 : ( 0x0D == ((const U8*)s)[0] ) ? \
65 ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
66 : ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
e64b1bd1 67: ((e)-(s) > 0) ? \
29f3ce8f 68 ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) \
e64b1bd1 69: 0 )
e1d1eefb 70
12b72891 71/*** GENERATED CODE ***/
12b72891 72#define is_LNBREAK_latin1_safe(s,e) \
e64b1bd1 73( ((e)-(s) > 1) ? \
29f3ce8f
KW
74 ( ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) || 0x85 == ((const U8*)s)[0] ) ? 1\
75 : ( 0x0D == ((const U8*)s)[0] ) ? \
76 ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
9a3182e9 77 : 0 ) \
e64b1bd1 78: ((e)-(s) > 0) ? \
29f3ce8f 79 ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 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] ) ? \
93 ( ( ( ((const U8*)s)[2] <= 0x8A ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
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
KW
99( 0x1680 == cp || ( 0x1680 < cp && \
100( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
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) \
29f3ce8f 111( ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
840f8e92
KW
112
113/*** GENERATED CODE ***/
840f8e92 114#define is_VERTWS_cp_high(cp) \
c7c8bf55 115( 0x2028 == cp || 0x2029 == cp )
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] ) ? \
126 ( ( ( 0x90 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x99 ) || ( 0xA1 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xA6 ) ) ? 3 : 0 )\
127 : ( ( 0xBD == ((const U8*)s)[1] ) && ( 0x81 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )\
4ac6419d
KW
128: 0 )
129
130/*** GENERATED CODE ***/
131#define is_XDIGIT_cp_high(cp) \
c7c8bf55
KW
132( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp && \
133( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 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] ) ? \
146 ( ( ( ((const U8*)s)[2] <= 0x8A ) || ( ((const U8*)s)[2] & 0xFE ) == 0xA8 || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
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
KW
152( 0x1680 == cp || ( 0x1680 < cp && \
153( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
154( 0x2028 == cp || ( 0x2028 < cp && \
155( 0x2029 == cp || ( 0x2029 < cp && \
156( 0x202F == cp || ( 0x202F < cp && \
157( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
bedac28b
KW
158
159/*
b96a92fb
KW
160 REPLACEMENT: Unicode REPLACEMENT CHARACTER
161
162 0xFFFD
163*/
164/*** GENERATED CODE ***/
165#define is_REPLACEMENT_utf8_safe(s,e) \
29f3ce8f 166( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xEF == ((const U8*)s)[0] ) ) && ( 0xBF == ((const U8*)s)[1] ) ) && ( 0xBD == ((const U8*)s)[2] ) ) ? 3 : 0 )
b96a92fb
KW
167
168/*
169 NONCHAR: Non character code points
170
099323b4 171 \p{_Perl_Nchar}
b96a92fb
KW
172*/
173/*** GENERATED CODE ***/
89d986df 174#define is_NONCHAR_utf8_safe(s,e) \
29f3ce8f
KW
175( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
176 ( ( 0xB7 == ((const U8*)s)[1] ) ? \
177 ( ( 0x90 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xAF ) ? 3 : 0 )\
178 : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xBE ) ) ? 3 : 0 )\
179 : ( 0xF0 == ((const U8*)s)[0] ) ? \
180 ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 )\
181 : ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF3 ) ? \
182 ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 )\
183 : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 ) : 0 )
b96a92fb
KW
184
185/*
21cb232c 186 SURROGATE: Surrogate code points
b96a92fb 187
099323b4 188 \p{_Perl_Surrogate}
b96a92fb
KW
189*/
190/*** GENERATED CODE ***/
89d986df 191#define is_SURROGATE_utf8_safe(s,e) \
29f3ce8f 192( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )
b96a92fb
KW
193
194/*
685289b5
KW
195 QUOTEMETA: Meta-characters that \Q should quote
196
197 \p{_Perl_Quotemeta}
198*/
199/*** GENERATED CODE ***/
200#define is_QUOTEMETA_high(s) \
29f3ce8f
KW
201( ( 0xCD == ((const U8*)s)[0] ) ? \
202 ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 ) \
203: ( 0xD8 == ((const U8*)s)[0] ) ? \
204 ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 ) \
205: ( 0xE1 == ((const U8*)s)[0] ) ? \
206 ( ( 0x85 == ((const U8*)s)[1] ) ? \
207 ( ( 0x9F == ((const U8*)s)[2] || 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 )\
208 : ( 0x9A == ((const U8*)s)[1] ) ? \
209 ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 ) \
210 : ( 0x9E == ((const U8*)s)[1] ) ? \
211 ( ( ( ((const U8*)s)[2] & 0xFE ) == 0xB4 ) ? 3 : 0 ) \
212 : ( ( 0xA0 == ((const U8*)s)[1] ) && ( 0x8B <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x8E ) ) ? 3 : 0 )\
213: ( 0xE2 == ((const U8*)s)[0] ) ? \
214 ( ( 0x80 == ((const U8*)s)[1] ) ? \
215 ( ( ((const U8*)s)[2] <= 0xBE ) ? 3 : 0 ) \
216 : ( 0x81 == ((const U8*)s)[1] ) ? \
217 ( ( ( 0x81 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
218 : ( 0x86 == ((const U8*)s)[1] ) ? \
219 ( ( ((const U8*)s)[2] >= 0x90 ) ? 3 : 0 ) \
220 : ( ( 0x87 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x90 ) || ( 0x94 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x9C ) || ( 0x9F <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xAF ) || ( ((const U8*)s)[1] & 0xFE ) == 0xB8 ) ?\
6e130234 221 3 \
29f3ce8f
KW
222 : ( 0x91 == ((const U8*)s)[1] ) ? \
223 ( ( ((const U8*)s)[2] <= 0x9F ) ? 3 : 0 ) \
224 : ( 0x9D == ((const U8*)s)[1] ) ? \
225 ( ( ((const U8*)s)[2] <= 0xB5 ) ? 3 : 0 ) \
226 : ( ( 0x9E == ((const U8*)s)[1] ) && ( ((const U8*)s)[2] >= 0x94 ) ) ? 3 : 0 )\
227: ( 0xE3 == ((const U8*)s)[0] ) ? \
228 ( ( 0x80 == ((const U8*)s)[1] ) ? \
229 ( ( ( ((const U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xA0 ) || 0xB0 == ((const U8*)s)[2] ) ? 3 : 0 )\
230 : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
231: ( 0xEF == ((const U8*)s)[0] ) ? \
232 ( ( 0xB4 == ((const U8*)s)[1] ) ? \
233 ( ( ((const U8*)s)[2] >= 0xBE ) ? 3 : 0 ) \
234 : ( 0xB8 == ((const U8*)s)[1] ) ? \
235 ( ( ((const U8*)s)[2] <= 0x8F ) ? 3 : 0 ) \
236 : ( 0xB9 == ((const U8*)s)[1] ) ? \
237 ( ( 0x85 == ((const U8*)s)[2] || 0x86 == ((const U8*)s)[2] ) ? 3 : 0 )\
238 : ( 0xBB == ((const U8*)s)[1] ) ? \
239 ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 ) \
240 : ( 0xBE == ((const U8*)s)[1] ) ? \
241 ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 ) \
242 : ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xB0 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xB8 ) ) ? 3 : 0 )\
243: ( 0xF0 == ((const U8*)s)[0] ) ? \
244 ( ( 0x9B == ((const U8*)s)[1] ) ? \
245 ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( ( ((const U8*)s)[3] & 0xFC ) == 0xA0 ) ) ? 4 : 0 )\
246 : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( 0xB3 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0xBA ) ) ? 4 : 0 )\
247: ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
685289b5 248
8769f413
KW
249/*
250 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
251
8769f413
KW
252 &regcharclass_multi_char_folds::multi_char_folds(1)
253*/
254/*** GENERATED CODE ***/
251b239f 255#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
29f3ce8f
KW
256( ( 0x61 == ((const U8*)s)[0] ) ? \
257 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
258 : ( 0x66 == ((const U8*)s)[0] ) ? \
259 ( ( 0x66 == ((const U8*)s)[1] ) ? \
260 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
261 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
262 : ( 0x68 == ((const U8*)s)[0] ) ? \
263 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
264 : ( 0x69 == ((const U8*)s)[0] ) ? \
265 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
266 : ( 0x6A == ((const U8*)s)[0] ) ? \
267 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
268 : ( 0x73 == ((const U8*)s)[0] ) ? \
269 ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
270 : ( 0x74 == ((const U8*)s)[0] ) ? \
271 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
272 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
273 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
274 : ( 0xC5 == ((const U8*)s)[0] ) ? \
275 ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
276 : ( 0xCA == ((const U8*)s)[0] ) ? \
277 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
278 : ( 0xCE == ((const U8*)s)[0] ) ? \
279 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
280 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
281 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
282 ( ( 0xCD == ((const U8*)s)[2] ) ? \
283 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
284 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
285 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
286 : ( 0xCF == ((const U8*)s)[0] ) ? \
287 ( ( 0x81 == ((const U8*)s)[1] ) ? \
288 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
289 : ( 0x85 == ((const U8*)s)[1] ) ? \
290 ( ( 0xCC == ((const U8*)s)[2] ) ? \
291 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
292 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
293 : ( 0x89 == ((const U8*)s)[1] ) ? \
294 ( ( 0xCD == ((const U8*)s)[2] ) ? \
295 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
296 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
297 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
298 : ( 0xD5 == ((const U8*)s)[0] ) ? \
299 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
300 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
301 : ( 0xB4 == ((const U8*)s)[1] ) ? \
302 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
303 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
304 : ( 0xE1 == ((const U8*)s)[0] ) ? \
305 ( ( 0xBC == ((const U8*)s)[1] ) ? \
306 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
307 : ( ( ( ( 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
308 : 0 )
309
310
311/*** GENERATED CODE ***/
c7c8bf55
KW
312#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
313( ((e)-(s) > 3) ? \
29f3ce8f
KW
314 ( ( 0x61 == ((const U8*)s)[0] ) ? \
315 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
316 : ( 0x66 == ((const U8*)s)[0] ) ? \
317 ( ( 0x66 == ((const U8*)s)[1] ) ? \
318 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
319 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
320 : ( 0x68 == ((const U8*)s)[0] ) ? \
321 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
322 : ( 0x69 == ((const U8*)s)[0] ) ? \
323 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
324 : ( 0x6A == ((const U8*)s)[0] ) ? \
325 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
326 : ( 0x73 == ((const U8*)s)[0] ) ? \
327 ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
328 : ( 0x74 == ((const U8*)s)[0] ) ? \
329 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
330 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
331 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
332 : ( 0xC5 == ((const U8*)s)[0] ) ? \
333 ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
334 : ( 0xCA == ((const U8*)s)[0] ) ? \
335 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
336 : ( 0xCE == ((const U8*)s)[0] ) ? \
337 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
338 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
339 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
340 ( ( 0xCD == ((const U8*)s)[2] ) ? \
341 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
342 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
343 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
344 : ( 0xCF == ((const U8*)s)[0] ) ? \
345 ( ( 0x81 == ((const U8*)s)[1] ) ? \
346 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
347 : ( 0x85 == ((const U8*)s)[1] ) ? \
348 ( ( 0xCC == ((const U8*)s)[2] ) ? \
349 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
350 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
351 : ( 0x89 == ((const U8*)s)[1] ) ? \
352 ( ( 0xCD == ((const U8*)s)[2] ) ? \
353 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
354 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
355 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
356 : ( 0xD5 == ((const U8*)s)[0] ) ? \
357 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
358 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
359 : ( 0xB4 == ((const U8*)s)[1] ) ? \
360 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
361 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
c7c8bf55
KW
362 : 0 ) \
363: ((e)-(s) > 2) ? \
29f3ce8f
KW
364 ( ( 0x61 == ((const U8*)s)[0] ) ? \
365 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
366 : ( 0x66 == ((const U8*)s)[0] ) ? \
367 ( ( 0x66 == ((const U8*)s)[1] ) ? \
368 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
369 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
370 : ( 0x68 == ((const U8*)s)[0] ) ? \
371 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
372 : ( 0x69 == ((const U8*)s)[0] ) ? \
373 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
374 : ( 0x6A == ((const U8*)s)[0] ) ? \
375 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
376 : ( 0x73 == ((const U8*)s)[0] ) ? \
377 ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
378 : ( 0x74 == ((const U8*)s)[0] ) ? \
379 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
380 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
381 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
382 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
251b239f 383: ((e)-(s) > 1) ? \
29f3ce8f
KW
384 ( ( 0x66 == ((const U8*)s)[0] ) ? \
385 ( ( 0x66 == ((const U8*)s)[1] || 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
386 : ( ( 0x73 == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
c4c8e615
KW
387: 0 )
388
389
390/*** GENERATED CODE ***/
251b239f 391#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
c7c8bf55 392( ((e)-(s) > 5) ? \
29f3ce8f
KW
393 ( ( 0x61 == ((const U8*)s)[0] ) ? \
394 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
395 : ( 0x66 == ((const U8*)s)[0] ) ? \
396 ( ( 0x66 == ((const U8*)s)[1] ) ? \
397 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
398 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
399 : ( 0x68 == ((const U8*)s)[0] ) ? \
400 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
401 : ( 0x69 == ((const U8*)s)[0] ) ? \
402 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
403 : ( 0x6A == ((const U8*)s)[0] ) ? \
404 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
405 : ( 0x73 == ((const U8*)s)[0] ) ? \
406 ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
407 : ( 0x74 == ((const U8*)s)[0] ) ? \
408 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
409 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
410 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
411 : ( 0xC5 == ((const U8*)s)[0] ) ? \
412 ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
413 : ( 0xCA == ((const U8*)s)[0] ) ? \
414 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
415 : ( 0xCE == ((const U8*)s)[0] ) ? \
416 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
417 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
418 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
419 ( ( 0xCD == ((const U8*)s)[2] ) ? \
420 ( ( 0x82 == ((const U8*)s)[3] ) ? \
421 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
c7c8bf55 422 : 0 ) \
29f3ce8f
KW
423 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
424 : ( 0xB9 == ((const U8*)s)[1] ) ? \
425 ( ( 0xCC == ((const U8*)s)[2] ) ? \
426 ( ( 0x88 == ((const U8*)s)[3] ) ? \
427 ( ( 0xCC == ((const U8*)s)[4] ) ? \
428 ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )\
429 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
c7c8bf55 430 : 0 ) \
29f3ce8f 431 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
c7c8bf55 432 : 0 ) \
29f3ce8f
KW
433 : ( 0xCF == ((const U8*)s)[0] ) ? \
434 ( ( 0x81 == ((const U8*)s)[1] ) ? \
435 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
436 : ( 0x85 == ((const U8*)s)[1] ) ? \
437 ( ( 0xCC == ((const U8*)s)[2] ) ? \
438 ( ( 0x88 == ((const U8*)s)[3] ) ? \
439 ( ( 0xCC == ((const U8*)s)[4] ) ? \
440 ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )\
441 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
442 : ( 0x93 == ((const U8*)s)[3] ) ? \
443 ( ( 0xCC == ((const U8*)s)[4] ) ? \
444 ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 4 )\
445 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
c7c8bf55 446 : 0 ) \
29f3ce8f
KW
447 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
448 : ( 0x89 == ((const U8*)s)[1] ) ? \
449 ( ( 0xCD == ((const U8*)s)[2] ) ? \
450 ( ( 0x82 == ((const U8*)s)[3] ) ? \
451 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
c7c8bf55 452 : 0 ) \
29f3ce8f
KW
453 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
454 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
455 : ( 0xD5 == ((const U8*)s)[0] ) ? \
456 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
457 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
458 : ( 0xB4 == ((const U8*)s)[1] ) ? \
459 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
460 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
461 : ( 0xE1 == ((const U8*)s)[0] ) ? \
462 ( ( 0xBC == ((const U8*)s)[1] ) ? \
463 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
464 : ( ( ( ( 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
KW
465 : 0 ) \
466: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
8769f413
KW
467
468/*
40b1ba4f 469 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
8769f413
KW
470
471 &regcharclass_multi_char_folds::multi_char_folds(0)
472*/
473/*** GENERATED CODE ***/
251b239f
KW
474#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
475( ((e)-(s) > 2) ? \
29f3ce8f
KW
476 ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ? \
477 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) ? \
478 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
479 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
480 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
251b239f 481: ((e)-(s) > 1) ? \
29f3ce8f
KW
482 ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ? \
483 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
484 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
251b239f 485: 0 )
8769f413 486
0b50d62a 487/*
1a27eb96
KW
488 FOLDS_TO_MULTI: characters that fold to multi-char strings
489
490 \p{_Perl_Folds_To_Multi_Char}
491*/
492/*** GENERATED CODE ***/
493#define is_FOLDS_TO_MULTI_utf8(s) \
29f3ce8f
KW
494( ( 0xC3 == ((const U8*)s)[0] ) ? \
495 ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 ) \
496: ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
497 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
498: ( 0xC5 == ((const U8*)s)[0] ) ? \
499 ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 ) \
500: ( 0xCE == ((const U8*)s)[0] ) ? \
501 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 ) \
502: ( 0xD6 == ((const U8*)s)[0] ) ? \
503 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
504: ( 0xE1 == ((const U8*)s)[0] ) ? \
505 ( ( 0xBA == ((const U8*)s)[1] ) ? \
506 ( ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
507 : ( 0xBD == ((const U8*)s)[1] ) ? \
508 ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
509 : ( 0xBE == ((const U8*)s)[1] ) ? \
510 ( ( ( ( ((const U8*)s)[2] & 0xE0 ) == 0x80 ) || ( ( ((const U8*)s)[2] & 0xF0 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFA ) == 0xB2 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
511 : ( ( 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 )\
512: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] <= 0x86 ) || ( 0x93 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x97 ) ) ) ? 3 : 0 )
1a27eb96
KW
513
514/*
31f05a37
KW
515 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
516
517 \p{_Perl_Problematic_Locale_Folds}
518*/
519/*** GENERATED CODE ***/
520#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
29f3ce8f
KW
521( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
522: ( ( ((const U8*)s)[0] & 0xFE ) == 0xC2 ) ? \
31f05a37 523 2 \
29f3ce8f
KW
524: ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
525 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
526: ( 0xC5 == ((const U8*)s)[0] ) ? \
527 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
528: ( 0xCE == ((const U8*)s)[0] ) ? \
529 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
530: ( 0xE1 == ((const U8*)s)[0] ) ? \
531 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
532: ( 0xE2 == ((const U8*)s)[0] ) ? \
533 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
534: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
31f05a37
KW
535
536/*** GENERATED CODE ***/
537#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
c7c8bf55
KW
538( cp <= 0xFF || ( 0xFF < cp && \
539( 0x130 == cp || ( 0x130 < cp && \
540( 0x149 == cp || ( 0x149 < cp && \
541( 0x178 == cp || ( 0x178 < cp && \
542( 0x17F == cp || ( 0x17F < cp && \
543( 0x1F0 == cp || ( 0x1F0 < cp && \
544( 0x39C == cp || ( 0x39C < cp && \
545( 0x3BC == cp || ( 0x3BC < cp && \
546( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
547( 0x1E9E == cp || ( 0x1E9E < cp && \
548( 0x212A == cp || ( 0x212A < cp && \
549( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
31f05a37
KW
550
551/*
552 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
553
554 \p{_Perl_Problematic_Locale_Foldeds_Start}
555*/
556/*** GENERATED CODE ***/
557#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
29f3ce8f
KW
558( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
559: ( ( ((const U8*)s)[0] & 0xFE ) == 0xC2 ) ? \
31f05a37 560 2 \
29f3ce8f
KW
561: ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
562 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
563: ( 0xC5 == ((const U8*)s)[0] ) ? \
564 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
565: ( 0xCA == ((const U8*)s)[0] ) ? \
566 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
567: ( 0xCE == ((const U8*)s)[0] ) ? \
568 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
569: ( 0xE1 == ((const U8*)s)[0] ) ? \
570 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
571: ( 0xE2 == ((const U8*)s)[0] ) ? \
572 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
573: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
31f05a37
KW
574
575/*** GENERATED CODE ***/
576#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
c7c8bf55
KW
577( cp <= 0xFF || ( 0xFF < cp && \
578( 0x130 == cp || ( 0x130 < cp && \
579( 0x149 == cp || ( 0x149 < cp && \
580( 0x178 == cp || ( 0x178 < cp && \
581( 0x17F == cp || ( 0x17F < cp && \
582( 0x1F0 == cp || ( 0x1F0 < cp && \
583( 0x2BC == cp || ( 0x2BC < cp && \
584( 0x39C == cp || ( 0x39C < cp && \
585( 0x3BC == cp || ( 0x3BC < cp && \
586( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
587( 0x1E9E == cp || ( 0x1E9E < cp && \
588( 0x212A == cp || ( 0x212A < cp && \
589( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
31f05a37
KW
590
591/*
0b50d62a
KW
592 PATWS: pattern white space
593
099323b4 594 \p{_Perl_PatWS}
0b50d62a
KW
595*/
596/*** GENERATED CODE ***/
0b50d62a 597#define is_PATWS_safe(s,e,is_utf8) \
dd9bc2b0 598( ( LIKELY((e) > (s)) ) ? \
29f3ce8f 599 ( ( ( 0x09 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x20 == ((const U8*)s)[0] ) ? 1\
5ab0c3af 600 : (! is_utf8 ) ? \
29f3ce8f 601 ( 0x85 == ((const U8*)s)[0] ) \
dd9bc2b0 602 : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \
29f3ce8f
KW
603 ( ( 0xC2 == ((const U8*)s)[0] ) ? \
604 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
605 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0x8E || ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
5ab0c3af 606 : 0 ) \
0b50d62a
KW
607: 0 )
608
609/*** GENERATED CODE ***/
610#define is_PATWS_cp(cp) \
c7c8bf55
KW
611( ( 0x09 <= cp && cp <= 0x0D ) || ( 0x0D < cp && \
612( 0x20 == cp || ( 0x20 < cp && \
613( 0x85 == cp || ( 0x85 < cp && \
614( 0x200E == cp || ( 0x200E < cp && \
615( 0x200F == cp || ( 0x200F < cp && \
616( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) )
0b50d62a 617
6c12993c
KW
618/*
619 HANGUL_ED: Hangul syllables whose first character is \xED
620
621 0xD000 - 0xD7FF
622*/
623/*** GENERATED CODE ***/
624#define is_HANGUL_ED_utf8_safe(s,e) \
625( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( ( ((const U8*)s)[1] & 0xE0 ) == 0x80 ) ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )
626
a1b2a50f
KW
627#endif /* ASCII/Latin1 */
628
629#if 'A' == 193 /* EBCDIC 1047 */ \
630 && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
631 && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
632 && '$' == 91 && '@' == 124 && '`' == 121
633/*
634 LNBREAK: Line Break: \R
635
636 "\x0D\x0A" # CRLF - Network (Windows) line ending
637 \p{VertSpace}
638*/
639/*** GENERATED CODE ***/
640#define is_LNBREAK_safe(s,e,is_utf8) \
641( ((e)-(s) > 2) ? \
29f3ce8f
KW
642 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
643 : ( 0x0D == ((const U8*)s)[0] ) ? \
644 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
645 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
a1b2a50f 646: ((e)-(s) > 1) ? \
29f3ce8f
KW
647 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
648 : ( 0x0D == ((const U8*)s)[0] ) ? \
649 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
650 : 0 ) \
651: ((e)-(s) > 0) ? \
29f3ce8f 652 ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
653: 0 )
654
655/*** GENERATED CODE ***/
656#define is_LNBREAK_utf8_safe(s,e) \
657( ((e)-(s) > 2) ? \
29f3ce8f
KW
658 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
659 : ( 0x0D == ((const U8*)s)[0] ) ? \
660 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
661 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
a1b2a50f 662: ((e)-(s) > 1) ? \
29f3ce8f
KW
663 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
664 : ( 0x0D == ((const U8*)s)[0] ) ? \
665 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
666 : 0 ) \
667: ((e)-(s) > 0) ? \
29f3ce8f 668 ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
669: 0 )
670
671/*** GENERATED CODE ***/
672#define is_LNBREAK_latin1_safe(s,e) \
673( ((e)-(s) > 1) ? \
29f3ce8f
KW
674 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
675 : ( 0x0D == ((const U8*)s)[0] ) ? \
676 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
677 : 0 ) \
678: ((e)-(s) > 0) ? \
29f3ce8f 679 ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
680: 0 )
681
682/*
683 HORIZWS: Horizontal Whitespace: \h \H
684
685 \p{HorizSpace}
686*/
687/*** GENERATED CODE ***/
688#define is_HORIZWS_high(s) \
29f3ce8f
KW
689( ( 0xBC == ((const U8*)s)[0] ) ? \
690 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
691: ( 0xCA == ((const U8*)s)[0] ) ? \
692 ( ( 0x41 == ((const U8*)s)[1] ) ? \
693 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
694 : ( 0x42 == ((const U8*)s)[1] ) ? \
695 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
696 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
697: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
698
699/*** GENERATED CODE ***/
700#define is_HORIZWS_cp_high(cp) \
701( 0x1680 == cp || ( 0x1680 < cp && \
702( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
703( 0x202F == cp || ( 0x202F < cp && \
704( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
705
706/*
707 VERTWS: Vertical Whitespace: \v \V
708
709 \p{VertSpace}
710*/
711/*** GENERATED CODE ***/
712#define is_VERTWS_high(s) \
29f3ce8f 713( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
714
715/*** GENERATED CODE ***/
716#define is_VERTWS_cp_high(cp) \
717( 0x2028 == cp || 0x2029 == cp )
718
719/*
720 XDIGIT: Hexadecimal digits
721
722 \p{XDigit}
723*/
724/*** GENERATED CODE ***/
725#define is_XDIGIT_high(s) \
29f3ce8f
KW
726( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
727 ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x68 ) ) ? 4 : 0 )\
728 : ( ( ( ((const U8*)s)[2] & 0xFE ) == 0x68 ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
a1b2a50f
KW
729
730/*** GENERATED CODE ***/
731#define is_XDIGIT_cp_high(cp) \
732( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp && \
733( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
734
735/*
736 XPERLSPACE: \p{XPerlSpace}
737
738 \p{XPerlSpace}
739*/
740/*** GENERATED CODE ***/
741#define is_XPERLSPACE_high(s) \
29f3ce8f
KW
742( ( 0xBC == ((const U8*)s)[0] ) ? \
743 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
744: ( 0xCA == ((const U8*)s)[0] ) ? \
745 ( ( 0x41 == ((const U8*)s)[1] ) ? \
746 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
747 : ( 0x42 == ((const U8*)s)[1] ) ? \
748 ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
749 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
750: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
751
752/*** GENERATED CODE ***/
753#define is_XPERLSPACE_cp_high(cp) \
754( 0x1680 == cp || ( 0x1680 < cp && \
755( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
756( 0x2028 == cp || ( 0x2028 < cp && \
757( 0x2029 == cp || ( 0x2029 < cp && \
758( 0x202F == cp || ( 0x202F < cp && \
759( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
760
761/*
762 REPLACEMENT: Unicode REPLACEMENT CHARACTER
763
764 0xFFFD
765*/
766/*** GENERATED CODE ***/
767#define is_REPLACEMENT_utf8_safe(s,e) \
29f3ce8f 768( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x73 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x71 == ((const U8*)s)[3] ) ) ? 4 : 0 )
a1b2a50f
KW
769
770/*
771 NONCHAR: Non character code points
772
099323b4 773 \p{_Perl_Nchar}
a1b2a50f
KW
774*/
775/*** GENERATED CODE ***/
89d986df 776#define is_NONCHAR_utf8_safe(s,e) \
29f3ce8f
KW
777( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
778 ( ( 0x73 == ((const U8*)s)[1] ) ? \
779 ( ( 0x55 == ((const U8*)s)[2] ) ? \
780 ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
781 : ( 0x56 == ((const U8*)s)[2] ) ? \
782 ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
783 : ( ( 0x73 == ((const U8*)s)[2] ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
89d986df 784 : 0 ) \
29f3ce8f
KW
785 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
786 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
787 : ( 0xED == ((const U8*)s)[0] ) ? \
788 ( ( ( ( ( ((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] ) ) && ( ( ((const U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )\
789 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( ( ((const U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 ) : 0 )
a1b2a50f
KW
790
791/*
21cb232c 792 SURROGATE: Surrogate code points
a1b2a50f 793
099323b4 794 \p{_Perl_Surrogate}
a1b2a50f
KW
795*/
796/*** GENERATED CODE ***/
89d986df 797#define is_SURROGATE_utf8_safe(s,e) \
29f3ce8f 798( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x65 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
a1b2a50f
KW
799
800/*
a1b2a50f
KW
801 QUOTEMETA: Meta-characters that \Q should quote
802
803 \p{_Perl_Quotemeta}
804*/
805/*** GENERATED CODE ***/
29f3ce8f
KW
806#define is_QUOTEMETA_high_part0(s) \
807( ( 0x41 == ((const U8*)s)[1] || ( 0x54 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ?\
808 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
809 : ( 0x42 == ((const U8*)s)[1] ) ? \
810 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
811 : ( 0x43 == ((const U8*)s)[1] ) ? \
812 ( ( ( 0x42 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x62 == ((const U8*)s)[2] || ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
813 : ( 0x44 == ((const U8*)s)[1] ) ? \
814 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
815 : ( ( 0x53 == ((const U8*)s)[1] ) && ( ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )
816
817
818/*** GENERATED CODE ***/
819#define is_QUOTEMETA_high_part1(s) \
820( ( 0xCB == ((const U8*)s)[0] ) ? \
821 ( ( ( ( ((const U8*)s)[1] & 0xE7 ) == 0x41 ) || ( ( ((const U8*)s)[1] & 0xCE ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ( ( ((const U8*)s)[1] & 0xFC ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ( ( ((const U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFE ) == 0x68 ) || ((const U8*)s)[1] == 0x71 ) ?\
822 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
823 : ( 0x6A == ((const U8*)s)[1] ) ? \
824 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x64 ) ) ? 3 : 0 )\
825 : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( 0x63 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
826: ( 0xCC == ((const U8*)s)[0] ) ? \
827 ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
828: ( 0xCD == ((const U8*)s)[0] ) ? \
829 ( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x62 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
830: ( 0xCE == ((const U8*)s)[0] ) ? \
831 ( ( 0x41 == ((const U8*)s)[1] ) ? \
832 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) || ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
833 : ( 0x42 == ((const U8*)s)[1] ) ? \
834 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
835 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
836: ( 0xDD == ((const U8*)s)[0] ) ? \
837 ( ( 0x73 == ((const U8*)s)[1] ) ? \
838 ( ( 0x4A == ((const U8*)s)[2] ) ? \
839 ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ? 4 : 0 ) \
840 : ( 0x57 == ((const U8*)s)[2] ) ? \
841 ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
842 : ( 0x59 == ((const U8*)s)[2] ) ? \
843 ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 ) \
844 : ( 0x66 == ((const U8*)s)[2] ) ? \
845 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
846 : ( 0x71 == ((const U8*)s)[2] ) ? \
847 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
848 : ( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )\
a1b2a50f 849 : 0 ) \
29f3ce8f
KW
850: ( 0xDF == ((const U8*)s)[0] ) ? \
851 ( ( 0x56 == ((const U8*)s)[1] ) ? \
852 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
853 : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
854: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
855
856
857/*** GENERATED CODE ***/
858#define is_QUOTEMETA_high(s) \
859( ( 0xB1 == ((const U8*)s)[0] ) ? \
860 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
861: ( 0xB8 == ((const U8*)s)[0] ) ? \
862 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
863: ( 0xBB == ((const U8*)s)[0] ) ? \
864 ( ( 0x51 == ((const U8*)s)[1] ) ? \
865 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
866 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
867: ( 0xBC == ((const U8*)s)[0] ) ? \
868 ( ( 0x63 == ((const U8*)s)[1] ) ? \
869 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
870 : ( ( 0x71 == ((const U8*)s)[1] ) && ( 0x63 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
871: ( 0xBE == ((const U8*)s)[0] ) ? \
872 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
873: ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
a1b2a50f
KW
874
875/*
876 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
877
878 &regcharclass_multi_char_folds::multi_char_folds(1)
879*/
880/*** GENERATED CODE ***/
881#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
29f3ce8f
KW
882( ( 0x86 == ((const U8*)s)[1] ) ? \
883 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
884 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
a1b2a50f
KW
885
886
887/*** GENERATED CODE ***/
888#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
29f3ce8f
KW
889( ( 0x88 == ((const U8*)s)[0] ) ? \
890 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
891 : ( 0x89 == ((const U8*)s)[0] ) ? \
892 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
893 : ( 0x8F == ((const U8*)s)[0] ) ? \
894 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
895 : ( 0x91 == ((const U8*)s)[0] ) ? \
896 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
897 : ( 0xA2 == ((const U8*)s)[0] ) ? \
898 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
899 : ( 0xA3 == ((const U8*)s)[0] ) ? \
900 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
901 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
902 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
903 : ( 0xAB == ((const U8*)s)[0] ) ? \
904 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
905 : ( 0xB4 == ((const U8*)s)[0] ) ? \
906 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
907 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
908 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
909 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
910 ( ( 0x43 == ((const U8*)s)[3] ) ? \
911 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
912 : 0 ) \
913 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
914 : ( 0x68 == ((const U8*)s)[1] ) ? \
915 ( ( 0xAF == ((const U8*)s)[2] ) ? \
916 ( ( 0x49 == ((const U8*)s)[3] ) ? \
917 ( ( 0xAF == ((const U8*)s)[4] ) ? \
918 ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
919 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
920 : 0 ) \
921 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
922 : 0 ) \
923 : ( 0xB5 == ((const U8*)s)[0] ) ? \
924 ( ( 0x42 == ((const U8*)s)[1] ) ? \
925 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
926 : ( 0x46 == ((const U8*)s)[1] ) ? \
927 ( ( 0xAF == ((const U8*)s)[2] ) ? \
928 ( ( 0x49 == ((const U8*)s)[3] ) ? \
929 ( ( 0xAF == ((const U8*)s)[4] ) ? \
930 ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
931 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
932 : ( 0x62 == ((const U8*)s)[3] ) ? \
933 ( ( 0xAF == ((const U8*)s)[4] ) ? \
934 ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
935 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
936 : 0 ) \
937 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
938 : ( 0x4A == ((const U8*)s)[1] ) ? \
939 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
940 ( ( 0x43 == ((const U8*)s)[3] ) ? \
941 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
942 : 0 ) \
943 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
944 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
945 : ( 0xB8 == ((const U8*)s)[0] ) ? \
946 ( ( 0x52 == ((const U8*)s)[1] ) ? \
947 ( ( 0x46 == ((const U8*)s)[2] ) ? \
948 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
949 : ( 0x63 == ((const U8*)s)[2] ) ? \
950 ( ( ( ( 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 )\
951 : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
952 : 0 ) \
953 : ( 0xBF == ((const U8*)s)[0] ) ? \
954 ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? \
955 ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
956 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
957 : 0 )
958
959
960/*** GENERATED CODE ***/
961#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
962( ( 0x81 == ((const U8*)s)[0] ) ? \
963 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
964 : ( 0x86 == ((const U8*)s)[0] ) ? \
965 ( ( 0x86 == ((const U8*)s)[1] ) ? \
966 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
967 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
968 : ( 0x88 == ((const U8*)s)[0] ) ? \
969 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
970 : ( 0x89 == ((const U8*)s)[0] ) ? \
971 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
972 : ( 0x8F == ((const U8*)s)[0] ) ? \
973 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
974 : ( 0x91 == ((const U8*)s)[0] ) ? \
975 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
976 : ( 0xA2 == ((const U8*)s)[0] ) ? \
977 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
978 : ( 0xA3 == ((const U8*)s)[0] ) ? \
979 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
980 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
981 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
982 : ( 0xAB == ((const U8*)s)[0] ) ? \
983 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
984 : ( 0xB4 == ((const U8*)s)[0] ) ? \
985 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
986 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
987 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
988 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
989 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
990 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
991 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
992 : ( 0xB5 == ((const U8*)s)[0] ) ? \
993 ( ( 0x42 == ((const U8*)s)[1] ) ? \
994 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
995 : ( 0x46 == ((const U8*)s)[1] ) ? \
996 ( ( 0xAF == ((const U8*)s)[2] ) ? \
997 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
998 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
999 : ( 0x4A == ((const U8*)s)[1] ) ? \
1000 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1001 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1002 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1003 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1004 : ( 0xBF == ((const U8*)s)[0] ) ? \
1005 ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? \
1006 ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1007 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
1008 : 0 )
1009
1010
1011/*** GENERATED CODE ***/
1012#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
a1b2a50f 1013( ((e)-(s) > 3) ? \
29f3ce8f
KW
1014 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1015 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1016 : ( 0x86 == ((const U8*)s)[0] ) ? \
1017 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1018 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1019 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1020 : ( 0x88 == ((const U8*)s)[0] ) ? \
1021 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1022 : ( 0x89 == ((const U8*)s)[0] ) ? \
1023 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1024 : ( 0x8F == ((const U8*)s)[0] ) ? \
1025 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1026 : ( 0x91 == ((const U8*)s)[0] ) ? \
1027 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1028 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1029 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
1030 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1031 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1032 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1033 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1034 : ( 0xAB == ((const U8*)s)[0] ) ? \
1035 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1036 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1037 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1038 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1039 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1040 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1041 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1042 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1043 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1044 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1045 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1046 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1047 : ( 0x46 == ((const U8*)s)[1] ) ? \
1048 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1049 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1050 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1051 : ( 0x4A == ((const U8*)s)[1] ) ? \
1052 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1053 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1054 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1055 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
a1b2a50f
KW
1056 : 0 ) \
1057: ((e)-(s) > 2) ? \
29f3ce8f
KW
1058 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1059 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1060 : ( 0x86 == ((const U8*)s)[0] ) ? \
1061 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1062 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1063 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1064 : ( 0x88 == ((const U8*)s)[0] ) ? \
1065 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1066 : ( 0x89 == ((const U8*)s)[0] ) ? \
1067 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1068 : ( 0x91 == ((const U8*)s)[0] ) ? \
1069 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1070 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1071 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
1072 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1073 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1074 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1075 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1076 : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
a1b2a50f 1077: ((e)-(s) > 1) ? \
29f3ce8f
KW
1078 ( ( 0x86 == ((const U8*)s)[0] ) ? \
1079 ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1080 : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f
KW
1081: 0 )
1082
1083
1084/*** GENERATED CODE ***/
1085#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
1086( ((e)-(s) > 5) ? \
29f3ce8f
KW
1087 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1088 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1089 : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1090: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
a1b2a50f
KW
1091
1092/*
1093 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1094
1095 &regcharclass_multi_char_folds::multi_char_folds(0)
1096*/
1097/*** GENERATED CODE ***/
1098#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
1099( ((e)-(s) > 2) ? \
29f3ce8f
KW
1100 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1101 ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? \
1102 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1103 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1104 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f 1105: ((e)-(s) > 1) ? \
29f3ce8f
KW
1106 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1107 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1108 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f
KW
1109: 0 )
1110
1111/*
1112 FOLDS_TO_MULTI: characters that fold to multi-char strings
1113
1114 \p{_Perl_Folds_To_Multi_Char}
1115*/
1116/*** GENERATED CODE ***/
1117#define is_FOLDS_TO_MULTI_utf8(s) \
29f3ce8f
KW
1118( ( 0x8A == ((const U8*)s)[0] ) ? \
1119 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1120: ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
1121 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1122: ( 0x8E == ((const U8*)s)[0] ) ? \
1123 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1124: ( 0xB8 == ((const U8*)s)[0] ) ? \
1125 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1126: ( 0xBF == ((const U8*)s)[0] ) ? \
1127 ( ( 0x63 == ((const U8*)s)[1] ) ? \
1128 ( ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
1129 : ( 0x69 == ((const U8*)s)[1] ) ? \
1130 ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
1131 : ( 0x70 == ((const U8*)s)[1] ) ? \
1132 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
1133 : ( 0x71 == ((const U8*)s)[1] ) ? \
1134 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) || 0x59 == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x62 || ( 0x65 == ((const U8*)s)[2] || 0x66 == ((const U8*)s)[2] ) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
1135 : ( 0x72 == ((const U8*)s)[1] ) ? \
1136 ( ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xFE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x53 || ((const U8*)s)[2] == 0x59 || ( ( ((const U8*)s)[2] & 0xFB ) == 0x62 ) || ((const U8*)s)[2] == 0x65 ) ? 3 : 0 )\
1137 : ( ( 0x73 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xFE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ( ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) || ((const U8*)s)[2] == 0x65 || ((const U8*)s)[2] == 0x66 || ((const U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
1138: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )
a1b2a50f
KW
1139
1140/*
1141 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1142
1143 \p{_Perl_Problematic_Locale_Folds}
1144*/
1145/*** GENERATED CODE ***/
1146#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
29f3ce8f
KW
1147( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1148: ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ? \
1149 ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
1150: ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] ) ? \
1151 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1152: ( 0x8E == ((const U8*)s)[0] ) ? \
1153 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1154: ( 0x8F == ((const U8*)s)[0] ) ? \
1155 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1156: ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ? \
1157 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1158: ( 0xBF == ((const U8*)s)[0] ) ? \
1159 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1160: ( 0xCA == ((const U8*)s)[0] ) ? \
1161 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1162: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
a1b2a50f
KW
1163
1164/*** GENERATED CODE ***/
1165#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
1166( cp <= 0xFF || ( 0xFF < cp && \
1167( 0x130 == cp || ( 0x130 < cp && \
1168( 0x149 == cp || ( 0x149 < cp && \
1169( 0x178 == cp || ( 0x178 < cp && \
1170( 0x17F == cp || ( 0x17F < cp && \
1171( 0x1F0 == cp || ( 0x1F0 < cp && \
1172( 0x39C == cp || ( 0x39C < cp && \
1173( 0x3BC == cp || ( 0x3BC < cp && \
1174( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
1175( 0x1E9E == cp || ( 0x1E9E < cp && \
1176( 0x212A == cp || ( 0x212A < cp && \
1177( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1178
1179/*
1180 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1181
1182 \p{_Perl_Problematic_Locale_Foldeds_Start}
1183*/
1184/*** GENERATED CODE ***/
1185#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
29f3ce8f
KW
1186( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1187: ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ? \
1188 ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
1189: ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] ) ? \
1190 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1191: ( 0x8E == ((const U8*)s)[0] ) ? \
1192 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1193: ( 0x8F == ((const U8*)s)[0] ) ? \
1194 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1195: ( 0xAB == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
1196 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1197: ( 0xBF == ((const U8*)s)[0] ) ? \
1198 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1199: ( 0xCA == ((const U8*)s)[0] ) ? \
1200 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1201: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
a1b2a50f
KW
1202
1203/*** GENERATED CODE ***/
1204#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
1205( cp <= 0xFF || ( 0xFF < cp && \
1206( 0x130 == cp || ( 0x130 < cp && \
1207( 0x149 == cp || ( 0x149 < cp && \
1208( 0x178 == cp || ( 0x178 < cp && \
1209( 0x17F == cp || ( 0x17F < cp && \
1210( 0x1F0 == cp || ( 0x1F0 < cp && \
1211( 0x2BC == cp || ( 0x2BC < cp && \
1212( 0x39C == cp || ( 0x39C < cp && \
1213( 0x3BC == cp || ( 0x3BC < cp && \
1214( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
1215( 0x1E9E == cp || ( 0x1E9E < cp && \
1216( 0x212A == cp || ( 0x212A < cp && \
1217( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1218
1219/*
1220 PATWS: pattern white space
1221
099323b4 1222 \p{_Perl_PatWS}
a1b2a50f
KW
1223*/
1224/*** GENERATED CODE ***/
1225#define is_PATWS_safe(s,e,is_utf8) \
dd9bc2b0 1226( ( LIKELY((e) > (s)) ) ? \
29f3ce8f
KW
1227 ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x05 ) || ((const U8*)s)[0] == 0x0B || ( ( ((const U8*)s)[0] & 0xFE ) == 0x0C ) || ((const U8*)s)[0] == 0x25 || ((const U8*)s)[0] == 0x40 ) ? 1\
1228 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1229 ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1230 : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
a1b2a50f
KW
1231: 0 )
1232
1233/*** GENERATED CODE ***/
1234#define is_PATWS_cp(cp) \
1235( 0x05 == cp || ( 0x05 < cp && \
1236( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp && \
1237( 0x15 == cp || ( 0x15 < cp && \
1238( 0x25 == cp || ( 0x25 < cp && \
1239( 0x40 == cp || ( 0x40 < cp && \
1240( 0x200E == cp || ( 0x200E < cp && \
1241( 0x200F == cp || ( 0x200F < cp && \
1242( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1243
1244#endif /* EBCDIC 1047 */
1245
1246#if 'A' == 193 /* EBCDIC 037 */ \
1247 && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
1248 && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
1249 && '$' == 91 && '@' == 124 && '`' == 121
1250/*
1251 LNBREAK: Line Break: \R
1252
1253 "\x0D\x0A" # CRLF - Network (Windows) line ending
1254 \p{VertSpace}
1255*/
1256/*** GENERATED CODE ***/
1257#define is_LNBREAK_safe(s,e,is_utf8) \
1258( ((e)-(s) > 2) ? \
29f3ce8f
KW
1259 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1260 : ( 0x0D == ((const U8*)s)[0] ) ? \
1261 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1262 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
a1b2a50f 1263: ((e)-(s) > 1) ? \
29f3ce8f
KW
1264 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1265 : ( 0x0D == ((const U8*)s)[0] ) ? \
1266 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
1267 : 0 ) \
1268: ((e)-(s) > 0) ? \
29f3ce8f 1269 ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
1270: 0 )
1271
1272/*** GENERATED CODE ***/
1273#define is_LNBREAK_utf8_safe(s,e) \
1274( ((e)-(s) > 2) ? \
29f3ce8f
KW
1275 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1276 : ( 0x0D == ((const U8*)s)[0] ) ? \
1277 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1278 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
a1b2a50f 1279: ((e)-(s) > 1) ? \
29f3ce8f
KW
1280 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1281 : ( 0x0D == ((const U8*)s)[0] ) ? \
1282 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
1283 : 0 ) \
1284: ((e)-(s) > 0) ? \
29f3ce8f 1285 ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
1286: 0 )
1287
1288/*** GENERATED CODE ***/
1289#define is_LNBREAK_latin1_safe(s,e) \
1290( ((e)-(s) > 1) ? \
29f3ce8f
KW
1291 ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1292 : ( 0x0D == ((const U8*)s)[0] ) ? \
1293 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
1294 : 0 ) \
1295: ((e)-(s) > 0) ? \
29f3ce8f 1296 ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
1297: 0 )
1298
1299/*
1300 HORIZWS: Horizontal Whitespace: \h \H
1301
1302 \p{HorizSpace}
1303*/
1304/*** GENERATED CODE ***/
1305#define is_HORIZWS_high(s) \
29f3ce8f
KW
1306( ( 0xBD == ((const U8*)s)[0] ) ? \
1307 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1308: ( 0xCA == ((const U8*)s)[0] ) ? \
1309 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1310 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1311 : ( 0x42 == ((const U8*)s)[1] ) ? \
1312 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1313 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1314: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
1315
1316/*** GENERATED CODE ***/
1317#define is_HORIZWS_cp_high(cp) \
1318( 0x1680 == cp || ( 0x1680 < cp && \
1319( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
1320( 0x202F == cp || ( 0x202F < cp && \
1321( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1322
1323/*
1324 VERTWS: Vertical Whitespace: \v \V
1325
1326 \p{VertSpace}
1327*/
1328/*** GENERATED CODE ***/
1329#define is_VERTWS_high(s) \
29f3ce8f 1330( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
1331
1332/*** GENERATED CODE ***/
1333#define is_VERTWS_cp_high(cp) \
1334( 0x2028 == cp || 0x2029 == cp )
1335
1336/*
1337 XDIGIT: Hexadecimal digits
1338
1339 \p{XDigit}
1340*/
1341/*** GENERATED CODE ***/
1342#define is_XDIGIT_high(s) \
29f3ce8f
KW
1343( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
1344 ( ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0x57 ) || ( ( ((const U8*)s)[3] & 0xFE ) == 0x58 ) || ( ( ((const U8*)s)[3] & 0xFE ) == 0x62 ) || ( ( ((const U8*)s)[3] & 0xFC ) == 0x64 ) ) ? 4 : 0 )\
1345 : ( ( 0x67 == ((const U8*)s)[2] || 0x68 == ((const U8*)s)[2] ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
a1b2a50f
KW
1346
1347/*** GENERATED CODE ***/
1348#define is_XDIGIT_cp_high(cp) \
1349( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp && \
1350( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
1351
1352/*
1353 XPERLSPACE: \p{XPerlSpace}
1354
1355 \p{XPerlSpace}
1356*/
1357/*** GENERATED CODE ***/
1358#define is_XPERLSPACE_high(s) \
29f3ce8f
KW
1359( ( 0xBD == ((const U8*)s)[0] ) ? \
1360 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1361: ( 0xCA == ((const U8*)s)[0] ) ? \
1362 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1363 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1364 : ( 0x42 == ((const U8*)s)[1] ) ? \
1365 ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1366 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1367: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
1368
1369/*** GENERATED CODE ***/
1370#define is_XPERLSPACE_cp_high(cp) \
1371( 0x1680 == cp || ( 0x1680 < cp && \
1372( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp && \
1373( 0x2028 == cp || ( 0x2028 < cp && \
1374( 0x2029 == cp || ( 0x2029 < cp && \
1375( 0x202F == cp || ( 0x202F < cp && \
1376( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
1377
1378/*
1379 REPLACEMENT: Unicode REPLACEMENT CHARACTER
1380
1381 0xFFFD
1382*/
1383/*** GENERATED CODE ***/
1384#define is_REPLACEMENT_utf8_safe(s,e) \
29f3ce8f 1385( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x70 == ((const U8*)s)[3] ) ) ? 4 : 0 )
a1b2a50f
KW
1386
1387/*
1388 NONCHAR: Non character code points
1389
099323b4 1390 \p{_Perl_Nchar}
a1b2a50f
KW
1391*/
1392/*** GENERATED CODE ***/
89d986df 1393#define is_NONCHAR_utf8_safe(s,e) \
29f3ce8f
KW
1394( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1395 ( ( 0x72 == ((const U8*)s)[1] ) ? \
1396 ( ( 0x55 == ((const U8*)s)[2] ) ? \
1397 ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1398 : ( 0x56 == ((const U8*)s)[2] ) ? \
1399 ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1400 : ( ( 0x72 == ((const U8*)s)[2] ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
89d986df 1401 : 0 ) \
29f3ce8f
KW
1402 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
1403 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1404 : ( 0xED == ((const U8*)s)[0] ) ? \
1405 ( ( ( ( ( ((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] ) ) && ( 0x71 == ((const U8*)s)[4] || 0x72 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1406 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( 0x71 == ((const U8*)s)[4] || 0x72 == ((const U8*)s)[4] ) ) ? 5 : 0 ) : 0 )
a1b2a50f
KW
1407
1408/*
21cb232c 1409 SURROGATE: Surrogate code points
a1b2a50f 1410
099323b4 1411 \p{_Perl_Surrogate}
a1b2a50f
KW
1412*/
1413/*** GENERATED CODE ***/
89d986df 1414#define is_SURROGATE_utf8_safe(s,e) \
29f3ce8f 1415( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0x64 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
a1b2a50f
KW
1416
1417/*
a1b2a50f
KW
1418 QUOTEMETA: Meta-characters that \Q should quote
1419
1420 \p{_Perl_Quotemeta}
1421*/
1422/*** GENERATED CODE ***/
1423#define is_QUOTEMETA_high_part0(s) \
29f3ce8f
KW
1424( ( 0x41 == ((const U8*)s)[1] || ( 0x54 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
1425 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1426 : ( 0x42 == ((const U8*)s)[1] ) ? \
1427 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ? 3 : 0 )\
1428 : ( 0x43 == ((const U8*)s)[1] ) ? \
1429 ( ( ( 0x42 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x63 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1430 : ( 0x44 == ((const U8*)s)[1] ) ? \
1431 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
1432 : ( ( 0x53 == ((const U8*)s)[1] ) && ( ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )
a1b2a50f
KW
1433
1434
1435/*** GENERATED CODE ***/
1436#define is_QUOTEMETA_high_part1(s) \
29f3ce8f
KW
1437( ( 0xCB == ((const U8*)s)[0] ) ? \
1438 ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x43 ) || ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x68 ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
1439 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1440 : ( 0x69 == ((const U8*)s)[1] ) ? \
1441 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) ? 3 : 0 )\
1442 : ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1443: ( 0xCC == ((const U8*)s)[0] ) ? \
1444 ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1445: ( 0xCD == ((const U8*)s)[0] ) ? \
1446 ( ( ( ( ( ((const U8*)s)[1] & 0xF7 ) == 0x57 ) || ( ( ((const U8*)s)[1] & 0xFE ) == 0x58 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1447: ( 0xCE == ((const U8*)s)[0] ) ? \
1448 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1449 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) || ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1450 : ( 0x42 == ((const U8*)s)[1] ) ? \
1451 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
1452 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1453: ( 0xDD == ((const U8*)s)[0] ) ? \
1454 ( ( 0x72 == ((const U8*)s)[1] ) ? \
1455 ( ( 0x4A == ((const U8*)s)[2] ) ? \
1456 ( ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )\
1457 : ( 0x57 == ((const U8*)s)[2] ) ? \
1458 ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1459 : ( 0x59 == ((const U8*)s)[2] ) ? \
1460 ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 ) \
1461 : ( 0x65 == ((const U8*)s)[2] ) ? \
1462 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1463 : ( 0x70 == ((const U8*)s)[2] ) ? \
1464 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1465 : ( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )\
a1b2a50f 1466 : 0 ) \
29f3ce8f
KW
1467: ( 0xDF == ((const U8*)s)[0] ) ? \
1468 ( ( 0x56 == ((const U8*)s)[1] ) ? \
1469 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
1470 : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
1471: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
a1b2a50f
KW
1472
1473
1474/*** GENERATED CODE ***/
1475#define is_QUOTEMETA_high(s) \
29f3ce8f
KW
1476( ( 0xAF == ((const U8*)s)[0] ) ? \
1477 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1478: ( 0xB7 == ((const U8*)s)[0] ) ? \
1479 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1480: ( 0xBC == ((const U8*)s)[0] ) ? \
1481 ( ( 0x51 == ((const U8*)s)[1] ) ? \
1482 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1483 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1484: ( 0xBD == ((const U8*)s)[0] ) ? \
1485 ( ( 0x62 == ((const U8*)s)[1] ) ? \
1486 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1487 : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) ) ? 3 : 0 )\
1488: ( 0xBE == ((const U8*)s)[0] ) ? \
1489 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
1490: ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
a1b2a50f
KW
1491
1492/*
1493 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1494
1495 &regcharclass_multi_char_folds::multi_char_folds(1)
1496*/
1497/*** GENERATED CODE ***/
1498#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
29f3ce8f
KW
1499( ( 0x86 == ((const U8*)s)[1] ) ? \
1500 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1501 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
a1b2a50f
KW
1502
1503
1504/*** GENERATED CODE ***/
1505#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
29f3ce8f
KW
1506( ( 0x88 == ((const U8*)s)[0] ) ? \
1507 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1508 : ( 0x89 == ((const U8*)s)[0] ) ? \
1509 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1510 : ( 0x8E == ((const U8*)s)[0] ) ? \
1511 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1512 : ( 0x91 == ((const U8*)s)[0] ) ? \
1513 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1514 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1515 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
1516 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1517 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1518 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1519 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1520 : ( 0xAA == ((const U8*)s)[0] ) ? \
1521 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1522 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1523 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1524 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1525 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1526 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1527 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1528 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1529 : 0 ) \
1530 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1531 : ( 0x67 == ((const U8*)s)[1] ) ? \
1532 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1533 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1534 ( ( 0xAD == ((const U8*)s)[4] ) ? \
1535 ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
1536 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1537 : 0 ) \
1538 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1539 : 0 ) \
1540 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1541 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1542 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1543 : ( 0x46 == ((const U8*)s)[1] ) ? \
1544 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1545 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1546 ( ( 0xAD == ((const U8*)s)[4] ) ? \
1547 ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
1548 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1549 : ( 0x5F == ((const U8*)s)[3] ) ? \
1550 ( ( 0xAD == ((const U8*)s)[4] ) ? \
1551 ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
1552 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1553 : 0 ) \
1554 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1555 : ( 0x4A == ((const U8*)s)[1] ) ? \
1556 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1557 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1558 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1559 : 0 ) \
1560 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1561 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1562 : ( 0xB7 == ((const U8*)s)[0] ) ? \
1563 ( ( 0x52 == ((const U8*)s)[1] ) ? \
1564 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1565 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1566 : ( 0x62 == ((const U8*)s)[2] ) ? \
1567 ( ( ( ( 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 )\
1568 : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1569 : 0 ) \
1570 : ( 0xBF == ((const U8*)s)[0] ) ? \
1571 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ? \
1572 ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1573 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
1574 : 0 )
1575
1576
1577/*** GENERATED CODE ***/
1578#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
1579( ( 0x81 == ((const U8*)s)[0] ) ? \
1580 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1581 : ( 0x86 == ((const U8*)s)[0] ) ? \
1582 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1583 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1584 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1585 : ( 0x88 == ((const U8*)s)[0] ) ? \
1586 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1587 : ( 0x89 == ((const U8*)s)[0] ) ? \
1588 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1589 : ( 0x8E == ((const U8*)s)[0] ) ? \
1590 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1591 : ( 0x91 == ((const U8*)s)[0] ) ? \
1592 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1593 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1594 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
1595 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1596 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1597 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1598 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1599 : ( 0xAA == ((const U8*)s)[0] ) ? \
1600 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1601 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1602 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1603 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1604 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1605 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1606 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1607 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1608 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1609 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1610 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1611 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1612 : ( 0x46 == ((const U8*)s)[1] ) ? \
1613 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1614 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
1615 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1616 : ( 0x4A == ((const U8*)s)[1] ) ? \
1617 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1618 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1619 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1620 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1621 : ( 0xBF == ((const U8*)s)[0] ) ? \
1622 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ? \
1623 ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1624 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
1625 : 0 )
1626
1627
1628/*** GENERATED CODE ***/
1629#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
a1b2a50f 1630( ((e)-(s) > 3) ? \
29f3ce8f
KW
1631 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1632 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1633 : ( 0x86 == ((const U8*)s)[0] ) ? \
1634 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1635 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1636 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1637 : ( 0x88 == ((const U8*)s)[0] ) ? \
1638 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1639 : ( 0x89 == ((const U8*)s)[0] ) ? \
1640 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1641 : ( 0x8E == ((const U8*)s)[0] ) ? \
1642 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1643 : ( 0x91 == ((const U8*)s)[0] ) ? \
1644 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1645 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1646 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
1647 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1648 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1649 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1650 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1651 : ( 0xAA == ((const U8*)s)[0] ) ? \
1652 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1653 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1654 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1655 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1656 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1657 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1658 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1659 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1660 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1661 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1662 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1663 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1664 : ( 0x46 == ((const U8*)s)[1] ) ? \
1665 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1666 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
1667 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1668 : ( 0x4A == ((const U8*)s)[1] ) ? \
1669 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1670 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1671 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1672 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
a1b2a50f
KW
1673 : 0 ) \
1674: ((e)-(s) > 2) ? \
29f3ce8f
KW
1675 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1676 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1677 : ( 0x86 == ((const U8*)s)[0] ) ? \
1678 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1679 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1680 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1681 : ( 0x88 == ((const U8*)s)[0] ) ? \
1682 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1683 : ( 0x89 == ((const U8*)s)[0] ) ? \
1684 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1685 : ( 0x91 == ((const U8*)s)[0] ) ? \
1686 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1687 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1688 ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 ) \
1689 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1690 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1691 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1692 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1693 : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
a1b2a50f 1694: ((e)-(s) > 1) ? \
29f3ce8f
KW
1695 ( ( 0x86 == ((const U8*)s)[0] ) ? \
1696 ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1697 : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f
KW
1698: 0 )
1699
1700
1701/*** GENERATED CODE ***/
1702#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
1703( ((e)-(s) > 5) ? \
29f3ce8f
KW
1704 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1705 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1706 : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1707: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
a1b2a50f
KW
1708
1709/*
1710 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1711
1712 &regcharclass_multi_char_folds::multi_char_folds(0)
1713*/
1714/*** GENERATED CODE ***/
1715#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
1716( ((e)-(s) > 2) ? \
29f3ce8f
KW
1717 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1718 ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? \
1719 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1720 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1721 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f 1722: ((e)-(s) > 1) ? \
29f3ce8f
KW
1723 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1724 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1725 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f
KW
1726: 0 )
1727
1728/*
1729 FOLDS_TO_MULTI: characters that fold to multi-char strings
1730
1731 \p{_Perl_Folds_To_Multi_Char}
1732*/
1733/*** GENERATED CODE ***/
1734#define is_FOLDS_TO_MULTI_utf8(s) \
29f3ce8f
KW
1735( ( 0x80 == ((const U8*)s)[0] ) ? \
1736 ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1737: ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
1738 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1739: ( 0x8D == ((const U8*)s)[0] ) ? \
1740 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1741: ( 0xB7 == ((const U8*)s)[0] ) ? \
1742 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1743: ( 0xBF == ((const U8*)s)[0] ) ? \
1744 ( ( 0x62 == ((const U8*)s)[1] ) ? \
1745 ( ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
1746 : ( 0x68 == ((const U8*)s)[1] ) ? \
1747 ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
1748 : ( 0x6A == ((const U8*)s)[1] ) ? \
1749 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1750 : ( 0x70 == ((const U8*)s)[1] ) ? \
1751 ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x64 || 0x6A == ((const U8*)s)[2] ) ? 3 : 0 )\
1752 : ( 0x71 == ((const U8*)s)[1] ) ? \
1753 ( ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x53 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F ) ? 3 : 0 )\
1754 : ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x62 ) ) ) ? 3 : 0 )\
1755: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x65 ) ) ) ? 4 : 0 )
a1b2a50f
KW
1756
1757/*
1758 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1759
1760 \p{_Perl_Problematic_Locale_Folds}
1761*/
1762/*** GENERATED CODE ***/
1763#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
29f3ce8f
KW
1764( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x5C ) || ((const U8*)s)[0] == 0x5E || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x6C ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ((const U8*)s)[0] == 0xB0 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1765: ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1766 ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
1767: ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] ) ? \
1768 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1769: ( 0x8D == ((const U8*)s)[0] ) ? \
1770 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1771: ( 0x8E == ((const U8*)s)[0] ) ? \
1772 ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1773: ( ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
1774 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1775: ( 0xBF == ((const U8*)s)[0] ) ? \
1776 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1777: ( 0xCA == ((const U8*)s)[0] ) ? \
1778 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1779: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
a1b2a50f
KW
1780
1781/*** GENERATED CODE ***/
1782#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
1783( cp <= 0xFF || ( 0xFF < cp && \
1784( 0x130 == cp || ( 0x130 < cp && \
1785( 0x149 == cp || ( 0x149 < cp && \
1786( 0x178 == cp || ( 0x178 < cp && \
1787( 0x17F == cp || ( 0x17F < cp && \
1788( 0x1F0 == cp || ( 0x1F0 < cp && \
1789( 0x39C == cp || ( 0x39C < cp && \
1790( 0x3BC == cp || ( 0x3BC < cp && \
1791( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
1792( 0x1E9E == cp || ( 0x1E9E < cp && \
1793( 0x212A == cp || ( 0x212A < cp && \
1794( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1795
1796/*
1797 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1798
1799 \p{_Perl_Problematic_Locale_Foldeds_Start}
1800*/
1801/*** GENERATED CODE ***/
1802#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
29f3ce8f
KW
1803( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x5C ) || ((const U8*)s)[0] == 0x5E || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x6C ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ((const U8*)s)[0] == 0xB0 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1804: ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1805 ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
1806: ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] ) ? \
1807 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1808: ( 0x8D == ((const U8*)s)[0] ) ? \
1809 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1810: ( 0x8E == ((const U8*)s)[0] ) ? \
1811 ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1812: ( 0xAA == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ? \
1813 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1814: ( 0xBF == ((const U8*)s)[0] ) ? \
1815 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1816: ( 0xCA == ((const U8*)s)[0] ) ? \
1817 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1818: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
a1b2a50f
KW
1819
1820/*** GENERATED CODE ***/
1821#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
1822( cp <= 0xFF || ( 0xFF < cp && \
1823( 0x130 == cp || ( 0x130 < cp && \
1824( 0x149 == cp || ( 0x149 < cp && \
1825( 0x178 == cp || ( 0x178 < cp && \
1826( 0x17F == cp || ( 0x17F < cp && \
1827( 0x1F0 == cp || ( 0x1F0 < cp && \
1828( 0x2BC == cp || ( 0x2BC < cp && \
1829( 0x39C == cp || ( 0x39C < cp && \
1830( 0x3BC == cp || ( 0x3BC < cp && \
1831( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp && \
1832( 0x1E9E == cp || ( 0x1E9E < cp && \
1833( 0x212A == cp || ( 0x212A < cp && \
1834( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1835
1836/*
1837 PATWS: pattern white space
1838
099323b4 1839 \p{_Perl_PatWS}
a1b2a50f
KW
1840*/
1841/*** GENERATED CODE ***/
1842#define is_PATWS_safe(s,e,is_utf8) \
dd9bc2b0 1843( ( LIKELY((e) > (s)) ) ? \
29f3ce8f
KW
1844 ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x05 ) || ((const U8*)s)[0] == 0x0B || ( ( ((const U8*)s)[0] & 0xFE ) == 0x0C ) || ((const U8*)s)[0] == 0x25 || ((const U8*)s)[0] == 0x40 ) ? 1\
1845 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1846 ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1847 : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
a1b2a50f
KW
1848: 0 )
1849
1850/*** GENERATED CODE ***/
1851#define is_PATWS_cp(cp) \
1852( 0x05 == cp || ( 0x05 < cp && \
1853( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp && \
1854( 0x15 == cp || ( 0x15 < cp && \
1855( 0x25 == cp || ( 0x25 < cp && \
1856( 0x40 == cp || ( 0x40 < cp && \
1857( 0x200E == cp || ( 0x200E < cp && \
1858( 0x200F == cp || ( 0x200F < cp && \
1859( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1860
1861#endif /* EBCDIC 037 */
1862
6a5bc5ac 1863#endif /* PERL_REGCHARCLASS_H_ */
d10c72f2 1864
542a7545 1865/* Generated from:
32ea73a1 1866 * f0b404b165a72b0aaeca3ce517cd14ea1b501720c98719dadbb990f1952fc568 lib/Unicode/UCD.pm
8a6698d7
UC
1867 * 0bc5023a4606962114c4eb3775fae072cad8fecef5894d0de06603b1c70cbb47 lib/unicore/ArabicShaping.txt
1868 * 2c7e2fb0cb91b378f0fa9301e951946e4de68f2ab6afc68d21bcff57cd2a8ad8 lib/unicore/BidiBrackets.txt
1869 * f6d297765469724af523737c80faba3c33518fade4c5dc599e3ab51846f56916 lib/unicore/BidiMirroring.txt
1870 * 0b457b66c788a97c8521e265f0b793d4ed911356d39eb61029f9cef8554cd052 lib/unicore/Blocks.txt
1871 * 64f117a4749dd4a1b6c54277f63f6cf1e0eb45d290cbedaf777fbe71b8880885 lib/unicore/CaseFolding.txt
1872 * c84c326cea271347752edc89487c24d847fd453082dfa07d0e9e284a05a7dd0b lib/unicore/CompositionExclusions.txt
1873 * eb115a5de9a32c9ad447d6ea1cddcadb53d47f6cbc2521f3fe0bebb040c39866 lib/unicore/DAge.txt
1874 * 3406825d64564bf2a37031c36a3e0f99d708aa17595b81f8b539d0f3d1a3923f lib/unicore/DCoreProperties.txt
1875 * aad8102473e2c40b74a4aba4474a7008959963a0e51a2ee0ed4f029c8432cc6b lib/unicore/DNormalizationProps.txt
1876 * 7aa76ead56e8cd0c4055408ca3c4c268513cca8ce5d0f5ea422203f721d3caca lib/unicore/EastAsianWidth.txt
1877 * 8945581393e75bbd16ecec72e749fbb252155e1c2145a86abf24fcb308a66e7d lib/unicore/EmojiData.txt
1878 * f97d03f720230f3ff9b5c9ac89ff06bab512a91c89155bfecbf3b89fa8809ce6 lib/unicore/EquivalentUnifiedIdeograph.txt
1879 * 60b094a1ba49e4fa6397d1995e093c8699d3064e469985fb910bbdcffe0c703a lib/unicore/HangulSyllableType.txt
1880 * 902ac38970a235b415d9165f63271fb9016f709fe5fc0829b636ef608b41b0a9 lib/unicore/IndicPositionalCategory.txt
1881 * 0da7a1c8f1a6426f6c7b2193aa09b3c88ce3bf97288b62a30fa012d92f3b7f63 lib/unicore/IndicSyllabicCategory.txt
1882 * 714b385eb1c04559dcd1678bbc27ba7bea9964680224ce3dd23b969f9c8cd316 lib/unicore/Jamo.txt
1883 * 371aa0d3043ff8e2d47c2aec5ca3d44517b4c5acefc1b6ba41a8c1ae1edff323 lib/unicore/LineBreak.txt
1884 * 12617cec2de4f51d55e48ca14710b1109b8d7e58555d789c000f91d3eda1c585 lib/unicore/NameAliases.txt
1885 * 8708deafbb5e650a3d87a898d1d044294f8d280233e0dfa32e3d2a9984153f4b lib/unicore/NamedSequences.txt
1886 * 205baca4772f1935060f3d652d36956c2b7a193440428cc7bae5414e9e7198f3 lib/unicore/PropList.txt
1887 * 2a9cb9afe6a36a1a73ce2cedb540abd3fbf29f6afcda702d07fcbf561162a17a lib/unicore/PropValueAliases.txt
1888 * b370cf0c886b3c9fd679d7696a2b8026d2c959fd3857fc7f5b56cbbe31e34f6e lib/unicore/PropertyAliases.txt
1889 * 3e13406523153c85cf0b53eb24f8fe5843fb673737e184c8478b69a06da15232 lib/unicore/ScriptExtensions.txt
1890 * e9f3c0aa3c4f892b589c809cf4ae051a39921417cda6fefdbe43717b92db76d5 lib/unicore/Scripts.txt
1891 * 9f5668c3a6f3bbb88e2c07234ecfb2ec5db39e8dc5d7d04b994f6df6dbfdb5dd lib/unicore/SpecialCasing.txt
1892 * 4997a3196eb79b4d0d6b8384560f6aeb46a062693f0abd5ba736abbff7976099 lib/unicore/UnicodeData.txt
1893 * 5f520f210e8ca4e8861c12ba34740e14d737d8ba5136c08d63aa5a5bc7f2bf2a lib/unicore/VerticalOrientation.txt
1894 * 4b26c6077d85fe2eabd16b433bf957d95dc5459a8f2626075cf8d611d6f833cb lib/unicore/auxiliary/GCBTest.txt
1895 * 62f0e8bf7406d84bafee8f998faf469b84ac0cb359526a4d5eb2f2d55caec55b lib/unicore/auxiliary/GraphemeBreakProperty.txt
1896 * 1f40941482f80b58cdbc319f916b68718d33febfd5f326035bde73ecb043297c lib/unicore/auxiliary/LBTest.txt
1897 * cfa8d39787eb3e0883a40960e940d5df8ee6cdcbc8e1be5809fa74df97de8238 lib/unicore/auxiliary/SBTest.txt
1898 * 13f1769dce7c186ffb9dd830c31087f9917d1b108601aca37713514d9c6cffdd lib/unicore/auxiliary/SentenceBreakProperty.txt
1899 * 7e782466e4f13d281a3c0be9598426b0ebfdec5441843e77cb31772b8193fb0a lib/unicore/auxiliary/WBTest.txt
1900 * 6bdb70f837a40dde1336f88470766c5e0c5934fc235dca7126977817443ea961 lib/unicore/auxiliary/WordBreakProperty.txt
1901 * 9431a818be21ed42ed254a5d3b100bc372de1cd354c4873a4c50cc01f56aec39 lib/unicore/extracted/DBidiClass.txt
1902 * 1f671c893c88488cb917de2f43bcaab0b15539607eddde75ebd6dc1b236dcf0e lib/unicore/extracted/DBinaryProperties.txt
1903 * 11c8bd81ecbede4d67c7b5b693a471647d5401956707c639ae053b836cc7f5da lib/unicore/extracted/DCombiningClass.txt
1904 * 00de56bb71306f28d51c02f725dc65f4b2588eb8ccc00c829717c0d1ee9592d6 lib/unicore/extracted/DDecompositionType.txt
1905 * 7c2d15889665823996fa81a9ecc490d080c99da808d7e91f14809af932530161 lib/unicore/extracted/DEastAsianWidth.txt
1906 * 7ceab0dc8e24899a72bb1b91894e1c15e6a7c139939fefb1bcd46329f46d3758 lib/unicore/extracted/DGeneralCategory.txt
1907 * 890455619a3dd3dd380a49b087063c72a2f730e5997b5232e30dffb9dc30bd85 lib/unicore/extracted/DJoinGroup.txt
1908 * 4fd53b6fc72b633f8020a2f37e7ce1aa386ed530061b66a9d5cb11cbb3f07335 lib/unicore/extracted/DJoinType.txt
1909 * 018e20fa2f469667cc7ccd8a3d4a4a8cce8ad9bdf5fce5b2f61137660ea1065f lib/unicore/extracted/DLineBreak.txt
1910 * 88c30a794011f5e6dc62154342e8bab1bd4ce2d0c0ab06fb69ba47134dc75b23 lib/unicore/extracted/DNumType.txt
1911 * dab1e84f48990e30635a4f489d33212b25d0e35d80839c08e33a8afe5736346c lib/unicore/extracted/DNumValues.txt
7e659d18 1912 * aa29d36570237ec49c1fbd59d9cfafefcce690a286d3273ff4da49da1dfc88f2 lib/unicore/mktables
8a6698d7 1913 * 7bd6bcbe3813e0cd55e0998053d182b7bc8c97dcfd0b85028e9f7f55af4ad61b lib/unicore/version
0769eb91 1914 * 4bb677187a1a64e39d48f2e341b5ecb6c99857e49d7a79cf503bd8a3c709999b regen/charset_translations.pl
c5bfbb64 1915 * f4fe24c2a005b636f6e7418df060c6c9a57ddcae4219b54d0cb18baf312dbc3a regen/regcharclass.pl
9b63e895 1916 * 393f8d882713a3ba227351ad0f00ea4839fda74fcf77dcd1cdf31519925adba5 regen/regcharclass_multi_char_folds.pl
542a7545 1917 * ex: set ro: */