This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
pp_sys.c remove null checks and locality
[perl5.git] / regcharclass.h
CommitLineData
8770da0e 1/* -*- buffer-read-only: t -*-
58fbde93
RGS
2 *
3 * regcharclass.h
4 *
2eee27d7 5 * Copyright (C) 2007, 2011 by Larry Wall and others
58fbde93
RGS
6 *
7 * You may distribute under the terms of either the GNU General Public
8 * License or the Artistic License, as specified in the README file.
9 *
10 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
98e310af 11 * This file is built by regen/regcharclass.pl.
58fbde93
RGS
12 * Any changes made here will be lost!
13 */
12b72891 14
d10c72f2
KW
15
16#ifndef H_REGCHARCLASS /* Guard against nested #includes */
17#define H_REGCHARCLASS 1
18
12b72891
RGS
19/*
20 LNBREAK: Line Break: \R
21
58fbde93 22 "\x0D\x0A" # CRLF - Network (Windows) line ending
05b688d9 23 \p{VertSpace}
12b72891
RGS
24*/
25/*** GENERATED CODE ***/
26#define is_LNBREAK(s,is_utf8) \
c4c8e615
KW
27( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
28: ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
29 ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
e64b1bd1 30: ( is_utf8 ) ? \
c4c8e615
KW
31 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
32 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
33 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
34: ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) )
e1d1eefb 35
12b72891
RGS
36/*** GENERATED CODE ***/
37#define is_LNBREAK_safe(s,e,is_utf8) \
e64b1bd1 38( ((e)-(s) > 2) ? \
c4c8e615
KW
39 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
40 : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
41 ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
e64b1bd1 42 : ( is_utf8 ) ? \
c4c8e615
KW
43 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
44 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
45 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
46 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
e64b1bd1 47: ((e)-(s) > 1) ? \
c4c8e615
KW
48 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
49 : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
50 ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
e64b1bd1 51 : ( is_utf8 ) ? \
c4c8e615
KW
52 ( ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
53 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
e64b1bd1 54: ((e)-(s) > 0) ? \
c4c8e615 55 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
e64b1bd1 56 : ( !( is_utf8 ) ) ? \
c4c8e615 57 ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) \
e64b1bd1
YO
58 : 0 ) \
59: 0 )
e1d1eefb 60
12b72891
RGS
61/*** GENERATED CODE ***/
62#define is_LNBREAK_utf8(s) \
c4c8e615
KW
63( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
64: ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
65 ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
66: ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
67 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
68: ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
e1d1eefb 69
12b72891
RGS
70/*** GENERATED CODE ***/
71#define is_LNBREAK_utf8_safe(s,e) \
e64b1bd1 72( ((e)-(s) > 2) ? \
c4c8e615
KW
73 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
74 : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
75 ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
76 : ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
77 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
78 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
e64b1bd1 79: ((e)-(s) > 1) ? \
c4c8e615
KW
80 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) ? 1\
81 : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
82 ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
83 : ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
e64b1bd1 84: ((e)-(s) > 0) ? \
c4c8e615 85 ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D )\
e64b1bd1 86: 0 )
e1d1eefb 87
12b72891
RGS
88/*** GENERATED CODE ***/
89#define is_LNBREAK_latin1(s) \
c4c8e615
KW
90( ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) || 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
91: ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
92 ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
9a3182e9 93: 0 )
e1d1eefb 94
12b72891
RGS
95/*** GENERATED CODE ***/
96#define is_LNBREAK_latin1_safe(s,e) \
e64b1bd1 97( ((e)-(s) > 1) ? \
c4c8e615
KW
98 ( ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0C ) || 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
99 : ( 0x0D == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
100 ( ( 0x0A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 1 ) \
9a3182e9 101 : 0 ) \
e64b1bd1 102: ((e)-(s) > 0) ? \
c4c8e615 103 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) )\
e64b1bd1 104: 0 )
12b72891
RGS
105
106/*
107 HORIZWS: Horizontal Whitespace: \h \H
108
05b688d9 109 \p{HorizSpace}
12b72891
RGS
110*/
111/*** GENERATED CODE ***/
112#define is_HORIZWS(s,is_utf8) \
c4c8e615 113( ( 0x09 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
e64b1bd1 114: ( is_utf8 ) ? \
c4c8e615
KW
115 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
116 ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
117 : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
a9c9e371 118 ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
c4c8e615
KW
119 : ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
120 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
121 ( ( ( 0x80 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
122 : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
123 : ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
124: ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) )
e1d1eefb 125
12b72891
RGS
126/*** GENERATED CODE ***/
127#define is_HORIZWS_safe(s,e,is_utf8) \
e64b1bd1 128( ((e)-(s) > 2) ? \
c4c8e615 129 ( ( 0x09 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
e64b1bd1 130 : ( is_utf8 ) ? \
c4c8e615
KW
131 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
132 ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
133 : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
a9c9e371 134 ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
c4c8e615
KW
135 : ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
136 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
137 ( ( ( 0x80 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
138 : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
139 : ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
140 : ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
e64b1bd1 141: ((e)-(s) > 1) ? \
c4c8e615 142 ( ( 0x09 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
e64b1bd1 143 : ( is_utf8 ) ? \
c4c8e615
KW
144 ( ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
145 : ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
e64b1bd1 146: ((e)-(s) > 0) ? \
c4c8e615 147 ( ( 0x09 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
e64b1bd1 148 : ( !( is_utf8 ) ) ? \
c4c8e615 149 ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) \
e64b1bd1
YO
150 : 0 ) \
151: 0 )
e1d1eefb 152
12b72891
RGS
153/*** GENERATED CODE ***/
154#define is_HORIZWS_utf8(s) \
c4c8e615
KW
155( ( 0x09 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
156: ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
157 ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
158: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
a9c9e371 159 ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
c4c8e615
KW
160: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
161 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
162 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
163 : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
164: ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
e1d1eefb 165
12b72891
RGS
166/*** GENERATED CODE ***/
167#define is_HORIZWS_utf8_safe(s,e) \
e64b1bd1 168( ((e)-(s) > 2) ? \
c4c8e615
KW
169 ( ( 0x09 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
170 : ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
171 ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
172 : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
a9c9e371 173 ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
c4c8e615
KW
174 : ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
175 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
176 ( ( ( 0x80 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
177 : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
178 : ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
e64b1bd1 179: ((e)-(s) > 1) ? \
c4c8e615
KW
180 ( ( 0x09 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
181 : ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
e64b1bd1 182: ((e)-(s) > 0) ? \
c4c8e615 183 ( 0x09 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) )\
e64b1bd1 184: 0 )
e1d1eefb 185
12b72891
RGS
186/*** GENERATED CODE ***/
187#define is_HORIZWS_latin1(s) \
c4c8e615 188( NATIVE_TO_LATIN1(((U8*)s)[0]) == 0x09 || ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0x7F ) == 0x20 ) )
e1d1eefb 189
12b72891
RGS
190/*** GENERATED CODE ***/
191#define is_HORIZWS_latin1_safe(s,e) \
e64b1bd1 192( ((e)-(s) > 0) ? \
c4c8e615 193 ( NATIVE_TO_LATIN1(((U8*)s)[0]) == 0x09 || ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0x7F ) == 0x20 ) )\
e64b1bd1 194: 0 )
e1d1eefb 195
12b72891 196/*** GENERATED CODE ***/
2cafb56b 197#define is_HORIZWS_high(s) \
c4c8e615 198( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
a9c9e371 199 ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
c4c8e615
KW
200: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
201 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
202 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
203 : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
204: ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
2cafb56b
KW
205
206/*** GENERATED CODE ***/
207#define is_HORIZWS_high_safe(s,e) \
208( ((e)-(s) > 2) ? \
c4c8e615 209 ( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
a9c9e371 210 ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
c4c8e615
KW
211 : ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
212 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
213 ( ( ( 0x80 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
214 : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
215 : ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
2cafb56b
KW
216: 0 )
217
218/*** GENERATED CODE ***/
12b72891 219#define is_HORIZWS_cp(cp) \
c4c8e615
KW
220( 0x09 == NATIVE_TO_UNI(cp) || ( 0x09 < NATIVE_TO_UNI(cp) && \
221( 0x20 == NATIVE_TO_UNI(cp) || ( 0x20 < NATIVE_TO_UNI(cp) && \
222( 0xA0 == NATIVE_TO_UNI(cp) || ( 0xA0 < NATIVE_TO_UNI(cp) && \
223( 0x1680 == NATIVE_TO_UNI(cp) || ( 0x1680 < NATIVE_TO_UNI(cp) && \
c4c8e615
KW
224( ( 0x2000 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x200A ) || ( 0x200A < NATIVE_TO_UNI(cp) &&\
225( 0x202F == NATIVE_TO_UNI(cp) || ( 0x202F < NATIVE_TO_UNI(cp) && \
a9c9e371 226( 0x205F == NATIVE_TO_UNI(cp) || 0x3000 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) ) ) ) ) ) ) )
e1d1eefb 227
2cafb56b
KW
228/*** GENERATED CODE ***/
229#define is_HORIZWS_cp_high(cp) \
c4c8e615 230( 0x1680 == NATIVE_TO_UNI(cp) || ( 0x1680 < NATIVE_TO_UNI(cp) && \
c4c8e615
KW
231( ( 0x2000 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x200A ) || ( 0x200A < NATIVE_TO_UNI(cp) &&\
232( 0x202F == NATIVE_TO_UNI(cp) || ( 0x202F < NATIVE_TO_UNI(cp) && \
a9c9e371 233( 0x205F == NATIVE_TO_UNI(cp) || 0x3000 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) )
2cafb56b 234
12b72891
RGS
235/*
236 VERTWS: Vertical Whitespace: \v \V
e1d1eefb 237
05b688d9 238 \p{VertSpace}
12b72891
RGS
239*/
240/*** GENERATED CODE ***/
241#define is_VERTWS(s,is_utf8) \
c4c8e615 242( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
e64b1bd1 243: ( is_utf8 ) ? \
c4c8e615
KW
244 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
245 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
246 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
247: ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) )
e1d1eefb 248
12b72891
RGS
249/*** GENERATED CODE ***/
250#define is_VERTWS_safe(s,e,is_utf8) \
e64b1bd1 251( ((e)-(s) > 2) ? \
c4c8e615 252 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
e64b1bd1 253 : ( is_utf8 ) ? \
c4c8e615
KW
254 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
255 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
256 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
257 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
e64b1bd1 258: ((e)-(s) > 1) ? \
c4c8e615 259 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
e64b1bd1 260 : ( is_utf8 ) ? \
c4c8e615
KW
261 ( ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
262 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
e64b1bd1 263: ((e)-(s) > 0) ? \
c4c8e615 264 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
e64b1bd1 265 : ( !( is_utf8 ) ) ? \
c4c8e615 266 ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) \
e64b1bd1
YO
267 : 0 ) \
268: 0 )
e1d1eefb 269
12b72891
RGS
270/*** GENERATED CODE ***/
271#define is_VERTWS_utf8(s) \
c4c8e615
KW
272( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
273: ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
274 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
275: ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
e1d1eefb 276
12b72891
RGS
277/*** GENERATED CODE ***/
278#define is_VERTWS_utf8_safe(s,e) \
e64b1bd1 279( ((e)-(s) > 2) ? \
c4c8e615
KW
280 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
281 : ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
282 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
283 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
e64b1bd1 284: ((e)-(s) > 1) ? \
c4c8e615
KW
285 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) ? 1\
286 : ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
e64b1bd1 287: ((e)-(s) > 0) ? \
c4c8e615 288 ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D )\
e64b1bd1 289: 0 )
e1d1eefb 290
12b72891 291/*** GENERATED CODE ***/
840f8e92 292#define is_VERTWS_high(s) \
c4c8e615 293( ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
840f8e92
KW
294
295/*** GENERATED CODE ***/
296#define is_VERTWS_high_safe(s,e) \
c4c8e615 297( ( ( ( ((e)-(s) > 2) && ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
840f8e92
KW
298
299/*** GENERATED CODE ***/
12b72891 300#define is_VERTWS_latin1(s) \
c4c8e615 301( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) )
e1d1eefb 302
12b72891
RGS
303/*** GENERATED CODE ***/
304#define is_VERTWS_latin1_safe(s,e) \
e64b1bd1 305( ((e)-(s) > 0) ? \
c4c8e615 306 ( ( 0x0A <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) )\
e64b1bd1 307: 0 )
e1d1eefb 308
12b72891
RGS
309/*** GENERATED CODE ***/
310#define is_VERTWS_cp(cp) \
c4c8e615
KW
311( ( 0x0A <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x0D ) || ( 0x0D < NATIVE_TO_UNI(cp) &&\
312( 0x85 == NATIVE_TO_UNI(cp) || ( 0x85 < NATIVE_TO_UNI(cp) && \
313( 0x2028 == NATIVE_TO_UNI(cp) || 0x2029 == NATIVE_TO_UNI(cp) ) ) ) ) )
e1d1eefb 314
840f8e92
KW
315/*** GENERATED CODE ***/
316#define is_VERTWS_cp_high(cp) \
c4c8e615 317( 0x2028 == NATIVE_TO_UNI(cp) || 0x2029 == NATIVE_TO_UNI(cp) )
840f8e92 318
612ead59 319/*
4ac6419d
KW
320 XDIGIT: Hexadecimal digits
321
322 \p{XDigit}
323*/
324/*** GENERATED CODE ***/
325#define is_XDIGIT_utf8(s) \
c4c8e615
KW
326( ( ( 0x30 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x39 ) || ( 0x41 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x46 ) || ( 0x61 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x66 ) ) ? 1\
327: ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
328 ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
329 ( ( ( 0x90 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x99 ) || ( 0xA1 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA6 ) ) ? 3 : 0 )\
330 : ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x81 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
4ac6419d
KW
331: 0 )
332
333/*** GENERATED CODE ***/
334#define is_XDIGIT_high(s) \
c4c8e615
KW
335( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
336 ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
337 ( ( ( 0x90 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x99 ) || ( 0xA1 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA6 ) ) ? 3 : 0 )\
338 : ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x81 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
4ac6419d
KW
339: 0 )
340
341/*** GENERATED CODE ***/
342#define is_XDIGIT_cp_high(cp) \
c4c8e615
KW
343( ( 0xFF10 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFF19 ) || ( 0xFF19 < NATIVE_TO_UNI(cp) &&\
344( ( 0xFF21 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFF26 ) || ( 0xFF41 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0xFF46 ) ) ) )
4ac6419d
KW
345
346/*
bedac28b
KW
347 XPERLSPACE: \p{XPerlSpace}
348
349 \p{XPerlSpace}
350*/
351/*** GENERATED CODE ***/
352#define is_XPERLSPACE(s,is_utf8) \
c4c8e615 353( ( ( 0x09 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
bedac28b 354: ( is_utf8 ) ? \
c4c8e615
KW
355 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
356 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
357 : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
a9c9e371 358 ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
c4c8e615
KW
359 : ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
360 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
361 ( ( ( 0x80 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
362 : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
363 : ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
364: ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) )
bedac28b
KW
365
366/*** GENERATED CODE ***/
367#define is_XPERLSPACE_utf8(s) \
c4c8e615
KW
368( ( ( 0x09 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
369: ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
370 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
371: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
a9c9e371 372 ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
c4c8e615
KW
373: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
374 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
375 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
376 : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
377: ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
bedac28b
KW
378
379/*** GENERATED CODE ***/
380#define is_XPERLSPACE_high(s) \
c4c8e615 381( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
a9c9e371 382 ( ( ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
c4c8e615
KW
383: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
384 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
385 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8A ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 || 0xAF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
386 : ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
387: ( ( ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
bedac28b
KW
388
389/*** GENERATED CODE ***/
390#define is_XPERLSPACE_cp_high(cp) \
c4c8e615 391( 0x1680 == NATIVE_TO_UNI(cp) || ( 0x1680 < NATIVE_TO_UNI(cp) && \
c4c8e615
KW
392( ( 0x2000 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x200A ) || ( 0x200A < NATIVE_TO_UNI(cp) &&\
393( 0x2028 == NATIVE_TO_UNI(cp) || ( 0x2028 < NATIVE_TO_UNI(cp) && \
394( 0x2029 == NATIVE_TO_UNI(cp) || ( 0x2029 < NATIVE_TO_UNI(cp) && \
395( 0x202F == NATIVE_TO_UNI(cp) || ( 0x202F < NATIVE_TO_UNI(cp) && \
a9c9e371 396( 0x205F == NATIVE_TO_UNI(cp) || 0x3000 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) ) ) ) ) )
bedac28b
KW
397
398/*
b96a92fb
KW
399 REPLACEMENT: Unicode REPLACEMENT CHARACTER
400
401 0xFFFD
402*/
403/*** GENERATED CODE ***/
404#define is_REPLACEMENT_utf8_safe(s,e) \
c4c8e615 405( ( ( ( ((e)-(s) > 2) && ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )
b96a92fb
KW
406
407/*
408 NONCHAR: Non character code points
409
410 \p{Nchar}
411*/
412/*** GENERATED CODE ***/
413#define is_NONCHAR_utf8(s) \
c4c8e615
KW
414( ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
415 ( ( 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
416 ( ( 0x90 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xAF ) ? 3 : 0 )\
417 : ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xBE ) ) ? 3 : 0 )\
418: ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
419 ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) == 0x9F || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xEF ) == 0xAF ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xBE ) ) ? 4 : 0 )\
420: ( 0xF1 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0xF3 ) ?\
421 ( ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xCF ) == 0x8F ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xBE ) ) ? 4 : 0 )\
422: ( ( ( ( 0xF4 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x8F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xBE ) ) ? 4 : 0 )
b96a92fb
KW
423
424/*
425 SURROGATE: Surrogate characters
426
427 \p{Gc=Cs}
428*/
429/*** GENERATED CODE ***/
430#define is_SURROGATE_utf8(s) \
c4c8e615 431( ( ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[1]) >= 0xA0 ) ) ? 3 : 0 )
b96a92fb
KW
432
433/*
612ead59
KW
434 GCB_L: Grapheme_Cluster_Break=L
435
436 \p{_X_GCB_L}
437*/
438/*** GENERATED CODE ***/
439#define is_GCB_L_utf8(s) \
c4c8e615
KW
440( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
441 ( ( 0x84 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
6e130234 442 3 \
c4c8e615
KW
443 : ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9F ) ) ? 3 : 0 )\
444: ( ( ( 0xEA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0xA0 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBC ) ) ? 3 : 0 )
612ead59
KW
445
446/*
447 GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
448
449 \p{_X_LV_LVT_V}
450*/
451/*** GENERATED CODE ***/
452#define is_GCB_LV_LVT_V_utf8(s) \
c4c8e615
KW
453( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
454 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
455 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xA0 ) ? 3 : 0 ) \
456 : ( ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA7 ) ) ? 3 : 0 )\
457: ( 0xEA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
458 ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) >= 0xB0 ) ? \
6e130234
KW
459 3 \
460 : 0 ) \
c4c8e615 461: ( 0xEB == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xEC == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
6e130234 462 3 \
c4c8e615
KW
463: ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
464 ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x9D ) ? \
6e130234 465 3 \
c4c8e615
KW
466 : ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
467 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA3 ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xB0 ) ) ? 3 : 0 )\
468 : ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
612ead59
KW
469: 0 )
470
471/*
472 GCB_Prepend: Grapheme_Cluster_Break=Prepend
473
474 \p{_X_GCB_Prepend}
475*/
476/*** GENERATED CODE ***/
477#define is_GCB_Prepend_utf8(s) \
478( 0 )
479
480/*
481 GCB_RI: Grapheme_Cluster_Break=RI
482
483 \p{_X_RI}
484*/
485/*** GENERATED CODE ***/
486#define is_GCB_RI_utf8(s) \
c4c8e615 487( ( ( ( ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xA6 ) ) ? 4 : 0 )
612ead59
KW
488
489/*
bff53399 490 GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
612ead59 491
bff53399 492 \p{_X_Special_Begin_Start}
612ead59
KW
493*/
494/*** GENERATED CODE ***/
bff53399 495#define is_GCB_SPECIAL_BEGIN_START_utf8(s) \
c4c8e615
KW
496( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
497 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFC ) == 0x84 ) ? \
6e130234
KW
498 3 \
499 : 0 ) \
c4c8e615
KW
500: ( 0xEA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
501 ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
502 ( ( 0xA0 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBC ) ? 3 : 0 )\
503 : ( NATIVE_TO_LATIN1(((U8*)s)[1]) >= 0xB0 ) ? \
6e130234 504 3 \
612ead59 505 : 0 ) \
c4c8e615 506: ( 0xEB == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0xEC == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
6e130234 507 3 \
c4c8e615
KW
508: ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
509 ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x9D ) ? \
6e130234 510 3 \
c4c8e615
KW
511 : ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
512 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA3 ) || ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xB0 ) ) ? 3 : 0 )\
513 : ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) || ( 0x8B <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBB ) ) ) ? 3 : 0 )\
514: ( ( ( ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( NATIVE_TO_LATIN1(((U8*)s)[3]) >= 0xA6 ) ) ? 4 : 0 )
612ead59
KW
515
516/*
517 GCB_T: Grapheme_Cluster_Break=T
518
519 \p{_X_GCB_T}
520*/
521/*** GENERATED CODE ***/
522#define is_GCB_T_utf8(s) \
c4c8e615
KW
523( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
524 ( ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
525 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xA8 ) ? 3 : 0 ) \
526 : ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
6e130234 527 3 \
612ead59 528 : 0 ) \
c4c8e615 529: ( ( ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x8B <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBB ) ) ? 3 : 0 )
612ead59
KW
530
531/*
532 GCB_V: Grapheme_Cluster_Break=V
533
534 \p{_X_GCB_V}
535*/
536/*** GENERATED CODE ***/
537#define is_GCB_V_utf8(s) \
c4c8e615
KW
538( ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
539 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
540 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xA0 ) ? 3 : 0 ) \
541 : ( ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA7 ) ) ? 3 : 0 )\
542: ( 0xED == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
543 ( ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
544 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xB0 ) ? 3 : 0 ) \
545 : ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x86 ) ) ? 3 : 0 )\
612ead59
KW
546: 0 )
547
685289b5
KW
548/*
549 QUOTEMETA: Meta-characters that \Q should quote
550
551 \p{_Perl_Quotemeta}
552*/
553/*** GENERATED CODE ***/
554#define is_QUOTEMETA_high(s) \
c4c8e615
KW
555( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
556 ( ( 0x8F == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
a9c9e371
KW
557: ( 0xD8 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
558 ( ( 0x9C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
c4c8e615
KW
559: ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
560 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
561 ( ( 0x9F == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
562 : ( 0x9A == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
563 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 ) \
564 : ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
565 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xB4 ) ? 3 : 0 ) \
566 : ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8B <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8E ) ) ? 3 : 0 )\
567: ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
568 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
569 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xBE ) ? 3 : 0 ) \
570 : ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
571 ( ( ( 0x81 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x93 ) || ( 0x95 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xAF ) ) ? 3 : 0 )\
572 : ( 0x86 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
573 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0x90 ) ? 3 : 0 ) \
574 : ( ( 0x87 <= NATIVE_TO_LATIN1(((U8*)s)[1]) && NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x90 ) || ( 0x94 <= NATIVE_TO_LATIN1(((U8*)s)[1]) && NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0x9C ) || ( 0x9F <= NATIVE_TO_LATIN1(((U8*)s)[1]) && NATIVE_TO_LATIN1(((U8*)s)[1]) <= 0xAF ) || ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFE ) == 0xB8 ) ?\
6e130234 575 3 \
c4c8e615
KW
576 : ( 0x91 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
577 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x9F ) ? 3 : 0 ) \
578 : ( 0x9D == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
579 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xB5 ) ? 3 : 0 ) \
580 : ( ( 0x9E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0x94 ) ) ? 3 : 0 )\
581: ( 0xE3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
582 ( ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
583 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x83 ) || ( 0x88 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xA0 ) || 0xB0 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
584 : ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xA4 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
585: ( 0xEF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
586 ( ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
587 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) >= 0xBE ) ? 3 : 0 ) \
588 : ( 0xB8 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
589 ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0x8F ) ? 3 : 0 ) \
590 : ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
591 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x86 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 )\
592 : ( 0xBB == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
593 ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 ) \
594 : ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
595 ( ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 0 ) \
596 : ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB0 <= NATIVE_TO_LATIN1(((U8*)s)[2]) && NATIVE_TO_LATIN1(((U8*)s)[2]) <= 0xB8 ) ) ? 3 : 0 )\
597: ( 0xF0 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
598 ( ( ( ( 0x9D == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB3 <= NATIVE_TO_LATIN1(((U8*)s)[3]) && NATIVE_TO_LATIN1(((U8*)s)[3]) <= 0xBA ) ) ? 4 : 0 )\
599: ( ( 0xF3 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xA0 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 4 : 0 )
685289b5 600
8769f413
KW
601/*
602 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
603
604 do regen/regcharclass_multi_char_folds.pl
605 &regcharclass_multi_char_folds::multi_char_folds(1)
606*/
607/*** GENERATED CODE ***/
39a0f513 608#define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
c4c8e615 609( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )
39a0f513
YO
610
611
612/*** GENERATED CODE ***/
613#define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
c4c8e615
KW
614( ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
615 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
616 : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
617 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
618 : ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
619 ( ( ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
620 : ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
621 ( ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
622 : ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
623 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
624 ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
625 : ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?\
626 ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
627 ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
628 ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 4 )\
39a0f513 629 : 0 ) \
c4c8e615
KW
630 : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
631 : ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
632 ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
633 ( ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
634 ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ? \
635 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[5]) & 0xFE ) == 0x80 ) ? 6 : 0 )\
636 : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 0 )\
39a0f513 637 : 0 ) \
c4c8e615 638 : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
39a0f513 639 : 0 ) \
c4c8e615
KW
640 : ( 0xCF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
641 ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
642 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
643 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
644 ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
645 ( ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
646 ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ? \
647 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[5]) & 0xFE ) == 0x80 ) ? 6 : 0 )\
648 : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 0 )\
649 : ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
650 ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ? \
651 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[5]) & 0xFE ) == 0x80 ) ? 6 : 4 )\
652 : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 4 )\
39a0f513 653 : 0 ) \
c4c8e615
KW
654 : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
655 : ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
656 ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
657 ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? \
658 ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[4]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[5]) ) ) ? 6 : 4 )\
39a0f513 659 : 0 ) \
c4c8e615
KW
660 : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
661 : ( ( ( 0x8E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
662 : ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
663 ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
664 ( ( ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
665 : ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
666 ( ( ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[3]) & 0xF7 ) == 0xA5 ) || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xAB || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xB6 ) ) ? 4 : 0 )\
667 : ( ( ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB6 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
668 : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
669 ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
670 ( ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xD8 ) == 0x80 ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
671 : ( ( ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFB ) == 0xB0 ) || NATIVE_TO_LATIN1(((U8*)s)[2]) == 0xBC ) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
672 : 0 )
673
674
675/*** GENERATED CODE ***/
676#define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
677( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
678 ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
679 : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
680 ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
681 ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
682 : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
683 : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
684 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
685 : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
686 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
687 : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
688 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
689 : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
690 ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
691 : ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
692 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
693 : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
694 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
695 : ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
696 ( ( ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
697 : ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
698 ( ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
699 : ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
700 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
701 ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
702 : ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?\
703 ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
704 ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
705 : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
706 : ( ( ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
707 : ( 0xCF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
708 ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
709 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
710 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
711 ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
712 ( ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
713 : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
714 : ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
715 ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
716 ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
717 : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
718 : ( ( ( 0x8E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
719 : ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
720 ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
721 ( ( ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
722 : ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
723 ( ( ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[3]) & 0xF7 ) == 0xA5 ) || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xAB || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xB6 ) ) ? 4 : 0 )\
724 : ( ( ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB6 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
725 : 0 )
726
727
728/*** GENERATED CODE ***/
729#define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
730( ((e)-(s) > 2) ? \
731 ( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
732 ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
733 : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
734 ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
735 ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
736 : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
737 : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
738 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
739 : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
740 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
741 : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
742 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
743 : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
744 ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
745 : ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
746 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
747 : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
748 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
749 : ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
750: ((e)-(s) > 1) ? \
751 ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
752 ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
753 : ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
754: 0 )
755
756
757/*** GENERATED CODE ***/
758#define is_MULTI_CHAR_FOLD_utf8_safe_part4(s,e) \
759( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
760 ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
761 : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
762 ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
763 ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
764 : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
765 : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
766 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
767 : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
768 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
769 : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
770 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
771 : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
772
773
774/*** GENERATED CODE ***/
775#define is_MULTI_CHAR_FOLD_utf8_safe_part5(s,e) \
776( ((e)-(s) > 4) ? \
777 ( ( 0x61 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
778 ( ( ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
779 : ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
780 ( ( 0x66 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
781 ( ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[2]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? 3 : 2 )\
782 : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x6C == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
783 : ( 0x68 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
784 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
785 : ( 0x69 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
786 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x87 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
787 : ( 0x6A == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
788 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8C == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
789 : ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
790 ( ( 0x73 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0x74 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 )\
791 : ( 0x74 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
792 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x88 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
793 : ( 0x77 == NATIVE_TO_LATIN1(((U8*)s)[0]) || 0x79 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ?\
794 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x8A == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
795 : ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
796 ( ( ( ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xC5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xBF == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
797 : ( 0xCA == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
798 ( ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0x6E == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) ? 3 : 0 )\
799 : ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
800 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
801 ( ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
802 : ( 0xB1 == NATIVE_TO_LATIN1(((U8*)s)[1]) || 0xB7 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ?\
803 ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
804 ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
805 : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
806 : ( ( ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
807 : ( 0xCF == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
808 ( ( 0x81 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
809 ( ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
810 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
811 ( ( 0xCC == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
812 ( ( 0x93 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
813 : ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
814 : ( 0x89 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
815 ( ( 0xCD == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ? \
816 ( ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ? 4 : 0 ) \
817 : ( ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
818 : ( ( ( 0x8E == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
819 : ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
820 ( ( 0xA5 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
821 ( ( ( 0xD6 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( 0x82 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
822 : ( 0xB4 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
823 ( ( ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[3]) & 0xF7 ) == 0xA5 ) || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xAB || NATIVE_TO_LATIN1(((U8*)s)[3]) == 0xB6 ) ) ? 4 : 0 )\
824 : ( ( ( 0xBE == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( 0xD5 == NATIVE_TO_LATIN1(((U8*)s)[2]) ) ) && ( 0xB6 == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) ? 4 : 0 )\
825 : ( 0xE1 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
826 ( ( 0xBC == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? \
827 ( ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xD8 ) == 0x80 ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
828 : ( ( ( ( 0xBD == NATIVE_TO_LATIN1(((U8*)s)[1]) ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFB ) == 0xB0 ) || NATIVE_TO_LATIN1(((U8*)s)[2]) == 0xBC ) ) && ( 0xCE == NATIVE_TO_LATIN1(((U8*)s)[3]) ) ) && ( 0xB9 == NATIVE_TO_LATIN1(((U8*)s)[4]) ) ) ? 5 : 0 )\
8769f413 829 : 0 ) \
c4c8e615
KW
830: ((e)-(s) > 3) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
831
832
833/*** GENERATED CODE ***/
834#define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
835( ((e)-(s) > 5) ? is_MULTI_CHAR_FOLD_utf8_safe_part4(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part5(s,e) )
8769f413
KW
836
837/*
40b1ba4f 838 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
8769f413
KW
839
840 &regcharclass_multi_char_folds::multi_char_folds(0)
841*/
842/*** GENERATED CODE ***/
40b1ba4f 843#define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
8769f413 844( ((e)-(s) > 2) ? \
c4c8e615
KW
845 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x46 ) ? \
846 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x46 ) ? \
847 ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xDF ) == 0x49 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
848 : ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x49 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
849 : ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x53 ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x53 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
8769f413 850: ((e)-(s) > 1) ? \
c4c8e615
KW
851 ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x46 ) ? \
852 ( ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x46 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x49 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
853 : ( ( ( NATIVE_TO_LATIN1(((U8*)s)[0]) & 0xDF ) == 0x53 ) && ( ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x53 ) || ( ( NATIVE_TO_LATIN1(((U8*)s)[1]) & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
8769f413
KW
854: 0 )
855
0b50d62a
KW
856/*
857 PATWS: pattern white space
858
859 \p{PatWS}
860*/
861/*** GENERATED CODE ***/
862#define is_PATWS(s,is_utf8) \
c4c8e615 863( ( ( 0x09 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
0b50d62a 864: ( is_utf8 ) ? \
c4c8e615
KW
865 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
866 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
867 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0x8E || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
868: ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) )
0b50d62a
KW
869
870/*** GENERATED CODE ***/
871#define is_PATWS_safe(s,e,is_utf8) \
872( ((e)-(s) > 2) ? \
c4c8e615 873 ( ( ( 0x09 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
0b50d62a 874 : ( is_utf8 ) ? \
c4c8e615
KW
875 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
876 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
877 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0x8E || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
878 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
0b50d62a 879: ((e)-(s) > 1) ? \
c4c8e615 880 ( ( ( 0x09 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
0b50d62a 881 : ( is_utf8 ) ? \
c4c8e615
KW
882 ( ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
883 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
0b50d62a 884: ((e)-(s) > 0) ? \
c4c8e615 885 ( ( ( 0x09 <= NATIVE_TO_LATIN1(((U8*)s)[0]) && NATIVE_TO_LATIN1(((U8*)s)[0]) <= 0x0D ) || 0x20 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? 1\
0b50d62a 886 : ( !( is_utf8 ) ) ? \
c4c8e615 887 ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) \
0b50d62a
KW
888 : 0 ) \
889: 0 )
890
891/*** GENERATED CODE ***/
f3b7b534
KW
892#define is_PATWS_non_low(s,is_utf8) \
893( ( is_utf8 ) ? \
c4c8e615
KW
894 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
895 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
896 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0x8E || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
897: ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) )
f3b7b534
KW
898
899/*** GENERATED CODE ***/
900#define is_PATWS_non_low_safe(s,e,is_utf8) \
901( ((e)-(s) > 2) ? \
902 ( ( is_utf8 ) ? \
c4c8e615
KW
903 ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ? \
904 ( ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ? 2 : 0 ) \
905 : ( ( ( 0xE2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x80 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) && ( ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0x8E || ( NATIVE_TO_LATIN1(((U8*)s)[2]) & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
906 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
f3b7b534
KW
907: ((e)-(s) > 1) ? \
908 ( ( is_utf8 ) ? \
c4c8e615
KW
909 ( ( ( 0xC2 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) && ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[1]) ) ) ? 2 : 0 )\
910 : ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) ) \
911: ( ((e)-(s) > 0) && ( !( is_utf8 ) ) ) ? ( 0x85 == NATIVE_TO_LATIN1(((U8*)s)[0]) ) : 0 )
f3b7b534
KW
912
913/*** GENERATED CODE ***/
0b50d62a 914#define is_PATWS_cp(cp) \
c4c8e615
KW
915( ( 0x09 <= NATIVE_TO_UNI(cp) && NATIVE_TO_UNI(cp) <= 0x0D ) || ( 0x0D < NATIVE_TO_UNI(cp) &&\
916( 0x20 == NATIVE_TO_UNI(cp) || ( 0x20 < NATIVE_TO_UNI(cp) && \
917( 0x85 == NATIVE_TO_UNI(cp) || ( 0x85 < NATIVE_TO_UNI(cp) && \
918( 0x200E == NATIVE_TO_UNI(cp) || ( 0x200E < NATIVE_TO_UNI(cp) && \
919( 0x200F == NATIVE_TO_UNI(cp) || ( 0x200F < NATIVE_TO_UNI(cp) && \
920( 0x2028 == NATIVE_TO_UNI(cp) || 0x2029 == NATIVE_TO_UNI(cp) ) ) ) ) ) ) ) ) ) ) )
0b50d62a 921
8770da0e 922
d10c72f2
KW
923#endif /* H_REGCHARCLASS */
924
58fbde93 925/* ex: set ro: */