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