From c39e659263b9a988c39ff97aca3ffde9a482e4e4 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 30 May 2014 23:57:45 +0000 Subject: case-folding.rb: perfect hash for case folding * enc/unicode/case-folding.rb (lookup_hash): make perfect hash to lookup case folding table. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- enc/unicode/casefold.h | 1501 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1500 insertions(+), 1 deletion(-) (limited to 'enc/unicode/casefold.h') diff --git a/enc/unicode/casefold.h b/enc/unicode/casefold.h index a433a22b5a..fb8d50a98c 100644 --- a/enc/unicode/casefold.h +++ b/enc/unicode/casefold.h @@ -1137,6 +1137,1506 @@ static const CaseFold_11_Type CaseFold_11_Table[] = { {0x0130, {2, {0x0069, 0x0307}}}, }; +/* C code produced by gperf version 3.0.4 */ +/* Command-line: gperf -7 -k1,2,3 -F,-1 -c -j1 -i1 -t -T -E -C -H onigenc_unicode_CaseFold_11_hash -N onigenc_unicode_CaseFold_11_lookup */ + +/* maximum key range = 1741, duplicates = 0 */ + +#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__cplusplus) || defined(__GNUC_STDC_INLINE__) +inline +#elif defined(__GNUC__) +__inline +#endif +/*ARGSUSED*/ +static unsigned int +onigenc_unicode_CaseFold_11_hash(const OnigCodePoint code) +{ + static const unsigned short asso_values[] = + { + 20, 359, 4, 197, 8, 1760, 112, 10, 6, 172, + 13, 5, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, + 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, + 1760, 1760, 1760, 411, 1760, 1760, 1760, 1760, 1760, 1760, + 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, + 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, 1760, + 2, 1, 263, 3, 1760, 291, 311, 245, 1287, 269, + 540, 82, 574, 350, 1307, 178, 471, 38, 309, 25, + 1297, 60, 1326, 104, 494, 165, 1320, 152, 11, 5, + 1286, 383, 1262, 363, 828, 783, 608, 210, 1247, 232, + 1233, 139, 1215, 126, 1178, 337, 972, 324, 1122, 409, + 1092, 397, 1091, 1065, 109, 525, 671, 985, 242, 763, + 182, 676, 1157, 649, 1132, 959, 186, 874, 248, 718, + 1097, 704, 1028, 539, 1010, 924, 927, 511, 1103, 423, + 1032, 490, 1031, 750, 705, 796, 1235, 691, 636, 902, + 1200, 466, 287, 890, 47, 809, 224, 969, 159, 947, + 21, 665, 8, 450, 206, 630, 5, 736, 86, 606, + 195, 572, 470, 560, 196, 841, 107, 1082, 27, 999, + 1, 1018, 13, 1147, 69, 1174, 71, 1196, 99, 432, + 90, 1070, 48 + }; + return asso_values[bits_of(code, 2)+65] + asso_values[bits_of(code, 1)] + asso_values[bits_of(code, 0)]; +} + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +static const CodePointList3 * +onigenc_unicode_CaseFold_11_lookup(const OnigCodePoint code) +{ + enum + { + MIN_CODE_VALUE = 0x41, + MAX_CODE_VALUE = 0x10427, + TOTAL_KEYWORDS = 1131, + MIN_WORD_LENGTH = 3, + MAX_WORD_LENGTH = 3, + MIN_HASH_VALUE = 19, + MAX_HASH_VALUE = 1759 + }; + + static const short wordlist[] = + { + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + /*0x10418*/ 1113, + -1, -1, -1, -1, + /*0x1ff3*/ 789, + /*0x10417*/ 1112, + /*0x1e98*/ 596, + /*0x1e18*/ 531, + /*0x1f98*/ 725, + /*0x0118*/ 69, + /*0x2c98*/ 919, + /*0x0418*/ 320, + /*0x1e97*/ 595, + /*0x0218*/ 202, + /*0x1f97*/ 724, + /*0x0398*/ 248, + /*0x2c18*/ 869, + /*0x0417*/ 319, + /*0x0518*/ 432, + /*0x1040e*/ 1103, + -1, + /*0x0397*/ 247, + /*0x2c17*/ 868, + /*0x03f5*/ 289, + /*0x2c75*/ 904, + -1, + /*0x1e8e*/ 590, + /*0x1e0e*/ 526, + /*0x1f8e*/ 715, + /*0x010e*/ 64, + /*0x2c8e*/ 914, + /*0x040e*/ 310, + /*0x1040c*/ 1101, + /*0x020e*/ 197, + -1, + /*0x038e*/ 238, + /*0x2c0e*/ 859, + /*0x03f1*/ 287, + /*0x050e*/ 427, + /*0x1e8c*/ 589, + /*0x1e0c*/ 525, + /*0x1f8c*/ 713, + /*0x010c*/ 63, + /*0x2c8c*/ 913, + /*0x040c*/ 308, + -1, + /*0x020c*/ 196, + /*0xa68e*/ 990, + /*0x038c*/ 237, + /*0x2c0c*/ 857, + /*0x1fd9*/ 775, + /*0x050c*/ 426, + /*0x017f*/ 120, + -1, + /*0x10410*/ 1105, + -1, -1, -1, + /*0x03ff*/ 295, + /*0x2c7f*/ 906, + /*0xa68c*/ 989, + /*0x1e90*/ 591, + /*0x1e10*/ 527, + /*0x1f90*/ 717, + /*0x0110*/ 65, + /*0x2c90*/ 915, + /*0x0410*/ 312, + /*0x0059*/ 23, + /*0x0210*/ 198, + /*0xa790*/ 1043, + /*0x0390*/ 240, + /*0x2c10*/ 861, + /*0x1ff7*/ 792, + /*0x0510*/ 428, + /*0x1ff9*/ 794, + /*0x0179*/ 117, + /*0x10406*/ 1095, + -1, -1, + /*0x03f7*/ 290, + -1, + /*0x03f9*/ 291, + /*0xa690*/ 991, + /*0x1e86*/ 586, + /*0x1e06*/ 522, + /*0x1f86*/ 707, + /*0x0106*/ 60, + /*0x2c86*/ 910, + /*0x0406*/ 302, + /*0x1fe7*/ 782, + /*0x0206*/ 193, + /*0xa786*/ 1040, + /*0x0386*/ 233, + /*0x2c06*/ 851, + /*0x017d*/ 119, + /*0x0506*/ 423, + -1, + /*0x2c67*/ 896, + /*0x10412*/ 1107, + -1, + /*0x03fd*/ 293, + -1, + /*0x1ffb*/ 796, + /*0x017b*/ 118, + /*0xa686*/ 986, + /*0x1e92*/ 592, + /*0x1e12*/ 528, + /*0x1f92*/ 719, + /*0x0112*/ 66, + /*0x2c92*/ 916, + /*0x0412*/ 314, + -1, + /*0x0212*/ 199, + /*0xa792*/ 1044, + /*0x0392*/ 242, + /*0x2c12*/ 863, + -1, + /*0x0512*/ 429, + /*0x2c6f*/ 901, + -1, + /*0x10426*/ 1127, + -1, + /*0x0531*/ 440, + -1, -1, -1, + /*0xa692*/ 992, + /*0x1ea6*/ 604, + /*0x1e26*/ 538, + /*0x1fa6*/ 739, + /*0x0126*/ 76, + /*0x2ca6*/ 926, + /*0x0426*/ 334, + /*0x10424*/ 1125, + /*0x0226*/ 209, + /*0xa7a6*/ 1048, + /*0x03a6*/ 261, + /*0x2c26*/ 883, + -1, + /*0x0526*/ 439, + /*0x1ea4*/ 603, + /*0x1e24*/ 537, + /*0x1fa4*/ 737, + /*0x0124*/ 75, + /*0x2ca4*/ 925, + /*0x0424*/ 332, + /*0x10416*/ 1111, + /*0x0224*/ 208, + /*0xa7a4*/ 1047, + /*0x03a4*/ 259, + /*0x2c24*/ 881, + -1, + /*0x0524*/ 438, + /*0x1e96*/ 594, + /*0x1e16*/ 530, + /*0x1f96*/ 723, + /*0x0116*/ 68, + /*0x2c96*/ 918, + /*0x0416*/ 318, + /*0x10414*/ 1109, + /*0x0216*/ 201, + -1, + /*0x0396*/ 246, + /*0x2c16*/ 867, + -1, + /*0x0516*/ 431, + /*0x1e94*/ 593, + /*0x1e14*/ 529, + /*0x1f94*/ 721, + /*0x0114*/ 67, + /*0x2c94*/ 917, + /*0x0414*/ 316, + /*0x1040a*/ 1099, + /*0x0214*/ 200, + /*0xa696*/ 994, + /*0x0394*/ 244, + /*0x2c14*/ 865, + /*0x0498*/ 368, + /*0x0514*/ 430, + /*0x1e8a*/ 588, + /*0x1e0a*/ 524, + /*0x1f8a*/ 711, + /*0x010a*/ 62, + /*0x2c8a*/ 912, + /*0x040a*/ 306, + /*0x1fb7*/ 753, + /*0x020a*/ 195, + /*0xa694*/ 993, + /*0x038a*/ 236, + /*0x2c0a*/ 855, + /*0x013d*/ 86, + /*0x050a*/ 425, + -1, -1, + /*0x023d*/ 218, + /*0x0537*/ 446, + -1, + /*0x048e*/ 363, + /*0x1fe9*/ 784, + /*0x053d*/ 452, + /*0xa68a*/ 988, + /*0x2ced*/ 958, + /*0x0198*/ 137, + -1, + /*0x10420*/ 1121, + -1, + /*0x2c69*/ 897, + /*0x2c6d*/ 899, + /*0x0197*/ 136, + /*0x1fe3*/ 779, + /*0x048c*/ 362, + /*0x1ea0*/ 601, + /*0x1e20*/ 535, + /*0x1fa0*/ 733, + /*0x0120*/ 73, + /*0x2ca0*/ 923, + /*0x0420*/ 328, + /*0x2c63*/ 894, + /*0x0220*/ 206, + /*0xa7a0*/ 1045, + /*0x03a0*/ 256, + /*0x2c20*/ 877, + /*0x018e*/ 129, + /*0x0520*/ 436, + /*0x01f1*/ 181, + -1, + /*0x10422*/ 1123, + /*0x1fdb*/ 777, + -1, -1, -1, -1, + /*0x0490*/ 364, + /*0x1ea2*/ 602, + /*0x1e22*/ 536, + /*0x1fa2*/ 735, + /*0x0122*/ 74, + /*0x2ca2*/ 924, + /*0x0422*/ 330, + /*0x10402*/ 1091, + /*0x0222*/ 207, + /*0xa7a2*/ 1046, + -1, + /*0x2c22*/ 879, + /*0x01d9*/ 169, + /*0x0522*/ 437, + /*0x1e82*/ 584, + /*0x1e02*/ 520, + /*0x1f82*/ 703, + /*0x0102*/ 58, + /*0x2c82*/ 908, + /*0x0402*/ 298, + /*0x013f*/ 87, + /*0x0202*/ 191, + /*0xa782*/ 1038, + /*0x0535*/ 444, + /*0x2c02*/ 847, + /*0x0190*/ 131, + /*0x0502*/ 421, + -1, -1, + /*0x053f*/ 454, + -1, + /*0x10404*/ 1093, + -1, -1, + /*0x01f7*/ 185, + /*0xa682*/ 984, + /*0x1f18*/ 657, + -1, + /*0x1e84*/ 585, + /*0x1e04*/ 521, + /*0x1f84*/ 705, + /*0x0104*/ 59, + /*0x2c84*/ 909, + /*0x0404*/ 300, + /*0x0492*/ 365, + /*0x0204*/ 192, + /*0xa784*/ 1039, + /*0x0186*/ 124, + /*0x2c04*/ 849, + -1, + /*0x0504*/ 422, + -1, + /*0x1f5f*/ 692, + /*0x10400*/ 1089, + -1, -1, + /*0x1f0e*/ 655, + -1, + /*0x1fd7*/ 773, + /*0xa684*/ 985, + /*0x1e80*/ 583, + /*0x1e00*/ 519, + /*0x1f80*/ 701, + /*0x0100*/ 57, + /*0x2c80*/ 907, + /*0x0400*/ 296, + /*0x04a6*/ 375, + /*0x0200*/ 190, + /*0xa780*/ 1037, + /*0x1f0c*/ 653, + /*0x2c00*/ 845, + /*0x1040d*/ 1102, + /*0x0500*/ 420, + /*0x10401*/ 1090, + /*0x01b1*/ 150, + /*0x0057*/ 21, + -1, -1, + /*0x1f59*/ 689, + /*0x04a4*/ 374, + /*0x1f8d*/ 714, + /*0xa680*/ 983, + /*0x1f81*/ 702, + /*0x040d*/ 309, + /*0x2165*/ 807, + /*0x0401*/ 297, + /*0xa78d*/ 1042, + /*0x2161*/ 803, + /*0x2c0d*/ 858, + -1, + /*0x2c01*/ 846, + /*0x01a6*/ 144, + /*0x0496*/ 367, + /*0x1eaa*/ 606, + /*0x1e2a*/ 540, + /*0x1faa*/ 743, + /*0x012a*/ 78, + /*0x2caa*/ 928, + /*0x042a*/ 338, + -1, + /*0x022a*/ 211, + /*0xa7aa*/ 1050, + /*0x03aa*/ 265, + /*0x2c2a*/ 887, + /*0x01a4*/ 143, + /*0x0494*/ 366, + /*0x1ea8*/ 605, + /*0x1e28*/ 539, + /*0x1fa8*/ 741, + /*0x0128*/ 77, + /*0x2ca8*/ 927, + /*0x0428*/ 336, + /*0x10408*/ 1097, + /*0x0228*/ 210, + /*0xa7a8*/ 1049, + /*0x03a8*/ 263, + /*0x2c28*/ 885, + /*0x0196*/ 135, + /*0x048a*/ 361, + /*0x1e88*/ 587, + /*0x1e08*/ 523, + /*0x1f88*/ 709, + /*0x0108*/ 61, + /*0x2c88*/ 911, + /*0x0408*/ 304, + /*0x1041c*/ 1117, + /*0x0208*/ 194, + -1, + /*0x0388*/ 234, + /*0x2c08*/ 853, + /*0x0194*/ 134, + /*0x0508*/ 424, + /*0xa779*/ 1033, + /*0x1e1c*/ 533, + /*0x1f9c*/ 729, + /*0x011c*/ 71, + /*0x2c9c*/ 921, + /*0x041c*/ 324, + /*0x1f6f*/ 700, + /*0x021c*/ 204, + /*0xa688*/ 987, + /*0x039c*/ 252, + /*0x2c1c*/ 873, + /*0x018a*/ 127, + /*0x051c*/ 434, + /*0x1041a*/ 1115, + -1, + /*0x01b7*/ 154, + /*0x00df*/ 56, + -1, + /*0x04a0*/ 372, + /*0xa77d*/ 1035, + /*0x1e9a*/ 598, + /*0x1e1a*/ 532, + /*0x1f9a*/ 727, + /*0x011a*/ 70, + /*0x2c9a*/ 920, + /*0x041a*/ 322, + -1, + /*0x021a*/ 203, + /*0xa77b*/ 1034, + /*0x039a*/ 250, + /*0x2c1a*/ 871, + -1, + /*0x051a*/ 433, + /*0x2167*/ 809, + /*0x1eae*/ 608, + /*0x1e2e*/ 542, + /*0x1fae*/ 747, + /*0x012e*/ 80, + /*0x2cae*/ 930, + /*0x042e*/ 342, + /*0x04a2*/ 373, + /*0x022e*/ 213, + /*0x00d9*/ 50, + /*0x01a0*/ 141, + /*0x2c2e*/ 891, + -1, + /*0x1eac*/ 607, + /*0x1e2c*/ 541, + /*0x1fac*/ 745, + /*0x012c*/ 79, + /*0x2cac*/ 929, + /*0x042c*/ 340, + -1, + /*0x022c*/ 212, + /*0x216f*/ 817, + /*0xa726*/ 997, + /*0x2c2c*/ 889, + /*0x01db*/ 170, + /*0x1f5d*/ 691, + -1, + /*0x1eca*/ 622, + /*0x1e4a*/ 556, + /*0x1fca*/ 767, + /*0x014a*/ 93, + /*0x2cca*/ 944, + /*0x01a2*/ 142, + /*0xfb17*/ 1062, + /*0x024a*/ 226, + /*0xa724*/ 996, + /*0x1efc*/ 647, + /*0x1e7c*/ 581, + /*0x1ffc*/ 797, + /*0x054a*/ 465, + /*0x2126*/ 798, + /*0x047c*/ 358, + /*0x01b5*/ 153, + -1, + /*0x1f0a*/ 651, + /*0x0182*/ 122, + /*0x004a*/ 8, + -1, -1, -1, -1, -1, + /*0x1f3d*/ 676, + -1, + /*0x1ee2*/ 634, + /*0x1e62*/ 568, + /*0x1fe2*/ 778, + /*0x0162*/ 105, + /*0x2ce2*/ 956, + /*0x0462*/ 345, + -1, + /*0x1f69*/ 694, + /*0x1f6d*/ 698, + /*0x03e2*/ 279, + /*0x2c62*/ 893, + -1, + /*0x0480*/ 360, + -1, + /*0x1040b*/ 1100, + /*0x0184*/ 123, + /*0x1ed6*/ 628, + /*0x1e56*/ 562, + /*0x1fd6*/ 772, + /*0x0156*/ 99, + /*0x2cd6*/ 950, + /*0xff31*/ 1079, + /*0x1feb*/ 786, + /*0x1f8b*/ 712, + /*0x2ceb*/ 957, + /*0x03d6*/ 273, + /*0x040b*/ 307, + -1, + /*0x0556*/ 477, + /*0xa78b*/ 1041, + /*0x2c6b*/ 898, + /*0x2c0b*/ 856, + -1, + /*0x01d7*/ 168, + -1, + /*0x0056*/ 20, + /*0x1f5b*/ 690, + /*0x10413*/ 1108, + /*0xff26*/ 1068, + -1, + /*0x1ecc*/ 623, + /*0x1e4c*/ 557, + /*0x1fcc*/ 769, + /*0x014c*/ 94, + /*0x2ccc*/ 945, + /*0x04aa*/ 377, + /*0x1f93*/ 720, + /*0x024c*/ 227, + -1, + /*0x0413*/ 315, + /*0xfb06*/ 1057, + /*0xff24*/ 1066, + /*0x054c*/ 467, + /*0x0393*/ 243, + /*0x2c13*/ 864, + /*0x2169*/ 811, + /*0x216d*/ 815, + /*0x0181*/ 121, + /*0x04a8*/ 376, + /*0x004c*/ 10, + /*0x1f3f*/ 678, + /*0x1ec8*/ 621, + /*0x1e48*/ 555, + /*0x1fc8*/ 765, + -1, + /*0x2cc8*/ 943, + /*0x2163*/ 805, + /*0x00dd*/ 54, + /*0x0248*/ 225, + /*0x10b1*/ 496, + -1, -1, -1, + /*0x0548*/ 463, + /*0xa722*/ 995, + /*0x1eb2*/ 610, + /*0x1e32*/ 544, + /*0x1fb2*/ 749, + /*0x0132*/ 81, + /*0x2cb2*/ 932, + /*0x0048*/ 7, + /*0x24b7*/ 820, + /*0x0232*/ 215, + /*0x10405*/ 1094, + /*0x049c*/ 370, + /*0x24bd*/ 826, + /*0x10a6*/ 485, + /*0x0532*/ 441, + -1, + /*0x1ec4*/ 619, + /*0x1e44*/ 553, + /*0x1fc4*/ 762, + /*0x1f85*/ 706, + /*0x2cc4*/ 941, + /*0xff37*/ 1085, + /*0x0405*/ 301, + /*0x0244*/ 222, + -1, -1, + /*0x10a4*/ 483, + /*0x2c05*/ 850, + /*0x0544*/ 459, + -1, -1, + /*0x049a*/ 369, + -1, -1, -1, + /*0x0044*/ 3, + /*0x019c*/ 138, + /*0x1eec*/ 639, + /*0x1e6c*/ 573, + /*0x1fec*/ 787, + /*0x016c*/ 110, + -1, + /*0x046c*/ 350, + -1, + /*0x10407*/ 1096, + /*0x04ae*/ 379, + /*0x03ec*/ 284, + /*0xfb16*/ 1061, + /*0x1f0d*/ 654, + /*0x1eea*/ 638, + /*0x1e6a*/ 572, + /*0x1fea*/ 785, + /*0x016a*/ 109, + /*0x1f87*/ 708, + /*0x046a*/ 349, + /*0x0587*/ 478, + /*0x0407*/ 303, + /*0x04ac*/ 378, + /*0x03ea*/ 283, + /*0x00db*/ 52, + /*0xfb14*/ 1059, + /*0x2c07*/ 852, + -1, + /*0x1f2a*/ 665, + -1, -1, -1, -1, -1, + /*0x10b7*/ 502, + /*0x01ae*/ 148, + /*0xff22*/ 1064, + -1, + /*0x10bd*/ 508, + /*0x24bf*/ 828, + -1, + /*0x1f28*/ 663, + /*0x00b5*/ 25, + /*0x1041f*/ 1120, + -1, + /*0x04fc*/ 418, + /*0xff35*/ 1083, + /*0x01ac*/ 147, + /*0x1ee8*/ 637, + /*0x1e68*/ 571, + /*0x1fe8*/ 783, + /*0x0168*/ 108, + /*0x1f9f*/ 732, + /*0x0468*/ 348, + /*0x1f08*/ 649, + /*0x041f*/ 327, + -1, + /*0x03e8*/ 282, + /*0xa72a*/ 999, + /*0x039f*/ 255, + /*0x2c1f*/ 876, + /*0x01ca*/ 161, + /*0x10a0*/ 479, + /*0x04e2*/ 405, + -1, -1, -1, + /*0x1f1c*/ 661, + -1, -1, + /*0x01fc*/ 188, + /*0xa728*/ 998, + /*0x1ee4*/ 635, + /*0x1e64*/ 569, + /*0x1fe4*/ 780, + /*0x0164*/ 106, + /*0x212a*/ 799, + /*0x0464*/ 346, + -1, + /*0x04d6*/ 399, + /*0x1fd3*/ 771, + /*0x03e4*/ 280, + /*0x2c64*/ 895, + -1, + /*0x10a2*/ 481, + -1, -1, + /*0x1f1a*/ 659, + /*0x01e2*/ 173, + -1, + /*0x0553*/ 474, + /*0x1eba*/ 614, + /*0x1e3a*/ 548, + /*0x1fba*/ 756, + /*0x10b5*/ 500, + /*0x2cba*/ 936, + -1, + /*0x0053*/ 17, + /*0x023a*/ 216, + -1, + /*0x10bf*/ 510, + /*0x1f2e*/ 669, + -1, + /*0x053a*/ 449, + -1, + /*0xfb02*/ 1053, + -1, + /*0x1ee0*/ 633, + /*0x1e60*/ 567, + /*0x018b*/ 128, + /*0x0160*/ 104, + /*0x2ce0*/ 955, + /*0x0460*/ 344, + /*0x1f2c*/ 667, + -1, + /*0x1fb3*/ 750, + /*0x03e0*/ 278, + /*0x2c60*/ 892, + /*0x1eb8*/ 613, + /*0x1e38*/ 547, + /*0x1fb8*/ 754, + -1, + /*0x2cb8*/ 935, + -1, -1, + /*0x0533*/ 442, + -1, + /*0x1f4a*/ 681, + /*0xff2a*/ 1072, + /*0xfb04*/ 1055, + /*0x0538*/ 447, + /*0xa72e*/ 1001, + /*0x0193*/ 133, + /*0x1ed2*/ 626, + /*0x1e52*/ 560, + /*0x1fd2*/ 770, + /*0x0152*/ 97, + /*0x2cd2*/ 948, + /*0x04b2*/ 381, + -1, -1, + /*0xff28*/ 1070, + -1, + /*0xa72c*/ 1000, + -1, + /*0x0552*/ 473, + /*0x1ec2*/ 618, + /*0x1e42*/ 552, + /*0x1fc2*/ 760, + /*0x01c8*/ 160, + /*0x2cc2*/ 940, + /*0xfb00*/ 1051, + /*0x0052*/ 16, + -1, -1, + /*0x03c2*/ 268, + /*0x03cf*/ 269, + /*0xa74a*/ 1014, + /*0x0542*/ 457, + /*0x054f*/ 470, + /*0x1ec0*/ 617, + /*0x1e40*/ 551, + -1, + /*0x01b2*/ 151, + /*0x2cc0*/ 939, + /*0x0042*/ 1, + /*0x004f*/ 13, + -1, -1, -1, + /*0x1f56*/ 688, + /*0xfb01*/ 1052, + /*0x0540*/ 455, + /*0x04ec*/ 410, + /*0x1f6b*/ 696, + /*0x1f0b*/ 652, + /*0x10aa*/ 489, + /*0x01c4*/ 157, + /*0x1ee6*/ 636, + /*0x1e66*/ 570, + /*0x1fe6*/ 781, + /*0x0166*/ 107, + -1, + /*0x0466*/ 347, + /*0xa762*/ 1026, + /*0x04ea*/ 409, + -1, + /*0x03e6*/ 281, + -1, + /*0x10a8*/ 487, + -1, -1, + /*0x1ece*/ 624, + /*0x1e4e*/ 558, + /*0x1f4c*/ 683, + /*0x014e*/ 95, + /*0x2cce*/ 946, + -1, + /*0x01ec*/ 178, + /*0x024e*/ 228, + /*0xa756*/ 1020, + /*0xff2e*/ 1076, + /*0x2162*/ 804, + -1, + /*0x054e*/ 469, + /*0x1eb6*/ 612, + /*0x1e36*/ 546, + /*0x1fb6*/ 752, + /*0x0136*/ 83, + /*0x2cb6*/ 934, + /*0x01ea*/ 177, + /*0x004e*/ 12, + /*0x0187*/ 125, + /*0xff2c*/ 1074, + /*0x24ca*/ 839, + /*0x1f48*/ 679, + -1, + /*0x0536*/ 445, + /*0x1041e*/ 1119, + /*0x04e8*/ 408, + -1, -1, + /*0x216b*/ 813, + /*0x00ca*/ 36, + /*0xa74c*/ 1015, + /*0x1e9e*/ 600, + /*0x1e1e*/ 534, + /*0x1f9e*/ 731, + /*0x011e*/ 72, + /*0x2c9e*/ 922, + /*0x041e*/ 326, + -1, + /*0x021e*/ 205, + -1, + /*0x039e*/ 254, + /*0x2c1e*/ 875, + -1, + /*0x051e*/ 435, + /*0x1ed0*/ 625, + /*0x1e50*/ 559, + -1, + /*0x0150*/ 96, + /*0x2cd0*/ 947, + /*0x04e4*/ 406, + /*0x01e8*/ 176, + /*0xa748*/ 1013, + /*0x019f*/ 140, + /*0x03d0*/ 270, + -1, + /*0x10ae*/ 493, + /*0x0550*/ 471, + /*0x1eda*/ 630, + /*0x1e5a*/ 564, + /*0x1fda*/ 776, + /*0x015a*/ 101, + /*0x2cda*/ 952, + -1, + /*0x0050*/ 14, + -1, + /*0xa732*/ 1002, + /*0x03da*/ 275, + /*0x10ac*/ 491, + /*0x04ba*/ 385, + /*0x1041d*/ 1118, + /*0x1f6c*/ 697, + -1, + /*0x00d6*/ 48, + -1, + /*0x01e4*/ 174, + -1, + /*0x005a*/ 24, + -1, + /*0x1f9d*/ 730, + /*0xa744*/ 1011, + /*0x01d3*/ 166, + /*0x041d*/ 325, + /*0x1f6a*/ 695, + /*0x2132*/ 801, + /*0x04e0*/ 404, + /*0x039d*/ 253, + /*0x2c1d*/ 874, + /*0x24cc*/ 841, + -1, + /*0x1eee*/ 640, + /*0x1e6e*/ 574, + -1, + /*0x016e*/ 111, + -1, + /*0x046e*/ 351, + /*0x04b8*/ 384, + /*0x00cc*/ 38, + -1, + /*0x03ee*/ 285, + /*0x2c6e*/ 900, + /*0xa76c*/ 1031, + -1, -1, -1, -1, -1, -1, + -1, + /*0x24c8*/ 837, + /*0x01e0*/ 172, + /*0x04d2*/ 397, + -1, + /*0xa76a*/ 1030, + -1, -1, + /*0x01b3*/ 152, + /*0x1f68*/ 693, + /*0x00c8*/ 34, + /*0x216c*/ 814, + -1, + /*0x01b8*/ 155, + -1, + /*0x1ebe*/ 616, + /*0x1e3e*/ 550, + /*0x1fbe*/ 759, + /*0xa64a*/ 965, + /*0x2cbe*/ 938, + -1, -1, + /*0x023e*/ 219, + /*0x216a*/ 812, + -1, -1, -1, + /*0x053e*/ 453, + /*0xff32*/ 1080, + /*0x24c4*/ 833, + /*0x04c0*/ 388, + /*0x1ed8*/ 629, + /*0x1e58*/ 563, + /*0x1fd8*/ 774, + /*0x0158*/ 100, + /*0x2cd8*/ 951, + -1, -1, + /*0x00c4*/ 30, + /*0xa768*/ 1029, + /*0x03d8*/ 274, + -1, + /*0x01cf*/ 164, + /*0x1ed4*/ 627, + /*0x1e54*/ 561, + /*0xa662*/ 977, + /*0x0154*/ 98, + /*0x2cd4*/ 949, + /*0x04e6*/ 407, + -1, + /*0x0058*/ 22, + -1, + /*0x1f3a*/ 673, + /*0xfb13*/ 1058, + -1, + /*0x0554*/ 475, + -1, + /*0x2168*/ 810, + -1, -1, -1, + /*0xa656*/ 971, + /*0x0054*/ 18, + /*0xa764*/ 1027, + -1, + /*0x1ec6*/ 620, + /*0x1e46*/ 554, + /*0x1fc6*/ 763, + -1, + /*0x2cc6*/ 942, + /*0x1fc7*/ 764, + /*0x0147*/ 91, + /*0x0246*/ 224, + /*0x01e6*/ 175, + -1, + /*0x04b6*/ 383, + /*0x10b2*/ 497, + /*0x0546*/ 461, + -1, + /*0x1f38*/ 671, + /*0x0547*/ 462, + /*0x2164*/ 806, + /*0xa73a*/ 1006, + -1, + /*0x0046*/ 5, + /*0xa64c*/ 966, + -1, + /*0x0047*/ 6, + /*0x1ede*/ 632, + /*0x1e5e*/ 566, + /*0x10c4*/ 515, + /*0x015e*/ 103, + /*0x2cde*/ 954, + -1, + /*0x1f52*/ 686, + /*0x049e*/ 371, + -1, + /*0x03de*/ 277, + /*0xa760*/ 1025, + /*0xfb05*/ 1056, + /*0x1ebc*/ 615, + /*0x1e3c*/ 549, + /*0x1fbc*/ 758, + -1, + /*0x2cbc*/ 937, + -1, + /*0xa648*/ 964, + -1, + /*0x04d0*/ 396, + /*0xa738*/ 1005, + /*0x1edc*/ 631, + /*0x1e5c*/ 565, + /*0x053c*/ 451, + /*0x015c*/ 102, + /*0x2cdc*/ 953, + /*0x1fa9*/ 742, + /*0x2160*/ 802, + -1, + /*0x0429*/ 337, + /*0x03dc*/ 276, + -1, + /*0x04da*/ 401, + /*0x03a9*/ 264, + /*0x2c29*/ 886, + /*0xa752*/ 1018, + -1, + /*0x1eb4*/ 611, + /*0x1e34*/ 545, + /*0x1fb4*/ 751, + /*0x0134*/ 82, + /*0x2cb4*/ 933, + -1, -1, -1, + /*0xa644*/ 962, + /*0x00d3*/ 45, + -1, + /*0xa742*/ 1010, + /*0x0534*/ 443, + /*0x24ba*/ 823, + /*0x1ef2*/ 642, + /*0x1e72*/ 576, + /*0x1ff2*/ 788, + /*0x0172*/ 113, + /*0x2cf2*/ 959, + /*0x0472*/ 353, + -1, -1, -1, -1, + /*0x2c72*/ 903, + /*0xa740*/ 1009, + /*0xff3a*/ 1088, + /*0x04ee*/ 411, + /*0x0145*/ 90, + /*0xa66c*/ 982, + -1, -1, + /*0x0245*/ 223, + /*0x1ef4*/ 643, + /*0x1e74*/ 577, + /*0x1ff4*/ 790, + /*0x0174*/ 114, + /*0x0545*/ 460, + /*0x0474*/ 354, + /*0x019d*/ 139, + /*0x24b8*/ 821, + /*0xa66a*/ 981, + /*0x03f4*/ 288, + /*0xa766*/ 1028, + /*0x0045*/ 4, + /*0x1fc3*/ 761, + /*0x0143*/ 89, + -1, + /*0xff33*/ 1081, + /*0x1fcb*/ 768, + /*0x0243*/ 221, + -1, + /*0x01ee*/ 179, + /*0xff38*/ 1086, + -1, + /*0x0543*/ 458, + -1, + /*0xa74e*/ 1016, + /*0x054d*/ 468, + /*0x054b*/ 466, + /*0x04be*/ 387, + /*0x2166*/ 808, + /*0x0043*/ 2, + -1, + /*0x00d2*/ 44, + /*0x004d*/ 11, + /*0x004b*/ 9, + -1, + /*0x24c2*/ 831, + /*0x24cf*/ 844, + /*0xa736*/ 1004, + -1, -1, + /*0x1f50*/ 685, + /*0x10ba*/ 505, + /*0xa668*/ 980, + /*0x04d8*/ 400, + /*0x00c2*/ 28, + /*0x00cf*/ 41, + -1, + /*0x1eb0*/ 609, + /*0x1e30*/ 543, + /*0x24c0*/ 829, + /*0x0130*/ 1130, + /*0x2cb0*/ 931, + /*0x1efe*/ 648, + /*0x1e7e*/ 582, + /*0x0230*/ 214, + /*0x04d4*/ 398, + /*0x03b0*/ 267, + /*0x047e*/ 359, + /*0x00c0*/ 26, + -1, -1, + /*0x03fe*/ 294, + /*0x2c7e*/ 905, + /*0x10b3*/ 498, + /*0x1ef0*/ 641, + /*0x1e70*/ 575, + /*0xa664*/ 978, + /*0x0170*/ 112, + /*0x10b8*/ 503, + /*0x0470*/ 352, + /*0xa750*/ 1017, + -1, + /*0x1f1d*/ 662, + /*0x03f0*/ 286, + /*0x2c70*/ 902, + /*0x1faf*/ 748, + /*0x1fad*/ 746, + -1, + /*0x042f*/ 343, + /*0x042d*/ 341, + /*0x04c7*/ 392, + /*0x24ce*/ 843, + /*0x0141*/ 88, + /*0xa75a*/ 1022, + /*0x2c2d*/ 890, + /*0x1f6e*/ 699, + /*0x0241*/ 220, + /*0x1fc9*/ 766, + /*0x0149*/ 92, + -1, + /*0x00ce*/ 40, + /*0x0541*/ 456, + /*0x0372*/ 231, + -1, + /*0x24b6*/ 819, + -1, + /*0x10c2*/ 513, + /*0x0549*/ 464, + /*0x0041*/ 0, + -1, + /*0x04de*/ 403, + /*0xa660*/ 976, + -1, + /*0x0345*/ 229, + /*0x0049*/ 1129, + /*0x01c7*/ 159, + /*0x1fab*/ 744, + /*0xff36*/ 1084, + -1, + /*0x042b*/ 339, + /*0x10c0*/ 511, + -1, + /*0x04bc*/ 386, + /*0x03ab*/ 266, + /*0x2c2b*/ 888, + /*0xa76e*/ 1032, + /*0x1fbb*/ 757, + /*0x013b*/ 85, + /*0x1f3e*/ 677, + -1, -1, + /*0x023b*/ 217, + /*0x04dc*/ 402, + -1, -1, + /*0x01de*/ 171, + /*0x053b*/ 450, + /*0xa652*/ 969, + -1, + /*0x1ef6*/ 644, + /*0x1e76*/ 578, + /*0x1ff6*/ 791, + /*0x0176*/ 115, + /*0x216e*/ 816, + /*0x0476*/ 355, + -1, + /*0x00d0*/ 42, + /*0x01bc*/ 156, + /*0x04b4*/ 382, + -1, + /*0xa642*/ 961, + /*0x1fb9*/ 755, + /*0x0139*/ 84, + -1, -1, -1, + /*0x1f54*/ 687, + -1, + /*0xa73e*/ 1008, + /*0x00da*/ 51, + /*0x01a9*/ 146, + /*0x0539*/ 448, + /*0x04f2*/ 413, + /*0x10427*/ 1128, + /*0xa640*/ 960, + /*0x10b6*/ 501, + /*0x1ef8*/ 645, + /*0x1e78*/ 579, + /*0x1ff8*/ 793, + /*0x0178*/ 116, + -1, + /*0x0478*/ 356, + /*0x1fa7*/ 740, + /*0x04c5*/ 391, + /*0xa758*/ 1021, + /*0x0427*/ 335, + -1, -1, -1, + /*0x03a7*/ 262, + /*0x2c27*/ 884, + /*0x04f4*/ 414, + /*0xa666*/ 979, + -1, -1, + /*0x0370*/ 230, + /*0xa754*/ 1019, + /*0x01f2*/ 182, + /*0x1efa*/ 646, + /*0x1e7a*/ 580, + /*0x1ffa*/ 795, + /*0x04c3*/ 390, + -1, + /*0x047a*/ 357, + /*0x04cd*/ 395, + /*0x04cb*/ 394, + /*0xa64e*/ 967, + /*0x03fa*/ 292, + /*0x01c5*/ 158, + -1, + /*0x10425*/ 1126, + /*0x03d5*/ 272, + -1, -1, + /*0x0555*/ 476, + -1, + /*0x01f4*/ 183, + -1, + /*0xa746*/ 1012, + /*0x1fa5*/ 738, + -1, + /*0x0055*/ 19, + /*0x0425*/ 333, + /*0x1f3c*/ 675, + -1, + /*0x24be*/ 827, + /*0x03a5*/ 260, + /*0x2c25*/ 882, + /*0x10423*/ 1124, + /*0x01cd*/ 163, + /*0x01cb*/ 162, + -1, -1, -1, -1, -1, + /*0x1f29*/ 664, + /*0x1fa3*/ 736, + /*0x04b0*/ 380, + -1, + /*0x0423*/ 331, + /*0xa75e*/ 1024, + /*0x10421*/ 1122, + /*0x04fe*/ 419, + /*0x03a3*/ 258, + /*0x2c23*/ 880, + /*0x03d1*/ 271, + -1, -1, + /*0x0551*/ 472, + /*0x00d8*/ 49, + /*0x1fa1*/ 734, + /*0xa650*/ 968, + /*0xa73c*/ 1007, + /*0x0421*/ 329, + /*0x04f0*/ 412, + /*0x0051*/ 15, + /*0x1041b*/ 1116, + /*0x03a1*/ 257, + /*0x2c21*/ 878, + /*0x0376*/ 232, + -1, + /*0x00d4*/ 46, + /*0xa75c*/ 1023, + /*0x1e9b*/ 599, + /*0xa65a*/ 973, + /*0x1f9b*/ 728, + -1, + /*0x01fe*/ 189, + /*0x041b*/ 323, + /*0x04c1*/ 389, + -1, -1, + /*0x039b*/ 251, + /*0x2c1b*/ 872, + /*0x24c6*/ 835, + /*0x04c9*/ 393, + -1, + /*0x24c7*/ 836, + /*0xa734*/ 1003, + /*0x01f0*/ 180, + /*0x10419*/ 1114, + /*0x10403*/ 1092, + -1, + /*0x00c6*/ 32, + -1, + /*0x10be*/ 509, + /*0x00c7*/ 33, + /*0x1e99*/ 597, + /*0x01af*/ 149, + /*0x1f99*/ 726, + /*0x1f83*/ 704, + /*0x1040f*/ 1104, + /*0x0419*/ 321, + /*0x0403*/ 299, + /*0x1f4d*/ 684, + /*0x1f4b*/ 682, + /*0x0399*/ 249, + /*0x2c19*/ 870, + /*0x2c03*/ 848, + -1, + /*0x1f8f*/ 716, + /*0x10409*/ 1098, + -1, + /*0x040f*/ 311, + -1, -1, + /*0x00de*/ 55, + /*0x038f*/ 239, + /*0x2c0f*/ 860, + /*0x24bc*/ 825, + /*0x1f89*/ 710, + -1, -1, + /*0x0409*/ 305, + /*0x10415*/ 1110, + -1, -1, + /*0x0389*/ 235, + /*0x2c09*/ 854, + /*0x04f6*/ 415, + /*0x10411*/ 1106, + -1, -1, + /*0x1f95*/ 722, + -1, -1, + /*0x0415*/ 317, + -1, + /*0x00dc*/ 53, + /*0x1f91*/ 718, + /*0x0395*/ 245, + /*0x2c15*/ 866, + /*0x0411*/ 313, + -1, -1, + /*0xff29*/ 1071, + /*0x0391*/ 241, + /*0x2c11*/ 862, + /*0x10c7*/ 517, + -1, -1, -1, -1, -1, + /*0x01f6*/ 184, + /*0xa658*/ 972, + /*0x04f8*/ 416, + -1, + /*0xff34*/ 1082, + -1, -1, -1, -1, -1, + /*0x1f2f*/ 670, + /*0x1f2d*/ 668, + -1, + /*0xa654*/ 970, + -1, -1, + /*0x24c5*/ 834, + -1, -1, + /*0xa77e*/ 1036, + -1, -1, + /*0x1f49*/ 680, + -1, + /*0x04fa*/ 417, + /*0x00c5*/ 31, + /*0x10bc*/ 507, + /*0x01f8*/ 186, + -1, -1, -1, + /*0x01a7*/ 145, + -1, -1, + /*0x24c3*/ 832, + /*0xa646*/ 963, + -1, + /*0x24cd*/ 842, + /*0x24cb*/ 840, + /*0x10a9*/ 488, + -1, + /*0x1f2b*/ 666, + -1, + /*0x00c3*/ 29, + -1, -1, + /*0x00cd*/ 39, + /*0x00cb*/ 37, + -1, + /*0x01fa*/ 187, + -1, + /*0x1f3b*/ 674, + /*0x10b4*/ 499, + /*0x01d5*/ 167, + -1, -1, -1, -1, + /*0xa65e*/ 975, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0x1f39*/ 672, + /*0x10c5*/ 516, + -1, -1, + /*0xa65c*/ 974, + -1, -1, -1, + /*0xff30*/ 1078, + -1, -1, -1, + /*0x01d1*/ 165, + /*0x212b*/ 800, + -1, -1, -1, -1, -1, + /*0x10c3*/ 514, + -1, -1, + /*0x10cd*/ 518, + -1, -1, -1, -1, + /*0x24c1*/ 830, + -1, -1, -1, -1, -1, + /*0x24c9*/ 838, + /*0xff2f*/ 1077, + /*0xff2d*/ 1075, + /*0x00c1*/ 27, + -1, -1, -1, -1, -1, + /*0x00c9*/ 35, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + /*0x10b0*/ 495, + -1, -1, -1, -1, -1, + /*0x24bb*/ 824, + -1, -1, + /*0xff2b*/ 1073, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0x018f*/ 130, + -1, -1, -1, -1, -1, -1, + -1, + /*0x10af*/ 494, + /*0x10ad*/ 492, + /*0x0189*/ 126, + -1, -1, + /*0x24b9*/ 822, + /*0x10c1*/ 512, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0xff39*/ 1087, + -1, -1, + /*0x0191*/ 132, + -1, + /*0x1f1b*/ 660, + -1, -1, -1, -1, -1, -1, + /*0x2183*/ 818, + /*0x10ab*/ 490, + -1, -1, -1, -1, -1, -1, + -1, + /*0xff27*/ 1069, + -1, + /*0x10bb*/ 506, + -1, -1, -1, -1, -1, + /*0x1f19*/ 658, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x00d5*/ 47, + /*0x1f0f*/ 656, + -1, -1, -1, -1, -1, -1, + -1, + /*0x10b9*/ 504, + -1, + /*0x1f09*/ 650, + -1, -1, -1, -1, -1, -1, + -1, + /*0xff25*/ 1067, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, + /*0x10a7*/ 486, + -1, -1, -1, -1, + /*0x00d1*/ 43, + -1, + /*0xff23*/ 1065, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + /*0xff21*/ 1063, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x10a5*/ 484, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0x10a3*/ 482, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + /*0x10a1*/ 480, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0xfb03*/ 1054, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0xfb15*/ 1060 + }; + + if (code <= MAX_CODE_VALUE && code >= MIN_CODE_VALUE) + { + register int key = onigenc_unicode_CaseFold_11_hash(code); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register short s = wordlist[key]; + + if (s >= 0 && code1_equal(code, CaseFold_11_Table[s].from)) + return &CaseFold_11_Table[s].to; + } + } + return 0; +} + static const CaseUnfold_11_Type CaseUnfold_11_Table[] = { #define CaseUnfold_11 (*(CaseUnfold_11_Type (*)[1005])(CaseUnfold_11_Table+0)) {0x0061, {1, {0x0041}}}, @@ -2230,7 +3730,6 @@ static const CaseUnfold_13_Type CaseUnfold_13_Table[] = { {{0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7}}}, }; -#define FOLD_TABLE_SIZE 1357 #define UNFOLD1_TABLE_SIZE 1207 #define UNFOLD2_TABLE_SIZE 88 #define UNFOLD3_TABLE_SIZE 23 -- cgit v1.2.3