This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Merge branch 'multi-fold' into blead
[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) ? \
e42cde6b 31 ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1 \
29f3ce8f
KW
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 ) \
e42cde6b 37 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
29f3ce8f 38 : ( 0x85 == ((const U8*)s)[0] ) ) \
e64b1bd1 39: ((e)-(s) > 1) ? \
e42cde6b 40 ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1 \
29f3ce8f
KW
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) ? \
e42cde6b 47 ( ( inRANGE(((const U8*)s)[0], 0x0A, 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) ? \
e42cde6b 56 ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1 \
29f3ce8f
KW
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 ) \
e42cde6b 61 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
e64b1bd1 62: ((e)-(s) > 1) ? \
e42cde6b 63 ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1 \
29f3ce8f
KW
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) ? \
e42cde6b 68 ( inRANGE(((const U8*)s)[0], 0x0A, 0x0D ) ) \
e64b1bd1 69: 0 )
e1d1eefb 70
12b72891 71/*** GENERATED CODE ***/
12b72891 72#define is_LNBREAK_latin1_safe(s,e) \
e64b1bd1 73( ((e)-(s) > 1) ? \
e42cde6b 74 ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) || 0x85 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
75 : ( 0x0D == ((const U8*)s)[0] ) ? \
76 ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
9a3182e9 77 : 0 ) \
e64b1bd1 78: ((e)-(s) > 0) ? \
e42cde6b 79 ( inRANGE(((const U8*)s)[0], 0x0A, 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] ) ? \
e42cde6b 93 ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8A ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
94 : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
95: ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
2cafb56b
KW
96
97/*** GENERATED CODE ***/
2cafb56b 98#define is_HORIZWS_cp_high(cp) \
c7c8bf55 99( 0x1680 == cp || ( 0x1680 < cp && \
e42cde6b 100( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
c7c8bf55
KW
101( 0x202F == cp || ( 0x202F < cp && \
102( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
2cafb56b 103
12b72891
RGS
104/*
105 VERTWS: Vertical Whitespace: \v \V
e1d1eefb 106
05b688d9 107 \p{VertSpace}
12b72891
RGS
108*/
109/*** GENERATED CODE ***/
840f8e92 110#define is_VERTWS_high(s) \
e42cde6b 111( ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 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] ) ? \
e42cde6b
KW
126 ( ( inRANGE(((const U8*)s)[2], 0x90, 0x99 ) || inRANGE(((const U8*)s)[2], 0xA1, 0xA6 ) ) ? 3 : 0 )\
127 : ( ( 0xBD == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x81, 0x86 ) ) ) ? 3 : 0 )\
4ac6419d
KW
128: 0 )
129
130/*** GENERATED CODE ***/
131#define is_XDIGIT_cp_high(cp) \
e42cde6b
KW
132( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
133( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
4ac6419d
KW
134
135/*
bedac28b
KW
136 XPERLSPACE: \p{XPerlSpace}
137
138 \p{XPerlSpace}
139*/
140/*** GENERATED CODE ***/
bedac28b 141#define is_XPERLSPACE_high(s) \
29f3ce8f
KW
142( ( 0xE1 == ((const U8*)s)[0] ) ? \
143 ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
144: ( 0xE2 == ((const U8*)s)[0] ) ? \
145 ( ( 0x80 == ((const U8*)s)[1] ) ? \
e42cde6b 146 ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8A ) || inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
147 : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
148: ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
bedac28b
KW
149
150/*** GENERATED CODE ***/
151#define is_XPERLSPACE_cp_high(cp) \
c7c8bf55 152( 0x1680 == cp || ( 0x1680 < cp && \
e42cde6b 153( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
c7c8bf55
KW
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 NONCHAR: Non character code points
161
099323b4 162 \p{_Perl_Nchar}
b96a92fb
KW
163*/
164/*** GENERATED CODE ***/
89d986df 165#define is_NONCHAR_utf8_safe(s,e) \
29f3ce8f
KW
166( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
167 ( ( 0xB7 == ((const U8*)s)[1] ) ? \
e42cde6b
KW
168 ( ( inRANGE(((const U8*)s)[2], 0x90, 0xAF ) ) ? 3 : 0 ) \
169 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xBE, 0xBF ) ) ) ? 3 : 0 )\
29f3ce8f 170 : ( 0xF0 == ((const U8*)s)[0] ) ? \
e42cde6b
KW
171 ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 )\
172 : ( inRANGE(((const U8*)s)[0], 0xF1, 0xF3 ) ) ? \
173 ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 )\
174 : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 ) : 0 )
b96a92fb
KW
175
176/*
21cb232c 177 SURROGATE: Surrogate code points
b96a92fb 178
099323b4 179 \p{_Perl_Surrogate}
b96a92fb
KW
180*/
181/*** GENERATED CODE ***/
89d986df 182#define is_SURROGATE_utf8_safe(s,e) \
e42cde6b 183( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0xA0, 0xBF ) ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0xBF ) ) ) ? 3 : 0 )
b96a92fb
KW
184
185/*
685289b5
KW
186 QUOTEMETA: Meta-characters that \Q should quote
187
188 \p{_Perl_Quotemeta}
189*/
190/*** GENERATED CODE ***/
191#define is_QUOTEMETA_high(s) \
29f3ce8f
KW
192( ( 0xCD == ((const U8*)s)[0] ) ? \
193 ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 ) \
194: ( 0xD8 == ((const U8*)s)[0] ) ? \
195 ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 ) \
196: ( 0xE1 == ((const U8*)s)[0] ) ? \
197 ( ( 0x85 == ((const U8*)s)[1] ) ? \
e42cde6b 198 ( ( inRANGE(((const U8*)s)[2], 0x9F, 0xA0 ) ) ? 3 : 0 ) \
29f3ce8f
KW
199 : ( 0x9A == ((const U8*)s)[1] ) ? \
200 ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 ) \
201 : ( 0x9E == ((const U8*)s)[1] ) ? \
e42cde6b
KW
202 ( ( inRANGE(((const U8*)s)[2], 0xB4, 0xB5 ) ) ? 3 : 0 ) \
203 : ( ( 0xA0 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x8B, 0x8E ) ) ) ? 3 : 0 )\
29f3ce8f
KW
204: ( 0xE2 == ((const U8*)s)[0] ) ? \
205 ( ( 0x80 == ((const U8*)s)[1] ) ? \
e42cde6b 206 ( ( inRANGE(((const U8*)s)[2], 0x80, 0xBE ) ) ? 3 : 0 ) \
29f3ce8f 207 : ( 0x81 == ((const U8*)s)[1] ) ? \
e42cde6b 208 ( ( inRANGE(((const U8*)s)[2], 0x81, 0x93 ) || inRANGE(((const U8*)s)[2], 0x95, 0xAF ) ) ? 3 : 0 )\
29f3ce8f 209 : ( 0x86 == ((const U8*)s)[1] ) ? \
e42cde6b
KW
210 ( ( inRANGE(((const U8*)s)[2], 0x90, 0xBF ) ) ? 3 : 0 ) \
211 : ( inRANGE(((const U8*)s)[1], 0x87, 0x90 ) || inRANGE(((const U8*)s)[1], 0x94, 0x9C ) || inRANGE(((const U8*)s)[1], 0x9F, 0xAF ) || inRANGE(((const U8*)s)[1], 0xB8, 0xB9 ) ) ?\
6e130234 212 3 \
29f3ce8f 213 : ( 0x91 == ((const U8*)s)[1] ) ? \
e42cde6b 214 ( ( inRANGE(((const U8*)s)[2], 0x80, 0x9F ) ) ? 3 : 0 ) \
29f3ce8f 215 : ( 0x9D == ((const U8*)s)[1] ) ? \
e42cde6b
KW
216 ( ( inRANGE(((const U8*)s)[2], 0x80, 0xB5 ) ) ? 3 : 0 ) \
217 : ( ( 0x9E == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x94, 0xBF ) ) ) ? 3 : 0 )\
29f3ce8f
KW
218: ( 0xE3 == ((const U8*)s)[0] ) ? \
219 ( ( 0x80 == ((const U8*)s)[1] ) ? \
e42cde6b 220 ( ( inRANGE(((const U8*)s)[2], 0x80, 0x83 ) || inRANGE(((const U8*)s)[2], 0x88, 0xA0 ) || 0xB0 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
221 : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
222: ( 0xEF == ((const U8*)s)[0] ) ? \
223 ( ( 0xB4 == ((const U8*)s)[1] ) ? \
e42cde6b 224 ( ( inRANGE(((const U8*)s)[2], 0xBE, 0xBF ) ) ? 3 : 0 ) \
29f3ce8f 225 : ( 0xB8 == ((const U8*)s)[1] ) ? \
e42cde6b 226 ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8F ) ) ? 3 : 0 ) \
29f3ce8f 227 : ( 0xB9 == ((const U8*)s)[1] ) ? \
e42cde6b 228 ( ( inRANGE(((const U8*)s)[2], 0x85, 0x86 ) ) ? 3 : 0 ) \
29f3ce8f
KW
229 : ( 0xBB == ((const U8*)s)[1] ) ? \
230 ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 ) \
231 : ( 0xBE == ((const U8*)s)[1] ) ? \
232 ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 ) \
e42cde6b 233 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xB0, 0xB8 ) ) ) ? 3 : 0 )\
29f3ce8f
KW
234: ( 0xF0 == ((const U8*)s)[0] ) ? \
235 ( ( 0x9B == ((const U8*)s)[1] ) ? \
e42cde6b
KW
236 ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0xA0, 0xA3 ) ) ) ? 4 : 0 )\
237 : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xB3, 0xBA ) ) ) ? 4 : 0 )\
29f3ce8f 238: ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
685289b5 239
8769f413
KW
240/*
241 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
242
42d7c910 243 &regcharclass_multi_char_folds::multi_char_folds('u', 'a')
8769f413
KW
244*/
245/*** GENERATED CODE ***/
251b239f 246#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
29f3ce8f
KW
247( ( 0x61 == ((const U8*)s)[0] ) ? \
248 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
249 : ( 0x66 == ((const U8*)s)[0] ) ? \
250 ( ( 0x66 == ((const U8*)s)[1] ) ? \
251 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
252 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
253 : ( 0x68 == ((const U8*)s)[0] ) ? \
254 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
255 : ( 0x69 == ((const U8*)s)[0] ) ? \
256 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
257 : ( 0x6A == ((const U8*)s)[0] ) ? \
258 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
259 : ( 0x73 == ((const U8*)s)[0] ) ? \
e42cde6b 260 ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 ) \
29f3ce8f
KW
261 : ( 0x74 == ((const U8*)s)[0] ) ? \
262 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
263 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
264 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
265 : ( 0xC5 == ((const U8*)s)[0] ) ? \
266 ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
267 : ( 0xCA == ((const U8*)s)[0] ) ? \
268 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
269 : ( 0xCE == ((const U8*)s)[0] ) ? \
270 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
271 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
272 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
273 ( ( 0xCD == ((const U8*)s)[2] ) ? \
274 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
275 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
276 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
277 : ( 0xCF == ((const U8*)s)[0] ) ? \
278 ( ( 0x81 == ((const U8*)s)[1] ) ? \
279 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
280 : ( 0x85 == ((const U8*)s)[1] ) ? \
281 ( ( 0xCC == ((const U8*)s)[2] ) ? \
282 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
283 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
284 : ( 0x89 == ((const U8*)s)[1] ) ? \
285 ( ( 0xCD == ((const U8*)s)[2] ) ? \
286 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
287 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
288 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
289 : ( 0xD5 == ((const U8*)s)[0] ) ? \
290 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
291 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
292 : ( 0xB4 == ((const U8*)s)[1] ) ? \
293 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
294 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
295 : ( 0xE1 == ((const U8*)s)[0] ) ? \
296 ( ( 0xBC == ((const U8*)s)[1] ) ? \
297 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
298 : ( ( ( ( 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
299 : 0 )
300
301
302/*** GENERATED CODE ***/
c7c8bf55
KW
303#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
304( ((e)-(s) > 3) ? \
29f3ce8f
KW
305 ( ( 0x61 == ((const U8*)s)[0] ) ? \
306 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
307 : ( 0x66 == ((const U8*)s)[0] ) ? \
308 ( ( 0x66 == ((const U8*)s)[1] ) ? \
309 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
310 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
311 : ( 0x68 == ((const U8*)s)[0] ) ? \
312 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
313 : ( 0x69 == ((const U8*)s)[0] ) ? \
314 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
315 : ( 0x6A == ((const U8*)s)[0] ) ? \
316 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
317 : ( 0x73 == ((const U8*)s)[0] ) ? \
e42cde6b 318 ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 ) \
29f3ce8f
KW
319 : ( 0x74 == ((const U8*)s)[0] ) ? \
320 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
321 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
322 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
323 : ( 0xC5 == ((const U8*)s)[0] ) ? \
324 ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
325 : ( 0xCA == ((const U8*)s)[0] ) ? \
326 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
327 : ( 0xCE == ((const U8*)s)[0] ) ? \
328 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
329 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
330 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
331 ( ( 0xCD == ((const U8*)s)[2] ) ? \
332 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
333 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
334 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
335 : ( 0xCF == ((const U8*)s)[0] ) ? \
336 ( ( 0x81 == ((const U8*)s)[1] ) ? \
337 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
338 : ( 0x85 == ((const U8*)s)[1] ) ? \
339 ( ( 0xCC == ((const U8*)s)[2] ) ? \
340 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
341 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
342 : ( 0x89 == ((const U8*)s)[1] ) ? \
343 ( ( 0xCD == ((const U8*)s)[2] ) ? \
344 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
345 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
346 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
347 : ( 0xD5 == ((const U8*)s)[0] ) ? \
348 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
349 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
350 : ( 0xB4 == ((const U8*)s)[1] ) ? \
351 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
352 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
c7c8bf55
KW
353 : 0 ) \
354: ((e)-(s) > 2) ? \
29f3ce8f
KW
355 ( ( 0x61 == ((const U8*)s)[0] ) ? \
356 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
357 : ( 0x66 == ((const U8*)s)[0] ) ? \
358 ( ( 0x66 == ((const U8*)s)[1] ) ? \
359 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
360 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
361 : ( 0x68 == ((const U8*)s)[0] ) ? \
362 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
363 : ( 0x69 == ((const U8*)s)[0] ) ? \
364 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
365 : ( 0x6A == ((const U8*)s)[0] ) ? \
366 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
367 : ( 0x73 == ((const U8*)s)[0] ) ? \
e42cde6b 368 ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 ) \
29f3ce8f
KW
369 : ( 0x74 == ((const U8*)s)[0] ) ? \
370 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
371 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
372 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
373 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
251b239f 374: ((e)-(s) > 1) ? \
29f3ce8f
KW
375 ( ( 0x66 == ((const U8*)s)[0] ) ? \
376 ( ( 0x66 == ((const U8*)s)[1] || 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
e42cde6b 377 : ( ( 0x73 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
c4c8e615
KW
378: 0 )
379
380
381/*** GENERATED CODE ***/
251b239f 382#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
c7c8bf55 383( ((e)-(s) > 5) ? \
29f3ce8f
KW
384 ( ( 0x61 == ((const U8*)s)[0] ) ? \
385 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
386 : ( 0x66 == ((const U8*)s)[0] ) ? \
387 ( ( 0x66 == ((const U8*)s)[1] ) ? \
388 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
389 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
390 : ( 0x68 == ((const U8*)s)[0] ) ? \
391 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
392 : ( 0x69 == ((const U8*)s)[0] ) ? \
393 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
394 : ( 0x6A == ((const U8*)s)[0] ) ? \
395 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
396 : ( 0x73 == ((const U8*)s)[0] ) ? \
e42cde6b 397 ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 ) \
29f3ce8f
KW
398 : ( 0x74 == ((const U8*)s)[0] ) ? \
399 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
400 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
401 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
402 : ( 0xC5 == ((const U8*)s)[0] ) ? \
403 ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
404 : ( 0xCA == ((const U8*)s)[0] ) ? \
405 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
406 : ( 0xCE == ((const U8*)s)[0] ) ? \
407 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
408 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
409 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
410 ( ( 0xCD == ((const U8*)s)[2] ) ? \
411 ( ( 0x82 == ((const U8*)s)[3] ) ? \
412 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
c7c8bf55 413 : 0 ) \
29f3ce8f
KW
414 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
415 : ( 0xB9 == ((const U8*)s)[1] ) ? \
416 ( ( 0xCC == ((const U8*)s)[2] ) ? \
417 ( ( 0x88 == ((const U8*)s)[3] ) ? \
418 ( ( 0xCC == ((const U8*)s)[4] ) ? \
e42cde6b 419 ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
29f3ce8f 420 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
c7c8bf55 421 : 0 ) \
29f3ce8f 422 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
c7c8bf55 423 : 0 ) \
29f3ce8f
KW
424 : ( 0xCF == ((const U8*)s)[0] ) ? \
425 ( ( 0x81 == ((const U8*)s)[1] ) ? \
426 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
427 : ( 0x85 == ((const U8*)s)[1] ) ? \
428 ( ( 0xCC == ((const U8*)s)[2] ) ? \
429 ( ( 0x88 == ((const U8*)s)[3] ) ? \
430 ( ( 0xCC == ((const U8*)s)[4] ) ? \
e42cde6b 431 ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
29f3ce8f
KW
432 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
433 : ( 0x93 == ((const U8*)s)[3] ) ? \
434 ( ( 0xCC == ((const U8*)s)[4] ) ? \
e42cde6b 435 ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 4 )\
29f3ce8f 436 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
c7c8bf55 437 : 0 ) \
29f3ce8f
KW
438 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
439 : ( 0x89 == ((const U8*)s)[1] ) ? \
440 ( ( 0xCD == ((const U8*)s)[2] ) ? \
441 ( ( 0x82 == ((const U8*)s)[3] ) ? \
442 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
c7c8bf55 443 : 0 ) \
29f3ce8f
KW
444 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
445 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
446 : ( 0xD5 == ((const U8*)s)[0] ) ? \
447 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
448 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
449 : ( 0xB4 == ((const U8*)s)[1] ) ? \
450 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
451 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
452 : ( 0xE1 == ((const U8*)s)[0] ) ? \
453 ( ( 0xBC == ((const U8*)s)[1] ) ? \
454 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
455 : ( ( ( ( 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
456 : 0 ) \
457: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
8769f413
KW
458
459/*
40b1ba4f 460 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
8769f413 461
42d7c910 462 &regcharclass_multi_char_folds::multi_char_folds('l', 'a')
8769f413
KW
463*/
464/*** GENERATED CODE ***/
251b239f
KW
465#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
466( ((e)-(s) > 2) ? \
29f3ce8f
KW
467 ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ? \
468 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) ? \
469 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
470 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
e42cde6b 471 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( inRANGE(((const U8*)s)[1], 0x53, 0x54 ) || inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
251b239f 472: ((e)-(s) > 1) ? \
29f3ce8f
KW
473 ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ? \
474 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
e42cde6b 475 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( inRANGE(((const U8*)s)[1], 0x53, 0x54 ) || inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
251b239f 476: 0 )
8769f413 477
0b50d62a 478/*
42d7c910
KW
479 THREE_CHAR_FOLD: A three-character multi-char fold
480
481 &regcharclass_multi_char_folds::multi_char_folds('u', '3')
482*/
483/*** GENERATED CODE ***/
484#define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
485( ((e)-(s) > 5) ? \
486 ( ( 0x66 == ((const U8*)s)[0] ) ? \
487 ( ( ( 0x66 == ((const U8*)s)[1] ) && ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
488 : ( 0xCE == ((const U8*)s)[0] ) ? \
489 ( ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
490 ( ( ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) && ( 0xCE == ((const U8*)s)[4] ) ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
491 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCC == ((const U8*)s)[2] ) ) && ( 0x88 == ((const U8*)s)[3] ) ) ? ( ( 0xCC == ((const U8*)s)[4] ) ?\
492 ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
493 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
494 : ( 0xCF == ((const U8*)s)[0] ) ? \
495 ( ( 0x85 == ((const U8*)s)[1] ) ? \
496 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] || 0x93 == ((const U8*)s)[3] ) ) ? ( ( 0xCC == ((const U8*)s)[4] ) ?\
497 ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
498 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
499 : ( ( ( ( ( 0x89 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) && ( 0xCE == ((const U8*)s)[4] ) ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
500 : 0 ) \
501: ( ( ( ((e)-(s) > 2) && ( 0x66 == ((const U8*)s)[0] ) ) && ( 0x66 == ((const U8*)s)[1] ) ) && ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ) ? 3 : 0 )
502
503/*
504 THREE_CHAR_FOLD: A three-character multi-char fold
505
506 &regcharclass_multi_char_folds::multi_char_folds('l', '3')
507*/
508/*** GENERATED CODE ***/
509#define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
510( ( ( ( ( ((e) - (s)) >= 3 ) && ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ) && ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[2] & 0xDF ) == 0x4C ) ) ) ? 3 : 0 )
511
512/*
513 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
514
515 &regcharclass_multi_char_folds::multi_char_folds('u', 'h')
516*/
517/*** GENERATED CODE ***/
518#define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
519( ((e)-(s) > 3) ? \
520 ( ( 0x61 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x68, 0x6A ) || inRANGE(((const U8*)s)[0], 0x73, 0x74 ) || 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? 1\
521 : ( 0x66 == ((const U8*)s)[0] ) ? \
522 ( ( 0x66 == ((const U8*)s)[1] ) ? 2 : 1 ) \
523 : ( 0xCA == ((const U8*)s)[0] ) ? \
524 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
525 : ( 0xCE == ((const U8*)s)[0] ) ? \
526 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? 2 \
527 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
528 ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
529 : ( 0xB9 == ((const U8*)s)[1] ) ? \
530 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
531 : 0 ) \
532 : ( 0xCF == ((const U8*)s)[0] ) ? \
533 ( ( 0x81 == ((const U8*)s)[1] || 0x8E == ((const U8*)s)[1] ) ? 2 \
534 : ( 0x85 == ((const U8*)s)[1] ) ? \
535 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] || 0x93 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
536 : ( 0x89 == ((const U8*)s)[1] ) ? \
537 ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
538 : 0 ) \
539 : ( 0xD5 == ((const U8*)s)[0] ) ? \
540 ( ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ? 2 : 0 )\
541 : ( 0xE1 == ((const U8*)s)[0] ) ? \
542 ( ( 0xBC == ((const U8*)s)[1] ) ? \
543 ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) ? 3 : 0 ) \
544 : ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
545 : 0 ) \
546: ((e)-(s) > 2) ? \
547 ( ( 0x61 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x68, 0x6A ) || inRANGE(((const U8*)s)[0], 0x73, 0x74 ) || 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? 1\
548 : ( 0x66 == ((const U8*)s)[0] ) ? \
549 ( ( 0x66 == ((const U8*)s)[1] ) ? 2 : 1 ) \
550 : ( 0xCA == ((const U8*)s)[0] ) ? \
551 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
552 : ( 0xCE == ((const U8*)s)[0] ) ? \
553 ( ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) || ( ( ((const U8*)s)[1] & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0xB7 ) ? 2 : 0 )\
554 : ( 0xCF == ((const U8*)s)[0] ) ? \
555 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x81 ) || ((const U8*)s)[1] == 0x89 || ((const U8*)s)[1] == 0x8E ) ? 2 : 0 )\
556 : ( 0xD5 == ((const U8*)s)[0] ) ? \
557 ( ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ? 2 : 0 )\
558 : ( 0xE1 == ((const U8*)s)[0] ) ? \
559 ( ( 0xBC == ((const U8*)s)[1] ) ? \
560 ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) ? 3 : 0 ) \
561 : ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
562 : 0 ) \
563: ((e)-(s) > 1) ? \
564 ( ( 0x61 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x68, 0x6A ) || inRANGE(((const U8*)s)[0], 0x73, 0x74 ) || 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? 1\
565 : ( 0x66 == ((const U8*)s)[0] ) ? \
566 ( ( 0x66 == ((const U8*)s)[1] ) ? 2 : 1 ) \
567 : ( 0xCA == ((const U8*)s)[0] ) ? \
568 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
569 : ( 0xCE == ((const U8*)s)[0] ) ? \
570 ( ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) || ( ( ((const U8*)s)[1] & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0xB7 ) ? 2 : 0 )\
571 : ( 0xCF == ((const U8*)s)[0] ) ? \
572 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x81 ) || ((const U8*)s)[1] == 0x89 || ((const U8*)s)[1] == 0x8E ) ? 2 : 0 )\
573 : ( ( 0xD5 == ((const U8*)s)[0] ) && ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ) ? 2 : 0 )\
574: ((e)-(s) > 0) ? \
575 ( 0x61 == ((const U8*)s)[0] || 0x66 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x68, 0x6A ) || inRANGE(((const U8*)s)[0], 0x73, 0x74 ) || 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] )\
576: 0 )
577
578/*
579 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
580
581 &regcharclass_multi_char_folds::multi_char_folds('l', 'h')
582*/
583/*** GENERATED CODE ***/
584#define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
585( ((e)-(s) > 1) ? \
586 ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x41 ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x48 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4A ) || ( ( ((const U8*)s)[0] & 0xDB ) == 0x53 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x54 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x59 ) ) ? 1\
587 : ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ? \
588 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) ? 2 : 1 ) \
589 : 0 ) \
590: ((e)-(s) > 0) ? \
591 ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x41 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x48 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4A ) || ( ( ((const U8*)s)[0] & 0xDB ) == 0x53 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x54 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x59 ) )\
592: 0 )
593
594/*
1a27eb96
KW
595 FOLDS_TO_MULTI: characters that fold to multi-char strings
596
597 \p{_Perl_Folds_To_Multi_Char}
598*/
599/*** GENERATED CODE ***/
600#define is_FOLDS_TO_MULTI_utf8(s) \
29f3ce8f
KW
601( ( 0xC3 == ((const U8*)s)[0] ) ? \
602 ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 ) \
603: ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
604 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
605: ( 0xC5 == ((const U8*)s)[0] ) ? \
606 ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 ) \
607: ( 0xCE == ((const U8*)s)[0] ) ? \
608 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 ) \
609: ( 0xD6 == ((const U8*)s)[0] ) ? \
610 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
611: ( 0xE1 == ((const U8*)s)[0] ) ? \
612 ( ( 0xBA == ((const U8*)s)[1] ) ? \
e42cde6b 613 ( ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
614 : ( 0xBD == ((const U8*)s)[1] ) ? \
615 ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
616 : ( 0xBE == ((const U8*)s)[1] ) ? \
e42cde6b 617 ( ( inRANGE(((const U8*)s)[2], 0x80, 0xAF ) || inRANGE(((const U8*)s)[2], 0xB2, 0xB4 ) || inRANGE(((const U8*)s)[2], 0xB6, 0xB7 ) || 0xBC == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f 618 : ( ( 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 )\
e42cde6b 619: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) || inRANGE(((const U8*)s)[2], 0x93, 0x97 ) ) ) ? 3 : 0 )
1a27eb96
KW
620
621/*
31f05a37
KW
622 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
623
624 \p{_Perl_Problematic_Locale_Folds}
625*/
626/*** GENERATED CODE ***/
627#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
29f3ce8f 628( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
e42cde6b 629: ( inRANGE(((const U8*)s)[0], 0xC2, 0xC3 ) ) ? \
31f05a37 630 2 \
e061e593 631: ( 0xC4 == ((const U8*)s)[0] ) ? \
e42cde6b 632 ( ( inRANGE(((const U8*)s)[1], 0xB0, 0xB1 ) ) ? 2 : 0 ) \
29f3ce8f
KW
633: ( 0xC5 == ((const U8*)s)[0] ) ? \
634 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
e061e593
KW
635: ( 0xC7 == ((const U8*)s)[0] ) ? \
636 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
637: ( 0xCC == ((const U8*)s)[0] ) ? \
638 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
29f3ce8f
KW
639: ( 0xCE == ((const U8*)s)[0] ) ? \
640 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
641: ( 0xE1 == ((const U8*)s)[0] ) ? \
e42cde6b 642 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 643: ( 0xE2 == ((const U8*)s)[0] ) ? \
e42cde6b
KW
644 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xAA, 0xAB ) ) ) ? 3 : 0 )\
645: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) ) ) ? 3 : 0 )
31f05a37
KW
646
647/*** GENERATED CODE ***/
648#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
c7c8bf55
KW
649( cp <= 0xFF || ( 0xFF < cp && \
650( 0x130 == cp || ( 0x130 < cp && \
e061e593 651( 0x131 == cp || ( 0x131 < cp && \
c7c8bf55
KW
652( 0x149 == cp || ( 0x149 < cp && \
653( 0x178 == cp || ( 0x178 < cp && \
654( 0x17F == cp || ( 0x17F < cp && \
655( 0x1F0 == cp || ( 0x1F0 < cp && \
e061e593 656( 0x307 == cp || ( 0x307 < cp && \
c7c8bf55
KW
657( 0x39C == cp || ( 0x39C < cp && \
658( 0x3BC == cp || ( 0x3BC < cp && \
e42cde6b 659( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
c7c8bf55
KW
660( 0x1E9E == cp || ( 0x1E9E < cp && \
661( 0x212A == cp || ( 0x212A < cp && \
e42cde6b 662( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
31f05a37
KW
663
664/*
665 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
666
667 \p{_Perl_Problematic_Locale_Foldeds_Start}
668*/
669/*** GENERATED CODE ***/
670#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
29f3ce8f 671( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
e42cde6b 672: ( inRANGE(((const U8*)s)[0], 0xC2, 0xC3 ) ) ? \
31f05a37 673 2 \
e061e593 674: ( 0xC4 == ((const U8*)s)[0] ) ? \
e42cde6b 675 ( ( inRANGE(((const U8*)s)[1], 0xB0, 0xB1 ) ) ? 2 : 0 ) \
29f3ce8f
KW
676: ( 0xC5 == ((const U8*)s)[0] ) ? \
677 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
e061e593
KW
678: ( 0xC7 == ((const U8*)s)[0] ) ? \
679 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
29f3ce8f
KW
680: ( 0xCA == ((const U8*)s)[0] ) ? \
681 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
682: ( 0xCE == ((const U8*)s)[0] ) ? \
683 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
684: ( 0xE1 == ((const U8*)s)[0] ) ? \
e42cde6b 685 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 686: ( 0xE2 == ((const U8*)s)[0] ) ? \
e42cde6b
KW
687 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xAA, 0xAB ) ) ) ? 3 : 0 )\
688: ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) ) ) ? 3 : 0 )
31f05a37
KW
689
690/*** GENERATED CODE ***/
691#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
c7c8bf55
KW
692( cp <= 0xFF || ( 0xFF < cp && \
693( 0x130 == cp || ( 0x130 < cp && \
e061e593 694( 0x131 == cp || ( 0x131 < cp && \
c7c8bf55
KW
695( 0x149 == cp || ( 0x149 < cp && \
696( 0x178 == cp || ( 0x178 < cp && \
697( 0x17F == cp || ( 0x17F < cp && \
698( 0x1F0 == cp || ( 0x1F0 < cp && \
699( 0x2BC == cp || ( 0x2BC < cp && \
700( 0x39C == cp || ( 0x39C < cp && \
701( 0x3BC == cp || ( 0x3BC < cp && \
e42cde6b 702( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
c7c8bf55
KW
703( 0x1E9E == cp || ( 0x1E9E < cp && \
704( 0x212A == cp || ( 0x212A < cp && \
e42cde6b 705( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
31f05a37
KW
706
707/*
0b50d62a
KW
708 PATWS: pattern white space
709
099323b4 710 \p{_Perl_PatWS}
0b50d62a
KW
711*/
712/*** GENERATED CODE ***/
0b50d62a 713#define is_PATWS_safe(s,e,is_utf8) \
dd9bc2b0 714( ( LIKELY((e) > (s)) ) ? \
e42cde6b 715 ( ( inRANGE(((const U8*)s)[0], 0x09, 0x0D ) || 0x20 == ((const U8*)s)[0] ) ? 1\
5ab0c3af 716 : (! is_utf8 ) ? \
29f3ce8f 717 ( 0x85 == ((const U8*)s)[0] ) \
dd9bc2b0 718 : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \
29f3ce8f
KW
719 ( ( 0xC2 == ((const U8*)s)[0] ) ? \
720 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e42cde6b 721 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x8E, 0x8F ) || inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
5ab0c3af 722 : 0 ) \
0b50d62a
KW
723: 0 )
724
725/*** GENERATED CODE ***/
726#define is_PATWS_cp(cp) \
e42cde6b 727( inRANGE(cp, 0x09, 0x0D) || ( 0x0D < cp && \
c7c8bf55
KW
728( 0x20 == cp || ( 0x20 < cp && \
729( 0x85 == cp || ( 0x85 < cp && \
730( 0x200E == cp || ( 0x200E < cp && \
731( 0x200F == cp || ( 0x200F < cp && \
732( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) )
0b50d62a 733
6c12993c
KW
734/*
735 HANGUL_ED: Hangul syllables whose first character is \xED
736
737 0xD000 - 0xD7FF
738*/
739/*** GENERATED CODE ***/
740#define is_HANGUL_ED_utf8_safe(s,e) \
e42cde6b 741( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x80, 0x9F ) ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0xBF ) ) ) ? 3 : 0 )
6c12993c 742
a1b2a50f
KW
743#endif /* ASCII/Latin1 */
744
745#if 'A' == 193 /* EBCDIC 1047 */ \
746 && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
747 && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
c11f6329 748 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
a1b2a50f
KW
749/*
750 LNBREAK: Line Break: \R
751
752 "\x0D\x0A" # CRLF - Network (Windows) line ending
753 \p{VertSpace}
754*/
755/*** GENERATED CODE ***/
756#define is_LNBREAK_safe(s,e,is_utf8) \
757( ((e)-(s) > 2) ? \
e42cde6b 758 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
759 : ( 0x0D == ((const U8*)s)[0] ) ? \
760 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
e42cde6b 761 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
a1b2a50f 762: ((e)-(s) > 1) ? \
e42cde6b 763 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
764 : ( 0x0D == ((const U8*)s)[0] ) ? \
765 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
766 : 0 ) \
767: ((e)-(s) > 0) ? \
e42cde6b 768 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
769: 0 )
770
771/*** GENERATED CODE ***/
772#define is_LNBREAK_utf8_safe(s,e) \
773( ((e)-(s) > 2) ? \
e42cde6b 774 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
775 : ( 0x0D == ((const U8*)s)[0] ) ? \
776 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
e42cde6b 777 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
a1b2a50f 778: ((e)-(s) > 1) ? \
e42cde6b 779 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
780 : ( 0x0D == ((const U8*)s)[0] ) ? \
781 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
782 : 0 ) \
783: ((e)-(s) > 0) ? \
e42cde6b 784 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
785: 0 )
786
787/*** GENERATED CODE ***/
788#define is_LNBREAK_latin1_safe(s,e) \
789( ((e)-(s) > 1) ? \
e42cde6b 790 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
791 : ( 0x0D == ((const U8*)s)[0] ) ? \
792 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
793 : 0 ) \
794: ((e)-(s) > 0) ? \
e42cde6b 795 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
796: 0 )
797
798/*
799 HORIZWS: Horizontal Whitespace: \h \H
800
801 \p{HorizSpace}
802*/
803/*** GENERATED CODE ***/
804#define is_HORIZWS_high(s) \
29f3ce8f
KW
805( ( 0xBC == ((const U8*)s)[0] ) ? \
806 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
807: ( 0xCA == ((const U8*)s)[0] ) ? \
808 ( ( 0x41 == ((const U8*)s)[1] ) ? \
e42cde6b 809 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
810 : ( 0x42 == ((const U8*)s)[1] ) ? \
811 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
812 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
813: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
814
815/*** GENERATED CODE ***/
816#define is_HORIZWS_cp_high(cp) \
817( 0x1680 == cp || ( 0x1680 < cp && \
e42cde6b 818( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
a1b2a50f
KW
819( 0x202F == cp || ( 0x202F < cp && \
820( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
821
822/*
823 VERTWS: Vertical Whitespace: \v \V
824
825 \p{VertSpace}
826*/
827/*** GENERATED CODE ***/
828#define is_VERTWS_high(s) \
e42cde6b 829( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )
a1b2a50f
KW
830
831/*** GENERATED CODE ***/
832#define is_VERTWS_cp_high(cp) \
833( 0x2028 == cp || 0x2029 == cp )
834
835/*
836 XDIGIT: Hexadecimal digits
837
838 \p{XDigit}
839*/
840/*** GENERATED CODE ***/
841#define is_XDIGIT_high(s) \
29f3ce8f 842( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
e42cde6b
KW
843 ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ? 4 : 0 )\
844 : ( ( inRANGE(((const U8*)s)[2], 0x68, 0x69 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )
a1b2a50f
KW
845
846/*** GENERATED CODE ***/
847#define is_XDIGIT_cp_high(cp) \
e42cde6b
KW
848( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
849( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
a1b2a50f
KW
850
851/*
852 XPERLSPACE: \p{XPerlSpace}
853
854 \p{XPerlSpace}
855*/
856/*** GENERATED CODE ***/
857#define is_XPERLSPACE_high(s) \
29f3ce8f
KW
858( ( 0xBC == ((const U8*)s)[0] ) ? \
859 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
860: ( 0xCA == ((const U8*)s)[0] ) ? \
861 ( ( 0x41 == ((const U8*)s)[1] ) ? \
e42cde6b 862 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f 863 : ( 0x42 == ((const U8*)s)[1] ) ? \
e42cde6b 864 ( ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
865 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
866: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
867
868/*** GENERATED CODE ***/
869#define is_XPERLSPACE_cp_high(cp) \
870( 0x1680 == cp || ( 0x1680 < cp && \
e42cde6b 871( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
a1b2a50f
KW
872( 0x2028 == cp || ( 0x2028 < cp && \
873( 0x2029 == cp || ( 0x2029 < cp && \
874( 0x202F == cp || ( 0x202F < cp && \
875( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
876
877/*
a1b2a50f
KW
878 NONCHAR: Non character code points
879
099323b4 880 \p{_Perl_Nchar}
a1b2a50f
KW
881*/
882/*** GENERATED CODE ***/
89d986df 883#define is_NONCHAR_utf8_safe(s,e) \
29f3ce8f
KW
884( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
885 ( ( 0x73 == ((const U8*)s)[1] ) ? \
886 ( ( 0x55 == ((const U8*)s)[2] ) ? \
e42cde6b 887 ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ? 4 : 0 )\
29f3ce8f 888 : ( 0x56 == ((const U8*)s)[2] ) ? \
e42cde6b
KW
889 ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
890 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ) ? 4 : 0 )\
89d986df 891 : 0 ) \
29f3ce8f 892 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
e42cde6b 893 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ) ? 4 : 0 )\
29f3ce8f 894 : ( 0xED == ((const U8*)s)[0] ) ? \
e42cde6b
KW
895 ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x72, 0x73 ) ) ) ? 5 : 0 )\
896 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x72, 0x73 ) ) ) ? 5 : 0 ) : 0 )
a1b2a50f
KW
897
898/*
21cb232c 899 SURROGATE: Surrogate code points
a1b2a50f 900
099323b4 901 \p{_Perl_Surrogate}
a1b2a50f
KW
902*/
903/*** GENERATED CODE ***/
89d986df 904#define is_SURROGATE_utf8_safe(s,e) \
e42cde6b 905( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x65, 0x66 ) ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ) ? 4 : 0 )
a1b2a50f
KW
906
907/*
a1b2a50f
KW
908 QUOTEMETA: Meta-characters that \Q should quote
909
910 \p{_Perl_Quotemeta}
911*/
912/*** GENERATED CODE ***/
e42cde6b
KW
913#define is_QUOTEMETA_high(s) \
914( ( 0xB1 == ((const U8*)s)[0] ) ? \
915 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
916: ( 0xB8 == ((const U8*)s)[0] ) ? \
917 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
918: ( 0xBB == ((const U8*)s)[0] ) ? \
919 ( ( 0x51 == ((const U8*)s)[1] ) ? \
920 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
921 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
922: ( 0xBC == ((const U8*)s)[0] ) ? \
923 ( ( 0x63 == ((const U8*)s)[1] ) ? \
924 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
925 : ( ( 0x71 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x63, 0x64 ) ) ) ? 3 : 0 )\
926: ( 0xBE == ((const U8*)s)[0] ) ? \
927 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x52, 0x55 ) ) ) ? 3 : 0 )\
928: ( 0xCA == ((const U8*)s)[0] ) ? \
929 ( ( 0x41 == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x54, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ?\
930 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
29f3ce8f 931 : ( 0x42 == ((const U8*)s)[1] ) ? \
e42cde6b 932 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
29f3ce8f 933 : ( 0x43 == ((const U8*)s)[1] ) ? \
e42cde6b 934 ( ( inRANGE(((const U8*)s)[2], 0x42, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
29f3ce8f 935 : ( 0x44 == ((const U8*)s)[1] ) ? \
e42cde6b
KW
936 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) ) ? 3 : 0 )\
937 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x57, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
938: ( 0xCB == ((const U8*)s)[0] ) ? \
939 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x43 ) || inRANGE(((const U8*)s)[1], 0x49, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x69 ) || inRANGE(((const U8*)s)[1], 0x71, 0x73 ) ) ?\
940 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
29f3ce8f 941 : ( 0x6A == ((const U8*)s)[1] ) ? \
e42cde6b
KW
942 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x64 ) ) ? 3 : 0 )\
943 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x63, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
29f3ce8f 944: ( 0xCC == ((const U8*)s)[0] ) ? \
e42cde6b 945 ( ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
29f3ce8f 946: ( 0xCD == ((const U8*)s)[0] ) ? \
e42cde6b 947 ( ( ( inRANGE(((const U8*)s)[1], 0x57, 0x59 ) || 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
29f3ce8f
KW
948: ( 0xCE == ((const U8*)s)[0] ) ? \
949 ( ( 0x41 == ((const U8*)s)[1] ) ? \
e42cde6b 950 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) || inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
29f3ce8f
KW
951 : ( 0x42 == ((const U8*)s)[1] ) ? \
952 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
953 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
954: ( 0xDD == ((const U8*)s)[0] ) ? \
955 ( ( 0x73 == ((const U8*)s)[1] ) ? \
956 ( ( 0x4A == ((const U8*)s)[2] ) ? \
e42cde6b 957 ( ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ? 4 : 0 ) \
29f3ce8f 958 : ( 0x57 == ((const U8*)s)[2] ) ? \
e42cde6b 959 ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
29f3ce8f 960 : ( 0x59 == ((const U8*)s)[2] ) ? \
e42cde6b 961 ( ( inRANGE(((const U8*)s)[3], 0x46, 0x47 ) ) ? 4 : 0 ) \
29f3ce8f
KW
962 : ( 0x66 == ((const U8*)s)[2] ) ? \
963 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
964 : ( 0x71 == ((const U8*)s)[2] ) ? \
965 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
e42cde6b 966 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ) ? 4 : 0 )\
a1b2a50f 967 : 0 ) \
29f3ce8f
KW
968: ( 0xDF == ((const U8*)s)[0] ) ? \
969 ( ( 0x56 == ((const U8*)s)[1] ) ? \
e42cde6b
KW
970 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x44 ) ) ) ? 4 : 0 )\
971 : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x62, 0x69 ) ) ) ? 4 : 0 )\
972: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ) && ( inRANGE(((const U8*)s)[4], 0x41, 0x4A ) || inRANGE(((const U8*)s)[4], 0x51, 0x59 ) || inRANGE(((const U8*)s)[4], 0x62, 0x6A ) || inRANGE(((const U8*)s)[4], 0x70, 0x73 ) ) ) ? 5 : 0 )
a1b2a50f
KW
973
974/*
975 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
976
42d7c910 977 &regcharclass_multi_char_folds::multi_char_folds('u', 'a')
a1b2a50f
KW
978*/
979/*** GENERATED CODE ***/
980#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
29f3ce8f
KW
981( ( 0x86 == ((const U8*)s)[1] ) ? \
982 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
983 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
a1b2a50f
KW
984
985
986/*** GENERATED CODE ***/
987#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
29f3ce8f
KW
988( ( 0x88 == ((const U8*)s)[0] ) ? \
989 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
990 : ( 0x89 == ((const U8*)s)[0] ) ? \
991 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
992 : ( 0x8F == ((const U8*)s)[0] ) ? \
993 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
994 : ( 0x91 == ((const U8*)s)[0] ) ? \
995 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
996 : ( 0xA2 == ((const U8*)s)[0] ) ? \
e42cde6b 997 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
29f3ce8f
KW
998 : ( 0xA3 == ((const U8*)s)[0] ) ? \
999 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1000 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1001 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1002 : ( 0xAB == ((const U8*)s)[0] ) ? \
1003 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1004 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1005 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1006 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1007 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1008 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1009 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1010 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1011 : 0 ) \
1012 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1013 : ( 0x68 == ((const U8*)s)[1] ) ? \
1014 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1015 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1016 ( ( 0xAF == ((const U8*)s)[4] ) ? \
e42cde6b 1017 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
29f3ce8f
KW
1018 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1019 : 0 ) \
1020 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1021 : 0 ) \
1022 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1023 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1024 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1025 : ( 0x46 == ((const U8*)s)[1] ) ? \
1026 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1027 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1028 ( ( 0xAF == ((const U8*)s)[4] ) ? \
e42cde6b 1029 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
29f3ce8f
KW
1030 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1031 : ( 0x62 == ((const U8*)s)[3] ) ? \
1032 ( ( 0xAF == ((const U8*)s)[4] ) ? \
e42cde6b 1033 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 4 )\
29f3ce8f
KW
1034 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1035 : 0 ) \
1036 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1037 : ( 0x4A == ((const U8*)s)[1] ) ? \
1038 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1039 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1040 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1041 : 0 ) \
1042 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1043 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1044 : ( 0xB8 == ((const U8*)s)[0] ) ? \
1045 ( ( 0x52 == ((const U8*)s)[1] ) ? \
1046 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1047 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1048 : ( 0x63 == ((const U8*)s)[2] ) ? \
1049 ( ( ( ( 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 )\
1050 : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1051 : 0 ) \
1052 : ( 0xBF == ((const U8*)s)[0] ) ? \
e42cde6b
KW
1053 ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ? \
1054 ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1055 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
29f3ce8f
KW
1056 : 0 )
1057
1058
1059/*** GENERATED CODE ***/
1060#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
1061( ( 0x81 == ((const U8*)s)[0] ) ? \
1062 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1063 : ( 0x86 == ((const U8*)s)[0] ) ? \
1064 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1065 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1066 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1067 : ( 0x88 == ((const U8*)s)[0] ) ? \
1068 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1069 : ( 0x89 == ((const U8*)s)[0] ) ? \
1070 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1071 : ( 0x8F == ((const U8*)s)[0] ) ? \
1072 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1073 : ( 0x91 == ((const U8*)s)[0] ) ? \
1074 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1075 : ( 0xA2 == ((const U8*)s)[0] ) ? \
e42cde6b 1076 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
29f3ce8f
KW
1077 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1078 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1079 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1080 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1081 : ( 0xAB == ((const U8*)s)[0] ) ? \
1082 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1083 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1084 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1085 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1086 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1087 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1088 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1089 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1090 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1091 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1092 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1093 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1094 : ( 0x46 == ((const U8*)s)[1] ) ? \
1095 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1096 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1097 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1098 : ( 0x4A == ((const U8*)s)[1] ) ? \
1099 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1100 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1101 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1102 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1103 : ( 0xBF == ((const U8*)s)[0] ) ? \
e42cde6b
KW
1104 ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ? \
1105 ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1106 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
29f3ce8f
KW
1107 : 0 )
1108
1109
1110/*** GENERATED CODE ***/
1111#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
a1b2a50f 1112( ((e)-(s) > 3) ? \
29f3ce8f
KW
1113 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1114 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1115 : ( 0x86 == ((const U8*)s)[0] ) ? \
1116 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1117 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1118 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1119 : ( 0x88 == ((const U8*)s)[0] ) ? \
1120 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1121 : ( 0x89 == ((const U8*)s)[0] ) ? \
1122 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1123 : ( 0x8F == ((const U8*)s)[0] ) ? \
1124 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1125 : ( 0x91 == ((const U8*)s)[0] ) ? \
1126 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1127 : ( 0xA2 == ((const U8*)s)[0] ) ? \
e42cde6b 1128 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
29f3ce8f
KW
1129 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1130 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1131 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1132 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1133 : ( 0xAB == ((const U8*)s)[0] ) ? \
1134 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1135 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1136 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1137 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1138 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1139 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1140 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1141 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1142 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1143 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1144 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1145 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1146 : ( 0x46 == ((const U8*)s)[1] ) ? \
1147 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1148 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1149 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1150 : ( 0x4A == ((const U8*)s)[1] ) ? \
1151 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1152 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1153 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1154 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
a1b2a50f
KW
1155 : 0 ) \
1156: ((e)-(s) > 2) ? \
29f3ce8f
KW
1157 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1158 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1159 : ( 0x86 == ((const U8*)s)[0] ) ? \
1160 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1161 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1162 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1163 : ( 0x88 == ((const U8*)s)[0] ) ? \
1164 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1165 : ( 0x89 == ((const U8*)s)[0] ) ? \
1166 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1167 : ( 0x91 == ((const U8*)s)[0] ) ? \
1168 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1169 : ( 0xA2 == ((const U8*)s)[0] ) ? \
e42cde6b 1170 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
29f3ce8f
KW
1171 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1172 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1173 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1174 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1175 : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
a1b2a50f 1176: ((e)-(s) > 1) ? \
29f3ce8f
KW
1177 ( ( 0x86 == ((const U8*)s)[0] ) ? \
1178 ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
e42cde6b 1179 : ( ( 0xA2 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ) ? 2 : 0 )\
a1b2a50f
KW
1180: 0 )
1181
1182
1183/*** GENERATED CODE ***/
1184#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
1185( ((e)-(s) > 5) ? \
29f3ce8f
KW
1186 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1187 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1188 : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1189: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
a1b2a50f
KW
1190
1191/*
1192 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1193
42d7c910 1194 &regcharclass_multi_char_folds::multi_char_folds('l', 'a')
a1b2a50f
KW
1195*/
1196/*** GENERATED CODE ***/
1197#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
1198( ((e)-(s) > 2) ? \
29f3ce8f
KW
1199 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1200 ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? \
1201 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1202 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1203 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f 1204: ((e)-(s) > 1) ? \
29f3ce8f
KW
1205 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1206 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1207 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f
KW
1208: 0 )
1209
1210/*
42d7c910
KW
1211 THREE_CHAR_FOLD: A three-character multi-char fold
1212
1213 &regcharclass_multi_char_folds::multi_char_folds('u', '3')
1214*/
1215/*** GENERATED CODE ***/
1216#define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
1217( ((e)-(s) > 5) ? \
1218 ( ( 0x86 == ((const U8*)s)[0] ) ? \
1219 ( ( ( 0x86 == ((const U8*)s)[1] ) && ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1220 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1221 ( ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1222 ( ( ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB4 == ((const U8*)s)[4] ) ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1223 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x49 == ((const U8*)s)[3] ) ) ? ( ( 0xAF == ((const U8*)s)[4] ) ?\
1224 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
1225 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
1226 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1227 ( ( 0x46 == ((const U8*)s)[1] ) ? \
1228 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x62 == ((const U8*)s)[3] ) ) ? ( ( 0xAF == ((const U8*)s)[4] ) ?\
1229 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
1230 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
1231 : ( ( ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB4 == ((const U8*)s)[4] ) ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1232 : 0 ) \
1233: ( ( ( ((e)-(s) > 2) && ( 0x86 == ((const U8*)s)[0] ) ) && ( 0x86 == ((const U8*)s)[1] ) ) && ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1234
1235/*
1236 THREE_CHAR_FOLD: A three-character multi-char fold
1237
1238 &regcharclass_multi_char_folds::multi_char_folds('l', '3')
1239*/
1240/*** GENERATED CODE ***/
1241#define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
1242( ( ( ( ( ((e) - (s)) >= 3 ) && ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ) ? 3 : 0 )
1243
1244/*
1245 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
1246
1247 &regcharclass_multi_char_folds::multi_char_folds('u', 'h')
1248*/
1249/*** GENERATED CODE ***/
1250#define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
1251( ((e)-(s) > 3) ? \
1252 ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA2 ) || ((const U8*)s)[0] == 0xA6 || ((const U8*)s)[0] == 0xA8 ) ? 1\
1253 : ( 0x86 == ((const U8*)s)[0] ) ? \
1254 ( ( 0x86 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1255 : ( 0xAB == ((const U8*)s)[0] ) ? \
1256 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1257 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1258 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
1259 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1260 ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1261 : ( 0x68 == ((const U8*)s)[1] ) ? \
1262 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1263 : 0 ) \
1264 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1265 ( ( 0x42 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
1266 : ( 0x46 == ((const U8*)s)[1] ) ? \
1267 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x62 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1268 : ( 0x4A == ((const U8*)s)[1] ) ? \
1269 ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1270 : 0 ) \
1271 : ( 0xB8 == ((const U8*)s)[0] ) ? \
1272 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1273 : ( 0xBF == ((const U8*)s)[0] ) ? \
1274 ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ? \
1275 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) ? 3 : 0 ) \
1276 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1277 : 0 ) \
1278: ((e)-(s) > 2) ? \
1279 ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA2 ) || ((const U8*)s)[0] == 0xA6 || ((const U8*)s)[0] == 0xA8 ) ? 1\
1280 : ( 0x86 == ((const U8*)s)[0] ) ? \
1281 ( ( 0x86 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1282 : ( 0xAB == ((const U8*)s)[0] ) ? \
1283 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1284 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1285 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? 2 : 0 )\
1286 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1287 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ? 2 : 0 )\
1288 : ( 0xB8 == ((const U8*)s)[0] ) ? \
1289 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1290 : ( 0xBF == ((const U8*)s)[0] ) ? \
1291 ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ? \
1292 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) ? 3 : 0 ) \
1293 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1294 : 0 ) \
1295: ((e)-(s) > 1) ? \
1296 ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA2 ) || ((const U8*)s)[0] == 0xA6 || ((const U8*)s)[0] == 0xA8 ) ? 1\
1297 : ( 0x86 == ((const U8*)s)[0] ) ? \
1298 ( ( 0x86 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1299 : ( 0xAB == ((const U8*)s)[0] ) ? \
1300 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1301 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1302 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? 2 : 0 )\
1303 : ( ( 0xB5 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
1304: ((e)-(s) > 0) ? \
1305 ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x86 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA2 ) || ((const U8*)s)[0] == 0xA8 )\
1306: 0 )
1307
1308/*
1309 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
1310
1311 &regcharclass_multi_char_folds::multi_char_folds('l', 'h')
1312*/
1313/*** GENERATED CODE ***/
1314#define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
1315( ((e)-(s) > 1) ? \
1316 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xBE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBF ) == 0xA6 ) || ( ( ((const U8*)s)[0] & 0xBF ) == 0xA8 ) ) ? 1\
1317 : ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1318 ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? 2 : 1 ) \
1319 : 0 ) \
1320: ((e)-(s) > 0) ? \
1321 ( ( ( ((const U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0x9F ) == 0x86 ) || ( ( ((const U8*)s)[0] & 0xBE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBF ) == 0xA8 ) )\
1322: 0 )
1323
1324/*
a1b2a50f
KW
1325 FOLDS_TO_MULTI: characters that fold to multi-char strings
1326
1327 \p{_Perl_Folds_To_Multi_Char}
1328*/
1329/*** GENERATED CODE ***/
1330#define is_FOLDS_TO_MULTI_utf8(s) \
29f3ce8f
KW
1331( ( 0x8A == ((const U8*)s)[0] ) ? \
1332 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e42cde6b 1333: ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?\
29f3ce8f
KW
1334 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1335: ( 0x8E == ((const U8*)s)[0] ) ? \
1336 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1337: ( 0xB8 == ((const U8*)s)[0] ) ? \
1338 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1339: ( 0xBF == ((const U8*)s)[0] ) ? \
1340 ( ( 0x63 == ((const U8*)s)[1] ) ? \
e42cde6b 1341 ( ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
1342 : ( 0x69 == ((const U8*)s)[1] ) ? \
1343 ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
1344 : ( 0x70 == ((const U8*)s)[1] ) ? \
e42cde6b 1345 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
29f3ce8f 1346 : ( 0x71 == ((const U8*)s)[1] ) ? \
e42cde6b 1347 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) || 0x59 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f 1348 : ( 0x72 == ((const U8*)s)[1] ) ? \
e42cde6b
KW
1349 ( ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) ) ? 3 : 0 )\
1350 : ( ( 0x73 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x59 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1351: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) || inRANGE(((const U8*)s)[3], 0x62, 0x66 ) ) ) ? 4 : 0 )
a1b2a50f
KW
1352
1353/*
1354 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1355
1356 \p{_Perl_Problematic_Locale_Folds}
1357*/
1358/*** GENERATED CODE ***/
1359#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
e42cde6b
KW
1360( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xAD == ((const U8*)s)[0] || 0xBD == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1361: ( 0x80 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x8A, 0x8B ) ) ?\
1362 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ? 2 : 0 )\
e061e593 1363: ( 0x8D == ((const U8*)s)[0] ) ? \
e42cde6b 1364 ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 ) \
29f3ce8f
KW
1365: ( 0x8E == ((const U8*)s)[0] ) ? \
1366 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1367: ( 0x8F == ((const U8*)s)[0] ) ? \
1368 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e061e593
KW
1369: ( 0x9C == ((const U8*)s)[0] ) ? \
1370 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1371: ( 0xAF == ((const U8*)s)[0] ) ? \
1372 ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e42cde6b 1373: ( inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ? \
29f3ce8f
KW
1374 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1375: ( 0xBF == ((const U8*)s)[0] ) ? \
e42cde6b 1376 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 1377: ( 0xCA == ((const U8*)s)[0] ) ? \
e42cde6b
KW
1378 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1379: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
a1b2a50f
KW
1380
1381/*** GENERATED CODE ***/
1382#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
1383( cp <= 0xFF || ( 0xFF < cp && \
1384( 0x130 == cp || ( 0x130 < cp && \
e061e593 1385( 0x131 == cp || ( 0x131 < cp && \
a1b2a50f
KW
1386( 0x149 == cp || ( 0x149 < cp && \
1387( 0x178 == cp || ( 0x178 < cp && \
1388( 0x17F == cp || ( 0x17F < cp && \
1389( 0x1F0 == cp || ( 0x1F0 < cp && \
e061e593 1390( 0x307 == cp || ( 0x307 < cp && \
a1b2a50f
KW
1391( 0x39C == cp || ( 0x39C < cp && \
1392( 0x3BC == cp || ( 0x3BC < cp && \
e42cde6b 1393( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
a1b2a50f
KW
1394( 0x1E9E == cp || ( 0x1E9E < cp && \
1395( 0x212A == cp || ( 0x212A < cp && \
e42cde6b 1396( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
a1b2a50f
KW
1397
1398/*
1399 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1400
1401 \p{_Perl_Problematic_Locale_Foldeds_Start}
1402*/
1403/*** GENERATED CODE ***/
1404#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
e42cde6b
KW
1405( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xAD == ((const U8*)s)[0] || 0xBD == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1406: ( 0x80 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x8A, 0x8B ) ) ?\
1407 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ? 2 : 0 )\
e061e593 1408: ( 0x8D == ((const U8*)s)[0] ) ? \
e42cde6b 1409 ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 ) \
29f3ce8f
KW
1410: ( 0x8E == ((const U8*)s)[0] ) ? \
1411 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1412: ( 0x8F == ((const U8*)s)[0] ) ? \
1413 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e061e593
KW
1414: ( 0x9C == ((const U8*)s)[0] ) ? \
1415 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e42cde6b 1416: ( 0xAB == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?\
29f3ce8f
KW
1417 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1418: ( 0xBF == ((const U8*)s)[0] ) ? \
e42cde6b 1419 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 1420: ( 0xCA == ((const U8*)s)[0] ) ? \
e42cde6b
KW
1421 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1422: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
a1b2a50f
KW
1423
1424/*** GENERATED CODE ***/
1425#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
1426( cp <= 0xFF || ( 0xFF < cp && \
1427( 0x130 == cp || ( 0x130 < cp && \
e061e593 1428( 0x131 == cp || ( 0x131 < cp && \
a1b2a50f
KW
1429( 0x149 == cp || ( 0x149 < cp && \
1430( 0x178 == cp || ( 0x178 < cp && \
1431( 0x17F == cp || ( 0x17F < cp && \
1432( 0x1F0 == cp || ( 0x1F0 < cp && \
1433( 0x2BC == cp || ( 0x2BC < cp && \
1434( 0x39C == cp || ( 0x39C < cp && \
1435( 0x3BC == cp || ( 0x3BC < cp && \
e42cde6b 1436( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
a1b2a50f
KW
1437( 0x1E9E == cp || ( 0x1E9E < cp && \
1438( 0x212A == cp || ( 0x212A < cp && \
e42cde6b 1439( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
a1b2a50f
KW
1440
1441/*
1442 PATWS: pattern white space
1443
099323b4 1444 \p{_Perl_PatWS}
a1b2a50f
KW
1445*/
1446/*** GENERATED CODE ***/
1447#define is_PATWS_safe(s,e,is_utf8) \
dd9bc2b0 1448( ( LIKELY((e) > (s)) ) ? \
e42cde6b 1449 ( ( 0x05 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1\
29f3ce8f 1450 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
e42cde6b
KW
1451 ( ( inRANGE(((const U8*)s)[2], 0x55, 0x56 ) ) ? 3 : 0 ) \
1452 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 ) : 0 )\
a1b2a50f
KW
1453: 0 )
1454
1455/*** GENERATED CODE ***/
1456#define is_PATWS_cp(cp) \
1457( 0x05 == cp || ( 0x05 < cp && \
e42cde6b 1458( inRANGE(cp, 0x0B, 0x0D) || ( 0x0D < cp && \
a1b2a50f
KW
1459( 0x15 == cp || ( 0x15 < cp && \
1460( 0x25 == cp || ( 0x25 < cp && \
1461( 0x40 == cp || ( 0x40 < cp && \
1462( 0x200E == cp || ( 0x200E < cp && \
1463( 0x200F == cp || ( 0x200F < cp && \
1464( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1465
1466#endif /* EBCDIC 1047 */
1467
1468#if 'A' == 193 /* EBCDIC 037 */ \
1469 && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
1470 && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
c11f6329 1471 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
a1b2a50f
KW
1472/*
1473 LNBREAK: Line Break: \R
1474
1475 "\x0D\x0A" # CRLF - Network (Windows) line ending
1476 \p{VertSpace}
1477*/
1478/*** GENERATED CODE ***/
1479#define is_LNBREAK_safe(s,e,is_utf8) \
1480( ((e)-(s) > 2) ? \
e42cde6b 1481 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
1482 : ( 0x0D == ((const U8*)s)[0] ) ? \
1483 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
e42cde6b 1484 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
a1b2a50f 1485: ((e)-(s) > 1) ? \
e42cde6b 1486 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
1487 : ( 0x0D == ((const U8*)s)[0] ) ? \
1488 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
1489 : 0 ) \
1490: ((e)-(s) > 0) ? \
e42cde6b 1491 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
1492: 0 )
1493
1494/*** GENERATED CODE ***/
1495#define is_LNBREAK_utf8_safe(s,e) \
1496( ((e)-(s) > 2) ? \
e42cde6b 1497 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
1498 : ( 0x0D == ((const U8*)s)[0] ) ? \
1499 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
e42cde6b 1500 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
a1b2a50f 1501: ((e)-(s) > 1) ? \
e42cde6b 1502 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
1503 : ( 0x0D == ((const U8*)s)[0] ) ? \
1504 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
1505 : 0 ) \
1506: ((e)-(s) > 0) ? \
e42cde6b 1507 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
1508: 0 )
1509
1510/*** GENERATED CODE ***/
1511#define is_LNBREAK_latin1_safe(s,e) \
1512( ((e)-(s) > 1) ? \
e42cde6b 1513 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
29f3ce8f
KW
1514 : ( 0x0D == ((const U8*)s)[0] ) ? \
1515 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
a1b2a50f
KW
1516 : 0 ) \
1517: ((e)-(s) > 0) ? \
e42cde6b 1518 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
a1b2a50f
KW
1519: 0 )
1520
1521/*
1522 HORIZWS: Horizontal Whitespace: \h \H
1523
1524 \p{HorizSpace}
1525*/
1526/*** GENERATED CODE ***/
1527#define is_HORIZWS_high(s) \
29f3ce8f
KW
1528( ( 0xBD == ((const U8*)s)[0] ) ? \
1529 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1530: ( 0xCA == ((const U8*)s)[0] ) ? \
1531 ( ( 0x41 == ((const U8*)s)[1] ) ? \
e42cde6b 1532 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
1533 : ( 0x42 == ((const U8*)s)[1] ) ? \
1534 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1535 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1536: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
1537
1538/*** GENERATED CODE ***/
1539#define is_HORIZWS_cp_high(cp) \
1540( 0x1680 == cp || ( 0x1680 < cp && \
e42cde6b 1541( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
a1b2a50f
KW
1542( 0x202F == cp || ( 0x202F < cp && \
1543( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1544
1545/*
1546 VERTWS: Vertical Whitespace: \v \V
1547
1548 \p{VertSpace}
1549*/
1550/*** GENERATED CODE ***/
1551#define is_VERTWS_high(s) \
e42cde6b 1552( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )
a1b2a50f
KW
1553
1554/*** GENERATED CODE ***/
1555#define is_VERTWS_cp_high(cp) \
1556( 0x2028 == cp || 0x2029 == cp )
1557
1558/*
1559 XDIGIT: Hexadecimal digits
1560
1561 \p{XDigit}
1562*/
1563/*** GENERATED CODE ***/
1564#define is_XDIGIT_high(s) \
29f3ce8f 1565( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
e42cde6b
KW
1566 ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ? 4 : 0 )\
1567 : ( ( inRANGE(((const U8*)s)[2], 0x67, 0x68 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )
a1b2a50f
KW
1568
1569/*** GENERATED CODE ***/
1570#define is_XDIGIT_cp_high(cp) \
e42cde6b
KW
1571( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
1572( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
a1b2a50f
KW
1573
1574/*
1575 XPERLSPACE: \p{XPerlSpace}
1576
1577 \p{XPerlSpace}
1578*/
1579/*** GENERATED CODE ***/
1580#define is_XPERLSPACE_high(s) \
29f3ce8f
KW
1581( ( 0xBD == ((const U8*)s)[0] ) ? \
1582 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1583: ( 0xCA == ((const U8*)s)[0] ) ? \
1584 ( ( 0x41 == ((const U8*)s)[1] ) ? \
e42cde6b 1585 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f 1586 : ( 0x42 == ((const U8*)s)[1] ) ? \
e42cde6b 1587 ( ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
1588 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1589: ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
1590
1591/*** GENERATED CODE ***/
1592#define is_XPERLSPACE_cp_high(cp) \
1593( 0x1680 == cp || ( 0x1680 < cp && \
e42cde6b 1594( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
a1b2a50f
KW
1595( 0x2028 == cp || ( 0x2028 < cp && \
1596( 0x2029 == cp || ( 0x2029 < cp && \
1597( 0x202F == cp || ( 0x202F < cp && \
1598( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
1599
1600/*
a1b2a50f
KW
1601 NONCHAR: Non character code points
1602
099323b4 1603 \p{_Perl_Nchar}
a1b2a50f
KW
1604*/
1605/*** GENERATED CODE ***/
89d986df 1606#define is_NONCHAR_utf8_safe(s,e) \
29f3ce8f
KW
1607( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1608 ( ( 0x72 == ((const U8*)s)[1] ) ? \
1609 ( ( 0x55 == ((const U8*)s)[2] ) ? \
e42cde6b 1610 ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ? 4 : 0 )\
29f3ce8f 1611 : ( 0x56 == ((const U8*)s)[2] ) ? \
e42cde6b
KW
1612 ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
1613 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ) ? 4 : 0 )\
89d986df 1614 : 0 ) \
29f3ce8f 1615 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
e42cde6b 1616 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ) ? 4 : 0 )\
29f3ce8f 1617 : ( 0xED == ((const U8*)s)[0] ) ? \
e42cde6b
KW
1618 ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x5F || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x71, 0x72 ) ) ) ? 5 : 0 )\
1619 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x71, 0x72 ) ) ) ? 5 : 0 ) : 0 )
a1b2a50f
KW
1620
1621/*
21cb232c 1622 SURROGATE: Surrogate code points
a1b2a50f 1623
099323b4 1624 \p{_Perl_Surrogate}
a1b2a50f
KW
1625*/
1626/*** GENERATED CODE ***/
89d986df 1627#define is_SURROGATE_utf8_safe(s,e) \
e42cde6b 1628( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x64, 0x65 ) ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ) ? 4 : 0 )
a1b2a50f
KW
1629
1630/*
a1b2a50f
KW
1631 QUOTEMETA: Meta-characters that \Q should quote
1632
1633 \p{_Perl_Quotemeta}
1634*/
1635/*** GENERATED CODE ***/
1636#define is_QUOTEMETA_high_part0(s) \
e42cde6b
KW
1637( ( 0x51 == ((const U8*)s)[1] ) ? \
1638 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1639 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
a1b2a50f
KW
1640
1641
1642/*** GENERATED CODE ***/
1643#define is_QUOTEMETA_high_part1(s) \
e42cde6b
KW
1644( ( 0xBD == ((const U8*)s)[0] ) ? \
1645 ( ( 0x62 == ((const U8*)s)[1] ) ? \
1646 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1647 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x62, 0x63 ) ) ) ? 3 : 0 )\
1648: ( 0xBE == ((const U8*)s)[0] ) ? \
1649 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x52, 0x55 ) ) ) ? 3 : 0 )\
1650: ( 0xCA == ((const U8*)s)[0] ) ? \
1651 ( ( 0x41 == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x54, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ?\
1652 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1653 : ( 0x42 == ((const U8*)s)[1] ) ? \
1654 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x71 ) ) ? 3 : 0 )\
1655 : ( 0x43 == ((const U8*)s)[1] ) ? \
1656 ( ( inRANGE(((const U8*)s)[2], 0x42, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x63, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1657 : ( 0x44 == ((const U8*)s)[1] ) ? \
1658 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) ) ? 3 : 0 )\
1659 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
1660: ( 0xCB == ((const U8*)s)[0] ) ? \
1661 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x43 ) || inRANGE(((const U8*)s)[1], 0x49, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x68 ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ?\
1662 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
29f3ce8f 1663 : ( 0x69 == ((const U8*)s)[1] ) ? \
e42cde6b
KW
1664 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) ) ? 3 : 0 )\
1665 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
29f3ce8f 1666: ( 0xCC == ((const U8*)s)[0] ) ? \
e42cde6b 1667 ( ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
29f3ce8f 1668: ( 0xCD == ((const U8*)s)[0] ) ? \
e42cde6b 1669 ( ( ( inRANGE(((const U8*)s)[1], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
29f3ce8f
KW
1670: ( 0xCE == ((const U8*)s)[0] ) ? \
1671 ( ( 0x41 == ((const U8*)s)[1] ) ? \
e42cde6b 1672 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) || inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
29f3ce8f
KW
1673 : ( 0x42 == ((const U8*)s)[1] ) ? \
1674 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
1675 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1676: ( 0xDD == ((const U8*)s)[0] ) ? \
1677 ( ( 0x72 == ((const U8*)s)[1] ) ? \
1678 ( ( 0x4A == ((const U8*)s)[2] ) ? \
e42cde6b 1679 ( ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ? 4 : 0 ) \
29f3ce8f 1680 : ( 0x57 == ((const U8*)s)[2] ) ? \
e42cde6b 1681 ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
29f3ce8f 1682 : ( 0x59 == ((const U8*)s)[2] ) ? \
e42cde6b 1683 ( ( inRANGE(((const U8*)s)[3], 0x46, 0x47 ) ) ? 4 : 0 ) \
29f3ce8f
KW
1684 : ( 0x65 == ((const U8*)s)[2] ) ? \
1685 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1686 : ( 0x70 == ((const U8*)s)[2] ) ? \
1687 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
e42cde6b 1688 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x66 ) ) ) ? 4 : 0 )\
a1b2a50f 1689 : 0 ) \
29f3ce8f
KW
1690: ( 0xDF == ((const U8*)s)[0] ) ? \
1691 ( ( 0x56 == ((const U8*)s)[1] ) ? \
e42cde6b
KW
1692 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x44 ) ) ) ? 4 : 0 )\
1693 : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ) ? 4 : 0 )\
1694: ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ) && ( inRANGE(((const U8*)s)[4], 0x41, 0x4A ) || inRANGE(((const U8*)s)[4], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[4] || inRANGE(((const U8*)s)[4], 0x62, 0x6A ) || inRANGE(((const U8*)s)[4], 0x70, 0x72 ) ) ) ? 5 : 0 )
a1b2a50f
KW
1695
1696
1697/*** GENERATED CODE ***/
1698#define is_QUOTEMETA_high(s) \
29f3ce8f
KW
1699( ( 0xAF == ((const U8*)s)[0] ) ? \
1700 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1701: ( 0xB7 == ((const U8*)s)[0] ) ? \
1702 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
e42cde6b 1703: ( 0xBC == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
a1b2a50f
KW
1704
1705/*
1706 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1707
42d7c910 1708 &regcharclass_multi_char_folds::multi_char_folds('u', 'a')
a1b2a50f
KW
1709*/
1710/*** GENERATED CODE ***/
1711#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
29f3ce8f
KW
1712( ( 0x86 == ((const U8*)s)[1] ) ? \
1713 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1714 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
a1b2a50f
KW
1715
1716
1717/*** GENERATED CODE ***/
1718#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
29f3ce8f
KW
1719( ( 0x88 == ((const U8*)s)[0] ) ? \
1720 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1721 : ( 0x89 == ((const U8*)s)[0] ) ? \
1722 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1723 : ( 0x8E == ((const U8*)s)[0] ) ? \
1724 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1725 : ( 0x91 == ((const U8*)s)[0] ) ? \
1726 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1727 : ( 0xA2 == ((const U8*)s)[0] ) ? \
e42cde6b 1728 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
29f3ce8f
KW
1729 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1730 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1731 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1732 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1733 : ( 0xAA == ((const U8*)s)[0] ) ? \
1734 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1735 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1736 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1737 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1738 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1739 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1740 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1741 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1742 : 0 ) \
1743 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1744 : ( 0x67 == ((const U8*)s)[1] ) ? \
1745 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1746 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1747 ( ( 0xAD == ((const U8*)s)[4] ) ? \
e42cde6b 1748 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
29f3ce8f
KW
1749 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1750 : 0 ) \
1751 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1752 : 0 ) \
1753 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1754 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1755 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1756 : ( 0x46 == ((const U8*)s)[1] ) ? \
1757 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1758 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1759 ( ( 0xAD == ((const U8*)s)[4] ) ? \
e42cde6b 1760 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
29f3ce8f
KW
1761 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1762 : ( 0x5F == ((const U8*)s)[3] ) ? \
1763 ( ( 0xAD == ((const U8*)s)[4] ) ? \
e42cde6b 1764 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 4 )\
29f3ce8f
KW
1765 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1766 : 0 ) \
1767 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1768 : ( 0x4A == ((const U8*)s)[1] ) ? \
1769 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1770 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1771 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1772 : 0 ) \
1773 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1774 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1775 : ( 0xB7 == ((const U8*)s)[0] ) ? \
1776 ( ( 0x52 == ((const U8*)s)[1] ) ? \
1777 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1778 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1779 : ( 0x62 == ((const U8*)s)[2] ) ? \
1780 ( ( ( ( 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 )\
1781 : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1782 : 0 ) \
1783 : ( 0xBF == ((const U8*)s)[0] ) ? \
e42cde6b
KW
1784 ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ? \
1785 ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1786 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
29f3ce8f
KW
1787 : 0 )
1788
1789
1790/*** GENERATED CODE ***/
1791#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
1792( ( 0x81 == ((const U8*)s)[0] ) ? \
1793 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1794 : ( 0x86 == ((const U8*)s)[0] ) ? \
1795 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1796 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1797 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1798 : ( 0x88 == ((const U8*)s)[0] ) ? \
1799 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1800 : ( 0x89 == ((const U8*)s)[0] ) ? \
1801 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1802 : ( 0x8E == ((const U8*)s)[0] ) ? \
1803 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1804 : ( 0x91 == ((const U8*)s)[0] ) ? \
1805 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1806 : ( 0xA2 == ((const U8*)s)[0] ) ? \
e42cde6b 1807 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
29f3ce8f
KW
1808 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1809 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1810 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1811 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1812 : ( 0xAA == ((const U8*)s)[0] ) ? \
1813 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1814 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1815 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1816 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1817 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1818 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1819 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1820 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1821 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1822 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1823 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1824 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1825 : ( 0x46 == ((const U8*)s)[1] ) ? \
1826 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1827 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
1828 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1829 : ( 0x4A == ((const U8*)s)[1] ) ? \
1830 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1831 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1832 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1833 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1834 : ( 0xBF == ((const U8*)s)[0] ) ? \
e42cde6b
KW
1835 ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ? \
1836 ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1837 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
29f3ce8f
KW
1838 : 0 )
1839
1840
1841/*** GENERATED CODE ***/
1842#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
a1b2a50f 1843( ((e)-(s) > 3) ? \
29f3ce8f
KW
1844 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1845 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1846 : ( 0x86 == ((const U8*)s)[0] ) ? \
1847 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1848 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1849 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1850 : ( 0x88 == ((const U8*)s)[0] ) ? \
1851 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1852 : ( 0x89 == ((const U8*)s)[0] ) ? \
1853 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1854 : ( 0x8E == ((const U8*)s)[0] ) ? \
1855 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1856 : ( 0x91 == ((const U8*)s)[0] ) ? \
1857 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1858 : ( 0xA2 == ((const U8*)s)[0] ) ? \
e42cde6b 1859 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
29f3ce8f
KW
1860 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1861 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1862 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1863 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1864 : ( 0xAA == ((const U8*)s)[0] ) ? \
1865 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1866 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1867 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1868 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1869 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1870 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1871 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1872 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1873 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1874 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1875 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1876 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1877 : ( 0x46 == ((const U8*)s)[1] ) ? \
1878 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1879 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
1880 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1881 : ( 0x4A == ((const U8*)s)[1] ) ? \
1882 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1883 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1884 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1885 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
a1b2a50f
KW
1886 : 0 ) \
1887: ((e)-(s) > 2) ? \
29f3ce8f
KW
1888 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1889 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1890 : ( 0x86 == ((const U8*)s)[0] ) ? \
1891 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1892 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1893 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1894 : ( 0x88 == ((const U8*)s)[0] ) ? \
1895 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1896 : ( 0x89 == ((const U8*)s)[0] ) ? \
1897 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1898 : ( 0x91 == ((const U8*)s)[0] ) ? \
1899 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1900 : ( 0xA2 == ((const U8*)s)[0] ) ? \
e42cde6b 1901 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
29f3ce8f
KW
1902 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1903 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1904 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1905 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1906 : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
a1b2a50f 1907: ((e)-(s) > 1) ? \
29f3ce8f
KW
1908 ( ( 0x86 == ((const U8*)s)[0] ) ? \
1909 ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
e42cde6b 1910 : ( ( 0xA2 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ) ? 2 : 0 )\
a1b2a50f
KW
1911: 0 )
1912
1913
1914/*** GENERATED CODE ***/
1915#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
1916( ((e)-(s) > 5) ? \
29f3ce8f
KW
1917 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1918 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1919 : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1920: ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
a1b2a50f
KW
1921
1922/*
1923 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1924
42d7c910 1925 &regcharclass_multi_char_folds::multi_char_folds('l', 'a')
a1b2a50f
KW
1926*/
1927/*** GENERATED CODE ***/
1928#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
1929( ((e)-(s) > 2) ? \
29f3ce8f
KW
1930 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1931 ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? \
1932 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1933 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1934 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f 1935: ((e)-(s) > 1) ? \
29f3ce8f
KW
1936 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1937 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1938 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
a1b2a50f
KW
1939: 0 )
1940
1941/*
42d7c910
KW
1942 THREE_CHAR_FOLD: A three-character multi-char fold
1943
1944 &regcharclass_multi_char_folds::multi_char_folds('u', '3')
1945*/
1946/*** GENERATED CODE ***/
1947#define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
1948( ((e)-(s) > 5) ? \
1949 ( ( 0x86 == ((const U8*)s)[0] ) ? \
1950 ( ( ( 0x86 == ((const U8*)s)[1] ) && ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1951 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1952 ( ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1953 ( ( ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB3 == ((const U8*)s)[4] ) ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1954 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAD == ((const U8*)s)[2] ) ) && ( 0x49 == ((const U8*)s)[3] ) ) ? ( ( 0xAD == ((const U8*)s)[4] ) ?\
1955 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
1956 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
1957 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1958 ( ( 0x46 == ((const U8*)s)[1] ) ? \
1959 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x5F == ((const U8*)s)[3] ) ) ? ( ( 0xAD == ((const U8*)s)[4] ) ?\
1960 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
1961 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
1962 : ( ( ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB3 == ((const U8*)s)[4] ) ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1963 : 0 ) \
1964: ( ( ( ((e)-(s) > 2) && ( 0x86 == ((const U8*)s)[0] ) ) && ( 0x86 == ((const U8*)s)[1] ) ) && ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1965
1966/*
1967 THREE_CHAR_FOLD: A three-character multi-char fold
1968
1969 &regcharclass_multi_char_folds::multi_char_folds('l', '3')
1970*/
1971/*** GENERATED CODE ***/
1972#define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
1973( ( ( ( ( ((e) - (s)) >= 3 ) && ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ) ? 3 : 0 )
1974
1975/*
1976 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
1977
1978 &regcharclass_multi_char_folds::multi_char_folds('u', 'h')
1979*/
1980/*** GENERATED CODE ***/
1981#define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
1982( ((e)-(s) > 3) ? \
1983 ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA2 ) || ((const U8*)s)[0] == 0xA6 || ((const U8*)s)[0] == 0xA8 ) ? 1\
1984 : ( 0x86 == ((const U8*)s)[0] ) ? \
1985 ( ( 0x86 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1986 : ( 0xAA == ((const U8*)s)[0] ) ? \
1987 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1988 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1989 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
1990 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1991 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1992 : ( 0x67 == ((const U8*)s)[1] ) ? \
1993 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1994 : 0 ) \
1995 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1996 ( ( 0x42 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
1997 : ( 0x46 == ((const U8*)s)[1] ) ? \
1998 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x5F == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1999 : ( 0x4A == ((const U8*)s)[1] ) ? \
2000 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2001 : 0 ) \
2002 : ( 0xB7 == ((const U8*)s)[0] ) ? \
2003 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2004 : ( 0xBF == ((const U8*)s)[0] ) ? \
2005 ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ? \
2006 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) ? 3 : 0 ) \
2007 : ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2008 : 0 ) \
2009: ((e)-(s) > 2) ? \
2010 ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA2 ) || ((const U8*)s)[0] == 0xA6 || ((const U8*)s)[0] == 0xA8 ) ? 1\
2011 : ( 0x86 == ((const U8*)s)[0] ) ? \
2012 ( ( 0x86 == ((const U8*)s)[1] ) ? 2 : 1 ) \
2013 : ( 0xAA == ((const U8*)s)[0] ) ? \
2014 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2015 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2016 ( ( ((const U8*)s)[1] == 0x53 || ((const U8*)s)[1] == 0x55 || ((const U8*)s)[1] == 0x58 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) ) ? 2 : 0 )\
2017 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2018 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ? 2 : 0 )\
2019 : ( 0xB7 == ((const U8*)s)[0] ) ? \
2020 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2021 : ( 0xBF == ((const U8*)s)[0] ) ? \
2022 ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ? \
2023 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) ? 3 : 0 ) \
2024 : ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2025 : 0 ) \
2026: ((e)-(s) > 1) ? \
2027 ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA2 ) || ((const U8*)s)[0] == 0xA6 || ((const U8*)s)[0] == 0xA8 ) ? 1\
2028 : ( 0x86 == ((const U8*)s)[0] ) ? \
2029 ( ( 0x86 == ((const U8*)s)[1] ) ? 2 : 1 ) \
2030 : ( 0xAA == ((const U8*)s)[0] ) ? \
2031 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2032 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2033 ( ( ((const U8*)s)[1] == 0x53 || ((const U8*)s)[1] == 0x55 || ((const U8*)s)[1] == 0x58 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) ) ? 2 : 0 )\
2034 : ( ( 0xB4 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
2035: ((e)-(s) > 0) ? \
2036 ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x86 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA2 ) || ((const U8*)s)[0] == 0xA8 )\
2037: 0 )
2038
2039/*
2040 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
2041
2042 &regcharclass_multi_char_folds::multi_char_folds('l', 'h')
2043*/
2044/*** GENERATED CODE ***/
2045#define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
2046( ((e)-(s) > 1) ? \
2047 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xBE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBF ) == 0xA6 ) || ( ( ((const U8*)s)[0] & 0xBF ) == 0xA8 ) ) ? 1\
2048 : ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
2049 ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? 2 : 1 ) \
2050 : 0 ) \
2051: ((e)-(s) > 0) ? \
2052 ( ( ( ((const U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0x9F ) == 0x86 ) || ( ( ((const U8*)s)[0] & 0xBE ) == 0x88 ) || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBF ) == 0xA8 ) )\
2053: 0 )
2054
2055/*
a1b2a50f
KW
2056 FOLDS_TO_MULTI: characters that fold to multi-char strings
2057
2058 \p{_Perl_Folds_To_Multi_Char}
2059*/
2060/*** GENERATED CODE ***/
2061#define is_FOLDS_TO_MULTI_utf8(s) \
29f3ce8f
KW
2062( ( 0x80 == ((const U8*)s)[0] ) ? \
2063 ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e42cde6b 2064: ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?\
29f3ce8f
KW
2065 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2066: ( 0x8D == ((const U8*)s)[0] ) ? \
2067 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2068: ( 0xB7 == ((const U8*)s)[0] ) ? \
2069 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2070: ( 0xBF == ((const U8*)s)[0] ) ? \
2071 ( ( 0x62 == ((const U8*)s)[1] ) ? \
e42cde6b 2072 ( ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f
KW
2073 : ( 0x68 == ((const U8*)s)[1] ) ? \
2074 ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
2075 : ( 0x6A == ((const U8*)s)[1] ) ? \
e42cde6b 2076 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
29f3ce8f 2077 : ( 0x70 == ((const U8*)s)[1] ) ? \
e42cde6b 2078 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x65 ) || 0x6A == ((const U8*)s)[2] ) ? 3 : 0 )\
29f3ce8f 2079 : ( 0x71 == ((const U8*)s)[1] ) ? \
e42cde6b 2080 ( ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x65 ) ) ? 3 : 0 )\
29f3ce8f 2081 : ( ( 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 )\
e42cde6b 2082: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x65 ) ) ) ? 4 : 0 )
a1b2a50f
KW
2083
2084/*
2085 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
2086
2087 \p{_Perl_Problematic_Locale_Folds}
2088*/
2089/*** GENERATED CODE ***/
2090#define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
e42cde6b 2091( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x5E ) || inRANGE(((const U8*)s)[0], 0x60, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xB0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xBA, 0xBB ) || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
29f3ce8f 2092: ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
e42cde6b 2093 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ? 2 : 0 )\
e061e593 2094: ( 0x8C == ((const U8*)s)[0] ) ? \
e42cde6b 2095 ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 ) \
29f3ce8f
KW
2096: ( 0x8D == ((const U8*)s)[0] ) ? \
2097 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2098: ( 0x8E == ((const U8*)s)[0] ) ? \
2099 ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e061e593
KW
2100: ( 0x9B == ((const U8*)s)[0] ) ? \
2101 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2102: ( 0xAD == ((const U8*)s)[0] ) ? \
2103 ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e42cde6b 2104: ( inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ? \
29f3ce8f
KW
2105 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2106: ( 0xBF == ((const U8*)s)[0] ) ? \
e42cde6b 2107 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 2108: ( 0xCA == ((const U8*)s)[0] ) ? \
e42cde6b
KW
2109 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
2110: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
a1b2a50f
KW
2111
2112/*** GENERATED CODE ***/
2113#define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
2114( cp <= 0xFF || ( 0xFF < cp && \
2115( 0x130 == cp || ( 0x130 < cp && \
e061e593 2116( 0x131 == cp || ( 0x131 < cp && \
a1b2a50f
KW
2117( 0x149 == cp || ( 0x149 < cp && \
2118( 0x178 == cp || ( 0x178 < cp && \
2119( 0x17F == cp || ( 0x17F < cp && \
2120( 0x1F0 == cp || ( 0x1F0 < cp && \
e061e593 2121( 0x307 == cp || ( 0x307 < cp && \
a1b2a50f
KW
2122( 0x39C == cp || ( 0x39C < cp && \
2123( 0x3BC == cp || ( 0x3BC < cp && \
e42cde6b 2124( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
a1b2a50f
KW
2125( 0x1E9E == cp || ( 0x1E9E < cp && \
2126( 0x212A == cp || ( 0x212A < cp && \
e42cde6b 2127( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
a1b2a50f
KW
2128
2129/*
2130 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
2131
2132 \p{_Perl_Problematic_Locale_Foldeds_Start}
2133*/
2134/*** GENERATED CODE ***/
2135#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
e42cde6b 2136( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x5E ) || inRANGE(((const U8*)s)[0], 0x60, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xB0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xBA, 0xBB ) || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
29f3ce8f 2137: ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
e42cde6b 2138 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ? 2 : 0 )\
e061e593 2139: ( 0x8C == ((const U8*)s)[0] ) ? \
e42cde6b 2140 ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 ) \
29f3ce8f
KW
2141: ( 0x8D == ((const U8*)s)[0] ) ? \
2142 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2143: ( 0x8E == ((const U8*)s)[0] ) ? \
2144 ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e061e593
KW
2145: ( 0x9B == ((const U8*)s)[0] ) ? \
2146 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
e42cde6b 2147: ( 0xAA == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?\
29f3ce8f
KW
2148 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2149: ( 0xBF == ((const U8*)s)[0] ) ? \
e42cde6b 2150 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
29f3ce8f 2151: ( 0xCA == ((const U8*)s)[0] ) ? \
e42cde6b
KW
2152 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
2153: ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
a1b2a50f
KW
2154
2155/*** GENERATED CODE ***/
2156#define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
2157( cp <= 0xFF || ( 0xFF < cp && \
2158( 0x130 == cp || ( 0x130 < cp && \
e061e593 2159( 0x131 == cp || ( 0x131 < cp && \
a1b2a50f
KW
2160( 0x149 == cp || ( 0x149 < cp && \
2161( 0x178 == cp || ( 0x178 < cp && \
2162( 0x17F == cp || ( 0x17F < cp && \
2163( 0x1F0 == cp || ( 0x1F0 < cp && \
2164( 0x2BC == cp || ( 0x2BC < cp && \
2165( 0x39C == cp || ( 0x39C < cp && \
2166( 0x3BC == cp || ( 0x3BC < cp && \
e42cde6b 2167( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
a1b2a50f
KW
2168( 0x1E9E == cp || ( 0x1E9E < cp && \
2169( 0x212A == cp || ( 0x212A < cp && \
e42cde6b 2170( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
a1b2a50f
KW
2171
2172/*
2173 PATWS: pattern white space
2174
099323b4 2175 \p{_Perl_PatWS}
a1b2a50f
KW
2176*/
2177/*** GENERATED CODE ***/
2178#define is_PATWS_safe(s,e,is_utf8) \
dd9bc2b0 2179( ( LIKELY((e) > (s)) ) ? \
e42cde6b 2180 ( ( 0x05 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1\
29f3ce8f 2181 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
e42cde6b
KW
2182 ( ( inRANGE(((const U8*)s)[2], 0x55, 0x56 ) ) ? 3 : 0 ) \
2183 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 ) : 0 )\
a1b2a50f
KW
2184: 0 )
2185
2186/*** GENERATED CODE ***/
2187#define is_PATWS_cp(cp) \
2188( 0x05 == cp || ( 0x05 < cp && \
e42cde6b 2189( inRANGE(cp, 0x0B, 0x0D) || ( 0x0D < cp && \
a1b2a50f
KW
2190( 0x15 == cp || ( 0x15 < cp && \
2191( 0x25 == cp || ( 0x25 < cp && \
2192( 0x40 == cp || ( 0x40 < cp && \
2193( 0x200E == cp || ( 0x200E < cp && \
2194( 0x200F == cp || ( 0x200F < cp && \
2195( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2196
2197#endif /* EBCDIC 037 */
2198
6a5bc5ac 2199#endif /* PERL_REGCHARCLASS_H_ */
d10c72f2 2200
542a7545 2201/* Generated from:
048bdb72 2202 * 64f46a4b25d29a7f952077ee277909df8599a7a803759805c865914d981671a2 lib/Unicode/UCD.pm
fec13a43
UC
2203 * 5e91b649379ec79af7cfb6b09410a24557cba4c6d733cd0a2b8a78a1448736d2 lib/unicore/ArabicShaping.txt
2204 * f5feb19cd084b2b1568fbc0f94f4b4b54941406e7fb36c7570f8352fd5022dbe lib/unicore/BidiBrackets.txt
2205 * e6cbd8ffe94f2e0fbfa6695d6c06c1e72eef7d3aa93cb6329d111285198b5e62 lib/unicore/BidiMirroring.txt
2206 * a28b205afe8625fffdb6544a5fe14cf02b91493d9900f07820fa2102a17548f7 lib/unicore/Blocks.txt
2207 * 9c772627c6ee77eea6a17b42927b8ee28ca05dc65d6a511062104baaf3d12294 lib/unicore/CaseFolding.txt
2208 * abc8394c5bde62453118b00c1c5842160a04d7fffb2e829ee5426b846596d081 lib/unicore/CompositionExclusions.txt
2209 * 2fc081011d8fabaf7cf4937732dd5a6d6a57e492c43f3adfeded513387ee0ec3 lib/unicore/DAge.txt
2210 * a6eb7a8671fb532fbd88c37fd7b20b5b2e7dbfc8b121f74c14abe2947db0da68 lib/unicore/DCoreProperties.txt
2211 * 92dcdda84142194a1596f22180fcdf8c0e7f86897f09cc9203c7dc636c549f5f lib/unicore/DNormalizationProps.txt
2212 * 904500178b2e752635bef27aaed3a2a3718a100bce35ff96b3890be7a8315d8f lib/unicore/EastAsianWidth.txt
2213 * 1989b03d93023d8f5cc33eebf0d2ea80c8bd8f8c97843059ea039acb582c2078 lib/unicore/EmojiData.txt
2214 * d7930c2a7318e66b4ba756d5e5b41fbc586c2ad43d450ae9d320a758510bae2e lib/unicore/EquivalentUnifiedIdeograph.txt
2215 * 8606af08712a8c18fe268d418e2e5a87eddee6e190cce4c2d5a76b4fadf035e8 lib/unicore/HangulSyllableType.txt
2216 * 49a1bf18b048454154881f6a8a605b5e2fc73e85fcc4df1cb26d52e8c2aeb9bf lib/unicore/IndicPositionalCategory.txt
2217 * 1b6f3ef6e00e5b2e2a93d2d3c954ca1cce368599c5f11874cd0f0ce222d4637b lib/unicore/IndicSyllabicCategory.txt
2218 * 285c5c1ae458bc3ccd6a1398a94d2d67ce6bc1d7fc0f098762836050345e9434 lib/unicore/Jamo.txt
2219 * 961f842fc70b5afd1d82c6645e68c10d1f701382aed38ae38cb2ff27f671903c lib/unicore/LineBreak.txt
2220 * ff61a0687d2f32c0dd1094254b8bde967883b43c2d4d50fd17531d498e41ab2c lib/unicore/NameAliases.txt
2221 * d3eb9a288ebeaf9de1237989f490705e287b6f610b59d2459fb1b7c2d8e39c39 lib/unicore/NamedSequences.txt
2222 * d30d3ee430cf3527449d024954f053e419fa4aa2246eb59e5cd8d621af0c4b3f lib/unicore/PropList.txt
2223 * efce54f7c715a332c19b3d14c6a0eea30c6cde91caf6ff0d21c755be933736f4 lib/unicore/PropValueAliases.txt
2224 * d3cc3f9f0b6a8f0b7ef1d6ef202675426c28f4a75de01fc69ed977a93a00982b lib/unicore/PropertyAliases.txt
2225 * 3746848c181b5dbc1e614dfac9b8a5e3568e6525c693ac14e692ac55dec57e91 lib/unicore/ScriptExtensions.txt
2226 * e6313a8edfd24f36c7a006fbcf1d1b7245b5dd009c6dde80441f0da08b822c43 lib/unicore/Scripts.txt
2227 * 817ce2e9edca8e075a153f54b8f3b020345e37652cd2bda9b1495c366af17e7e lib/unicore/SpecialCasing.txt
2228 * 93ab1acd8fd9d450463b50ae77eab151a7cda48f98b25b56baed8070f80fc936 lib/unicore/UnicodeData.txt
2229 * ec5ba64af58297a46de17848eb984d2b231adb304de92e9d0d3befdbf9dc2551 lib/unicore/VerticalOrientation.txt
2230 * 95bd55cf803b93eb0b4990cf0e1d70ede263b36412d9c6921fd6f15cef058961 lib/unicore/auxiliary/GCBTest.txt
2231 * 39d73448fd257e6082f83ddf4c8bf6feb191e85dc8fc56b1a8512482de5e3dea lib/unicore/auxiliary/GraphemeBreakProperty.txt
2232 * f385e70f79f5959ae66d64b00f4bda39db6cef78e5363a0cdd88db46eafc6c8f lib/unicore/auxiliary/LBTest.txt
2233 * 7d6c909af97d0ab545a132d412f6e4e65c7eb5158514a7feb9bf00bcd05875f9 lib/unicore/auxiliary/SBTest.txt
2234 * c47d674ef4170c46185bf56f7a4c6627f65f012295e0994f7dc4aea51f8fd8cf lib/unicore/auxiliary/SentenceBreakProperty.txt
2235 * 3e3320bbbe775de7f1a0b9a30021eb949116a9b05cb461c90596c5ecf1743831 lib/unicore/auxiliary/WBTest.txt
88b212a5 2236 * f221f89fe3bb3becc00de726d5694c4b7f464c316baff6d339b2ff3900bcb96c lib/unicore/auxiliary/WordBreakProperty.txt
fec13a43
UC
2237 * db2c41c618bab54b00e58223ad11cec550f9b9fd1a471de236e660da92fe4870 lib/unicore/extracted/DBidiClass.txt
2238 * fecd8a1c49935d794c4c1012f4158aa536a13049a4c10d01aaf7b5f90f3b2cbc lib/unicore/extracted/DBinaryProperties.txt
2239 * db6f38fb4aa8b9181b5e6a9f320de9d5c2c9b5687116a619b3cb90138b025e0b lib/unicore/extracted/DCombiningClass.txt
2240 * 2524f69c175831fd84bfbaf13ea37992f41db167d728c51b1d0002c1d0b130b0 lib/unicore/extracted/DDecompositionType.txt
2241 * 16852301d54ae59b5cfe0daa6b8e17fb688ed055d59b2a5a11eaafc650cc9d30 lib/unicore/extracted/DEastAsianWidth.txt
2242 * 78f898b988049a5bea5039cea6ffe87a92596859ac660a6c438519b512fe2ee6 lib/unicore/extracted/DGeneralCategory.txt
2243 * 33441692403901287c834f96bd33b671133a6f74e2732c61a497608b9e434932 lib/unicore/extracted/DJoinGroup.txt
2244 * a792ac5ef602e3bace679cc96d7491701dcdb73d81c782253de88fdcc5e70e50 lib/unicore/extracted/DJoinType.txt
2245 * 78e2600e24fa7d5ab62117de50b382f8b31b08401c37a0782c38dacb340b64e7 lib/unicore/extracted/DLineBreak.txt
2246 * 1bde4ad73e271c6349fbd1972e54f38bba5cc1900c28f678e79b9e8909b31793 lib/unicore/extracted/DNumType.txt
2247 * 6278722699123f3890e4b1cc42011e96d8960e4958a3b93484361530983d2611 lib/unicore/extracted/DNumValues.txt
048bdb72 2248 * 5214f368c189077a2a748b7ef0a5300abd0d012be568d18c1bbd8bede55818ae lib/unicore/mktables
fec13a43 2249 * a712c758275b460d18fa77a26ed3589689bb3f69dcc1ea99b913e32db92a5cd2 lib/unicore/version
c11f6329 2250 * 2680b9254eb236c5c090f11b149605043e8c8433661b96efc4a42fb4709342a5 regen/charset_translations.pl
42d7c910
KW
2251 * f9a393e7add8c7c2728356473ce5b52246d51295b2da0c48fb6f0aa21799e2bb regen/regcharclass.pl
2252 * b549b9989c6987563dad8f8ad6b984c8026cdc283d60ea34457959c5d4b4ade0 regen/regcharclass_multi_char_folds.pl
542a7545 2253 * ex: set ro: */