This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regen/regcharclass.pl: Simplify regex
[perl5.git] / regcharclass.h
1 /* -*- buffer-read-only: t -*-
2  *
3  *    regcharclass.h
4  *
5  *    Copyright (C) 2007, 2011 by Larry Wall and others
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   !!!!!!!
11  * This file is built by regen/regcharclass.pl.
12  * Any changes made here will be lost!
13  */
14
15
16 #ifndef H_REGCHARCLASS   /* Guard against nested #includes */
17 #define H_REGCHARCLASS 1
18
19 /*
20         LNBREAK: Line Break: \R
21
22         "\x0D\x0A"      # CRLF - Network (Windows) line ending
23         \p{VertSpace}
24 */
25 /*** GENERATED CODE ***/
26 #define is_LNBREAK(s,is_utf8)                                               \
27 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                        \
28 : ( 0x0D == ((U8*)s)[0] ) ?                                                 \
29     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                     \
30 : ( is_utf8 ) ?                                                             \
31     ( ( 0xC2 == ((U8*)s)[0] ) ?                                             \
32         ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
33     : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
34 : ( 0x85 == ((U8*)s)[0] ) )
35
36 /*** GENERATED CODE ***/
37 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
38 ( ((e)-(s) > 2) ?                                                           \
39     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
40     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
41         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
42     : ( is_utf8 ) ?                                                         \
43         ( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
44             ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                             \
45         : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
46     : ( 0x85 == ((U8*)s)[0] ) )                                             \
47 : ((e)-(s) > 1) ?                                                           \
48     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
49     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
50         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
51     : ( is_utf8 ) ?                                                         \
52         ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
53     : ( 0x85 == ((U8*)s)[0] ) )                                             \
54 : ((e)-(s) > 0) ?                                                           \
55     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
56     : ( !( is_utf8 ) ) ?                                                    \
57         ( 0x85 == ((U8*)s)[0] )                                             \
58     : 0 )                                                                   \
59 : 0 )
60
61 /*** GENERATED CODE ***/
62 #define is_LNBREAK_utf8(s)                                                  \
63 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                        \
64 : ( 0x0D == ((U8*)s)[0] ) ?                                                 \
65     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                     \
66 : ( 0xC2 == ((U8*)s)[0] ) ?                                                 \
67     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
68 : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
69
70 /*** GENERATED CODE ***/
71 #define is_LNBREAK_utf8_safe(s,e)                                           \
72 ( ((e)-(s) > 2) ?                                                           \
73     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
74     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
75         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
76     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
77         ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
78     : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
79 : ((e)-(s) > 1) ?                                                           \
80     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
81     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
82         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
83     : ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )      \
84 : ((e)-(s) > 0) ?                                                           \
85     ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D )                          \
86 : 0 )
87
88 /*** GENERATED CODE ***/
89 #define is_LNBREAK_latin1(s)                                                \
90 ( ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) || 0x85 == ((U8*)s)[0] ) ? 1\
91 : ( 0x0D == ((U8*)s)[0] ) ?                                                 \
92     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                     \
93 : 0 )
94
95 /*** GENERATED CODE ***/
96 #define is_LNBREAK_latin1_safe(s,e)                                         \
97 ( ((e)-(s) > 1) ?                                                           \
98     ( ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) || 0x85 == ((U8*)s)[0] ) ? 1\
99     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
100         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
101     : 0 )                                                                   \
102 : ((e)-(s) > 0) ?                                                           \
103     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
104 : 0 )
105
106 /*
107         HORIZWS: Horizontal Whitespace: \h \H
108
109         \p{HorizSpace}
110 */
111 /*** GENERATED CODE ***/
112 #define is_HORIZWS(s,is_utf8)                                               \
113 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                        \
114 : ( is_utf8 ) ?                                                             \
115     ( ( 0xC2 == ((U8*)s)[0] ) ?                                             \
116         ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
117     : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
118         ( ( 0x9A == ((U8*)s)[1] ) ?                                         \
119             ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                             \
120         : ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) ? 3 : 0 )  \
121     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
122         ( ( 0x80 == ((U8*)s)[1] ) ?                                         \
123             ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
124         : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 )  \
125     : ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )\
126 : ( 0xA0 == ((U8*)s)[0] ) )
127
128 /*** GENERATED CODE ***/
129 #define is_HORIZWS_safe(s,e,is_utf8)                                        \
130 ( ((e)-(s) > 2) ?                                                           \
131     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
132     : ( is_utf8 ) ?                                                         \
133         ( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
134             ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                             \
135         : ( 0xE1 == ((U8*)s)[0] ) ?                                         \
136             ( ( 0x9A == ((U8*)s)[1] ) ?                                     \
137                 ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                         \
138             : ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) ? 3 : 0 )\
139         : ( 0xE2 == ((U8*)s)[0] ) ?                                         \
140             ( ( 0x80 == ((U8*)s)[1] ) ?                                     \
141                 ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
142             : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 )\
143         : ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )\
144     : ( 0xA0 == ((U8*)s)[0] ) )                                             \
145 : ((e)-(s) > 1) ?                                                           \
146     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
147     : ( is_utf8 ) ?                                                         \
148         ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
149     : ( 0xA0 == ((U8*)s)[0] ) )                                             \
150 : ((e)-(s) > 0) ?                                                           \
151     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
152     : ( !( is_utf8 ) ) ?                                                    \
153         ( 0xA0 == ((U8*)s)[0] )                                             \
154     : 0 )                                                                   \
155 : 0 )
156
157 /*** GENERATED CODE ***/
158 #define is_HORIZWS_utf8(s)                                                  \
159 ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                        \
160 : ( 0xC2 == ((U8*)s)[0] ) ?                                                 \
161     ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
162 : ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
163     ( ( 0x9A == ((U8*)s)[1] ) ?                                             \
164         ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
165     : ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) ? 3 : 0 )      \
166 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
167     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
168         ( ( ( ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )      \
169     : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 )      \
170 : ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )
171
172 /*** GENERATED CODE ***/
173 #define is_HORIZWS_utf8_safe(s,e)                                           \
174 ( ((e)-(s) > 2) ?                                                           \
175     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
176     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
177         ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
178     : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
179         ( ( 0x9A == ((U8*)s)[1] ) ?                                         \
180             ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                             \
181         : ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) ? 3 : 0 )  \
182     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
183         ( ( 0x80 == ((U8*)s)[1] ) ?                                         \
184             ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
185         : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 )  \
186     : ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )\
187 : ((e)-(s) > 1) ?                                                           \
188     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
189     : ( ( 0xC2 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 2 : 0 )      \
190 : ((e)-(s) > 0) ?                                                           \
191     ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] )                          \
192 : 0 )
193
194 /*** GENERATED CODE ***/
195 #define is_HORIZWS_latin1(s)                                                \
196 ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] || 0xA0 == ((U8*)s)[0] )
197
198 /*** GENERATED CODE ***/
199 #define is_HORIZWS_latin1_safe(s,e)                                         \
200 ( ((e)-(s) > 0) ?                                                           \
201     ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] || 0xA0 == ((U8*)s)[0] )   \
202 : 0 )
203
204 /*** GENERATED CODE ***/
205 #define is_HORIZWS_cp(cp)                                                   \
206 ( 0x09 == cp || ( 0x09 < cp &&                                              \
207 ( 0x20 == cp || ( 0x20 < cp &&                                              \
208 ( 0xA0 == cp || ( 0xA0 < cp &&                                              \
209 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
210 ( 0x180E == cp || ( 0x180E < cp &&                                          \
211 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
212 ( 0x202F == cp || ( 0x202F < cp &&                                          \
213 ( 0x205F == cp || ( 0x205F < cp &&                                          \
214 0x3000 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
215
216 /*
217         VERTWS: Vertical Whitespace: \v \V
218
219         \p{VertSpace}
220 */
221 /*** GENERATED CODE ***/
222 #define is_VERTWS(s,is_utf8)                                                \
223 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                        \
224 : ( is_utf8 ) ?                                                             \
225     ( ( 0xC2 == ((U8*)s)[0] ) ?                                             \
226         ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
227     : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
228 : ( 0x85 == ((U8*)s)[0] ) )
229
230 /*** GENERATED CODE ***/
231 #define is_VERTWS_safe(s,e,is_utf8)                                         \
232 ( ((e)-(s) > 2) ?                                                           \
233     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
234     : ( is_utf8 ) ?                                                         \
235         ( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
236             ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                             \
237         : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
238     : ( 0x85 == ((U8*)s)[0] ) )                                             \
239 : ((e)-(s) > 1) ?                                                           \
240     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
241     : ( is_utf8 ) ?                                                         \
242         ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
243     : ( 0x85 == ((U8*)s)[0] ) )                                             \
244 : ((e)-(s) > 0) ?                                                           \
245     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
246     : ( !( is_utf8 ) ) ?                                                    \
247         ( 0x85 == ((U8*)s)[0] )                                             \
248     : 0 )                                                                   \
249 : 0 )
250
251 /*** GENERATED CODE ***/
252 #define is_VERTWS_utf8(s)                                                   \
253 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                        \
254 : ( 0xC2 == ((U8*)s)[0] ) ?                                                 \
255     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
256 : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
257
258 /*** GENERATED CODE ***/
259 #define is_VERTWS_utf8_safe(s,e)                                            \
260 ( ((e)-(s) > 2) ?                                                           \
261     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
262     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
263         ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
264     : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
265 : ((e)-(s) > 1) ?                                                           \
266     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
267     : ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )      \
268 : ((e)-(s) > 0) ?                                                           \
269     ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D )                          \
270 : 0 )
271
272 /*** GENERATED CODE ***/
273 #define is_VERTWS_latin1(s)                                                 \
274 ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )
275
276 /*** GENERATED CODE ***/
277 #define is_VERTWS_latin1_safe(s,e)                                          \
278 ( ((e)-(s) > 0) ?                                                           \
279     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
280 : 0 )
281
282 /*** GENERATED CODE ***/
283 #define is_VERTWS_cp(cp)                                                    \
284 ( ( 0x0A <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
285 ( 0x85 == cp || ( 0x85 < cp &&                                              \
286 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
287 0x2029 == cp ) ) ) ) ) )
288
289 /*
290         REPLACEMENT: Unicode REPLACEMENT CHARACTER
291
292         0xFFFD
293 */
294 /*** GENERATED CODE ***/
295 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
296 ( ( ( ( ((e)-(s) > 2) && ( 0xEF == ((U8*)s)[0] ) ) && ( 0xBF == ((U8*)s)[1] ) ) && ( 0xBD == ((U8*)s)[2] ) ) ? 3 : 0 )
297
298 /*
299         NONCHAR: Non character code points
300
301         \p{Nchar}
302 */
303 /*** GENERATED CODE ***/
304 #define is_NONCHAR_utf8(s)                                                  \
305 ( ( 0xEF == ((U8*)s)[0] ) ?                                                 \
306     ( ( 0xB7 == ((U8*)s)[1] ) ?                                             \
307         ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ? 3 : 0 )          \
308     : ( ( 0xBF == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0xBE ) ) ? 3 : 0 )      \
309 : ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
310     ( ( ( ( 0x9F == ((U8*)s)[1] || 0xAF == ((U8*)s)[1] || 0xBF == ((U8*)s)[1] ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
311 : ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF3 ) ?                          \
312     ( ( ( ( ( ((U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
313 : ( ( ( ( 0xF4 == ((U8*)s)[0] ) && ( 0x8F == ((U8*)s)[1] ) ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )
314
315 /*
316         SURROGATE: Surrogate characters
317
318         \p{Gc=Cs}
319 */
320 /*** GENERATED CODE ***/
321 #define is_SURROGATE_utf8(s)                                                \
322 ( ( ( 0xED == ((U8*)s)[0] ) && ( ((U8*)s)[1] >= 0xA0 ) ) ? 3 : 0 )
323
324 /*
325         GCB_L: Grapheme_Cluster_Break=L
326
327         \p{_X_GCB_L}
328 */
329 /*** GENERATED CODE ***/
330 #define is_GCB_L_utf8(s)                                                    \
331 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
332     ( ( 0x84 == ((U8*)s)[1] ) ?                                             \
333         3                                                                   \
334     : ( ( 0x85 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x9F ) ) ? 3 : 0 )      \
335 : ( ( ( 0xEA == ((U8*)s)[0] ) && ( 0xA5 == ((U8*)s)[1] ) ) && ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ) ? 3 : 0 )
336
337 /*
338         GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
339
340         \p{_X_LV_LVT_V}
341 */
342 /*** GENERATED CODE ***/
343 #define is_GCB_LV_LVT_V_utf8(s)                                             \
344 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
345     ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
346         ( ( ((U8*)s)[2] >= 0xA0 ) ? 3 : 0 )                                 \
347     : ( ( 0x86 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0xA7 ) ) ? 3 : 0 )      \
348 : ( 0xEA == ((U8*)s)[0] ) ?                                                 \
349     ( ( ((U8*)s)[1] >= 0xB0 ) ?                                             \
350         3                                                                   \
351     : 0 )                                                                   \
352 : ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
353     3                                                                       \
354 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
355     ( ( ((U8*)s)[1] <= 0x9D ) ?                                             \
356         3                                                                   \
357     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
358         ( ( ( ((U8*)s)[2] <= 0xA3 ) || ( ((U8*)s)[2] >= 0xB0 ) ) ? 3 : 0 )  \
359     : ( ( 0x9F == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )      \
360 : 0 )
361
362 /*
363         GCB_Prepend: Grapheme_Cluster_Break=Prepend
364
365         \p{_X_GCB_Prepend}
366 */
367 /*** GENERATED CODE ***/
368 #define is_GCB_Prepend_utf8(s)                                              \
369 ( 0 )
370
371 /*
372         GCB_RI: Grapheme_Cluster_Break=RI
373
374         \p{_X_RI}
375 */
376 /*** GENERATED CODE ***/
377 #define is_GCB_RI_utf8(s)                                                   \
378 ( ( ( ( ( 0xF0 == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x87 == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xA6 ) ) ? 4 : 0 )
379
380 /*
381         GCB_SPECIAL_BEGIN: Grapheme_Cluster_Break=special_begins
382
383         \p{_X_Special_Begin}
384 */
385 /*** GENERATED CODE ***/
386 #define is_GCB_SPECIAL_BEGIN_utf8(s)                                        \
387 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
388     ( ( ( ((U8*)s)[1] & 0xFC ) == 0x84 ) ?                                  \
389         3                                                                   \
390     : 0 )                                                                   \
391 : ( 0xEA == ((U8*)s)[0] ) ?                                                 \
392     ( ( 0xA5 == ((U8*)s)[1] ) ?                                             \
393         ( ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ? 3 : 0 )          \
394     : ( ((U8*)s)[1] >= 0xB0 ) ?                                             \
395         3                                                                   \
396     : 0 )                                                                   \
397 : ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
398     3                                                                       \
399 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
400     ( ( ((U8*)s)[1] <= 0x9D ) ?                                             \
401         3                                                                   \
402     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
403         ( ( ( ((U8*)s)[2] <= 0xA3 ) || ( ((U8*)s)[2] >= 0xB0 ) ) ? 3 : 0 )  \
404     : ( ( 0x9F == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] <= 0x86 ) || ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ) ? 3 : 0 )\
405 : ( ( ( ( 0xF0 == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x87 == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xA6 ) ) ? 4 : 0 )
406
407 /*
408         GCB_T: Grapheme_Cluster_Break=T
409
410         \p{_X_GCB_T}
411 */
412 /*** GENERATED CODE ***/
413 #define is_GCB_T_utf8(s)                                                    \
414 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
415     ( ( 0x86 == ((U8*)s)[1] ) ?                                             \
416         ( ( ((U8*)s)[2] >= 0xA8 ) ? 3 : 0 )                                 \
417     : ( 0x87 == ((U8*)s)[1] ) ?                                             \
418         3                                                                   \
419     : 0 )                                                                   \
420 : ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ? 3 : 0 )
421
422 /*
423         GCB_V: Grapheme_Cluster_Break=V
424
425         \p{_X_GCB_V}
426 */
427 /*** GENERATED CODE ***/
428 #define is_GCB_V_utf8(s)                                                    \
429 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
430     ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
431         ( ( ((U8*)s)[2] >= 0xA0 ) ? 3 : 0 )                                 \
432     : ( ( 0x86 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0xA7 ) ) ? 3 : 0 )      \
433 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
434     ( ( 0x9E == ((U8*)s)[1] ) ?                                             \
435         ( ( ((U8*)s)[2] >= 0xB0 ) ? 3 : 0 )                                 \
436     : ( ( 0x9F == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )      \
437 : 0 )
438
439 /*
440         QUOTEMETA: Meta-characters that \Q should quote
441
442         \p{_Perl_Quotemeta}
443 */
444 /*** GENERATED CODE ***/
445 #define is_QUOTEMETA_high(s)                                                \
446 ( ( 0xCD == ((U8*)s)[0] ) ?                                                 \
447     ( ( 0x8F == ((U8*)s)[1] ) ? 2 : 0 )                                     \
448 : ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
449     ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
450         ( ( 0x9F == ((U8*)s)[2] || 0xA0 == ((U8*)s)[2] ) ? 3 : 0 )          \
451     : ( 0x9A == ((U8*)s)[1] ) ?                                             \
452         ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
453     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
454         ( ( ( ((U8*)s)[2] & 0xFE ) == 0xB4 ) ? 3 : 0 )                      \
455     : ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8E ) ) ? 3 : 0 )\
456 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
457     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
458         ( ( ((U8*)s)[2] <= 0xBE ) ? 3 : 0 )                                 \
459     : ( 0x81 == ((U8*)s)[1] ) ?                                             \
460         ( ( ( 0x81 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
461     : ( 0x86 == ((U8*)s)[1] ) ?                                             \
462         ( ( ((U8*)s)[2] >= 0x90 ) ? 3 : 0 )                                 \
463     : ( ( 0x87 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x90 ) || ( 0x94 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x9C ) || ( 0x9F <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xAF ) || ( ((U8*)s)[1] & 0xFE ) == 0xB8 ) ?\
464         3                                                                   \
465     : ( 0x91 == ((U8*)s)[1] ) ?                                             \
466         ( ( ((U8*)s)[2] <= 0x9F ) ? 3 : 0 )                                 \
467     : ( 0x9D == ((U8*)s)[1] ) ?                                             \
468         ( ( ((U8*)s)[2] <= 0xB5 ) ? 3 : 0 )                                 \
469     : ( ( 0x9E == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0x94 ) ) ? 3 : 0 )      \
470 : ( 0xE3 == ((U8*)s)[0] ) ?                                                 \
471     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
472         ( ( ( ((U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA0 ) || 0xB0 == ((U8*)s)[2] ) ? 3 : 0 )\
473     : ( ( 0x85 == ((U8*)s)[1] ) && ( 0xA4 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
474 : ( 0xEF == ((U8*)s)[0] ) ?                                                 \
475     ( ( 0xB4 == ((U8*)s)[1] ) ?                                             \
476         ( ( ((U8*)s)[2] >= 0xBE ) ? 3 : 0 )                                 \
477     : ( 0xB8 == ((U8*)s)[1] ) ?                                             \
478         ( ( ((U8*)s)[2] <= 0x8F ) ? 3 : 0 )                                 \
479     : ( 0xB9 == ((U8*)s)[1] ) ?                                             \
480         ( ( 0x85 == ((U8*)s)[2] || 0x86 == ((U8*)s)[2] ) ? 3 : 0 )          \
481     : ( 0xBB == ((U8*)s)[1] ) ?                                             \
482         ( ( 0xBF == ((U8*)s)[2] ) ? 3 : 0 )                                 \
483     : ( 0xBE == ((U8*)s)[1] ) ?                                             \
484         ( ( 0xA0 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
485     : ( ( 0xBF == ((U8*)s)[1] ) && ( 0xB0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xB8 ) ) ? 3 : 0 )\
486 : ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
487     ( ( ( ( 0x9D == ((U8*)s)[1] ) && ( 0x85 == ((U8*)s)[2] ) ) && ( 0xB3 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0xBA ) ) ? 4 : 0 )\
488 : ( ( 0xF3 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 4 : 0 )
489
490
491 #endif /* H_REGCHARCLASS */
492
493 /* ex: set ro: */