This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Use macro not swash for utf8 quotemeta
[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] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 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] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 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] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 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] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 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         ( ( ( 0x80 <= ((U8*)s)[2] && ((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] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 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] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 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] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 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] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 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         GCB_L: Grapheme_Cluster_Break=L
337
338         \p{_X_GCB_L}
339 */
340 /*** GENERATED CODE ***/
341 #define is_GCB_L_utf8(s)                                                    \
342 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
343     ( ( 0x84 == ((U8*)s)[1] ) ?                                             \
344         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
345     : ( 0x85 == ((U8*)s)[1] ) ?                                             \
346         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9F ) ? 3 : 0 )          \
347     : 0 )                                                                   \
348 : ( 0xEA == ((U8*)s)[0] ) ?                                                 \
349     ( ( ( 0xA5 == ((U8*)s)[1] ) && ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ) ? 3 : 0 )\
350 : 0 )
351
352 /*
353         GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
354
355         \p{_X_LV_LVT_V}
356 */
357 /*** GENERATED CODE ***/
358 #define is_GCB_LV_LVT_V_utf8(s)                                             \
359 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
360     ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
361         ( ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
362     : ( 0x86 == ((U8*)s)[1] ) ?                                             \
363         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA7 ) ? 3 : 0 )          \
364     : 0 )                                                                   \
365 : ( 0xEA == ((U8*)s)[0] ) ?                                                 \
366     ( ( ( 0xB0 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ) ? 3 : 0 )\
367 : ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
368     ( ( ( 0x80 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ) ? 3 : 0 )\
369 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
370     ( ( 0x80 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x9D ) ?                      \
371         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
372     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
373         ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA3 ) || ( 0xB0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ) ? 3 : 0 )\
374     : ( 0x9F == ((U8*)s)[1] ) ?                                             \
375         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x86 ) ? 3 : 0 )          \
376     : 0 )                                                                   \
377 : 0 )
378
379 /*
380         GCB_Prepend: Grapheme_Cluster_Break=Prepend
381
382         \p{_X_GCB_Prepend}
383 */
384 /*** GENERATED CODE ***/
385 #define is_GCB_Prepend_utf8(s)                                              \
386 ( 0 )
387
388 /*
389         GCB_RI: Grapheme_Cluster_Break=RI
390
391         \p{_X_RI}
392 */
393 /*** GENERATED CODE ***/
394 #define is_GCB_RI_utf8(s)                                                   \
395 ( ( ( ( ( 0xF0 == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x87 == ((U8*)s)[2] ) ) && ( 0xA6 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0xBF ) ) ? 4 : 0 )
396
397 /*
398         GCB_SPECIAL_BEGIN: Grapheme_Cluster_Break=special_begins
399
400         \p{_X_Special_Begin}
401 */
402 /*** GENERATED CODE ***/
403 #define is_GCB_SPECIAL_BEGIN_utf8(s)                                        \
404 ( ( ( 0xE1 == ((U8*)s)[0] ) && ( 0x84 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x87 ) ) ? ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )\
405 : ( 0xEA == ((U8*)s)[0] ) ?                                                 \
406     ( ( 0xA5 == ((U8*)s)[1] ) ?                                             \
407         ( ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ? 3 : 0 )          \
408     : ( 0xB0 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) ?                      \
409         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
410     : 0 )                                                                   \
411 : ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
412     ( ( ( 0x80 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xBF ) && ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ) ? 3 : 0 )\
413 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
414     ( ( 0x80 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x9D ) ?                      \
415         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
416     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
417         ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA3 ) || ( 0xB0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ) ? 3 : 0 )\
418     : ( 0x9F == ((U8*)s)[1] ) ?                                             \
419         ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x86 ) || ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ? 3 : 0 )\
420     : 0 )                                                                   \
421 : ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
422     ( ( ( ( 0x9F == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) && ( 0xA6 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0xBF ) ) ? 4 : 0 )\
423 : 0 )
424
425 /*
426         GCB_T: Grapheme_Cluster_Break=T
427
428         \p{_X_GCB_T}
429 */
430 /*** GENERATED CODE ***/
431 #define is_GCB_T_utf8(s)                                                    \
432 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
433     ( ( 0x86 == ((U8*)s)[1] ) ?                                             \
434         ( ( 0xA8 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
435     : ( 0x87 == ((U8*)s)[1] ) ?                                             \
436         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
437     : 0 )                                                                   \
438 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
439     ( ( ( 0x9F == ((U8*)s)[1] ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ? 3 : 0 )\
440 : 0 )
441
442 /*
443         GCB_V: Grapheme_Cluster_Break=V
444
445         \p{_X_GCB_V}
446 */
447 /*** GENERATED CODE ***/
448 #define is_GCB_V_utf8(s)                                                    \
449 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
450     ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
451         ( ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
452     : ( 0x86 == ((U8*)s)[1] ) ?                                             \
453         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA7 ) ? 3 : 0 )          \
454     : 0 )                                                                   \
455 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
456     ( ( 0x9E == ((U8*)s)[1] ) ?                                             \
457         ( ( 0xB0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
458     : ( 0x9F == ((U8*)s)[1] ) ?                                             \
459         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x86 ) ? 3 : 0 )          \
460     : 0 )                                                                   \
461 : 0 )
462
463 /*
464         QUOTEMETA: Meta-characters that \Q should quote
465
466         \p{_Perl_Quotemeta}
467 */
468 /*** GENERATED CODE ***/
469 #define is_QUOTEMETA_high(s)                                                \
470 ( ( 0xCD == ((U8*)s)[0] ) ?                                                 \
471     ( ( 0x8F == ((U8*)s)[1] ) ? 2 : 0 )                                     \
472 : ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
473     ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
474         ( ( 0x9F == ((U8*)s)[2] || 0xA0 == ((U8*)s)[2] ) ? 3 : 0 )          \
475     : ( 0x9A == ((U8*)s)[1] ) ?                                             \
476         ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
477     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
478         ( ( 0xB4 == ((U8*)s)[2] || 0xB5 == ((U8*)s)[2] ) ? 3 : 0 )          \
479     : ( 0xA0 == ((U8*)s)[1] ) ?                                             \
480         ( ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8E ) ? 3 : 0 )          \
481     : 0 )                                                                   \
482 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
483     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
484         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBE ) ? 3 : 0 )          \
485     : ( 0x81 == ((U8*)s)[1] ) ?                                             \
486         ( ( ( 0x81 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
487     : ( 0x86 == ((U8*)s)[1] ) ?                                             \
488         ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
489     : ( 0x87 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x90 ) ?                      \
490         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
491     : ( 0x91 == ((U8*)s)[1] ) ?                                             \
492         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9F ) ? 3 : 0 )          \
493     : ( 0x94 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x9C ) ?                      \
494         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
495     : ( 0x9D == ((U8*)s)[1] ) ?                                             \
496         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xB5 ) ? 3 : 0 )          \
497     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
498         ( ( 0x94 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
499     : ( ( 0x9F <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xAF ) || 0xB8 == ((U8*)s)[1] || 0xB9 == ((U8*)s)[1] ) ?\
500         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ? 3 : 0 )          \
501     : 0 )                                                                   \
502 : ( 0xE3 == ((U8*)s)[0] ) ?                                                 \
503     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
504         ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA0 ) || 0xB0 == ((U8*)s)[2] ) ? 3 : 0 )\
505     : ( 0x85 == ((U8*)s)[1] ) ?                                             \
506         ( ( 0xA4 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
507     : 0 )                                                                   \
508 : ( 0xEF == ((U8*)s)[0] ) ?                                                 \
509     ( ( 0xB4 == ((U8*)s)[1] ) ?                                             \
510         ( ( 0xBE == ((U8*)s)[2] || 0xBF == ((U8*)s)[2] ) ? 3 : 0 )          \
511     : ( 0xB8 == ((U8*)s)[1] ) ?                                             \
512         ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8F ) ? 3 : 0 )          \
513     : ( 0xB9 == ((U8*)s)[1] ) ?                                             \
514         ( ( 0x85 == ((U8*)s)[2] || 0x86 == ((U8*)s)[2] ) ? 3 : 0 )          \
515     : ( 0xBB == ((U8*)s)[1] ) ?                                             \
516         ( ( 0xBF == ((U8*)s)[2] ) ? 3 : 0 )                                 \
517     : ( 0xBE == ((U8*)s)[1] ) ?                                             \
518         ( ( 0xA0 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
519     : ( 0xBF == ((U8*)s)[1] ) ?                                             \
520         ( ( 0xB0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xB8 ) ? 3 : 0 )          \
521     : 0 )                                                                   \
522 : ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
523     ( ( ( ( 0x9D == ((U8*)s)[1] ) && ( 0x85 == ((U8*)s)[2] ) ) && ( 0xB3 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0xBA ) ) ? 4 : 0 )\
524 : ( 0xF3 == ((U8*)s)[0] ) ?                                                 \
525     ( ( ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBF ) ) && ( 0x80 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0xBF ) ) ? 4 : 0 )\
526 : 0 )
527
528
529 #endif /* H_REGCHARCLASS */
530
531 /* ex: set ro: */