1 /**********************************************************************
2 unicode.c - Oniguruma (regular expression library)
3 **********************************************************************/
4 /*-
5 * Copyright (c) 2002-2004 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 * SUCH DAMAGE.
28 */
29
30 #include "regenc.h"
31
32
33 const unsigned short OnigEnc_Unicode_ISO_8859_1_CtypeTable[256] = {
34 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008,
35 0x2008, 0x228c, 0x2289, 0x2288, 0x2288, 0x2288, 0x2008, 0x2008,
36 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008,
37 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008, 0x2008,
38 0x2284, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0,
39 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0,
40 0x38b0, 0x38b0, 0x38b0, 0x38b0, 0x38b0, 0x38b0, 0x38b0, 0x38b0,
41 0x38b0, 0x38b0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x21a0,
42 0x21a0, 0x3ca2, 0x3ca2, 0x3ca2, 0x3ca2, 0x3ca2, 0x3ca2, 0x34a2,
43 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
44 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
45 0x34a2, 0x34a2, 0x34a2, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x31a0,
46 0x21a0, 0x38e2, 0x38e2, 0x38e2, 0x38e2, 0x38e2, 0x38e2, 0x30e2,
47 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
48 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
49 0x30e2, 0x30e2, 0x30e2, 0x21a0, 0x21a0, 0x21a0, 0x21a0, 0x2008,
50 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008,
51 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
52 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
53 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
54 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,
55 0x00a0, 0x00a0, 0x10e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0,
56 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x10e2, 0x00a0, 0x01a0,
57 0x00a0, 0x10a0, 0x10e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,
58 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2,
59 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2,
60 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x00a0,
61 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x14a2, 0x10e2,
62 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2,
63 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2,
64 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x00a0,
65 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2, 0x10e2
66 };
67
68 static const OnigCodePoint CRAlnum[] = {
69 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
70 414,
71 #else
72 9,
73 #endif
74 0x0030, 0x0039,
75 0x0041, 0x005a,
76 0x0061, 0x007a,
77 0x00aa, 0x00aa,
78 0x00b5, 0x00b5,
79 0x00ba, 0x00ba,
80 0x00c0, 0x00d6,
81 0x00d8, 0x00f6,
82 0x00f8, 0x0236
83 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
84 ,
85 0x0250, 0x02c1,
86 0x02c6, 0x02d1,
87 0x02e0, 0x02e4,
88 0x02ee, 0x02ee,
89 0x0300, 0x0357,
90 0x035d, 0x036f,
91 0x037a, 0x037a,
92 0x0386, 0x0386,
93 0x0388, 0x038a,
94 0x038c, 0x038c,
95 0x038e, 0x03a1,
96 0x03a3, 0x03ce,
97 0x03d0, 0x03f5,
98 0x03f7, 0x03fb,
99 0x0400, 0x0481,
100 0x0483, 0x0486,
101 0x0488, 0x04ce,
102 0x04d0, 0x04f5,
103 0x04f8, 0x04f9,
104 0x0500, 0x050f,
105 0x0531, 0x0556,
106 0x0559, 0x0559,
107 0x0561, 0x0587,
108 0x0591, 0x05a1,
109 0x05a3, 0x05b9,
110 0x05bb, 0x05bd,
111 0x05bf, 0x05bf,
112 0x05c1, 0x05c2,
113 0x05c4, 0x05c4,
114 0x05d0, 0x05ea,
115 0x05f0, 0x05f2,
116 0x0610, 0x0615,
117 0x0621, 0x063a,
118 0x0640, 0x0658,
119 0x0660, 0x0669,
120 0x066e, 0x06d3,
121 0x06d5, 0x06dc,
122 0x06de, 0x06e8,
123 0x06ea, 0x06fc,
124 0x06ff, 0x06ff,
125 0x0710, 0x074a,
126 0x074d, 0x074f,
127 0x0780, 0x07b1,
128 0x0901, 0x0939,
129 0x093c, 0x094d,
130 0x0950, 0x0954,
131 0x0958, 0x0963,
132 0x0966, 0x096f,
133 0x0981, 0x0983,
134 0x0985, 0x098c,
135 0x098f, 0x0990,
136 0x0993, 0x09a8,
137 0x09aa, 0x09b0,
138 0x09b2, 0x09b2,
139 0x09b6, 0x09b9,
140 0x09bc, 0x09c4,
141 0x09c7, 0x09c8,
142 0x09cb, 0x09cd,
143 0x09d7, 0x09d7,
144 0x09dc, 0x09dd,
145 0x09df, 0x09e3,
146 0x09e6, 0x09f1,
147 0x0a01, 0x0a03,
148 0x0a05, 0x0a0a,
149 0x0a0f, 0x0a10,
150 0x0a13, 0x0a28,
151 0x0a2a, 0x0a30,
152 0x0a32, 0x0a33,
153 0x0a35, 0x0a36,
154 0x0a38, 0x0a39,
155 0x0a3c, 0x0a3c,
156 0x0a3e, 0x0a42,
157 0x0a47, 0x0a48,
158 0x0a4b, 0x0a4d,
159 0x0a59, 0x0a5c,
160 0x0a5e, 0x0a5e,
161 0x0a66, 0x0a74,
162 0x0a81, 0x0a83,
163 0x0a85, 0x0a8d,
164 0x0a8f, 0x0a91,
165 0x0a93, 0x0aa8,
166 0x0aaa, 0x0ab0,
167 0x0ab2, 0x0ab3,
168 0x0ab5, 0x0ab9,
169 0x0abc, 0x0ac5,
170 0x0ac7, 0x0ac9,
171 0x0acb, 0x0acd,
172 0x0ad0, 0x0ad0,
173 0x0ae0, 0x0ae3,
174 0x0ae6, 0x0aef,
175 0x0b01, 0x0b03,
176 0x0b05, 0x0b0c,
177 0x0b0f, 0x0b10,
178 0x0b13, 0x0b28,
179 0x0b2a, 0x0b30,
180 0x0b32, 0x0b33,
181 0x0b35, 0x0b39,
182 0x0b3c, 0x0b43,
183 0x0b47, 0x0b48,
184 0x0b4b, 0x0b4d,
185 0x0b56, 0x0b57,
186 0x0b5c, 0x0b5d,
187 0x0b5f, 0x0b61,
188 0x0b66, 0x0b6f,
189 0x0b71, 0x0b71,
190 0x0b82, 0x0b83,
191 0x0b85, 0x0b8a,
192 0x0b8e, 0x0b90,
193 0x0b92, 0x0b95,
194 0x0b99, 0x0b9a,
195 0x0b9c, 0x0b9c,
196 0x0b9e, 0x0b9f,
197 0x0ba3, 0x0ba4,
198 0x0ba8, 0x0baa,
199 0x0bae, 0x0bb5,
200 0x0bb7, 0x0bb9,
201 0x0bbe, 0x0bc2,
202 0x0bc6, 0x0bc8,
203 0x0bca, 0x0bcd,
204 0x0bd7, 0x0bd7,
205 0x0be7, 0x0bef,
206 0x0c01, 0x0c03,
207 0x0c05, 0x0c0c,
208 0x0c0e, 0x0c10,
209 0x0c12, 0x0c28,
210 0x0c2a, 0x0c33,
211 0x0c35, 0x0c39,
212 0x0c3e, 0x0c44,
213 0x0c46, 0x0c48,
214 0x0c4a, 0x0c4d,
215 0x0c55, 0x0c56,
216 0x0c60, 0x0c61,
217 0x0c66, 0x0c6f,
218 0x0c82, 0x0c83,
219 0x0c85, 0x0c8c,
220 0x0c8e, 0x0c90,
221 0x0c92, 0x0ca8,
222 0x0caa, 0x0cb3,
223 0x0cb5, 0x0cb9,
224 0x0cbc, 0x0cc4,
225 0x0cc6, 0x0cc8,
226 0x0cca, 0x0ccd,
227 0x0cd5, 0x0cd6,
228 0x0cde, 0x0cde,
229 0x0ce0, 0x0ce1,
230 0x0ce6, 0x0cef,
231 0x0d02, 0x0d03,
232 0x0d05, 0x0d0c,
233 0x0d0e, 0x0d10,
234 0x0d12, 0x0d28,
235 0x0d2a, 0x0d39,
236 0x0d3e, 0x0d43,
237 0x0d46, 0x0d48,
238 0x0d4a, 0x0d4d,
239 0x0d57, 0x0d57,
240 0x0d60, 0x0d61,
241 0x0d66, 0x0d6f,
242 0x0d82, 0x0d83,
243 0x0d85, 0x0d96,
244 0x0d9a, 0x0db1,
245 0x0db3, 0x0dbb,
246 0x0dbd, 0x0dbd,
247 0x0dc0, 0x0dc6,
248 0x0dca, 0x0dca,
249 0x0dcf, 0x0dd4,
250 0x0dd6, 0x0dd6,
251 0x0dd8, 0x0ddf,
252 0x0df2, 0x0df3,
253 0x0e01, 0x0e3a,
254 0x0e40, 0x0e4e,
255 0x0e50, 0x0e59,
256 0x0e81, 0x0e82,
257 0x0e84, 0x0e84,
258 0x0e87, 0x0e88,
259 0x0e8a, 0x0e8a,
260 0x0e8d, 0x0e8d,
261 0x0e94, 0x0e97,
262 0x0e99, 0x0e9f,
263 0x0ea1, 0x0ea3,
264 0x0ea5, 0x0ea5,
265 0x0ea7, 0x0ea7,
266 0x0eaa, 0x0eab,
267 0x0ead, 0x0eb9,
268 0x0ebb, 0x0ebd,
269 0x0ec0, 0x0ec4,
270 0x0ec6, 0x0ec6,
271 0x0ec8, 0x0ecd,
272 0x0ed0, 0x0ed9,
273 0x0edc, 0x0edd,
274 0x0f00, 0x0f00,
275 0x0f18, 0x0f19,
276 0x0f20, 0x0f29,
277 0x0f35, 0x0f35,
278 0x0f37, 0x0f37,
279 0x0f39, 0x0f39,
280 0x0f3e, 0x0f47,
281 0x0f49, 0x0f6a,
282 0x0f71, 0x0f84,
283 0x0f86, 0x0f8b,
284 0x0f90, 0x0f97,
285 0x0f99, 0x0fbc,
286 0x0fc6, 0x0fc6,
287 0x1000, 0x1021,
288 0x1023, 0x1027,
289 0x1029, 0x102a,
290 0x102c, 0x1032,
291 0x1036, 0x1039,
292 0x1040, 0x1049,
293 0x1050, 0x1059,
294 0x10a0, 0x10c5,
295 0x10d0, 0x10f8,
296 0x1100, 0x1159,
297 0x115f, 0x11a2,
298 0x11a8, 0x11f9,
299 0x1200, 0x1206,
300 0x1208, 0x1246,
301 0x1248, 0x1248,
302 0x124a, 0x124d,
303 0x1250, 0x1256,
304 0x1258, 0x1258,
305 0x125a, 0x125d,
306 0x1260, 0x1286,
307 0x1288, 0x1288,
308 0x128a, 0x128d,
309 0x1290, 0x12ae,
310 0x12b0, 0x12b0,
311 0x12b2, 0x12b5,
312 0x12b8, 0x12be,
313 0x12c0, 0x12c0,
314 0x12c2, 0x12c5,
315 0x12c8, 0x12ce,
316 0x12d0, 0x12d6,
317 0x12d8, 0x12ee,
318 0x12f0, 0x130e,
319 0x1310, 0x1310,
320 0x1312, 0x1315,
321 0x1318, 0x131e,
322 0x1320, 0x1346,
323 0x1348, 0x135a,
324 0x1369, 0x1371,
325 0x13a0, 0x13f4,
326 0x1401, 0x166c,
327 0x166f, 0x1676,
328 0x1681, 0x169a,
329 0x16a0, 0x16ea,
330 0x1700, 0x170c,
331 0x170e, 0x1714,
332 0x1720, 0x1734,
333 0x1740, 0x1753,
334 0x1760, 0x176c,
335 0x176e, 0x1770,
336 0x1772, 0x1773,
337 0x1780, 0x17b3,
338 0x17b6, 0x17d3,
339 0x17d7, 0x17d7,
340 0x17dc, 0x17dd,
341 0x17e0, 0x17e9,
342 0x180b, 0x180d,
343 0x1810, 0x1819,
344 0x1820, 0x1877,
345 0x1880, 0x18a9,
346 0x1900, 0x191c,
347 0x1920, 0x192b,
348 0x1930, 0x193b,
349 0x1946, 0x196d,
350 0x1970, 0x1974,
351 0x1d00, 0x1d6b,
352 0x1e00, 0x1e9b,
353 0x1ea0, 0x1ef9,
354 0x1f00, 0x1f15,
355 0x1f18, 0x1f1d,
356 0x1f20, 0x1f45,
357 0x1f48, 0x1f4d,
358 0x1f50, 0x1f57,
359 0x1f59, 0x1f59,
360 0x1f5b, 0x1f5b,
361 0x1f5d, 0x1f5d,
362 0x1f5f, 0x1f7d,
363 0x1f80, 0x1fb4,
364 0x1fb6, 0x1fbc,
365 0x1fbe, 0x1fbe,
366 0x1fc2, 0x1fc4,
367 0x1fc6, 0x1fcc,
368 0x1fd0, 0x1fd3,
369 0x1fd6, 0x1fdb,
370 0x1fe0, 0x1fec,
371 0x1ff2, 0x1ff4,
372 0x1ff6, 0x1ffc,
373 0x2071, 0x2071,
374 0x207f, 0x207f,
375 0x20d0, 0x20ea,
376 0x2102, 0x2102,
377 0x2107, 0x2107,
378 0x210a, 0x2113,
379 0x2115, 0x2115,
380 0x2119, 0x211d,
381 0x2124, 0x2124,
382 0x2126, 0x2126,
383 0x2128, 0x2128,
384 0x212a, 0x212d,
385 0x212f, 0x2131,
386 0x2133, 0x2139,
387 0x213d, 0x213f,
388 0x2145, 0x2149,
389 0x3005, 0x3006,
390 0x302a, 0x302f,
391 0x3031, 0x3035,
392 0x303b, 0x303c,
393 0x3041, 0x3096,
394 0x3099, 0x309a,
395 0x309d, 0x309f,
396 0x30a1, 0x30fa,
397 0x30fc, 0x30ff,
398 0x3105, 0x312c,
399 0x3131, 0x318e,
400 0x31a0, 0x31b7,
401 0x31f0, 0x31ff,
402 0x3400, 0x4db5,
403 0x4e00, 0x9fa5,
404 0xa000, 0xa48c,
405 0xac00, 0xd7a3,
406 0xf900, 0xfa2d,
407 0xfa30, 0xfa6a,
408 0xfb00, 0xfb06,
409 0xfb13, 0xfb17,
410 0xfb1d, 0xfb28,
411 0xfb2a, 0xfb36,
412 0xfb38, 0xfb3c,
413 0xfb3e, 0xfb3e,
414 0xfb40, 0xfb41,
415 0xfb43, 0xfb44,
416 0xfb46, 0xfbb1,
417 0xfbd3, 0xfd3d,
418 0xfd50, 0xfd8f,
419 0xfd92, 0xfdc7,
420 0xfdf0, 0xfdfb,
421 0xfe00, 0xfe0f,
422 0xfe20, 0xfe23,
423 0xfe70, 0xfe74,
424 0xfe76, 0xfefc,
425 0xff10, 0xff19,
426 0xff21, 0xff3a,
427 0xff41, 0xff5a,
428 0xff66, 0xffbe,
429 0xffc2, 0xffc7,
430 0xffca, 0xffcf,
431 0xffd2, 0xffd7,
432 0xffda, 0xffdc,
433 0x10000, 0x1000b,
434 0x1000d, 0x10026,
435 0x10028, 0x1003a,
436 0x1003c, 0x1003d,
437 0x1003f, 0x1004d,
438 0x10050, 0x1005d,
439 0x10080, 0x100fa,
440 0x10300, 0x1031e,
441 0x10330, 0x10349,
442 0x10380, 0x1039d,
443 0x10400, 0x1049d,
444 0x104a0, 0x104a9,
445 0x10800, 0x10805,
446 0x10808, 0x10808,
447 0x1080a, 0x10835,
448 0x10837, 0x10838,
449 0x1083c, 0x1083c,
450 0x1083f, 0x1083f,
451 0x1d165, 0x1d169,
452 0x1d16d, 0x1d172,
453 0x1d17b, 0x1d182,
454 0x1d185, 0x1d18b,
455 0x1d1aa, 0x1d1ad,
456 0x1d400, 0x1d454,
457 0x1d456, 0x1d49c,
458 0x1d49e, 0x1d49f,
459 0x1d4a2, 0x1d4a2,
460 0x1d4a5, 0x1d4a6,
461 0x1d4a9, 0x1d4ac,
462 0x1d4ae, 0x1d4b9,
463 0x1d4bb, 0x1d4bb,
464 0x1d4bd, 0x1d4c3,
465 0x1d4c5, 0x1d505,
466 0x1d507, 0x1d50a,
467 0x1d50d, 0x1d514,
468 0x1d516, 0x1d51c,
469 0x1d51e, 0x1d539,
470 0x1d53b, 0x1d53e,
471 0x1d540, 0x1d544,
472 0x1d546, 0x1d546,
473 0x1d54a, 0x1d550,
474 0x1d552, 0x1d6a3,
475 0x1d6a8, 0x1d6c0,
476 0x1d6c2, 0x1d6da,
477 0x1d6dc, 0x1d6fa,
478 0x1d6fc, 0x1d714,
479 0x1d716, 0x1d734,
480 0x1d736, 0x1d74e,
481 0x1d750, 0x1d76e,
482 0x1d770, 0x1d788,
483 0x1d78a, 0x1d7a8,
484 0x1d7aa, 0x1d7c2,
485 0x1d7c4, 0x1d7c9,
486 0x1d7ce, 0x1d7ff,
487 0x20000, 0x2a6d6,
488 0x2f800, 0x2fa1d,
489 0xe0100, 0xe01ef
490 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
491 }; /* end of CRAlnum */
492
493 static const OnigCodePoint CRAlpha[] = {
494 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
495 396,
496 #else
497 8,
498 #endif
499 0x0041, 0x005a,
500 0x0061, 0x007a,
501 0x00aa, 0x00aa,
502 0x00b5, 0x00b5,
503 0x00ba, 0x00ba,
504 0x00c0, 0x00d6,
505 0x00d8, 0x00f6,
506 0x00f8, 0x0236
507 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
508 ,
509 0x0250, 0x02c1,
510 0x02c6, 0x02d1,
511 0x02e0, 0x02e4,
512 0x02ee, 0x02ee,
513 0x0300, 0x0357,
514 0x035d, 0x036f,
515 0x037a, 0x037a,
516 0x0386, 0x0386,
517 0x0388, 0x038a,
518 0x038c, 0x038c,
519 0x038e, 0x03a1,
520 0x03a3, 0x03ce,
521 0x03d0, 0x03f5,
522 0x03f7, 0x03fb,
523 0x0400, 0x0481,
524 0x0483, 0x0486,
525 0x0488, 0x04ce,
526 0x04d0, 0x04f5,
527 0x04f8, 0x04f9,
528 0x0500, 0x050f,
529 0x0531, 0x0556,
530 0x0559, 0x0559,
531 0x0561, 0x0587,
532 0x0591, 0x05a1,
533 0x05a3, 0x05b9,
534 0x05bb, 0x05bd,
535 0x05bf, 0x05bf,
536 0x05c1, 0x05c2,
537 0x05c4, 0x05c4,
538 0x05d0, 0x05ea,
539 0x05f0, 0x05f2,
540 0x0610, 0x0615,
541 0x0621, 0x063a,
542 0x0640, 0x0658,
543 0x066e, 0x06d3,
544 0x06d5, 0x06dc,
545 0x06de, 0x06e8,
546 0x06ea, 0x06ef,
547 0x06fa, 0x06fc,
548 0x06ff, 0x06ff,
549 0x0710, 0x074a,
550 0x074d, 0x074f,
551 0x0780, 0x07b1,
552 0x0901, 0x0939,
553 0x093c, 0x094d,
554 0x0950, 0x0954,
555 0x0958, 0x0963,
556 0x0981, 0x0983,
557 0x0985, 0x098c,
558 0x098f, 0x0990,
559 0x0993, 0x09a8,
560 0x09aa, 0x09b0,
561 0x09b2, 0x09b2,
562 0x09b6, 0x09b9,
563 0x09bc, 0x09c4,
564 0x09c7, 0x09c8,
565 0x09cb, 0x09cd,
566 0x09d7, 0x09d7,
567 0x09dc, 0x09dd,
568 0x09df, 0x09e3,
569 0x09f0, 0x09f1,
570 0x0a01, 0x0a03,
571 0x0a05, 0x0a0a,
572 0x0a0f, 0x0a10,
573 0x0a13, 0x0a28,
574 0x0a2a, 0x0a30,
575 0x0a32, 0x0a33,
576 0x0a35, 0x0a36,
577 0x0a38, 0x0a39,
578 0x0a3c, 0x0a3c,
579 0x0a3e, 0x0a42,
580 0x0a47, 0x0a48,
581 0x0a4b, 0x0a4d,
582 0x0a59, 0x0a5c,
583 0x0a5e, 0x0a5e,
584 0x0a70, 0x0a74,
585 0x0a81, 0x0a83,
586 0x0a85, 0x0a8d,
587 0x0a8f, 0x0a91,
588 0x0a93, 0x0aa8,
589 0x0aaa, 0x0ab0,
590 0x0ab2, 0x0ab3,
591 0x0ab5, 0x0ab9,
592 0x0abc, 0x0ac5,
593 0x0ac7, 0x0ac9,
594 0x0acb, 0x0acd,
595 0x0ad0, 0x0ad0,
596 0x0ae0, 0x0ae3,
597 0x0b01, 0x0b03,
598 0x0b05, 0x0b0c,
599 0x0b0f, 0x0b10,
600 0x0b13, 0x0b28,
601 0x0b2a, 0x0b30,
602 0x0b32, 0x0b33,
603 0x0b35, 0x0b39,
604 0x0b3c, 0x0b43,
605 0x0b47, 0x0b48,
606 0x0b4b, 0x0b4d,
607 0x0b56, 0x0b57,
608 0x0b5c, 0x0b5d,
609 0x0b5f, 0x0b61,
610 0x0b71, 0x0b71,
611 0x0b82, 0x0b83,
612 0x0b85, 0x0b8a,
613 0x0b8e, 0x0b90,
614 0x0b92, 0x0b95,
615 0x0b99, 0x0b9a,
616 0x0b9c, 0x0b9c,
617 0x0b9e, 0x0b9f,
618 0x0ba3, 0x0ba4,
619 0x0ba8, 0x0baa,
620 0x0bae, 0x0bb5,
621 0x0bb7, 0x0bb9,
622 0x0bbe, 0x0bc2,
623 0x0bc6, 0x0bc8,
624 0x0bca, 0x0bcd,
625 0x0bd7, 0x0bd7,
626 0x0c01, 0x0c03,
627 0x0c05, 0x0c0c,
628 0x0c0e, 0x0c10,
629 0x0c12, 0x0c28,
630 0x0c2a, 0x0c33,
631 0x0c35, 0x0c39,
632 0x0c3e, 0x0c44,
633 0x0c46, 0x0c48,
634 0x0c4a, 0x0c4d,
635 0x0c55, 0x0c56,
636 0x0c60, 0x0c61,
637 0x0c82, 0x0c83,
638 0x0c85, 0x0c8c,
639 0x0c8e, 0x0c90,
640 0x0c92, 0x0ca8,
641 0x0caa, 0x0cb3,
642 0x0cb5, 0x0cb9,
643 0x0cbc, 0x0cc4,
644 0x0cc6, 0x0cc8,
645 0x0cca, 0x0ccd,
646 0x0cd5, 0x0cd6,
647 0x0cde, 0x0cde,
648 0x0ce0, 0x0ce1,
649 0x0d02, 0x0d03,
650 0x0d05, 0x0d0c,
651 0x0d0e, 0x0d10,
652 0x0d12, 0x0d28,
653 0x0d2a, 0x0d39,
654 0x0d3e, 0x0d43,
655 0x0d46, 0x0d48,
656 0x0d4a, 0x0d4d,
657 0x0d57, 0x0d57,
658 0x0d60, 0x0d61,
659 0x0d82, 0x0d83,
660 0x0d85, 0x0d96,
661 0x0d9a, 0x0db1,
662 0x0db3, 0x0dbb,
663 0x0dbd, 0x0dbd,
664 0x0dc0, 0x0dc6,
665 0x0dca, 0x0dca,
666 0x0dcf, 0x0dd4,
667 0x0dd6, 0x0dd6,
668 0x0dd8, 0x0ddf,
669 0x0df2, 0x0df3,
670 0x0e01, 0x0e3a,
671 0x0e40, 0x0e4e,
672 0x0e81, 0x0e82,
673 0x0e84, 0x0e84,
674 0x0e87, 0x0e88,
675 0x0e8a, 0x0e8a,
676 0x0e8d, 0x0e8d,
677 0x0e94, 0x0e97,
678 0x0e99, 0x0e9f,
679 0x0ea1, 0x0ea3,
680 0x0ea5, 0x0ea5,
681 0x0ea7, 0x0ea7,
682 0x0eaa, 0x0eab,
683 0x0ead, 0x0eb9,
684 0x0ebb, 0x0ebd,
685 0x0ec0, 0x0ec4,
686 0x0ec6, 0x0ec6,
687 0x0ec8, 0x0ecd,
688 0x0edc, 0x0edd,
689 0x0f00, 0x0f00,
690 0x0f18, 0x0f19,
691 0x0f35, 0x0f35,
692 0x0f37, 0x0f37,
693 0x0f39, 0x0f39,
694 0x0f3e, 0x0f47,
695 0x0f49, 0x0f6a,
696 0x0f71, 0x0f84,
697 0x0f86, 0x0f8b,
698 0x0f90, 0x0f97,
699 0x0f99, 0x0fbc,
700 0x0fc6, 0x0fc6,
701 0x1000, 0x1021,
702 0x1023, 0x1027,
703 0x1029, 0x102a,
704 0x102c, 0x1032,
705 0x1036, 0x1039,
706 0x1050, 0x1059,
707 0x10a0, 0x10c5,
708 0x10d0, 0x10f8,
709 0x1100, 0x1159,
710 0x115f, 0x11a2,
711 0x11a8, 0x11f9,
712 0x1200, 0x1206,
713 0x1208, 0x1246,
714 0x1248, 0x1248,
715 0x124a, 0x124d,
716 0x1250, 0x1256,
717 0x1258, 0x1258,
718 0x125a, 0x125d,
719 0x1260, 0x1286,
720 0x1288, 0x1288,
721 0x128a, 0x128d,
722 0x1290, 0x12ae,
723 0x12b0, 0x12b0,
724 0x12b2, 0x12b5,
725 0x12b8, 0x12be,
726 0x12c0, 0x12c0,
727 0x12c2, 0x12c5,
728 0x12c8, 0x12ce,
729 0x12d0, 0x12d6,
730 0x12d8, 0x12ee,
731 0x12f0, 0x130e,
732 0x1310, 0x1310,
733 0x1312, 0x1315,
734 0x1318, 0x131e,
735 0x1320, 0x1346,
736 0x1348, 0x135a,
737 0x13a0, 0x13f4,
738 0x1401, 0x166c,
739 0x166f, 0x1676,
740 0x1681, 0x169a,
741 0x16a0, 0x16ea,
742 0x1700, 0x170c,
743 0x170e, 0x1714,
744 0x1720, 0x1734,
745 0x1740, 0x1753,
746 0x1760, 0x176c,
747 0x176e, 0x1770,
748 0x1772, 0x1773,
749 0x1780, 0x17b3,
750 0x17b6, 0x17d3,
751 0x17d7, 0x17d7,
752 0x17dc, 0x17dd,
753 0x180b, 0x180d,
754 0x1820, 0x1877,
755 0x1880, 0x18a9,
756 0x1900, 0x191c,
757 0x1920, 0x192b,
758 0x1930, 0x193b,
759 0x1950, 0x196d,
760 0x1970, 0x1974,
761 0x1d00, 0x1d6b,
762 0x1e00, 0x1e9b,
763 0x1ea0, 0x1ef9,
764 0x1f00, 0x1f15,
765 0x1f18, 0x1f1d,
766 0x1f20, 0x1f45,
767 0x1f48, 0x1f4d,
768 0x1f50, 0x1f57,
769 0x1f59, 0x1f59,
770 0x1f5b, 0x1f5b,
771 0x1f5d, 0x1f5d,
772 0x1f5f, 0x1f7d,
773 0x1f80, 0x1fb4,
774 0x1fb6, 0x1fbc,
775 0x1fbe, 0x1fbe,
776 0x1fc2, 0x1fc4,
777 0x1fc6, 0x1fcc,
778 0x1fd0, 0x1fd3,
779 0x1fd6, 0x1fdb,
780 0x1fe0, 0x1fec,
781 0x1ff2, 0x1ff4,
782 0x1ff6, 0x1ffc,
783 0x2071, 0x2071,
784 0x207f, 0x207f,
785 0x20d0, 0x20ea,
786 0x2102, 0x2102,
787 0x2107, 0x2107,
788 0x210a, 0x2113,
789 0x2115, 0x2115,
790 0x2119, 0x211d,
791 0x2124, 0x2124,
792 0x2126, 0x2126,
793 0x2128, 0x2128,
794 0x212a, 0x212d,
795 0x212f, 0x2131,
796 0x2133, 0x2139,
797 0x213d, 0x213f,
798 0x2145, 0x2149,
799 0x3005, 0x3006,
800 0x302a, 0x302f,
801 0x3031, 0x3035,
802 0x303b, 0x303c,
803 0x3041, 0x3096,
804 0x3099, 0x309a,
805 0x309d, 0x309f,
806 0x30a1, 0x30fa,
807 0x30fc, 0x30ff,
808 0x3105, 0x312c,
809 0x3131, 0x318e,
810 0x31a0, 0x31b7,
811 0x31f0, 0x31ff,
812 0x3400, 0x4db5,
813 0x4e00, 0x9fa5,
814 0xa000, 0xa48c,
815 0xac00, 0xd7a3,
816 0xf900, 0xfa2d,
817 0xfa30, 0xfa6a,
818 0xfb00, 0xfb06,
819 0xfb13, 0xfb17,
820 0xfb1d, 0xfb28,
821 0xfb2a, 0xfb36,
822 0xfb38, 0xfb3c,
823 0xfb3e, 0xfb3e,
824 0xfb40, 0xfb41,
825 0xfb43, 0xfb44,
826 0xfb46, 0xfbb1,
827 0xfbd3, 0xfd3d,
828 0xfd50, 0xfd8f,
829 0xfd92, 0xfdc7,
830 0xfdf0, 0xfdfb,
831 0xfe00, 0xfe0f,
832 0xfe20, 0xfe23,
833 0xfe70, 0xfe74,
834 0xfe76, 0xfefc,
835 0xff21, 0xff3a,
836 0xff41, 0xff5a,
837 0xff66, 0xffbe,
838 0xffc2, 0xffc7,
839 0xffca, 0xffcf,
840 0xffd2, 0xffd7,
841 0xffda, 0xffdc,
842 0x10000, 0x1000b,
843 0x1000d, 0x10026,
844 0x10028, 0x1003a,
845 0x1003c, 0x1003d,
846 0x1003f, 0x1004d,
847 0x10050, 0x1005d,
848 0x10080, 0x100fa,
849 0x10300, 0x1031e,
850 0x10330, 0x10349,
851 0x10380, 0x1039d,
852 0x10400, 0x1049d,
853 0x10800, 0x10805,
854 0x10808, 0x10808,
855 0x1080a, 0x10835,
856 0x10837, 0x10838,
857 0x1083c, 0x1083c,
858 0x1083f, 0x1083f,
859 0x1d165, 0x1d169,
860 0x1d16d, 0x1d172,
861 0x1d17b, 0x1d182,
862 0x1d185, 0x1d18b,
863 0x1d1aa, 0x1d1ad,
864 0x1d400, 0x1d454,
865 0x1d456, 0x1d49c,
866 0x1d49e, 0x1d49f,
867 0x1d4a2, 0x1d4a2,
868 0x1d4a5, 0x1d4a6,
869 0x1d4a9, 0x1d4ac,
870 0x1d4ae, 0x1d4b9,
871 0x1d4bb, 0x1d4bb,
872 0x1d4bd, 0x1d4c3,
873 0x1d4c5, 0x1d505,
874 0x1d507, 0x1d50a,
875 0x1d50d, 0x1d514,
876 0x1d516, 0x1d51c,
877 0x1d51e, 0x1d539,
878 0x1d53b, 0x1d53e,
879 0x1d540, 0x1d544,
880 0x1d546, 0x1d546,
881 0x1d54a, 0x1d550,
882 0x1d552, 0x1d6a3,
883 0x1d6a8, 0x1d6c0,
884 0x1d6c2, 0x1d6da,
885 0x1d6dc, 0x1d6fa,
886 0x1d6fc, 0x1d714,
887 0x1d716, 0x1d734,
888 0x1d736, 0x1d74e,
889 0x1d750, 0x1d76e,
890 0x1d770, 0x1d788,
891 0x1d78a, 0x1d7a8,
892 0x1d7aa, 0x1d7c2,
893 0x1d7c4, 0x1d7c9,
894 0x20000, 0x2a6d6,
895 0x2f800, 0x2fa1d,
896 0xe0100, 0xe01ef
897 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
898 }; /* end of CRAlpha */
899
900 static const OnigCodePoint CRBlank[] = {
901 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
902 9,
903 #else
904 3,
905 #endif
906 0x0009, 0x0009,
907 0x0020, 0x0020,
908 0x00a0, 0x00a0
909 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
910 ,
911 0x1680, 0x1680,
912 0x180e, 0x180e,
913 0x2000, 0x200a,
914 0x202f, 0x202f,
915 0x205f, 0x205f,
916 0x3000, 0x3000
917 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
918 }; /* end of CRBlank */
919
920 static const OnigCodePoint CRCntrl[] = {
921 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
922 19,
923 #else
924 3,
925 #endif
926 0x0000, 0x001f,
927 0x007f, 0x009f,
928 0x00ad, 0x00ad
929 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
930 ,
931 0x0600, 0x0603,
932 0x06dd, 0x06dd,
933 0x070f, 0x070f,
934 0x17b4, 0x17b5,
935 0x200b, 0x200f,
936 0x202a, 0x202e,
937 0x2060, 0x2063,
938 0x206a, 0x206f,
939 0xd800, 0xf8ff,
940 0xfeff, 0xfeff,
941 0xfff9, 0xfffb,
942 0x1d173, 0x1d17a,
943 0xe0001, 0xe0001,
944 0xe0020, 0xe007f,
945 0xf0000, 0xffffd,
946 0x100000, 0x10fffd
947 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
948 }; /* end of CRCntrl */
949
950 static const OnigCodePoint CRDigit[] = {
951 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
952 23,
953 #else
954 1,
955 #endif
956 0x0030, 0x0039
957 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
958 ,
959 0x0660, 0x0669,
960 0x06f0, 0x06f9,
961 0x0966, 0x096f,
962 0x09e6, 0x09ef,
963 0x0a66, 0x0a6f,
964 0x0ae6, 0x0aef,
965 0x0b66, 0x0b6f,
966 0x0be7, 0x0bef,
967 0x0c66, 0x0c6f,
968 0x0ce6, 0x0cef,
969 0x0d66, 0x0d6f,
970 0x0e50, 0x0e59,
971 0x0ed0, 0x0ed9,
972 0x0f20, 0x0f29,
973 0x1040, 0x1049,
974 0x1369, 0x1371,
975 0x17e0, 0x17e9,
976 0x1810, 0x1819,
977 0x1946, 0x194f,
978 0xff10, 0xff19,
979 0x104a0, 0x104a9,
980 0x1d7ce, 0x1d7ff
981 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
982 }; /* end of CRDigit */
983
984 static const OnigCodePoint CRGraph[] = {
985 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
986 405,
987 #else
988 2,
989 #endif
990 0x0021, 0x007e,
991 0x00a1, 0x0236
992 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
993 ,
994 0x0250, 0x0357,
995 0x035d, 0x036f,
996 0x0374, 0x0375,
997 0x037a, 0x037a,
998 0x037e, 0x037e,
999 0x0384, 0x038a,
1000 0x038c, 0x038c,
1001 0x038e, 0x03a1,
1002 0x03a3, 0x03ce,
1003 0x03d0, 0x03fb,
1004 0x0400, 0x0486,
1005 0x0488, 0x04ce,
1006 0x04d0, 0x04f5,
1007 0x04f8, 0x04f9,
1008 0x0500, 0x050f,
1009 0x0531, 0x0556,
1010 0x0559, 0x055f,
1011 0x0561, 0x0587,
1012 0x0589, 0x058a,
1013 0x0591, 0x05a1,
1014 0x05a3, 0x05b9,
1015 0x05bb, 0x05c4,
1016 0x05d0, 0x05ea,
1017 0x05f0, 0x05f4,
1018 0x0600, 0x0603,
1019 0x060c, 0x0615,
1020 0x061b, 0x061b,
1021 0x061f, 0x061f,
1022 0x0621, 0x063a,
1023 0x0640, 0x0658,
1024 0x0660, 0x070d,
1025 0x070f, 0x074a,
1026 0x074d, 0x074f,
1027 0x0780, 0x07b1,
1028 0x0901, 0x0939,
1029 0x093c, 0x094d,
1030 0x0950, 0x0954,
1031 0x0958, 0x0970,
1032 0x0981, 0x0983,
1033 0x0985, 0x098c,
1034 0x098f, 0x0990,
1035 0x0993, 0x09a8,
1036 0x09aa, 0x09b0,
1037 0x09b2, 0x09b2,
1038 0x09b6, 0x09b9,
1039 0x09bc, 0x09c4,
1040 0x09c7, 0x09c8,
1041 0x09cb, 0x09cd,
1042 0x09d7, 0x09d7,
1043 0x09dc, 0x09dd,
1044 0x09df, 0x09e3,
1045 0x09e6, 0x09fa,
1046 0x0a01, 0x0a03,
1047 0x0a05, 0x0a0a,
1048 0x0a0f, 0x0a10,
1049 0x0a13, 0x0a28,
1050 0x0a2a, 0x0a30,
1051 0x0a32, 0x0a33,
1052 0x0a35, 0x0a36,
1053 0x0a38, 0x0a39,
1054 0x0a3c, 0x0a3c,
1055 0x0a3e, 0x0a42,
1056 0x0a47, 0x0a48,
1057 0x0a4b, 0x0a4d,
1058 0x0a59, 0x0a5c,
1059 0x0a5e, 0x0a5e,
1060 0x0a66, 0x0a74,
1061 0x0a81, 0x0a83,
1062 0x0a85, 0x0a8d,
1063 0x0a8f, 0x0a91,
1064 0x0a93, 0x0aa8,
1065 0x0aaa, 0x0ab0,
1066 0x0ab2, 0x0ab3,
1067 0x0ab5, 0x0ab9,
1068 0x0abc, 0x0ac5,
1069 0x0ac7, 0x0ac9,
1070 0x0acb, 0x0acd,
1071 0x0ad0, 0x0ad0,
1072 0x0ae0, 0x0ae3,
1073 0x0ae6, 0x0aef,
1074 0x0af1, 0x0af1,
1075 0x0b01, 0x0b03,
1076 0x0b05, 0x0b0c,
1077 0x0b0f, 0x0b10,
1078 0x0b13, 0x0b28,
1079 0x0b2a, 0x0b30,
1080 0x0b32, 0x0b33,
1081 0x0b35, 0x0b39,
1082 0x0b3c, 0x0b43,
1083 0x0b47, 0x0b48,
1084 0x0b4b, 0x0b4d,
1085 0x0b56, 0x0b57,
1086 0x0b5c, 0x0b5d,
1087 0x0b5f, 0x0b61,
1088 0x0b66, 0x0b71,
1089 0x0b82, 0x0b83,
1090 0x0b85, 0x0b8a,
1091 0x0b8e, 0x0b90,
1092 0x0b92, 0x0b95,
1093 0x0b99, 0x0b9a,
1094 0x0b9c, 0x0b9c,
1095 0x0b9e, 0x0b9f,
1096 0x0ba3, 0x0ba4,
1097 0x0ba8, 0x0baa,
1098 0x0bae, 0x0bb5,
1099 0x0bb7, 0x0bb9,
1100 0x0bbe, 0x0bc2,
1101 0x0bc6, 0x0bc8,
1102 0x0bca, 0x0bcd,
1103 0x0bd7, 0x0bd7,
1104 0x0be7, 0x0bfa,
1105 0x0c01, 0x0c03,
1106 0x0c05, 0x0c0c,
1107 0x0c0e, 0x0c10,
1108 0x0c12, 0x0c28,
1109 0x0c2a, 0x0c33,
1110 0x0c35, 0x0c39,
1111 0x0c3e, 0x0c44,
1112 0x0c46, 0x0c48,
1113 0x0c4a, 0x0c4d,
1114 0x0c55, 0x0c56,
1115 0x0c60, 0x0c61,
1116 0x0c66, 0x0c6f,
1117 0x0c82, 0x0c83,
1118 0x0c85, 0x0c8c,
1119 0x0c8e, 0x0c90,
1120 0x0c92, 0x0ca8,
1121 0x0caa, 0x0cb3,
1122 0x0cb5, 0x0cb9,
1123 0x0cbc, 0x0cc4,
1124 0x0cc6, 0x0cc8,
1125 0x0cca, 0x0ccd,
1126 0x0cd5, 0x0cd6,
1127 0x0cde, 0x0cde,
1128 0x0ce0, 0x0ce1,
1129 0x0ce6, 0x0cef,
1130 0x0d02, 0x0d03,
1131 0x0d05, 0x0d0c,
1132 0x0d0e, 0x0d10,
1133 0x0d12, 0x0d28,
1134 0x0d2a, 0x0d39,
1135 0x0d3e, 0x0d43,
1136 0x0d46, 0x0d48,
1137 0x0d4a, 0x0d4d,
1138 0x0d57, 0x0d57,
1139 0x0d60, 0x0d61,
1140 0x0d66, 0x0d6f,
1141 0x0d82, 0x0d83,
1142 0x0d85, 0x0d96,
1143 0x0d9a, 0x0db1,
1144 0x0db3, 0x0dbb,
1145 0x0dbd, 0x0dbd,
1146 0x0dc0, 0x0dc6,
1147 0x0dca, 0x0dca,
1148 0x0dcf, 0x0dd4,
1149 0x0dd6, 0x0dd6,
1150 0x0dd8, 0x0ddf,
1151 0x0df2, 0x0df4,
1152 0x0e01, 0x0e3a,
1153 0x0e3f, 0x0e5b,
1154 0x0e81, 0x0e82,
1155 0x0e84, 0x0e84,
1156 0x0e87, 0x0e88,
1157 0x0e8a, 0x0e8a,
1158 0x0e8d, 0x0e8d,
1159 0x0e94, 0x0e97,
1160 0x0e99, 0x0e9f,
1161 0x0ea1, 0x0ea3,
1162 0x0ea5, 0x0ea5,
1163 0x0ea7, 0x0ea7,
1164 0x0eaa, 0x0eab,
1165 0x0ead, 0x0eb9,
1166 0x0ebb, 0x0ebd,
1167 0x0ec0, 0x0ec4,
1168 0x0ec6, 0x0ec6,
1169 0x0ec8, 0x0ecd,
1170 0x0ed0, 0x0ed9,
1171 0x0edc, 0x0edd,
1172 0x0f00, 0x0f47,
1173 0x0f49, 0x0f6a,
1174 0x0f71, 0x0f8b,
1175 0x0f90, 0x0f97,
1176 0x0f99, 0x0fbc,
1177 0x0fbe, 0x0fcc,
1178 0x0fcf, 0x0fcf,
1179 0x1000, 0x1021,
1180 0x1023, 0x1027,
1181 0x1029, 0x102a,
1182 0x102c, 0x1032,
1183 0x1036, 0x1039,
1184 0x1040, 0x1059,
1185 0x10a0, 0x10c5,
1186 0x10d0, 0x10f8,
1187 0x10fb, 0x10fb,
1188 0x1100, 0x1159,
1189 0x115f, 0x11a2,
1190 0x11a8, 0x11f9,
1191 0x1200, 0x1206,
1192 0x1208, 0x1246,
1193 0x1248, 0x1248,
1194 0x124a, 0x124d,
1195 0x1250, 0x1256,
1196 0x1258, 0x1258,
1197 0x125a, 0x125d,
1198 0x1260, 0x1286,
1199 0x1288, 0x1288,
1200 0x128a, 0x128d,
1201 0x1290, 0x12ae,
1202 0x12b0, 0x12b0,
1203 0x12b2, 0x12b5,
1204 0x12b8, 0x12be,
1205 0x12c0, 0x12c0,
1206 0x12c2, 0x12c5,
1207 0x12c8, 0x12ce,
1208 0x12d0, 0x12d6,
1209 0x12d8, 0x12ee,
1210 0x12f0, 0x130e,
1211 0x1310, 0x1310,
1212 0x1312, 0x1315,
1213 0x1318, 0x131e,
1214 0x1320, 0x1346,
1215 0x1348, 0x135a,
1216 0x1361, 0x137c,
1217 0x13a0, 0x13f4,
1218 0x1401, 0x1676,
1219 0x1681, 0x169c,
1220 0x16a0, 0x16f0,
1221 0x1700, 0x170c,
1222 0x170e, 0x1714,
1223 0x1720, 0x1736,
1224 0x1740, 0x1753,
1225 0x1760, 0x176c,
1226 0x176e, 0x1770,
1227 0x1772, 0x1773,
1228 0x1780, 0x17dd,
1229 0x17e0, 0x17e9,
1230 0x17f0, 0x17f9,
1231 0x1800, 0x180d,
1232 0x1810, 0x1819,
1233 0x1820, 0x1877,
1234 0x1880, 0x18a9,
1235 0x1900, 0x191c,
1236 0x1920, 0x192b,
1237 0x1930, 0x193b,
1238 0x1940, 0x1940,
1239 0x1944, 0x196d,
1240 0x1970, 0x1974,
1241 0x19e0, 0x19ff,
1242 0x1d00, 0x1d6b,
1243 0x1e00, 0x1e9b,
1244 0x1ea0, 0x1ef9,
1245 0x1f00, 0x1f15,
1246 0x1f18, 0x1f1d,
1247 0x1f20, 0x1f45,
1248 0x1f48, 0x1f4d,
1249 0x1f50, 0x1f57,
1250 0x1f59, 0x1f59,
1251 0x1f5b, 0x1f5b,
1252 0x1f5d, 0x1f5d,
1253 0x1f5f, 0x1f7d,
1254 0x1f80, 0x1fb4,
1255 0x1fb6, 0x1fc4,
1256 0x1fc6, 0x1fd3,
1257 0x1fd6, 0x1fdb,
1258 0x1fdd, 0x1fef,
1259 0x1ff2, 0x1ff4,
1260 0x1ff6, 0x1ffe,
1261 0x200b, 0x2027,
1262 0x202a, 0x202e,
1263 0x2030, 0x2054,
1264 0x2057, 0x2057,
1265 0x2060, 0x2063,
1266 0x206a, 0x2071,
1267 0x2074, 0x208e,
1268 0x20a0, 0x20b1,
1269 0x20d0, 0x20ea,
1270 0x2100, 0x213b,
1271 0x213d, 0x214b,
1272 0x2153, 0x2183,
1273 0x2190, 0x23d0,
1274 0x2400, 0x2426,
1275 0x2440, 0x244a,
1276 0x2460, 0x2617,
1277 0x2619, 0x267d,
1278 0x2680, 0x2691,
1279 0x26a0, 0x26a1,
1280 0x2701, 0x2704,
1281 0x2706, 0x2709,
1282 0x270c, 0x2727,
1283 0x2729, 0x274b,
1284 0x274d, 0x274d,
1285 0x274f, 0x2752,
1286 0x2756, 0x2756,
1287 0x2758, 0x275e,
1288 0x2761, 0x2794,
1289 0x2798, 0x27af,
1290 0x27b1, 0x27be,
1291 0x27d0, 0x27eb,
1292 0x27f0, 0x2b0d,
1293 0x2e80, 0x2e99,
1294 0x2e9b, 0x2ef3,
1295 0x2f00, 0x2fd5,
1296 0x2ff0, 0x2ffb,
1297 0x3001, 0x303f,
1298 0x3041, 0x3096,
1299 0x3099, 0x30ff,
1300 0x3105, 0x312c,
1301 0x3131, 0x318e,
1302 0x3190, 0x31b7,
1303 0x31f0, 0x321e,
1304 0x3220, 0x3243,
1305 0x3250, 0x327d,
1306 0x327f, 0x32fe,
1307 0x3300, 0x4db5,
1308 0x4dc0, 0x9fa5,
1309 0xa000, 0xa48c,
1310 0xa490, 0xa4c6,
1311 0xac00, 0xd7a3,
1312 0xe000, 0xfa2d,
1313 0xfa30, 0xfa6a,
1314 0xfb00, 0xfb06,
1315 0xfb13, 0xfb17,
1316 0xfb1d, 0xfb36,
1317 0xfb38, 0xfb3c,
1318 0xfb3e, 0xfb3e,
1319 0xfb40, 0xfb41,
1320 0xfb43, 0xfb44,
1321 0xfb46, 0xfbb1,
1322 0xfbd3, 0xfd3f,
1323 0xfd50, 0xfd8f,
1324 0xfd92, 0xfdc7,
1325 0xfdf0, 0xfdfd,
1326 0xfe00, 0xfe0f,
1327 0xfe20, 0xfe23,
1328 0xfe30, 0xfe52,
1329 0xfe54, 0xfe66,
1330 0xfe68, 0xfe6b,
1331 0xfe70, 0xfe74,
1332 0xfe76, 0xfefc,
1333 0xfeff, 0xfeff,
1334 0xff01, 0xffbe,
1335 0xffc2, 0xffc7,
1336 0xffca, 0xffcf,
1337 0xffd2, 0xffd7,
1338 0xffda, 0xffdc,
1339 0xffe0, 0xffe6,
1340 0xffe8, 0xffee,
1341 0xfff9, 0xfffd,
1342 0x10000, 0x1000b,
1343 0x1000d, 0x10026,
1344 0x10028, 0x1003a,
1345 0x1003c, 0x1003d,
1346 0x1003f, 0x1004d,
1347 0x10050, 0x1005d,
1348 0x10080, 0x100fa,
1349 0x10100, 0x10102,
1350 0x10107, 0x10133,
1351 0x10137, 0x1013f,
1352 0x10300, 0x1031e,
1353 0x10320, 0x10323,
1354 0x10330, 0x1034a,
1355 0x10380, 0x1039d,
1356 0x1039f, 0x1039f,
1357 0x10400, 0x1049d,
1358 0x104a0, 0x104a9,
1359 0x10800, 0x10805,
1360 0x10808, 0x10808,
1361 0x1080a, 0x10835,
1362 0x10837, 0x10838,
1363 0x1083c, 0x1083c,
1364 0x1083f, 0x1083f,
1365 0x1d000, 0x1d0f5,
1366 0x1d100, 0x1d126,
1367 0x1d12a, 0x1d1dd,
1368 0x1d300, 0x1d356,
1369 0x1d400, 0x1d454,
1370 0x1d456, 0x1d49c,
1371 0x1d49e, 0x1d49f,
1372 0x1d4a2, 0x1d4a2,
1373 0x1d4a5, 0x1d4a6,
1374 0x1d4a9, 0x1d4ac,
1375 0x1d4ae, 0x1d4b9,
1376 0x1d4bb, 0x1d4bb,
1377 0x1d4bd, 0x1d4c3,
1378 0x1d4c5, 0x1d505,
1379 0x1d507, 0x1d50a,
1380 0x1d50d, 0x1d514,
1381 0x1d516, 0x1d51c,
1382 0x1d51e, 0x1d539,
1383 0x1d53b, 0x1d53e,
1384 0x1d540, 0x1d544,
1385 0x1d546, 0x1d546,
1386 0x1d54a, 0x1d550,
1387 0x1d552, 0x1d6a3,
1388 0x1d6a8, 0x1d7c9,
1389 0x1d7ce, 0x1d7ff,
1390 0x20000, 0x2a6d6,
1391 0x2f800, 0x2fa1d,
1392 0xe0001, 0xe0001,
1393 0xe0020, 0xe007f,
1394 0xe0100, 0xe01ef,
1395 0xf0000, 0xffffd,
1396 0x100000, 0x10fffd
1397 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
1398 }; /* end of CRGraph */
1399
1400 static const OnigCodePoint CRLower[] = {
1401 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
1402 424,
1403 #else
1404 6,
1405 #endif
1406 0x0061, 0x007a,
1407 0x00aa, 0x00aa,
1408 0x00b5, 0x00b5,
1409 0x00ba, 0x00ba,
1410 0x00df, 0x00f6,
1411 0x00f8, 0x00ff
1412 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
1413 ,
1414 0x0101, 0x0101,
1415 0x0103, 0x0103,
1416 0x0105, 0x0105,
1417 0x0107, 0x0107,
1418 0x0109, 0x0109,
1419 0x010b, 0x010b,
1420 0x010d, 0x010d,
1421 0x010f, 0x010f,
1422 0x0111, 0x0111,
1423 0x0113, 0x0113,
1424 0x0115, 0x0115,
1425 0x0117, 0x0117,
1426 0x0119, 0x0119,
1427 0x011b, 0x011b,
1428 0x011d, 0x011d,
1429 0x011f, 0x011f,
1430 0x0121, 0x0121,
1431 0x0123, 0x0123,
1432 0x0125, 0x0125,
1433 0x0127, 0x0127,
1434 0x0129, 0x0129,
1435 0x012b, 0x012b,
1436 0x012d, 0x012d,
1437 0x012f, 0x012f,
1438 0x0131, 0x0131,
1439 0x0133, 0x0133,
1440 0x0135, 0x0135,
1441 0x0137, 0x0138,
1442 0x013a, 0x013a,
1443 0x013c, 0x013c,
1444 0x013e, 0x013e,
1445 0x0140, 0x0140,
1446 0x0142, 0x0142,
1447 0x0144, 0x0144,
1448 0x0146, 0x0146,
1449 0x0148, 0x0149,
1450 0x014b, 0x014b,
1451 0x014d, 0x014d,
1452 0x014f, 0x014f,
1453 0x0151, 0x0151,
1454 0x0153, 0x0153,
1455 0x0155, 0x0155,
1456 0x0157, 0x0157,
1457 0x0159, 0x0159,
1458 0x015b, 0x015b,
1459 0x015d, 0x015d,
1460 0x015f, 0x015f,
1461 0x0161, 0x0161,
1462 0x0163, 0x0163,
1463 0x0165, 0x0165,
1464 0x0167, 0x0167,
1465 0x0169, 0x0169,
1466 0x016b, 0x016b,
1467 0x016d, 0x016d,
1468 0x016f, 0x016f,
1469 0x0171, 0x0171,
1470 0x0173, 0x0173,
1471 0x0175, 0x0175,
1472 0x0177, 0x0177,
1473 0x017a, 0x017a,
1474 0x017c, 0x017c,
1475 0x017e, 0x0180,
1476 0x0183, 0x0183,
1477 0x0185, 0x0185,
1478 0x0188, 0x0188,
1479 0x018c, 0x018d,
1480 0x0192, 0x0192,
1481 0x0195, 0x0195,
1482 0x0199, 0x019b,
1483 0x019e, 0x019e,
1484 0x01a1, 0x01a1,
1485 0x01a3, 0x01a3,
1486 0x01a5, 0x01a5,
1487 0x01a8, 0x01a8,
1488 0x01aa, 0x01ab,
1489 0x01ad, 0x01ad,
1490 0x01b0, 0x01b0,
1491 0x01b4, 0x01b4,
1492 0x01b6, 0x01b6,
1493 0x01b9, 0x01ba,
1494 0x01bd, 0x01bf,
1495 0x01c6, 0x01c6,
1496 0x01c9, 0x01c9,
1497 0x01cc, 0x01cc,
1498 0x01ce, 0x01ce,
1499 0x01d0, 0x01d0,
1500 0x01d2, 0x01d2,
1501 0x01d4, 0x01d4,
1502 0x01d6, 0x01d6,
1503 0x01d8, 0x01d8,
1504 0x01da, 0x01da,
1505 0x01dc, 0x01dd,
1506 0x01df, 0x01df,
1507 0x01e1, 0x01e1,
1508 0x01e3, 0x01e3,
1509 0x01e5, 0x01e5,
1510 0x01e7, 0x01e7,
1511 0x01e9, 0x01e9,
1512 0x01eb, 0x01eb,
1513 0x01ed, 0x01ed,
1514 0x01ef, 0x01f0,
1515 0x01f3, 0x01f3,
1516 0x01f5, 0x01f5,
1517 0x01f9, 0x01f9,
1518 0x01fb, 0x01fb,
1519 0x01fd, 0x01fd,
1520 0x01ff, 0x01ff,
1521 0x0201, 0x0201,
1522 0x0203, 0x0203,
1523 0x0205, 0x0205,
1524 0x0207, 0x0207,
1525 0x0209, 0x0209,
1526 0x020b, 0x020b,
1527 0x020d, 0x020d,
1528 0x020f, 0x020f,
1529 0x0211, 0x0211,
1530 0x0213, 0x0213,
1531 0x0215, 0x0215,
1532 0x0217, 0x0217,
1533 0x0219, 0x0219,
1534 0x021b, 0x021b,
1535 0x021d, 0x021d,
1536 0x021f, 0x021f,
1537 0x0221, 0x0221,
1538 0x0223, 0x0223,
1539 0x0225, 0x0225,
1540 0x0227, 0x0227,
1541 0x0229, 0x0229,
1542 0x022b, 0x022b,
1543 0x022d, 0x022d,
1544 0x022f, 0x022f,
1545 0x0231, 0x0231,
1546 0x0233, 0x0236,
1547 0x0250, 0x02af,
1548 0x0390, 0x0390,
1549 0x03ac, 0x03ce,
1550 0x03d0, 0x03d1,
1551 0x03d5, 0x03d7,
1552 0x03d9, 0x03d9,
1553 0x03db, 0x03db,
1554 0x03dd, 0x03dd,
1555 0x03df, 0x03df,
1556 0x03e1, 0x03e1,
1557 0x03e3, 0x03e3,
1558 0x03e5, 0x03e5,
1559 0x03e7, 0x03e7,
1560 0x03e9, 0x03e9,
1561 0x03eb, 0x03eb,
1562 0x03ed, 0x03ed,
1563 0x03ef, 0x03f3,
1564 0x03f5, 0x03f5,
1565 0x03f8, 0x03f8,
1566 0x03fb, 0x03fb,
1567 0x0430, 0x045f,
1568 0x0461, 0x0461,
1569 0x0463, 0x0463,
1570 0x0465, 0x0465,
1571 0x0467, 0x0467,
1572 0x0469, 0x0469,
1573 0x046b, 0x046b,
1574 0x046d, 0x046d,
1575 0x046f, 0x046f,
1576 0x0471, 0x0471,
1577 0x0473, 0x0473,
1578 0x0475, 0x0475,
1579 0x0477, 0x0477,
1580 0x0479, 0x0479,
1581 0x047b, 0x047b,
1582 0x047d, 0x047d,
1583 0x047f, 0x047f,
1584 0x0481, 0x0481,
1585 0x048b, 0x048b,
1586 0x048d, 0x048d,
1587 0x048f, 0x048f,
1588 0x0491, 0x0491,
1589 0x0493, 0x0493,
1590 0x0495, 0x0495,
1591 0x0497, 0x0497,
1592 0x0499, 0x0499,
1593 0x049b, 0x049b,
1594 0x049d, 0x049d,
1595 0x049f, 0x049f,
1596 0x04a1, 0x04a1,
1597 0x04a3, 0x04a3,
1598 0x04a5, 0x04a5,
1599 0x04a7, 0x04a7,
1600 0x04a9, 0x04a9,
1601 0x04ab, 0x04ab,
1602 0x04ad, 0x04ad,
1603 0x04af, 0x04af,
1604 0x04b1, 0x04b1,
1605 0x04b3, 0x04b3,
1606 0x04b5, 0x04b5,
1607 0x04b7, 0x04b7,
1608 0x04b9, 0x04b9,
1609 0x04bb, 0x04bb,
1610 0x04bd, 0x04bd,
1611 0x04bf, 0x04bf,
1612 0x04c2, 0x04c2,
1613 0x04c4, 0x04c4,
1614 0x04c6, 0x04c6,
1615 0x04c8, 0x04c8,
1616 0x04ca, 0x04ca,
1617 0x04cc, 0x04cc,
1618 0x04ce, 0x04ce,
1619 0x04d1, 0x04d1,
1620 0x04d3, 0x04d3,
1621 0x04d5, 0x04d5,
1622 0x04d7, 0x04d7,
1623 0x04d9, 0x04d9,
1624 0x04db, 0x04db,
1625 0x04dd, 0x04dd,
1626 0x04df, 0x04df,
1627 0x04e1, 0x04e1,
1628 0x04e3, 0x04e3,
1629 0x04e5, 0x04e5,
1630 0x04e7, 0x04e7,
1631 0x04e9, 0x04e9,
1632 0x04eb, 0x04eb,
1633 0x04ed, 0x04ed,
1634 0x04ef, 0x04ef,
1635 0x04f1, 0x04f1,
1636 0x04f3, 0x04f3,
1637 0x04f5, 0x04f5,
1638 0x04f9, 0x04f9,
1639 0x0501, 0x0501,
1640 0x0503, 0x0503,
1641 0x0505, 0x0505,
1642 0x0507, 0x0507,
1643 0x0509, 0x0509,
1644 0x050b, 0x050b,
1645 0x050d, 0x050d,
1646 0x050f, 0x050f,
1647 0x0561, 0x0587,
1648 0x1d00, 0x1d2b,
1649 0x1d62, 0x1d6b,
1650 0x1e01, 0x1e01,
1651 0x1e03, 0x1e03,
1652 0x1e05, 0x1e05,
1653 0x1e07, 0x1e07,
1654 0x1e09, 0x1e09,
1655 0x1e0b, 0x1e0b,
1656 0x1e0d, 0x1e0d,
1657 0x1e0f, 0x1e0f,
1658 0x1e11, 0x1e11,
1659 0x1e13, 0x1e13,
1660 0x1e15, 0x1e15,
1661 0x1e17, 0x1e17,
1662 0x1e19, 0x1e19,
1663 0x1e1b, 0x1e1b,
1664 0x1e1d, 0x1e1d,
1665 0x1e1f, 0x1e1f,
1666 0x1e21, 0x1e21,
1667 0x1e23, 0x1e23,
1668 0x1e25, 0x1e25,
1669 0x1e27, 0x1e27,
1670 0x1e29, 0x1e29,
1671 0x1e2b, 0x1e2b,
1672 0x1e2d, 0x1e2d,
1673 0x1e2f, 0x1e2f,
1674 0x1e31, 0x1e31,
1675 0x1e33, 0x1e33,
1676 0x1e35, 0x1e35,
1677 0x1e37, 0x1e37,
1678 0x1e39, 0x1e39,
1679 0x1e3b, 0x1e3b,
1680 0x1e3d, 0x1e3d,
1681 0x1e3f, 0x1e3f,
1682 0x1e41, 0x1e41,
1683 0x1e43, 0x1e43,
1684 0x1e45, 0x1e45,
1685 0x1e47, 0x1e47,
1686 0x1e49, 0x1e49,
1687 0x1e4b, 0x1e4b,
1688 0x1e4d, 0x1e4d,
1689 0x1e4f, 0x1e4f,
1690 0x1e51, 0x1e51,
1691 0x1e53, 0x1e53,
1692 0x1e55, 0x1e55,
1693 0x1e57, 0x1e57,
1694 0x1e59, 0x1e59,
1695 0x1e5b, 0x1e5b,
1696 0x1e5d, 0x1e5d,
1697 0x1e5f, 0x1e5f,
1698 0x1e61, 0x1e61,
1699 0x1e63, 0x1e63,
1700 0x1e65, 0x1e65,
1701 0x1e67, 0x1e67,
1702 0x1e69, 0x1e69,
1703 0x1e6b, 0x1e6b,
1704 0x1e6d, 0x1e6d,
1705 0x1e6f, 0x1e6f,
1706 0x1e71, 0x1e71,
1707 0x1e73, 0x1e73,
1708 0x1e75, 0x1e75,
1709 0x1e77, 0x1e77,
1710 0x1e79, 0x1e79,
1711 0x1e7b, 0x1e7b,
1712 0x1e7d, 0x1e7d,
1713 0x1e7f, 0x1e7f,
1714 0x1e81, 0x1e81,
1715 0x1e83, 0x1e83,
1716 0x1e85, 0x1e85,
1717 0x1e87, 0x1e87,
1718 0x1e89, 0x1e89,
1719 0x1e8b, 0x1e8b,
1720 0x1e8d, 0x1e8d,
1721 0x1e8f, 0x1e8f,
1722 0x1e91, 0x1e91,
1723 0x1e93, 0x1e93,
1724 0x1e95, 0x1e9b,
1725 0x1ea1, 0x1ea1,
1726 0x1ea3, 0x1ea3,
1727 0x1ea5, 0x1ea5,
1728 0x1ea7, 0x1ea7,
1729 0x1ea9, 0x1ea9,
1730 0x1eab, 0x1eab,
1731 0x1ead, 0x1ead,
1732 0x1eaf, 0x1eaf,
1733 0x1eb1, 0x1eb1,
1734 0x1eb3, 0x1eb3,
1735 0x1eb5, 0x1eb5,
1736 0x1eb7, 0x1eb7,
1737 0x1eb9, 0x1eb9,
1738 0x1ebb, 0x1ebb,
1739 0x1ebd, 0x1ebd,
1740 0x1ebf, 0x1ebf,
1741 0x1ec1, 0x1ec1,
1742 0x1ec3, 0x1ec3,
1743 0x1ec5, 0x1ec5,
1744 0x1ec7, 0x1ec7,
1745 0x1ec9, 0x1ec9,
1746 0x1ecb, 0x1ecb,
1747 0x1ecd, 0x1ecd,
1748 0x1ecf, 0x1ecf,
1749 0x1ed1, 0x1ed1,
1750 0x1ed3, 0x1ed3,
1751 0x1ed5, 0x1ed5,
1752 0x1ed7, 0x1ed7,
1753 0x1ed9, 0x1ed9,
1754 0x1edb, 0x1edb,
1755 0x1edd, 0x1edd,
1756 0x1edf, 0x1edf,
1757 0x1ee1, 0x1ee1,
1758 0x1ee3, 0x1ee3,
1759 0x1ee5, 0x1ee5,
1760 0x1ee7, 0x1ee7,
1761 0x1ee9, 0x1ee9,
1762 0x1eeb, 0x1eeb,
1763 0x1eed, 0x1eed,
1764 0x1eef, 0x1eef,
1765 0x1ef1, 0x1ef1,
1766 0x1ef3, 0x1ef3,
1767 0x1ef5, 0x1ef5,
1768 0x1ef7, 0x1ef7,
1769 0x1ef9, 0x1ef9,
1770 0x1f00, 0x1f07,
1771 0x1f10, 0x1f15,
1772 0x1f20, 0x1f27,
1773 0x1f30, 0x1f37,
1774 0x1f40, 0x1f45,
1775 0x1f50, 0x1f57,
1776 0x1f60, 0x1f67,
1777 0x1f70, 0x1f7d,
1778 0x1f80, 0x1f87,
1779 0x1f90, 0x1f97,
1780 0x1fa0, 0x1fa7,
1781 0x1fb0, 0x1fb4,
1782 0x1fb6, 0x1fb7,
1783 0x1fbe, 0x1fbe,
1784 0x1fc2, 0x1fc4,
1785 0x1fc6, 0x1fc7,
1786 0x1fd0, 0x1fd3,
1787 0x1fd6, 0x1fd7,
1788 0x1fe0, 0x1fe7,
1789 0x1ff2, 0x1ff4,
1790 0x1ff6, 0x1ff7,
1791 0x2071, 0x2071,
1792 0x207f, 0x207f,
1793 0x210a, 0x210a,
1794 0x210e, 0x210f,
1795 0x2113, 0x2113,
1796 0x212f, 0x212f,
1797 0x2134, 0x2134,
1798 0x2139, 0x2139,
1799 0x213d, 0x213d,
1800 0x2146, 0x2149,
1801 0xfb00, 0xfb06,
1802 0xfb13, 0xfb17,
1803 0xff41, 0xff5a,
1804 0x10428, 0x1044f,
1805 0x1d41a, 0x1d433,
1806 0x1d44e, 0x1d454,
1807 0x1d456, 0x1d467,
1808 0x1d482, 0x1d49b,
1809 0x1d4b6, 0x1d4b9,
1810 0x1d4bb, 0x1d4bb,
1811 0x1d4bd, 0x1d4c3,
1812 0x1d4c5, 0x1d4cf,
1813 0x1d4ea, 0x1d503,
1814 0x1d51e, 0x1d537,
1815 0x1d552, 0x1d56b,
1816 0x1d586, 0x1d59f,
1817 0x1d5ba, 0x1d5d3,
1818 0x1d5ee, 0x1d607,
1819 0x1d622, 0x1d63b,
1820 0x1d656, 0x1d66f,
1821 0x1d68a, 0x1d6a3,
1822 0x1d6c2, 0x1d6da,
1823 0x1d6dc, 0x1d6e1,
1824 0x1d6fc, 0x1d714,
1825 0x1d716, 0x1d71b,
1826 0x1d736, 0x1d74e,
1827 0x1d750, 0x1d755,
1828 0x1d770, 0x1d788,
1829 0x1d78a, 0x1d78f,
1830 0x1d7aa, 0x1d7c2,
1831 0x1d7c4, 0x1d7c9
1832 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
1833 }; /* end of CRLower */
1834
1835 static const OnigCodePoint CRPrint[] = {
1836 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
1837 405,
1838 #else
1839 4,
1840 #endif
1841 0x0009, 0x000d,
1842 0x0020, 0x007e,
1843 0x0085, 0x0085,
1844 0x00a0, 0x0236
1845 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
1846 ,
1847 0x0250, 0x0357,
1848 0x035d, 0x036f,
1849 0x0374, 0x0375,
1850 0x037a, 0x037a,
1851 0x037e, 0x037e,
1852 0x0384, 0x038a,
1853 0x038c, 0x038c,
1854 0x038e, 0x03a1,
1855 0x03a3, 0x03ce,
1856 0x03d0, 0x03fb,
1857 0x0400, 0x0486,
1858 0x0488, 0x04ce,
1859 0x04d0, 0x04f5,
1860 0x04f8, 0x04f9,
1861 0x0500, 0x050f,
1862 0x0531, 0x0556,
1863 0x0559, 0x055f,
1864 0x0561, 0x0587,
1865 0x0589, 0x058a,
1866 0x0591, 0x05a1,
1867 0x05a3, 0x05b9,
1868 0x05bb, 0x05c4,
1869 0x05d0, 0x05ea,
1870 0x05f0, 0x05f4,
1871 0x0600, 0x0603,
1872 0x060c, 0x0615,
1873 0x061b, 0x061b,
1874 0x061f, 0x061f,
1875 0x0621, 0x063a,
1876 0x0640, 0x0658,
1877 0x0660, 0x070d,
1878 0x070f, 0x074a,
1879 0x074d, 0x074f,
1880 0x0780, 0x07b1,
1881 0x0901, 0x0939,
1882 0x093c, 0x094d,
1883 0x0950, 0x0954,
1884 0x0958, 0x0970,
1885 0x0981, 0x0983,
1886 0x0985, 0x098c,
1887 0x098f, 0x0990,
1888 0x0993, 0x09a8,
1889 0x09aa, 0x09b0,
1890 0x09b2, 0x09b2,
1891 0x09b6, 0x09b9,
1892 0x09bc, 0x09c4,
1893 0x09c7, 0x09c8,
1894 0x09cb, 0x09cd,
1895 0x09d7, 0x09d7,
1896 0x09dc, 0x09dd,
1897 0x09df, 0x09e3,
1898 0x09e6, 0x09fa,
1899 0x0a01, 0x0a03,
1900 0x0a05, 0x0a0a,
1901 0x0a0f, 0x0a10,
1902 0x0a13, 0x0a28,
1903 0x0a2a, 0x0a30,
1904 0x0a32, 0x0a33,
1905 0x0a35, 0x0a36,
1906 0x0a38, 0x0a39,
1907 0x0a3c, 0x0a3c,
1908 0x0a3e, 0x0a42,
1909 0x0a47, 0x0a48,
1910 0x0a4b, 0x0a4d,
1911 0x0a59, 0x0a5c,
1912 0x0a5e, 0x0a5e,
1913 0x0a66, 0x0a74,
1914 0x0a81, 0x0a83,
1915 0x0a85, 0x0a8d,
1916 0x0a8f, 0x0a91,
1917 0x0a93, 0x0aa8,
1918 0x0aaa, 0x0ab0,
1919 0x0ab2, 0x0ab3,
1920 0x0ab5, 0x0ab9,
1921 0x0abc, 0x0ac5,
1922 0x0ac7, 0x0ac9,
1923 0x0acb, 0x0acd,
1924 0x0ad0, 0x0ad0,
1925 0x0ae0, 0x0ae3,
1926 0x0ae6, 0x0aef,
1927 0x0af1, 0x0af1,
1928 0x0b01, 0x0b03,
1929 0x0b05, 0x0b0c,
1930 0x0b0f, 0x0b10,
1931 0x0b13, 0x0b28,
1932 0x0b2a, 0x0b30,
1933 0x0b32, 0x0b33,
1934 0x0b35, 0x0b39,
1935 0x0b3c, 0x0b43,
1936 0x0b47, 0x0b48,
1937 0x0b4b, 0x0b4d,
1938 0x0b56, 0x0b57,
1939 0x0b5c, 0x0b5d,
1940 0x0b5f, 0x0b61,
1941 0x0b66, 0x0b71,
1942 0x0b82, 0x0b83,
1943 0x0b85, 0x0b8a,
1944 0x0b8e, 0x0b90,
1945 0x0b92, 0x0b95,
1946 0x0b99, 0x0b9a,
1947 0x0b9c, 0x0b9c,
1948 0x0b9e, 0x0b9f,
1949 0x0ba3, 0x0ba4,
1950 0x0ba8, 0x0baa,
1951 0x0bae, 0x0bb5,
1952 0x0bb7, 0x0bb9,
1953 0x0bbe, 0x0bc2,
1954 0x0bc6, 0x0bc8,
1955 0x0bca, 0x0bcd,
1956 0x0bd7, 0x0bd7,
1957 0x0be7, 0x0bfa,
1958 0x0c01, 0x0c03,
1959 0x0c05, 0x0c0c,
1960 0x0c0e, 0x0c10,
1961 0x0c12, 0x0c28,
1962 0x0c2a, 0x0c33,
1963 0x0c35, 0x0c39,
1964 0x0c3e, 0x0c44,
1965 0x0c46, 0x0c48,
1966 0x0c4a, 0x0c4d,
1967 0x0c55, 0x0c56,
1968 0x0c60, 0x0c61,
1969 0x0c66, 0x0c6f,
1970 0x0c82, 0x0c83,
1971 0x0c85, 0x0c8c,
1972 0x0c8e, 0x0c90,
1973 0x0c92, 0x0ca8,
1974 0x0caa, 0x0cb3,
1975 0x0cb5, 0x0cb9,
1976 0x0cbc, 0x0cc4,
1977 0x0cc6, 0x0cc8,
1978 0x0cca, 0x0ccd,
1979 0x0cd5, 0x0cd6,
1980 0x0cde, 0x0cde,
1981 0x0ce0, 0x0ce1,
1982 0x0ce6, 0x0cef,
1983 0x0d02, 0x0d03,
1984 0x0d05, 0x0d0c,
1985 0x0d0e, 0x0d10,
1986 0x0d12, 0x0d28,
1987 0x0d2a, 0x0d39,
1988 0x0d3e, 0x0d43,
1989 0x0d46, 0x0d48,
1990 0x0d4a, 0x0d4d,
1991 0x0d57, 0x0d57,
1992 0x0d60, 0x0d61,
1993 0x0d66, 0x0d6f,
1994 0x0d82, 0x0d83,
1995 0x0d85, 0x0d96,
1996 0x0d9a, 0x0db1,
1997 0x0db3, 0x0dbb,
1998 0x0dbd, 0x0dbd,
1999 0x0dc0, 0x0dc6,
2000 0x0dca, 0x0dca,
2001 0x0dcf, 0x0dd4,
2002 0x0dd6, 0x0dd6,
2003 0x0dd8, 0x0ddf,
2004 0x0df2, 0x0df4,
2005 0x0e01, 0x0e3a,
2006 0x0e3f, 0x0e5b,
2007 0x0e81, 0x0e82,
2008 0x0e84, 0x0e84,
2009 0x0e87, 0x0e88,
2010 0x0e8a, 0x0e8a,
2011 0x0e8d, 0x0e8d,
2012 0x0e94, 0x0e97,
2013 0x0e99, 0x0e9f,
2014 0x0ea1, 0x0ea3,
2015 0x0ea5, 0x0ea5,
2016 0x0ea7, 0x0ea7,
2017 0x0eaa, 0x0eab,
2018 0x0ead, 0x0eb9,
2019 0x0ebb, 0x0ebd,
2020 0x0ec0, 0x0ec4,
2021 0x0ec6, 0x0ec6,
2022 0x0ec8, 0x0ecd,
2023 0x0ed0, 0x0ed9,
2024 0x0edc, 0x0edd,
2025 0x0f00, 0x0f47,
2026 0x0f49, 0x0f6a,
2027 0x0f71, 0x0f8b,
2028 0x0f90, 0x0f97,
2029 0x0f99, 0x0fbc,
2030 0x0fbe, 0x0fcc,
2031 0x0fcf, 0x0fcf,
2032 0x1000, 0x1021,
2033 0x1023, 0x1027,
2034 0x1029, 0x102a,
2035 0x102c, 0x1032,
2036 0x1036, 0x1039,
2037 0x1040, 0x1059,
2038 0x10a0, 0x10c5,
2039 0x10d0, 0x10f8,
2040 0x10fb, 0x10fb,
2041 0x1100, 0x1159,
2042 0x115f, 0x11a2,
2043 0x11a8, 0x11f9,
2044 0x1200, 0x1206,
2045 0x1208, 0x1246,
2046 0x1248, 0x1248,
2047 0x124a, 0x124d,
2048 0x1250, 0x1256,
2049 0x1258, 0x1258,
2050 0x125a, 0x125d,
2051 0x1260, 0x1286,
2052 0x1288, 0x1288,
2053 0x128a, 0x128d,
2054 0x1290, 0x12ae,
2055 0x12b0, 0x12b0,
2056 0x12b2, 0x12b5,
2057 0x12b8, 0x12be,
2058 0x12c0, 0x12c0,
2059 0x12c2, 0x12c5,
2060 0x12c8, 0x12ce,
2061 0x12d0, 0x12d6,
2062 0x12d8, 0x12ee,
2063 0x12f0, 0x130e,
2064 0x1310, 0x1310,
2065 0x1312, 0x1315,
2066 0x1318, 0x131e,
2067 0x1320, 0x1346,
2068 0x1348, 0x135a,
2069 0x1361, 0x137c,
2070 0x13a0, 0x13f4,
2071 0x1401, 0x1676,
2072 0x1680, 0x169c,
2073 0x16a0, 0x16f0,
2074 0x1700, 0x170c,
2075 0x170e, 0x1714,
2076 0x1720, 0x1736,
2077 0x1740, 0x1753,
2078 0x1760, 0x176c,
2079 0x176e, 0x1770,
2080 0x1772, 0x1773,
2081 0x1780, 0x17dd,
2082 0x17e0, 0x17e9,
2083 0x17f0, 0x17f9,
2084 0x1800, 0x180e,
2085 0x1810, 0x1819,
2086 0x1820, 0x1877,
2087 0x1880, 0x18a9,
2088 0x1900, 0x191c,
2089 0x1920, 0x192b,
2090 0x1930, 0x193b,
2091 0x1940, 0x1940,
2092 0x1944, 0x196d,
2093 0x1970, 0x1974,
2094 0x19e0, 0x19ff,
2095 0x1d00, 0x1d6b,
2096 0x1e00, 0x1e9b,
2097 0x1ea0, 0x1ef9,
2098 0x1f00, 0x1f15,
2099 0x1f18, 0x1f1d,
2100 0x1f20, 0x1f45,
2101 0x1f48, 0x1f4d,
2102 0x1f50, 0x1f57,
2103 0x1f59, 0x1f59,
2104 0x1f5b, 0x1f5b,
2105 0x1f5d, 0x1f5d,
2106 0x1f5f, 0x1f7d,
2107 0x1f80, 0x1fb4,
2108 0x1fb6, 0x1fc4,
2109 0x1fc6, 0x1fd3,
2110 0x1fd6, 0x1fdb,
2111 0x1fdd, 0x1fef,
2112 0x1ff2, 0x1ff4,
2113 0x1ff6, 0x1ffe,
2114 0x2000, 0x2054,
2115 0x2057, 0x2057,
2116 0x205f, 0x2063,
2117 0x206a, 0x2071,
2118 0x2074, 0x208e,
2119 0x20a0, 0x20b1,
2120 0x20d0, 0x20ea,
2121 0x2100, 0x213b,
2122 0x213d, 0x214b,
2123 0x2153, 0x2183,
2124 0x2190, 0x23d0,
2125 0x2400, 0x2426,
2126 0x2440, 0x244a,
2127 0x2460, 0x2617,
2128 0x2619, 0x267d,
2129 0x2680, 0x2691,
2130 0x26a0, 0x26a1,
2131 0x2701, 0x2704,
2132 0x2706, 0x2709,
2133 0x270c, 0x2727,
2134 0x2729, 0x274b,
2135 0x274d, 0x274d,
2136 0x274f, 0x2752,
2137 0x2756, 0x2756,
2138 0x2758, 0x275e,
2139 0x2761, 0x2794,
2140 0x2798, 0x27af,
2141 0x27b1, 0x27be,
2142 0x27d0, 0x27eb,
2143 0x27f0, 0x2b0d,
2144 0x2e80, 0x2e99,
2145 0x2e9b, 0x2ef3,
2146 0x2f00, 0x2fd5,
2147 0x2ff0, 0x2ffb,
2148 0x3000, 0x303f,
2149 0x3041, 0x3096,
2150 0x3099, 0x30ff,
2151 0x3105, 0x312c,
2152 0x3131, 0x318e,
2153 0x3190, 0x31b7,
2154 0x31f0, 0x321e,
2155 0x3220, 0x3243,
2156 0x3250, 0x327d,
2157 0x327f, 0x32fe,
2158 0x3300, 0x4db5,
2159 0x4dc0, 0x9fa5,
2160 0xa000, 0xa48c,
2161 0xa490, 0xa4c6,
2162 0xac00, 0xd7a3,
2163 0xe000, 0xfa2d,
2164 0xfa30, 0xfa6a,
2165 0xfb00, 0xfb06,
2166 0xfb13, 0xfb17,
2167 0xfb1d, 0xfb36,
2168 0xfb38, 0xfb3c,
2169 0xfb3e, 0xfb3e,
2170 0xfb40, 0xfb41,
2171 0xfb43, 0xfb44,
2172 0xfb46, 0xfbb1,
2173 0xfbd3, 0xfd3f,
2174 0xfd50, 0xfd8f,
2175 0xfd92, 0xfdc7,
2176 0xfdf0, 0xfdfd,
2177 0xfe00, 0xfe0f,
2178 0xfe20, 0xfe23,
2179 0xfe30, 0xfe52,
2180 0xfe54, 0xfe66,
2181 0xfe68, 0xfe6b,
2182 0xfe70, 0xfe74,
2183 0xfe76, 0xfefc,
2184 0xfeff, 0xfeff,
2185 0xff01, 0xffbe,
2186 0xffc2, 0xffc7,
2187 0xffca, 0xffcf,
2188 0xffd2, 0xffd7,
2189 0xffda, 0xffdc,
2190 0xffe0, 0xffe6,
2191 0xffe8, 0xffee,
2192 0xfff9, 0xfffd,
2193 0x10000, 0x1000b,
2194 0x1000d, 0x10026,
2195 0x10028, 0x1003a,
2196 0x1003c, 0x1003d,
2197 0x1003f, 0x1004d,
2198 0x10050, 0x1005d,
2199 0x10080, 0x100fa,
2200 0x10100, 0x10102,
2201 0x10107, 0x10133,
2202 0x10137, 0x1013f,
2203 0x10300, 0x1031e,
2204 0x10320, 0x10323,
2205 0x10330, 0x1034a,
2206 0x10380, 0x1039d,
2207 0x1039f, 0x1039f,
2208 0x10400, 0x1049d,
2209 0x104a0, 0x104a9,
2210 0x10800, 0x10805,
2211 0x10808, 0x10808,
2212 0x1080a, 0x10835,
2213 0x10837, 0x10838,
2214 0x1083c, 0x1083c,
2215 0x1083f, 0x1083f,
2216 0x1d000, 0x1d0f5,
2217 0x1d100, 0x1d126,
2218 0x1d12a, 0x1d1dd,
2219 0x1d300, 0x1d356,
2220 0x1d400, 0x1d454,
2221 0x1d456, 0x1d49c,
2222 0x1d49e, 0x1d49f,
2223 0x1d4a2, 0x1d4a2,
2224 0x1d4a5, 0x1d4a6,
2225 0x1d4a9, 0x1d4ac,
2226 0x1d4ae, 0x1d4b9,
2227 0x1d4bb, 0x1d4bb,
2228 0x1d4bd, 0x1d4c3,
2229 0x1d4c5, 0x1d505,
2230 0x1d507, 0x1d50a,
2231 0x1d50d, 0x1d514,
2232 0x1d516, 0x1d51c,
2233 0x1d51e, 0x1d539,
2234 0x1d53b, 0x1d53e,
2235 0x1d540, 0x1d544,
2236 0x1d546, 0x1d546,
2237 0x1d54a, 0x1d550,
2238 0x1d552, 0x1d6a3,
2239 0x1d6a8, 0x1d7c9,
2240 0x1d7ce, 0x1d7ff,
2241 0x20000, 0x2a6d6,
2242 0x2f800, 0x2fa1d,
2243 0xe0001, 0xe0001,
2244 0xe0020, 0xe007f,
2245 0xe0100, 0xe01ef,
2246 0xf0000, 0xffffd,
2247 0x100000, 0x10fffd
2248 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
2249 }; /* end of CRPrint */
2250
2251 static const OnigCodePoint CRPunct[] = {
2252 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
2253 86,
2254 #else
2255 14,
2256 #endif
2257 0x0021, 0x0023,
2258 0x0025, 0x002a,
2259 0x002c, 0x002f,
2260 0x003a, 0x003b,
2261 0x003f, 0x0040,
2262 0x005b, 0x005d,
2263 0x005f, 0x005f,
2264 0x007b, 0x007b,
2265 0x007d, 0x007d,
2266 0x00a1, 0x00a1,
2267 0x00ab, 0x00ab,
2268 0x00b7, 0x00b7,
2269 0x00bb, 0x00bb,
2270 0x00bf, 0x00bf
2271 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
2272 ,
2273 0x037e, 0x037e,
2274 0x0387, 0x0387,
2275 0x055a, 0x055f,
2276 0x0589, 0x058a,
2277 0x05be, 0x05be,
2278 0x05c0, 0x05c0,
2279 0x05c3, 0x05c3,
2280 0x05f3, 0x05f4,
2281 0x060c, 0x060d,
2282 0x061b, 0x061b,
2283 0x061f, 0x061f,
2284 0x066a, 0x066d,
2285 0x06d4, 0x06d4,
2286 0x0700, 0x070d,
2287 0x0964, 0x0965,
2288 0x0970, 0x0970,
2289 0x0df4, 0x0df4,
2290 0x0e4f, 0x0e4f,
2291 0x0e5a, 0x0e5b,
2292 0x0f04, 0x0f12,
2293 0x0f3a, 0x0f3d,
2294 0x0f85, 0x0f85,
2295 0x104a, 0x104f,
2296 0x10fb, 0x10fb,
2297 0x1361, 0x1368,
2298 0x166d, 0x166e,
2299 0x169b, 0x169c,
2300 0x16eb, 0x16ed,
2301 0x1735, 0x1736,
2302 0x17d4, 0x17d6,
2303 0x17d8, 0x17da,
2304 0x1800, 0x180a,
2305 0x1944, 0x1945,
2306 0x2010, 0x2027,
2307 0x2030, 0x2043,
2308 0x2045, 0x2051,
2309 0x2053, 0x2054,
2310 0x2057, 0x2057,
2311 0x207d, 0x207e,
2312 0x208d, 0x208e,
2313 0x2329, 0x232a,
2314 0x23b4, 0x23b6,
2315 0x2768, 0x2775,
2316 0x27e6, 0x27eb,
2317 0x2983, 0x2998,
2318 0x29d8, 0x29db,
2319 0x29fc, 0x29fd,
2320 0x3001, 0x3003,
2321 0x3008, 0x3011,
2322 0x3014, 0x301f,
2323 0x3030, 0x3030,
2324 0x303d, 0x303d,
2325 0x30a0, 0x30a0,
2326 0x30fb, 0x30fb,
2327 0xfd3e, 0xfd3f,
2328 0xfe30, 0xfe52,
2329 0xfe54, 0xfe61,
2330 0xfe63, 0xfe63,
2331 0xfe68, 0xfe68,
2332 0xfe6a, 0xfe6b,
2333 0xff01, 0xff03,
2334 0xff05, 0xff0a,
2335 0xff0c, 0xff0f,
2336 0xff1a, 0xff1b,
2337 0xff1f, 0xff20,
2338 0xff3b, 0xff3d,
2339 0xff3f, 0xff3f,
2340 0xff5b, 0xff5b,
2341 0xff5d, 0xff5d,
2342 0xff5f, 0xff65,
2343 0x10100, 0x10101,
2344 0x1039f, 0x1039f
2345 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
2346 }; /* end of CRPunct */
2347
2348 static const OnigCodePoint CRSpace[] = {
2349 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
2350 11,
2351 #else
2352 4,
2353 #endif
2354 0x0009, 0x000d,
2355 0x0020, 0x0020,
2356 0x0085, 0x0085,
2357 0x00a0, 0x00a0
2358 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
2359 ,
2360 0x1680, 0x1680,
2361 0x180e, 0x180e,
2362 0x2000, 0x200a,
2363 0x2028, 0x2029,
2364 0x202f, 0x202f,
2365 0x205f, 0x205f,
2366 0x3000, 0x3000
2367 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
2368 }; /* end of CRSpace */
2369
2370 static const OnigCodePoint CRUpper[] = {
2371 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
2372 421,
2373 #else
2374 3,
2375 #endif
2376 0x0041, 0x005a,
2377 0x00c0, 0x00d6,
2378 0x00d8, 0x00de
2379 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
2380 ,
2381 0x0100, 0x0100,
2382 0x0102, 0x0102,
2383 0x0104, 0x0104,
2384 0x0106, 0x0106,
2385 0x0108, 0x0108,
2386 0x010a, 0x010a,
2387 0x010c, 0x010c,
2388 0x010e, 0x010e,
2389 0x0110, 0x0110,
2390 0x0112, 0x0112,
2391 0x0114, 0x0114,
2392 0x0116, 0x0116,
2393 0x0118, 0x0118,
2394 0x011a, 0x011a,
2395 0x011c, 0x011c,
2396 0x011e, 0x011e,
2397 0x0120, 0x0120,
2398 0x0122, 0x0122,
2399 0x0124, 0x0124,
2400 0x0126, 0x0126,
2401 0x0128, 0x0128,
2402 0x012a, 0x012a,
2403 0x012c, 0x012c,
2404 0x012e, 0x012e,
2405 0x0130, 0x0130,
2406 0x0132, 0x0132,
2407 0x0134, 0x0134,
2408 0x0136, 0x0136,
2409 0x0139, 0x0139,
2410 0x013b, 0x013b,
2411 0x013d, 0x013d,
2412 0x013f, 0x013f,
2413 0x0141, 0x0141,
2414 0x0143, 0x0143,
2415 0x0145, 0x0145,
2416 0x0147, 0x0147,
2417 0x014a, 0x014a,
2418 0x014c, 0x014c,
2419 0x014e, 0x014e,
2420 0x0150, 0x0150,
2421 0x0152, 0x0152,
2422 0x0154, 0x0154,
2423 0x0156, 0x0156,
2424 0x0158, 0x0158,
2425 0x015a, 0x015a,
2426 0x015c, 0x015c,
2427 0x015e, 0x015e,
2428 0x0160, 0x0160,
2429 0x0162, 0x0162,
2430 0x0164, 0x0164,
2431 0x0166, 0x0166,
2432 0x0168, 0x0168,
2433 0x016a, 0x016a,
2434 0x016c, 0x016c,
2435 0x016e, 0x016e,
2436 0x0170, 0x0170,
2437 0x0172, 0x0172,
2438 0x0174, 0x0174,
2439 0x0176, 0x0176,
2440 0x0178, 0x0179,
2441 0x017b, 0x017b,
2442 0x017d, 0x017d,
2443 0x0181, 0x0182,
2444 0x0184, 0x0184,
2445 0x0186, 0x0187,
2446 0x0189, 0x018b,
2447 0x018e, 0x0191,
2448 0x0193, 0x0194,
2449 0x0196, 0x0198,
2450 0x019c, 0x019d,
2451 0x019f, 0x01a0,
2452 0x01a2, 0x01a2,
2453 0x01a4, 0x01a4,
2454 0x01a6, 0x01a7,
2455 0x01a9, 0x01a9,
2456 0x01ac, 0x01ac,
2457 0x01ae, 0x01af,
2458 0x01b1, 0x01b3,
2459 0x01b5, 0x01b5,
2460 0x01b7, 0x01b8,
2461 0x01bc, 0x01bc,
2462 0x01c4, 0x01c4,
2463 0x01c7, 0x01c7,
2464 0x01ca, 0x01ca,
2465 0x01cd, 0x01cd,
2466 0x01cf, 0x01cf,
2467 0x01d1, 0x01d1,
2468 0x01d3, 0x01d3,
2469 0x01d5, 0x01d5,
2470 0x01d7, 0x01d7,
2471 0x01d9, 0x01d9,
2472 0x01db, 0x01db,
2473 0x01de, 0x01de,
2474 0x01e0, 0x01e0,
2475 0x01e2, 0x01e2,
2476 0x01e4, 0x01e4,
2477 0x01e6, 0x01e6,
2478 0x01e8, 0x01e8,
2479 0x01ea, 0x01ea,
2480 0x01ec, 0x01ec,
2481 0x01ee, 0x01ee,
2482 0x01f1, 0x01f1,
2483 0x01f4, 0x01f4,
2484 0x01f6, 0x01f8,
2485 0x01fa, 0x01fa,
2486 0x01fc, 0x01fc,
2487 0x01fe, 0x01fe,
2488 0x0200, 0x0200,
2489 0x0202, 0x0202,
2490 0x0204, 0x0204,
2491 0x0206, 0x0206,
2492 0x0208, 0x0208,
2493 0x020a, 0x020a,
2494 0x020c, 0x020c,
2495 0x020e, 0x020e,
2496 0x0210, 0x0210,
2497 0x0212, 0x0212,
2498 0x0214, 0x0214,
2499 0x0216, 0x0216,
2500 0x0218, 0x0218,
2501 0x021a, 0x021a,
2502 0x021c, 0x021c,
2503 0x021e, 0x021e,
2504 0x0220, 0x0220,
2505 0x0222, 0x0222,
2506 0x0224, 0x0224,
2507 0x0226, 0x0226,
2508 0x0228, 0x0228,
2509 0x022a, 0x022a,
2510 0x022c, 0x022c,
2511 0x022e, 0x022e,
2512 0x0230, 0x0230,
2513 0x0232, 0x0232,
2514 0x0386, 0x0386,
2515 0x0388, 0x038a,
2516 0x038c, 0x038c,
2517 0x038e, 0x038f,
2518 0x0391, 0x03a1,
2519 0x03a3, 0x03ab,
2520 0x03d2, 0x03d4,
2521 0x03d8, 0x03d8,
2522 0x03da, 0x03da,
2523 0x03dc, 0x03dc,
2524 0x03de, 0x03de,
2525 0x03e0, 0x03e0,
2526 0x03e2, 0x03e2,
2527 0x03e4, 0x03e4,
2528 0x03e6, 0x03e6,
2529 0x03e8, 0x03e8,
2530 0x03ea, 0x03ea,
2531 0x03ec, 0x03ec,
2532 0x03ee, 0x03ee,
2533 0x03f4, 0x03f4,
2534 0x03f7, 0x03f7,
2535 0x03f9, 0x03fa,
2536 0x0400, 0x042f,
2537 0x0460, 0x0460,
2538 0x0462, 0x0462,
2539 0x0464, 0x0464,
2540 0x0466, 0x0466,
2541 0x0468, 0x0468,
2542 0x046a, 0x046a,
2543 0x046c, 0x046c,
2544 0x046e, 0x046e,
2545 0x0470, 0x0470,
2546 0x0472, 0x0472,
2547 0x0474, 0x0474,
2548 0x0476, 0x0476,
2549 0x0478, 0x0478,
2550 0x047a, 0x047a,
2551 0x047c, 0x047c,
2552 0x047e, 0x047e,
2553 0x0480, 0x0480,
2554 0x048a, 0x048a,
2555 0x048c, 0x048c,
2556 0x048e, 0x048e,
2557 0x0490, 0x0490,
2558 0x0492, 0x0492,
2559 0x0494, 0x0494,
2560 0x0496, 0x0496,
2561 0x0498, 0x0498,
2562 0x049a, 0x049a,
2563 0x049c, 0x049c,
2564 0x049e, 0x049e,
2565 0x04a0, 0x04a0,
2566 0x04a2, 0x04a2,
2567 0x04a4, 0x04a4,
2568 0x04a6, 0x04a6,
2569 0x04a8, 0x04a8,
2570 0x04aa, 0x04aa,
2571 0x04ac, 0x04ac,
2572 0x04ae, 0x04ae,
2573 0x04b0, 0x04b0,
2574 0x04b2, 0x04b2,
2575 0x04b4, 0x04b4,
2576 0x04b6, 0x04b6,
2577 0x04b8, 0x04b8,
2578 0x04ba, 0x04ba,
2579 0x04bc, 0x04bc,
2580 0x04be, 0x04be,
2581 0x04c0, 0x04c1,
2582 0x04c3, 0x04c3,
2583 0x04c5, 0x04c5,
2584 0x04c7, 0x04c7,
2585 0x04c9, 0x04c9,
2586 0x04cb, 0x04cb,
2587 0x04cd, 0x04cd,
2588 0x04d0, 0x04d0,
2589 0x04d2, 0x04d2,
2590 0x04d4, 0x04d4,
2591 0x04d6, 0x04d6,
2592 0x04d8, 0x04d8,
2593 0x04da, 0x04da,
2594 0x04dc, 0x04dc,
2595 0x04de, 0x04de,
2596 0x04e0, 0x04e0,
2597 0x04e2, 0x04e2,
2598 0x04e4, 0x04e4,
2599 0x04e6, 0x04e6,
2600 0x04e8, 0x04e8,
2601 0x04ea, 0x04ea,
2602 0x04ec, 0x04ec,
2603 0x04ee, 0x04ee,
2604 0x04f0, 0x04f0,
2605 0x04f2, 0x04f2,
2606 0x04f4, 0x04f4,
2607 0x04f8, 0x04f8,
2608 0x0500, 0x0500,
2609 0x0502, 0x0502,
2610 0x0504, 0x0504,
2611 0x0506, 0x0506,
2612 0x0508, 0x0508,
2613 0x050a, 0x050a,
2614 0x050c, 0x050c,
2615 0x050e, 0x050e,
2616 0x0531, 0x0556,
2617 0x10a0, 0x10c5,
2618 0x1e00, 0x1e00,
2619 0x1e02, 0x1e02,
2620 0x1e04, 0x1e04,
2621 0x1e06, 0x1e06,
2622 0x1e08, 0x1e08,
2623 0x1e0a, 0x1e0a,
2624 0x1e0c, 0x1e0c,
2625 0x1e0e, 0x1e0e,
2626 0x1e10, 0x1e10,
2627 0x1e12, 0x1e12,
2628 0x1e14, 0x1e14,
2629 0x1e16, 0x1e16,
2630 0x1e18, 0x1e18,
2631 0x1e1a, 0x1e1a,
2632 0x1e1c, 0x1e1c,
2633 0x1e1e, 0x1e1e,
2634 0x1e20, 0x1e20,
2635 0x1e22, 0x1e22,
2636 0x1e24, 0x1e24,
2637 0x1e26, 0x1e26,
2638 0x1e28, 0x1e28,
2639 0x1e2a, 0x1e2a,
2640 0x1e2c, 0x1e2c,
2641 0x1e2e, 0x1e2e,
2642 0x1e30, 0x1e30,
2643 0x1e32, 0x1e32,
2644 0x1e34, 0x1e34,
2645 0x1e36, 0x1e36,
2646 0x1e38, 0x1e38,
2647 0x1e3a, 0x1e3a,
2648 0x1e3c, 0x1e3c,
2649 0x1e3e, 0x1e3e,
2650 0x1e40, 0x1e40,
2651 0x1e42, 0x1e42,
2652 0x1e44, 0x1e44,
2653 0x1e46, 0x1e46,
2654 0x1e48, 0x1e48,
2655 0x1e4a, 0x1e4a,
2656 0x1e4c, 0x1e4c,
2657 0x1e4e, 0x1e4e,
2658 0x1e50, 0x1e50,
2659 0x1e52, 0x1e52,
2660 0x1e54, 0x1e54,
2661 0x1e56, 0x1e56,
2662 0x1e58, 0x1e58,
2663 0x1e5a, 0x1e5a,
2664 0x1e5c, 0x1e5c,
2665 0x1e5e, 0x1e5e,
2666 0x1e60, 0x1e60,
2667 0x1e62, 0x1e62,
2668 0x1e64, 0x1e64,
2669 0x1e66, 0x1e66,
2670 0x1e68, 0x1e68,
2671 0x1e6a, 0x1e6a,
2672 0x1e6c, 0x1e6c,
2673 0x1e6e, 0x1e6e,
2674 0x1e70, 0x1e70,
2675 0x1e72, 0x1e72,
2676 0x1e74, 0x1e74,
2677 0x1e76, 0x1e76,
2678 0x1e78, 0x1e78,
2679 0x1e7a, 0x1e7a,
2680 0x1e7c, 0x1e7c,
2681 0x1e7e, 0x1e7e,
2682 0x1e80, 0x1e80,
2683 0x1e82, 0x1e82,
2684 0x1e84, 0x1e84,
2685 0x1e86, 0x1e86,
2686 0x1e88, 0x1e88,
2687 0x1e8a, 0x1e8a,
2688 0x1e8c, 0x1e8c,
2689 0x1e8e, 0x1e8e,
2690 0x1e90, 0x1e90,
2691 0x1e92, 0x1e92,
2692 0x1e94, 0x1e94,
2693 0x1ea0, 0x1ea0,
2694 0x1ea2, 0x1ea2,
2695 0x1ea4, 0x1ea4,
2696 0x1ea6, 0x1ea6,
2697 0x1ea8, 0x1ea8,
2698 0x1eaa, 0x1eaa,
2699 0x1eac, 0x1eac,
2700 0x1eae, 0x1eae,
2701 0x1eb0, 0x1eb0,
2702 0x1eb2, 0x1eb2,
2703 0x1eb4, 0x1eb4,
2704 0x1eb6, 0x1eb6,
2705 0x1eb8, 0x1eb8,
2706 0x1eba, 0x1eba,
2707 0x1ebc, 0x1ebc,
2708 0x1ebe, 0x1ebe,
2709 0x1ec0, 0x1ec0,
2710 0x1ec2, 0x1ec2,
2711 0x1ec4, 0x1ec4,
2712 0x1ec6, 0x1ec6,
2713 0x1ec8, 0x1ec8,
2714 0x1eca, 0x1eca,
2715 0x1ecc, 0x1ecc,
2716 0x1ece, 0x1ece,
2717 0x1ed0, 0x1ed0,
2718 0x1ed2, 0x1ed2,
2719 0x1ed4, 0x1ed4,
2720 0x1ed6, 0x1ed6,
2721 0x1ed8, 0x1ed8,
2722 0x1eda, 0x1eda,
2723 0x1edc, 0x1edc,
2724 0x1ede, 0x1ede,
2725 0x1ee0, 0x1ee0,
2726 0x1ee2, 0x1ee2,
2727 0x1ee4, 0x1ee4,
2728 0x1ee6, 0x1ee6,
2729 0x1ee8, 0x1ee8,
2730 0x1eea, 0x1eea,
2731 0x1eec, 0x1eec,
2732 0x1eee, 0x1eee,
2733 0x1ef0, 0x1ef0,
2734 0x1ef2, 0x1ef2,
2735 0x1ef4, 0x1ef4,
2736 0x1ef6, 0x1ef6,
2737 0x1ef8, 0x1ef8,
2738 0x1f08, 0x1f0f,
2739 0x1f18, 0x1f1d,
2740 0x1f28, 0x1f2f,
2741 0x1f38, 0x1f3f,
2742 0x1f48, 0x1f4d,
2743 0x1f59, 0x1f59,
2744 0x1f5b, 0x1f5b,
2745 0x1f5d, 0x1f5d,
2746 0x1f5f, 0x1f5f,
2747 0x1f68, 0x1f6f,
2748 0x1fb8, 0x1fbb,
2749 0x1fc8, 0x1fcb,
2750 0x1fd8, 0x1fdb,
2751 0x1fe8, 0x1fec,
2752 0x1ff8, 0x1ffb,
2753 0x2102, 0x2102,
2754 0x2107, 0x2107,
2755 0x210b, 0x210d,
2756 0x2110, 0x2112,
2757 0x2115, 0x2115,
2758 0x2119, 0x211d,
2759 0x2124, 0x2124,
2760 0x2126, 0x2126,
2761 0x2128, 0x2128,
2762 0x212a, 0x212d,
2763 0x2130, 0x2131,
2764 0x2133, 0x2133,
2765 0x213e, 0x213f,
2766 0x2145, 0x2145,
2767 0xff21, 0xff3a,
2768 0x10400, 0x10427,
2769 0x1d400, 0x1d419,
2770 0x1d434, 0x1d44d,
2771 0x1d468, 0x1d481,
2772 0x1d49c, 0x1d49c,
2773 0x1d49e, 0x1d49f,
2774 0x1d4a2, 0x1d4a2,
2775 0x1d4a5, 0x1d4a6,
2776 0x1d4a9, 0x1d4ac,
2777 0x1d4ae, 0x1d4b5,
2778 0x1d4d0, 0x1d4e9,
2779 0x1d504, 0x1d505,
2780 0x1d507, 0x1d50a,
2781 0x1d50d, 0x1d514,
2782 0x1d516, 0x1d51c,
2783 0x1d538, 0x1d539,
2784 0x1d53b, 0x1d53e,
2785 0x1d540, 0x1d544,
2786 0x1d546, 0x1d546,
2787 0x1d54a, 0x1d550,
2788 0x1d56c, 0x1d585,
2789 0x1d5a0, 0x1d5b9,
2790 0x1d5d4, 0x1d5ed,
2791 0x1d608, 0x1d621,
2792 0x1d63c, 0x1d655,
2793 0x1d670, 0x1d689,
2794 0x1d6a8, 0x1d6c0,
2795 0x1d6e2, 0x1d6fa,
2796 0x1d71c, 0x1d734,
2797 0x1d756, 0x1d76e,
2798 0x1d790, 0x1d7a8
2799 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
2800 }; /* end of CRUpper */
2801
2802 static const OnigCodePoint CRXDigit[] = {
2803 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
2804 3,
2805 #else
2806 3,
2807 #endif
2808 0x0030, 0x0039,
2809 0x0041, 0x0046,
2810 0x0061, 0x0066
2811 };
2812
2813 static const OnigCodePoint CRASCII[] = {
2814 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
2815 1,
2816 #else
2817 1,
2818 #endif
2819 0x0000, 0x007f
2820 };
2821
2822 static const OnigCodePoint CRWord[] = {
2823 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
2824 436,
2825 #else
2826 12,
2827 #endif
2828 0x0030, 0x0039,
2829 0x0041, 0x005a,
2830 0x005f, 0x005f,
2831 0x0061, 0x007a,
2832 0x00aa, 0x00aa,
2833 0x00b2, 0x00b3,
2834 0x00b5, 0x00b5,
2835 0x00b9, 0x00ba,
2836 0x00bc, 0x00be,
2837 0x00c0, 0x00d6,
2838 0x00d8, 0x00f6,
2839 #ifndef USE_UNICODE_FULL_RANGE_CTYPE
2840 0x00f8, 0x7fffffff
2841 #else /* not USE_UNICODE_FULL_RANGE_CTYPE */
2842 0x00f8, 0x0236,
2843 0x0250, 0x02c1,
2844 0x02c6, 0x02d1,
2845 0x02e0, 0x02e4,
2846 0x02ee, 0x02ee,
2847 0x0300, 0x0357,
2848 0x035d, 0x036f,
2849 0x037a, 0x037a,
2850 0x0386, 0x0386,
2851 0x0388, 0x038a,
2852 0x038c, 0x038c,
2853 0x038e, 0x03a1,
2854 0x03a3, 0x03ce,
2855 0x03d0, 0x03f5,
2856 0x03f7, 0x03fb,
2857 0x0400, 0x0481,
2858 0x0483, 0x0486,
2859 0x0488, 0x04ce,
2860 0x04d0, 0x04f5,
2861 0x04f8, 0x04f9,
2862 0x0500, 0x050f,
2863 0x0531, 0x0556,
2864 0x0559, 0x0559,
2865 0x0561, 0x0587,
2866 0x0591, 0x05a1,
2867 0x05a3, 0x05b9,
2868 0x05bb, 0x05bd,
2869 0x05bf, 0x05bf,
2870 0x05c1, 0x05c2,
2871 0x05c4, 0x05c4,
2872 0x05d0, 0x05ea,
2873 0x05f0, 0x05f2,
2874 0x0610, 0x0615,
2875 0x0621, 0x063a,
2876 0x0640, 0x0658,
2877 0x0660, 0x0669,
2878 0x066e, 0x06d3,
2879 0x06d5, 0x06dc,
2880 0x06de, 0x06e8,
2881 0x06ea, 0x06fc,
2882 0x06ff, 0x06ff,
2883 0x0710, 0x074a,
2884 0x074d, 0x074f,
2885 0x0780, 0x07b1,
2886 0x0901, 0x0939,
2887 0x093c, 0x094d,
2888 0x0950, 0x0954,
2889 0x0958, 0x0963,
2890 0x0966, 0x096f,
2891 0x0981, 0x0983,
2892 0x0985, 0x098c,
2893 0x098f, 0x0990,
2894 0x0993, 0x09a8,
2895 0x09aa, 0x09b0,
2896 0x09b2, 0x09b2,
2897 0x09b6, 0x09b9,
2898 0x09bc, 0x09c4,
2899 0x09c7, 0x09c8,
2900 0x09cb, 0x09cd,
2901 0x09d7, 0x09d7,
2902 0x09dc, 0x09dd,
2903 0x09df, 0x09e3,
2904 0x09e6, 0x09f1,
2905 0x09f4, 0x09f9,
2906 0x0a01, 0x0a03,
2907 0x0a05, 0x0a0a,
2908 0x0a0f, 0x0a10,
2909 0x0a13, 0x0a28,
2910 0x0a2a, 0x0a30,
2911 0x0a32, 0x0a33,
2912 0x0a35, 0x0a36,
2913 0x0a38, 0x0a39,
2914 0x0a3c, 0x0a3c,
2915 0x0a3e, 0x0a42,
2916 0x0a47, 0x0a48,
2917 0x0a4b, 0x0a4d,
2918 0x0a59, 0x0a5c,
2919 0x0a5e, 0x0a5e,
2920 0x0a66, 0x0a74,
2921 0x0a81, 0x0a83,
2922 0x0a85, 0x0a8d,
2923 0x0a8f, 0x0a91,
2924 0x0a93, 0x0aa8,
2925 0x0aaa, 0x0ab0,
2926 0x0ab2, 0x0ab3,
2927 0x0ab5, 0x0ab9,
2928 0x0abc, 0x0ac5,
2929 0x0ac7, 0x0ac9,
2930 0x0acb, 0x0acd,
2931 0x0ad0, 0x0ad0,
2932 0x0ae0, 0x0ae3,
2933 0x0ae6, 0x0aef,
2934 0x0b01, 0x0b03,
2935 0x0b05, 0x0b0c,
2936 0x0b0f, 0x0b10,
2937 0x0b13, 0x0b28,
2938 0x0b2a, 0x0b30,
2939 0x0b32, 0x0b33,
2940 0x0b35, 0x0b39,
2941 0x0b3c, 0x0b43,
2942 0x0b47, 0x0b48,
2943 0x0b4b, 0x0b4d,
2944 0x0b56, 0x0b57,
2945 0x0b5c, 0x0b5d,
2946 0x0b5f, 0x0b61,
2947 0x0b66, 0x0b6f,
2948 0x0b71, 0x0b71,
2949 0x0b82, 0x0b83,
2950 0x0b85, 0x0b8a,
2951 0x0b8e, 0x0b90,
2952 0x0b92, 0x0b95,
2953 0x0b99, 0x0b9a,
2954 0x0b9c, 0x0b9c,
2955 0x0b9e, 0x0b9f,
2956 0x0ba3, 0x0ba4,
2957 0x0ba8, 0x0baa,
2958 0x0bae, 0x0bb5,
2959 0x0bb7, 0x0bb9,
2960 0x0bbe, 0x0bc2,
2961 0x0bc6, 0x0bc8,
2962 0x0bca, 0x0bcd,
2963 0x0bd7, 0x0bd7,
2964 0x0be7, 0x0bf2,
2965 0x0c01, 0x0c03,
2966 0x0c05, 0x0c0c,
2967 0x0c0e, 0x0c10,
2968 0x0c12, 0x0c28,
2969 0x0c2a, 0x0c33,
2970 0x0c35, 0x0c39,
2971 0x0c3e, 0x0c44,
2972 0x0c46, 0x0c48,
2973 0x0c4a, 0x0c4d,
2974 0x0c55, 0x0c56,
2975 0x0c60, 0x0c61,
2976 0x0c66, 0x0c6f,
2977 0x0c82, 0x0c83,
2978 0x0c85, 0x0c8c,
2979 0x0c8e, 0x0c90,
2980 0x0c92, 0x0ca8,
2981 0x0caa, 0x0cb3,
2982 0x0cb5, 0x0cb9,
2983 0x0cbc, 0x0cc4,
2984 0x0cc6, 0x0cc8,
2985 0x0cca, 0x0ccd,
2986 0x0cd5, 0x0cd6,
2987 0x0cde, 0x0cde,
2988 0x0ce0, 0x0ce1,
2989 0x0ce6, 0x0cef,
2990 0x0d02, 0x0d03,
2991 0x0d05, 0x0d0c,
2992 0x0d0e, 0x0d10,
2993 0x0d12, 0x0d28,
2994 0x0d2a, 0x0d39,
2995 0x0d3e, 0x0d43,
2996 0x0d46, 0x0d48,
2997 0x0d4a, 0x0d4d,
2998 0x0d57, 0x0d57,
2999 0x0d60, 0x0d61,
3000 0x0d66, 0x0d6f,
3001 0x0d82, 0x0d83,
3002 0x0d85, 0x0d96,
3003 0x0d9a, 0x0db1,
3004 0x0db3, 0x0dbb,
3005 0x0dbd, 0x0dbd,
3006 0x0dc0, 0x0dc6,
3007 0x0dca, 0x0dca,
3008 0x0dcf, 0x0dd4,
3009 0x0dd6, 0x0dd6,
3010 0x0dd8, 0x0ddf,
3011 0x0df2, 0x0df3,
3012 0x0e01, 0x0e3a,
3013 0x0e40, 0x0e4e,
3014 0x0e50, 0x0e59,
3015 0x0e81, 0x0e82,
3016 0x0e84, 0x0e84,
3017 0x0e87, 0x0e88,
3018 0x0e8a, 0x0e8a,
3019 0x0e8d, 0x0e8d,
3020 0x0e94, 0x0e97,
3021 0x0e99, 0x0e9f,
3022 0x0ea1, 0x0ea3,
3023 0x0ea5, 0x0ea5,
3024 0x0ea7, 0x0ea7,
3025 0x0eaa, 0x0eab,
3026 0x0ead, 0x0eb9,
3027 0x0ebb, 0x0ebd,
3028 0x0ec0, 0x0ec4,
3029 0x0ec6, 0x0ec6,
3030 0x0ec8, 0x0ecd,
3031 0x0ed0, 0x0ed9,
3032 0x0edc, 0x0edd,
3033 0x0f00, 0x0f00,
3034 0x0f18, 0x0f19,
3035 0x0f20, 0x0f33,
3036 0x0f35, 0x0f35,
3037 0x0f37, 0x0f37,
3038 0x0f39, 0x0f39,
3039 0x0f3e, 0x0f47,
3040 0x0f49, 0x0f6a,
3041 0x0f71, 0x0f84,
3042 0x0f86, 0x0f8b,
3043 0x0f90, 0x0f97,
3044 0x0f99, 0x0fbc,
3045 0x0fc6, 0x0fc6,
3046 0x1000, 0x1021,
3047 0x1023, 0x1027,
3048 0x1029, 0x102a,
3049 0x102c, 0x1032,
3050 0x1036, 0x1039,
3051 0x1040, 0x1049,
3052 0x1050, 0x1059,
3053 0x10a0, 0x10c5,
3054 0x10d0, 0x10f8,
3055 0x1100, 0x1159,
3056 0x115f, 0x11a2,
3057 0x11a8, 0x11f9,
3058 0x1200, 0x1206,
3059 0x1208, 0x1246,
3060 0x1248, 0x1248,
3061 0x124a, 0x124d,
3062 0x1250, 0x1256,
3063 0x1258, 0x1258,
3064 0x125a, 0x125d,
3065 0x1260, 0x1286,
3066 0x1288, 0x1288,
3067 0x128a, 0x128d,
3068 0x1290, 0x12ae,
3069 0x12b0, 0x12b0,
3070 0x12b2, 0x12b5,
3071 0x12b8, 0x12be,
3072 0x12c0, 0x12c0,
3073 0x12c2, 0x12c5,
3074 0x12c8, 0x12ce,
3075 0x12d0, 0x12d6,
3076 0x12d8, 0x12ee,
3077 0x12f0, 0x130e,
3078 0x1310, 0x1310,
3079 0x1312, 0x1315,
3080 0x1318, 0x131e,
3081 0x1320, 0x1346,
3082 0x1348, 0x135a,
3083 0x1369, 0x137c,
3084 0x13a0, 0x13f4,
3085 0x1401, 0x166c,
3086 0x166f, 0x1676,
3087 0x1681, 0x169a,
3088 0x16a0, 0x16ea,
3089 0x16ee, 0x16f0,
3090 0x1700, 0x170c,
3091 0x170e, 0x1714,
3092 0x1720, 0x1734,
3093 0x1740, 0x1753,
3094 0x1760, 0x176c,
3095 0x176e, 0x1770,
3096 0x1772, 0x1773,
3097 0x1780, 0x17b3,
3098 0x17b6, 0x17d3,
3099 0x17d7, 0x17d7,
3100 0x17dc, 0x17dd,
3101 0x17e0, 0x17e9,
3102 0x17f0, 0x17f9,
3103 0x180b, 0x180d,
3104 0x1810, 0x1819,
3105 0x1820, 0x1877,
3106 0x1880, 0x18a9,
3107 0x1900, 0x191c,
3108 0x1920, 0x192b,
3109 0x1930, 0x193b,
3110 0x1946, 0x196d,
3111 0x1970, 0x1974,
3112 0x1d00, 0x1d6b,
3113 0x1e00, 0x1e9b,
3114 0x1ea0, 0x1ef9,
3115 0x1f00, 0x1f15,
3116 0x1f18, 0x1f1d,
3117 0x1f20, 0x1f45,
3118 0x1f48, 0x1f4d,
3119 0x1f50, 0x1f57,
3120 0x1f59, 0x1f59,
3121 0x1f5b, 0x1f5b,
3122 0x1f5d, 0x1f5d,
3123 0x1f5f, 0x1f7d,
3124 0x1f80, 0x1fb4,
3125 0x1fb6, 0x1fbc,
3126 0x1fbe, 0x1fbe,
3127 0x1fc2, 0x1fc4,
3128 0x1fc6, 0x1fcc,
3129 0x1fd0, 0x1fd3,
3130 0x1fd6, 0x1fdb,
3131 0x1fe0, 0x1fec,
3132 0x1ff2, 0x1ff4,
3133 0x1ff6, 0x1ffc,
3134 0x203f, 0x2040,
3135 0x2054, 0x2054,
3136 0x2070, 0x2071,
3137 0x2074, 0x2079,
3138 0x207f, 0x2089,
3139 0x20d0, 0x20ea,
3140 0x2102, 0x2102,
3141 0x2107, 0x2107,
3142 0x210a, 0x2113,
3143 0x2115, 0x2115,
3144 0x2119, 0x211d,
3145 0x2124, 0x2124,
3146 0x2126, 0x2126,
3147 0x2128, 0x2128,
3148 0x212a, 0x212d,
3149 0x212f, 0x2131,
3150 0x2133, 0x2139,
3151 0x213d, 0x213f,
3152 0x2145, 0x2149,
3153 0x2153, 0x2183,
3154 0x2460, 0x249b,
3155 0x24ea, 0x24ff,
3156 0x2776, 0x2793,
3157 0x3005, 0x3007,
3158 0x3021, 0x302f,
3159 0x3031, 0x3035,
3160 0x3038, 0x303c,
3161 0x3041, 0x3096,
3162 0x3099, 0x309a,
3163 0x309d, 0x309f,
3164 0x30a1, 0x30ff,
3165 0x3105, 0x312c,
3166 0x3131, 0x318e,
3167 0x3192, 0x3195,
3168 0x31a0, 0x31b7,
3169 0x31f0, 0x31ff,
3170 0x3220, 0x3229,
3171 0x3251, 0x325f,
3172 0x3280, 0x3289,
3173 0x32b1, 0x32bf,
3174 0x3400, 0x4db5,
3175 0x4e00, 0x9fa5,
3176 0xa000, 0xa48c,
3177 0xac00, 0xd7a3,
3178 0xf900, 0xfa2d,
3179 0xfa30, 0xfa6a,
3180 0xfb00, 0xfb06,
3181 0xfb13, 0xfb17,
3182 0xfb1d, 0xfb28,
3183 0xfb2a, 0xfb36,
3184 0xfb38, 0xfb3c,
3185 0xfb3e, 0xfb3e,
3186 0xfb40, 0xfb41,
3187 0xfb43, 0xfb44,
3188 0xfb46, 0xfbb1,
3189 0xfbd3, 0xfd3d,
3190 0xfd50, 0xfd8f,
3191 0xfd92, 0xfdc7,
3192 0xfdf0, 0xfdfb,
3193 0xfe00, 0xfe0f,
3194 0xfe20, 0xfe23,
3195 0xfe33, 0xfe34,
3196 0xfe4d, 0xfe4f,
3197 0xfe70, 0xfe74,
3198 0xfe76, 0xfefc,
3199 0xff10, 0xff19,
3200 0xff21, 0xff3a,
3201 0xff3f, 0xff3f,
3202 0xff41, 0xff5a,
3203 0xff65, 0xffbe,
3204 0xffc2, 0xffc7,
3205 0xffca, 0xffcf,
3206 0xffd2, 0xffd7,
3207 0xffda, 0xffdc,
3208 0x10000, 0x1000b,
3209 0x1000d, 0x10026,
3210 0x10028, 0x1003a,
3211 0x1003c, 0x1003d,
3212 0x1003f, 0x1004d,
3213 0x10050, 0x1005d,
3214 0x10080, 0x100fa,
3215 0x10107, 0x10133,
3216 0x10300, 0x1031e,
3217 0x10320, 0x10323,
3218 0x10330, 0x1034a,
3219 0x10380, 0x1039d,
3220 0x10400, 0x1049d,
3221 0x104a0, 0x104a9,
3222 0x10800, 0x10805,
3223 0x10808, 0x10808,
3224 0x1080a, 0x10835,
3225 0x10837, 0x10838,
3226 0x1083c, 0x1083c,
3227 0x1083f, 0x1083f,
3228 0x1d165, 0x1d169,
3229 0x1d16d, 0x1d172,
3230 0x1d17b, 0x1d182,
3231 0x1d185, 0x1d18b,
3232 0x1d1aa, 0x1d1ad,
3233 0x1d400, 0x1d454,
3234 0x1d456, 0x1d49c,
3235 0x1d49e, 0x1d49f,
3236 0x1d4a2, 0x1d4a2,
3237 0x1d4a5, 0x1d4a6,
3238 0x1d4a9, 0x1d4ac,
3239 0x1d4ae, 0x1d4b9,
3240 0x1d4bb, 0x1d4bb,
3241 0x1d4bd, 0x1d4c3,
3242 0x1d4c5, 0x1d505,
3243 0x1d507, 0x1d50a,
3244 0x1d50d, 0x1d514,
3245 0x1d516, 0x1d51c,
3246 0x1d51e, 0x1d539,
3247 0x1d53b, 0x1d53e,
3248 0x1d540, 0x1d544,
3249 0x1d546, 0x1d546,
3250 0x1d54a, 0x1d550,
3251 0x1d552, 0x1d6a3,
3252 0x1d6a8, 0x1d6c0,
3253 0x1d6c2, 0x1d6da,
3254 0x1d6dc, 0x1d6fa,
3255 0x1d6fc, 0x1d714,
3256 0x1d716, 0x1d734,
3257 0x1d736, 0x1d74e,
3258 0x1d750, 0x1d76e,
3259 0x1d770, 0x1d788,
3260 0x1d78a, 0x1d7a8,
3261 0x1d7aa, 0x1d7c2,
3262 0x1d7c4, 0x1d7c9,
3263 0x1d7ce, 0x1d7ff,
3264 0x20000, 0x2a6d6,
3265 0x2f800, 0x2fa1d,
3266 0xe0100, 0xe01ef
3267 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
3268 }; /* end of CRWord */
3269
3270
3271 extern int
onigenc_unicode_is_code_ctype(OnigCodePoint code,unsigned int ctype)3272 onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype)
3273 {
3274 if (code < 256) {
3275 return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype);
3276 }
3277
3278 #ifdef USE_UNICODE_FULL_RANGE_CTYPE
3279
3280 switch (ctype) {
3281 case ONIGENC_CTYPE_ALPHA:
3282 return onig_is_in_code_range((UChar* )CRAlpha, code);
3283 break;
3284 case ONIGENC_CTYPE_BLANK:
3285 return onig_is_in_code_range((UChar* )CRBlank, code);
3286 break;
3287 case ONIGENC_CTYPE_CNTRL:
3288 return onig_is_in_code_range((UChar* )CRCntrl, code);
3289 break;
3290 case ONIGENC_CTYPE_DIGIT:
3291 return onig_is_in_code_range((UChar* )CRDigit, code);
3292 break;
3293 case ONIGENC_CTYPE_GRAPH:
3294 return onig_is_in_code_range((UChar* )CRGraph, code);
3295 break;
3296 case ONIGENC_CTYPE_LOWER:
3297 return onig_is_in_code_range((UChar* )CRLower, code);
3298 break;
3299 case ONIGENC_CTYPE_PRINT:
3300 return onig_is_in_code_range((UChar* )CRPrint, code);
3301 break;
3302 case ONIGENC_CTYPE_PUNCT:
3303 return onig_is_in_code_range((UChar* )CRPunct, code);
3304 break;
3305 case ONIGENC_CTYPE_SPACE:
3306 return onig_is_in_code_range((UChar* )CRSpace, code);
3307 break;
3308 case ONIGENC_CTYPE_UPPER:
3309 return onig_is_in_code_range((UChar* )CRUpper, code);
3310 break;
3311 case ONIGENC_CTYPE_XDIGIT:
3312 return FALSE;
3313 break;
3314 case ONIGENC_CTYPE_WORD:
3315 return onig_is_in_code_range((UChar* )CRWord, code);
3316 break;
3317 case ONIGENC_CTYPE_ASCII:
3318 return FALSE;
3319 break;
3320 case ONIGENC_CTYPE_ALNUM:
3321 return onig_is_in_code_range((UChar* )CRAlnum, code);
3322 break;
3323 case ONIGENC_CTYPE_NEWLINE:
3324 return FALSE;
3325 break;
3326
3327 default:
3328 return ONIGENCERR_TYPE_BUG;
3329 break;
3330 }
3331
3332 #else
3333
3334 if ((ctype & ONIGENC_CTYPE_WORD) != 0) {
3335 return TRUE;
3336 }
3337 return FALSE;
3338 #endif /* USE_UNICODE_FULL_RANGE_CTYPE */
3339 }
3340
3341 extern int
onigenc_unicode_get_ctype_code_range(int ctype,const OnigCodePoint * sbr[],const OnigCodePoint * mbr[])3342 onigenc_unicode_get_ctype_code_range(int ctype,
3343 const OnigCodePoint* sbr[], const OnigCodePoint* mbr[])
3344 {
3345 static const OnigCodePoint EmptyRange[] = { 0 };
3346
3347 #define CR_SET(list) do { \
3348 *mbr = list; \
3349 } while (0)
3350
3351 *sbr = EmptyRange;
3352
3353 switch (ctype) {
3354 case ONIGENC_CTYPE_ALPHA:
3355 CR_SET(CRAlpha);
3356 break;
3357 case ONIGENC_CTYPE_BLANK:
3358 CR_SET(CRBlank);
3359 break;
3360 case ONIGENC_CTYPE_CNTRL:
3361 CR_SET(CRCntrl);
3362 break;
3363 case ONIGENC_CTYPE_DIGIT:
3364 CR_SET(CRDigit);
3365 break;
3366 case ONIGENC_CTYPE_GRAPH:
3367 CR_SET(CRGraph);
3368 break;
3369 case ONIGENC_CTYPE_LOWER:
3370 CR_SET(CRLower);
3371 break;
3372 case ONIGENC_CTYPE_PRINT:
3373 CR_SET(CRPrint);
3374 break;
3375 case ONIGENC_CTYPE_PUNCT:
3376 CR_SET(CRPunct);
3377 break;
3378 case ONIGENC_CTYPE_SPACE:
3379 CR_SET(CRSpace);
3380 break;
3381 case ONIGENC_CTYPE_UPPER:
3382 CR_SET(CRUpper);
3383 break;
3384 case ONIGENC_CTYPE_XDIGIT:
3385 CR_SET(CRXDigit);
3386 break;
3387 case ONIGENC_CTYPE_WORD:
3388 CR_SET(CRWord);
3389 break;
3390 case ONIGENC_CTYPE_ASCII:
3391 CR_SET(CRASCII);
3392 break;
3393 case ONIGENC_CTYPE_ALNUM:
3394 CR_SET(CRAlnum);
3395 break;
3396
3397 default:
3398 return ONIGENCERR_TYPE_BUG;
3399 break;
3400 }
3401
3402 return 0;
3403 }
3404