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