From 35348a080631d9cc06e38972e2752ecc64c1eede Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 30 May 2014 23:58:01 +0000 Subject: case-folding.rb: perfect hash for case unfolding1 * enc/unicode/case-folding.rb (lookup_hash): make perfect hash to lookup case unfolding table 1. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- enc/unicode/casefold.h | 1311 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1310 insertions(+), 1 deletion(-) (limited to 'enc/unicode/casefold.h') diff --git a/enc/unicode/casefold.h b/enc/unicode/casefold.h index fb8d50a98c..8647e5e8a6 100644 --- a/enc/unicode/casefold.h +++ b/enc/unicode/casefold.h @@ -3648,6 +3648,1316 @@ static const CaseUnfold_11_Type CaseUnfold_11_Table[] = { {0x0069, {1, {0x0049}}}, }; +/* 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_CaseUnfold_11_hash -N onigenc_unicode_CaseUnfold_11_lookup */ + +/* maximum key range = 1484, 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_CaseUnfold_11_hash(const OnigCodePoint code) +{ + static const unsigned short asso_values[] = + { + 1, 1492, 1, 2, 239, 509, 4, 174, 6, 104, + 363, 101, 85, 3, 7, 560, 1492, 1492, 1492, 1492, + 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, + 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, + 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, + 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, 1492, + 1492, 1492, 10, 1492, 2, 1, 8, 27, 255, 519, + 115, 504, 181, 904, 195, 459, 80, 18, 437, 726, + 102, 55, 61, 36, 117, 826, 142, 817, 46, 1042, + 6, 1033, 179, 5, 9, 1056, 17, 81, 121, 893, + 69, 91, 66, 45, 5, 744, 13, 980, 14, 1017, + 125, 702, 12, 973, 1045, 682, 263, 319, 999, 633, + 998, 625, 1001, 790, 1086, 932, 1004, 783, 1050, 615, + 415, 596, 919, 564, 669, 491, 752, 477, 991, 434, + 970, 401, 914, 328, 488, 392, 984, 140, 1025, 175, + 947, 382, 784, 167, 1038, 243, 985, 280, 500, 254, + 62, 546, 212, 113, 761, 131, 58, 101, 343, 205, + 61, 193, 231, 307, 873, 370, 638, 356, 881, 770, + 981, 152, 419, 758, 953, 942, 430, 856, 443, 913, + 227, 839, 159, 965 + }; + return asso_values[bits_of(code, 2)+66] + asso_values[bits_of(code, 1)+4] + 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_CaseUnfold_11_lookup(const OnigCodePoint code) +{ + enum + { + MIN_CODE_VALUE = 0x61, + MAX_CODE_VALUE = 0x1044f, + TOTAL_KEYWORDS = 1006, + MIN_WORD_LENGTH = 3, + MAX_WORD_LENGTH = 3, + MIN_HASH_VALUE = 8, + MAX_HASH_VALUE = 1491 + }; + + static const short wordlist[] = + { + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0x1e1b*/ 480, + /*0x049b*/ 356, + /*0x011b*/ 69, + /*0x2c9b*/ 771, + /*0x021b*/ 178, + /*0x051b*/ 420, + /*0x1f26*/ 610, + /*0x2d1b*/ 838, + /*0x2d18*/ 835, + /*0x1f00*/ 590, + /*0x2d00*/ 811, + /*0x2d1c*/ 839, + /*0x1e8b*/ 536, + /*0x1e0b*/ 472, + /*0x048b*/ 348, + /*0x010b*/ 61, + /*0x2c8b*/ 763, + /*0x020b*/ 170, + /*0x050b*/ 412, + /*0x2d1e*/ 841, + /*0x2d0b*/ 822, + /*0x1e81*/ 531, + /*0x1e01*/ 467, + /*0x0481*/ 347, + /*0x0101*/ 56, + /*0x2c81*/ 758, + /*0x0201*/ 165, + /*0x0501*/ 407, + /*0x1f01*/ 591, + /*0x2d01*/ 812, + /*0x1e91*/ 539, + /*0x1e11*/ 475, + /*0x0491*/ 351, + /*0x0111*/ 64, + /*0x2c91*/ 766, + /*0x0211*/ 173, + /*0x0511*/ 415, + /*0x1f11*/ 599, + /*0x2d11*/ 828, + /*0x1ea5*/ 544, + /*0x1e25*/ 485, + /*0x04a5*/ 361, + /*0x0125*/ 74, + /*0x2ca5*/ 776, + /*0x0225*/ 182, + /*0x0525*/ 425, + /*0x1f25*/ 609, + /*0x2d25*/ 848, + /*0x2d16*/ 833, + /*0x1e8f*/ 538, + /*0x1e0f*/ 474, + /*0x048f*/ 350, + /*0x010f*/ 63, + /*0x2c8f*/ 765, + /*0x020f*/ 172, + /*0x050f*/ 414, + /*0xa781*/ 927, + /*0x2d0f*/ 826, + /*0x0564*/ 430, + /*0x1f64*/ 634, + /*0x0268*/ 212, + /*0x0568*/ 434, + /*0x1f10*/ 598, + /*0x2d10*/ 827, + -1, + /*0xa791*/ 932, + /*0xa68b*/ 879, + /*0x1f24*/ 608, + /*0x2d24*/ 847, + /*0x24e4*/ 697, + /*0x1f22*/ 606, + /*0x2d22*/ 845, + /*0x24e8*/ 701, + /*0x24de*/ 691, + /*0xa7a5*/ 936, + /*0xa681*/ 874, + /*0x1e1f*/ 482, + /*0x049f*/ 358, + /*0x011f*/ 71, + /*0x2c9f*/ 773, + /*0x021f*/ 180, + /*0x051f*/ 422, + /*0x2d0a*/ 821, + /*0x2d1f*/ 842, + /*0xa691*/ 882, + /*0x1ea3*/ 543, + /*0x1e23*/ 484, + /*0x04a3*/ 360, + /*0x0123*/ 73, + /*0x2ca3*/ 775, + /*0x0223*/ 181, + /*0x0523*/ 424, + /*0x1f23*/ 607, + /*0x2d23*/ 846, + -1, + /*0x1ee5*/ 576, + /*0x1e65*/ 517, + /*0x04e5*/ 393, + /*0x0165*/ 104, + /*0xa725*/ 887, + /*0x0265*/ 210, + /*0x0565*/ 431, + /*0x1f65*/ 635, + /*0xa68f*/ 881, + /*0x2d0e*/ 825, + /*0x0280*/ 220, + /*0x03ae*/ 236, + /*0x1ee1*/ 574, + /*0x1e61*/ 515, + /*0x04e1*/ 391, + /*0x0161*/ 102, + /*0x2ce1*/ 806, + /*0x24e5*/ 698, + /*0x0561*/ 427, + /*0x1f61*/ 631, + /*0x028b*/ 225, + /*0x1f04*/ 594, + /*0x2d04*/ 815, + /*0x1f12*/ 600, + /*0x2d12*/ 829, + /*0xa7a3*/ 935, + /*0x1fe5*/ 658, + /*0x1f20*/ 604, + /*0x2d20*/ 843, + /*0x24e1*/ 694, + /*0x1ee3*/ 575, + /*0x1e63*/ 516, + /*0x04e3*/ 392, + /*0x0163*/ 103, + /*0x2ce3*/ 807, + /*0x0263*/ 209, + /*0x0563*/ 429, + /*0x1f63*/ 633, + /*0x1fe1*/ 657, + /*0x1ed1*/ 566, + /*0x1e51*/ 507, + /*0x04d1*/ 383, + /*0x0151*/ 94, + /*0x2cd1*/ 798, + /*0x0251*/ 200, + /*0x045e*/ 329, + /*0x1f51*/ 626, + /*0x24e3*/ 696, + /*0x1f14*/ 602, + /*0x2d14*/ 831, + /*0xa723*/ 886, + /*0x1ef3*/ 583, + /*0x1e73*/ 524, + /*0x04f3*/ 400, + /*0x0173*/ 111, + /*0x2cf3*/ 810, + /*0x24d1*/ 678, + /*0x0573*/ 445, + /*0x1f73*/ 641, + -1, + /*0xa765*/ 918, + /*0x017e*/ 116, + -1, -1, + /*0x057e*/ 456, + /*0x1fd1*/ 655, + /*0x1ed7*/ 569, + /*0x1e57*/ 510, + /*0x04d7*/ 386, + /*0x0157*/ 97, + /*0x2cd7*/ 801, + /*0x0257*/ 205, + /*0xa761*/ 916, + /*0x1f57*/ 629, + /*0x1ed3*/ 567, + /*0x1e53*/ 508, + /*0x04d3*/ 384, + /*0x0153*/ 95, + /*0x2cd3*/ 799, + /*0x0253*/ 202, + /*0x0180*/ 117, + /*0x1f53*/ 627, + /*0x028a*/ 224, + /*0x24d7*/ 684, + /*0x0465*/ 333, + /*0x01a8*/ 130, + /*0x2d1a*/ 837, + /*0x1f06*/ 596, + /*0x2d06*/ 817, + /*0x019e*/ 126, + /*0xa763*/ 917, + /*0x24d3*/ 680, + /*0x1ee9*/ 578, + /*0x1e69*/ 519, + /*0x04e9*/ 395, + /*0x0169*/ 106, + /*0x0461*/ 331, + /*0x0269*/ 213, + /*0x0569*/ 435, + /*0xa751*/ 908, + /*0x03e5*/ 274, + /*0xa665*/ 869, + /*0x2d08*/ 819, + -1, + /*0x1ee7*/ 577, + /*0x1e67*/ 518, + /*0x04e7*/ 394, + /*0x0167*/ 105, + -1, + /*0x24e9*/ 702, + /*0x0567*/ 433, + /*0x1f67*/ 637, + /*0x03e1*/ 272, + /*0xa661*/ 867, + /*0x0463*/ 332, + -1, + /*0x0260*/ 208, + /*0x01a5*/ 129, + /*0x1f60*/ 630, + /*0x0292*/ 227, + -1, + /*0x24e7*/ 700, + -1, + /*0x0451*/ 316, + /*0x03ac*/ 234, + -1, + /*0xa757*/ 911, + -1, + /*0x24e0*/ 693, + /*0x017c*/ 115, + /*0x03e3*/ 273, + /*0xa663*/ 868, + /*0x057c*/ 454, + /*0x1f7c*/ 650, + /*0xa753*/ 909, + /*0x0473*/ 340, + /*0x056a*/ 436, + /*0x1fe0*/ 656, + /*0x2c68*/ 753, + /*0x2c5e*/ 749, + /*0xa651*/ 859, + -1, + /*0x1ed9*/ 570, + /*0x1e59*/ 511, + /*0x04d9*/ 387, + /*0x0159*/ 98, + /*0x2cd9*/ 802, + /*0x0259*/ 206, + -1, -1, + /*0x0457*/ 322, + -1, + /*0xa769*/ 920, + /*0x1edd*/ 572, + /*0x1e5d*/ 513, + /*0x04dd*/ 389, + /*0x015d*/ 100, + /*0x2cdd*/ 804, + /*0x0453*/ 318, + /*0x24d9*/ 686, + -1, + /*0x1f02*/ 592, + /*0x2d02*/ 813, + /*0x01a3*/ 128, + /*0xa767*/ 919, + /*0x2173*/ 663, + /*0x03d7*/ 267, + /*0xa657*/ 862, + -1, + /*0x1f32*/ 614, + /*0x24dd*/ 690, + -1, + /*0x217e*/ 674, + /*0x01e5*/ 153, + -1, + /*0xa653*/ 860, + /*0x0469*/ 335, + -1, + /*0x2c65*/ 751, + /*0x1edb*/ 571, + /*0x1e5b*/ 512, + /*0x04db*/ 388, + /*0x015b*/ 99, + /*0x2cdb*/ 803, + /*0x025b*/ 207, + /*0x01e1*/ 151, + /*0xa77c*/ 925, + -1, + /*0x0467*/ 334, + /*0x0192*/ 122, + /*0x2c61*/ 750, + -1, + /*0x03e9*/ 276, + /*0xa669*/ 871, + -1, + /*0x0064*/ 3, + /*0x24db*/ 688, + /*0x0288*/ 222, + /*0x0068*/ 7, + -1, -1, -1, + /*0xa759*/ 912, + /*0x01e3*/ 152, + /*0x03e7*/ 275, + /*0xa667*/ 870, + /*0x1eeb*/ 579, + /*0x1e6b*/ 520, + /*0x04eb*/ 396, + /*0x016b*/ 107, + -1, + /*0x026b*/ 214, + /*0x056b*/ 437, + /*0xa75d*/ 914, + -1, -1, -1, + /*0x2c51*/ 736, + /*0x1eb3*/ 551, + /*0x1e33*/ 492, + /*0x04b3*/ 368, + /*0x0133*/ 80, + /*0x2cb3*/ 783, + /*0x0233*/ 189, + /*0x01f3*/ 159, + /*0x1f33*/ 615, + /*0x0459*/ 324, + /*0x1ecd*/ 564, + /*0x1e4d*/ 505, + /*0x2c73*/ 756, + /*0x014d*/ 92, + /*0x2ccd*/ 796, + /*0x024d*/ 197, + /*0x1042e*/ 971, + /*0x10428*/ 965, + /*0x1042a*/ 967, + -1, + /*0x045d*/ 328, + /*0x0065*/ 4, + /*0xa75b*/ 913, + /*0x217c*/ 672, + -1, + /*0x03d9*/ 268, + /*0xa659*/ 863, + /*0x2c57*/ 742, + -1, + /*0x0432*/ 285, + /*0x0266*/ 211, + /*0x0566*/ 432, + /*0x1f66*/ 636, + /*0x0061*/ 0, + /*0x019a*/ 125, + /*0x2c53*/ 738, + /*0x03dd*/ 270, + /*0xa65d*/ 865, + /*0x1eef*/ 581, + /*0x1e6f*/ 522, + /*0x04ef*/ 398, + /*0x016f*/ 109, + /*0x24e6*/ 699, + /*0x026f*/ 215, + /*0x056f*/ 441, + /*0x03b2*/ 239, + /*0x045b*/ 326, + -1, + /*0x01e9*/ 155, + /*0xa76b*/ 921, + /*0x0188*/ 120, + /*0x0063*/ 2, + /*0x1eed*/ 580, + /*0x1e6d*/ 521, + /*0x04ed*/ 397, + /*0x016d*/ 108, + -1, -1, + /*0x056d*/ 439, + -1, + /*0x01e7*/ 154, + /*0xa733*/ 893, + /*0x03db*/ 269, + /*0xa65b*/ 864, + /*0x1ed5*/ 568, + /*0x1e55*/ 509, + /*0x04d5*/ 385, + /*0x0155*/ 96, + /*0x2cd5*/ 800, + -1, + /*0xa74d*/ 906, + /*0x1f55*/ 628, + /*0x0073*/ 17, + /*0x046b*/ 336, + /*0x1ecf*/ 565, + /*0x1e4f*/ 506, + /*0x04cf*/ 382, + /*0x014f*/ 93, + /*0x2ccf*/ 797, + /*0x024f*/ 198, + -1, + /*0x24d5*/ 682, + -1, + /*0x1ecb*/ 563, + /*0x1e4b*/ 504, + /*0x0433*/ 286, + /*0x014b*/ 91, + /*0x2ccb*/ 795, + /*0x024b*/ 196, + /*0x03eb*/ 277, + /*0xa66b*/ 872, + /*0x2c6a*/ 754, + -1, -1, + /*0x044d*/ 312, + -1, -1, -1, + /*0xa76f*/ 923, + -1, + /*0x0140*/ 86, + /*0x03b3*/ 240, + /*0x0240*/ 192, + /*0x2c59*/ 744, + /*0x1f40*/ 620, + -1, -1, + /*0x0574*/ 446, + /*0x1f74*/ 642, + /*0x01dd*/ 149, + /*0x03cd*/ 265, + /*0xa64d*/ 857, + /*0xa76d*/ 922, + /*0x0069*/ 1005, + /*0x2c5d*/ 748, + -1, + /*0x1ec9*/ 562, + /*0x1e49*/ 503, + /*0x0578*/ 450, + /*0x1f78*/ 646, + /*0x2cc9*/ 794, + /*0x0249*/ 195, + /*0x046f*/ 338, + /*0x2c32*/ 705, + /*0xa755*/ 910, + /*0x0067*/ 6, + -1, + /*0x2d0c*/ 823, + /*0x017a*/ 114, + /*0x1042c*/ 969, + -1, + /*0x057a*/ 452, + /*0x1f7a*/ 648, + -1, + /*0xa74f*/ 907, + -1, + /*0x046d*/ 337, + -1, + /*0x03ef*/ 279, + -1, + /*0x2c5b*/ 746, + /*0x1e89*/ 535, + /*0x1e09*/ 471, + /*0xa74b*/ 905, + /*0x0109*/ 60, + /*0x2c89*/ 762, + /*0x0209*/ 169, + /*0x0509*/ 411, + /*0x0455*/ 320, + /*0x2d09*/ 820, + -1, + /*0x006a*/ 8, + /*0x03ed*/ 278, + /*0xa66d*/ 873, + /*0xa78c*/ 931, + -1, -1, -1, + /*0x044f*/ 314, + /*0x1ec7*/ 561, + /*0x1e47*/ 502, + -1, + /*0x01eb*/ 156, + /*0x2cc7*/ 793, + /*0x0247*/ 194, + /*0xa655*/ 861, + -1, + /*0x044b*/ 310, + -1, -1, -1, -1, + /*0x04ce*/ 381, + /*0x1ec5*/ 560, + /*0x1e45*/ 501, + /*0xa64f*/ 858, + /*0xa749*/ 904, + /*0x2cc5*/ 792, + -1, + /*0x2c33*/ 706, + /*0x1f45*/ 625, + /*0x0440*/ 299, + -1, + /*0x03cb*/ 263, + /*0xa64b*/ 856, + /*0xa77a*/ 924, + /*0x1e85*/ 533, + /*0x1e05*/ 469, + /*0x2c4d*/ 732, + /*0x0105*/ 58, + /*0x2c85*/ 760, + /*0x0205*/ 167, + /*0x0505*/ 409, + /*0x1f05*/ 595, + /*0x2d05*/ 816, + /*0xa689*/ 878, + /*0x0373*/ 229, + /*0x03c0*/ 253, + -1, + /*0x24dc*/ 689, + /*0x0449*/ 308, + /*0x1e83*/ 532, + /*0x1e03*/ 468, + /*0x2c66*/ 752, + /*0x0103*/ 57, + /*0x2c83*/ 759, + /*0x0203*/ 166, + /*0x0503*/ 408, + /*0x1f03*/ 593, + /*0x2d03*/ 814, + -1, + /*0x01ef*/ 158, + /*0x03f8*/ 281, + -1, -1, + /*0x2174*/ 664, + /*0x03c9*/ 261, + /*0xa649*/ 855, + -1, + /*0xa747*/ 903, + -1, + /*0xa785*/ 929, + /*0x028c*/ 226, + -1, -1, + /*0x01ed*/ 157, + /*0x2178*/ 668, + /*0x006b*/ 9, + /*0x1edf*/ 573, + /*0x1e5f*/ 514, + /*0x04df*/ 390, + /*0x015f*/ 101, + /*0x2cdf*/ 805, + /*0xa745*/ 902, + -1, -1, + /*0xa783*/ 928, + /*0xff51*/ 955, + -1, + /*0x217a*/ 670, + /*0xa685*/ 876, + -1, + /*0x2c55*/ 740, + /*0x0447*/ 306, + /*0x0289*/ 223, + /*0x24df*/ 692, + /*0x1ec3*/ 559, + /*0x1e43*/ 500, + /*0x00e4*/ 29, + /*0x0580*/ 458, + /*0x2cc3*/ 791, + /*0x00e8*/ 33, + /*0x2c4f*/ 734, + /*0x1f43*/ 623, + /*0x044e*/ 313, + /*0xa683*/ 875, + -1, + /*0x0445*/ 304, + -1, + /*0x03c7*/ 259, + /*0xa647*/ 854, + /*0x2c4b*/ 730, + -1, + /*0x0066*/ 5, + /*0xff57*/ 961, + -1, + /*0x045c*/ 327, + /*0x10432*/ 975, + /*0x0581*/ 459, + -1, + /*0x03ce*/ 266, + /*0x037c*/ 232, + /*0xff53*/ 957, + /*0x03c5*/ 257, + /*0xa645*/ 853, + /*0x2c40*/ 719, + /*0x006f*/ 13, + -1, + /*0x1ec1*/ 558, + /*0x1e41*/ 499, + -1, -1, + /*0x2cc1*/ 790, + -1, + /*0x214e*/ 659, + /*0x1f41*/ 621, + -1, -1, + /*0xa75f*/ 915, + /*0x01c9*/ 139, + /*0x006d*/ 11, + /*0x00e5*/ 30, + /*0x018c*/ 121, + -1, + /*0x2c49*/ 728, + -1, -1, + /*0x1ebf*/ 557, + /*0x1e3f*/ 498, + /*0x04bf*/ 374, + /*0x2184*/ 676, + /*0x2cbf*/ 789, + /*0x023f*/ 191, + /*0x00e1*/ 26, + /*0x0283*/ 221, + -1, + /*0xa743*/ 901, + /*0x1eb7*/ 553, + /*0x1e37*/ 494, + /*0x04b7*/ 370, + /*0x0137*/ 82, + /*0x2cb7*/ 785, + /*0x045f*/ 330, + -1, + /*0x1f37*/ 619, + /*0x1eb5*/ 552, + /*0x1e35*/ 493, + /*0x04b5*/ 369, + /*0x0135*/ 81, + /*0x2cb5*/ 784, + -1, + /*0x00e3*/ 28, + /*0x1f35*/ 617, + /*0x10433*/ 976, + /*0x2cee*/ 809, + -1, + /*0x056e*/ 440, + -1, + /*0x03df*/ 271, + /*0xa65f*/ 866, + /*0x0443*/ 302, + -1, + /*0x1044d*/ 1002, + -1, -1, -1, -1, + /*0x2c47*/ 726, + /*0xa741*/ 900, + /*0x0074*/ 18, + /*0xff59*/ 963, + -1, + /*0x00f3*/ 44, + /*0x01ce*/ 141, + -1, -1, + /*0x03c3*/ 255, + /*0xa643*/ 852, + /*0x2c4e*/ 733, + /*0x00fe*/ 54, + /*0x0078*/ 22, + /*0x2c45*/ 724, + -1, + /*0x04c4*/ 376, + /*0x0144*/ 88, + /*0x01dc*/ 148, + /*0x0584*/ 462, + /*0xa73f*/ 899, + /*0x1f44*/ 624, + /*0x0185*/ 119, + /*0x2c5c*/ 747, + -1, + /*0x0441*/ 300, + /*0x007a*/ 24, + /*0x1eb1*/ 550, + /*0x1e31*/ 491, + /*0x04b1*/ 367, + /*0xa737*/ 895, + /*0x2cb1*/ 782, + /*0x0231*/ 188, + -1, + /*0x1f31*/ 613, + -1, -1, + /*0x0183*/ 118, + /*0xa735*/ 894, + -1, -1, + /*0x03c1*/ 254, + /*0xa641*/ 851, + -1, + /*0x043f*/ 298, + -1, + /*0x00e9*/ 34, + /*0x1ead*/ 548, + /*0x1e2d*/ 489, + /*0x04ad*/ 365, + /*0x012d*/ 78, + /*0x2cad*/ 780, + /*0x022d*/ 186, + /*0x1fb1*/ 653, + /*0x0437*/ 290, + /*0x2d2d*/ 850, + -1, -1, + /*0x00e7*/ 32, + /*0x1044f*/ 1004, + /*0x03bf*/ 252, + -1, + /*0x0435*/ 288, + -1, + /*0x01df*/ 150, + /*0x00e0*/ 25, + -1, -1, + /*0x1044b*/ 1000, + -1, + /*0x03b7*/ 244, + /*0x1e8d*/ 537, + /*0x1e0d*/ 473, + /*0x048d*/ 349, + /*0x010d*/ 62, + /*0x2c8d*/ 764, + /*0x020d*/ 171, + /*0x050d*/ 413, + /*0x03b5*/ 242, + /*0x2d0d*/ 824, + /*0x00fc*/ 52, + -1, + /*0x10440*/ 989, + -1, + /*0x00ea*/ 35, + /*0x0586*/ 464, + -1, + /*0x2c43*/ 722, + /*0xff4d*/ 951, + /*0x1ea7*/ 545, + /*0x1e27*/ 486, + /*0x04a7*/ 362, + /*0x0127*/ 75, + /*0x2ca7*/ 777, + /*0x0227*/ 183, + /*0x0527*/ 426, + /*0x1f27*/ 611, + /*0x2d27*/ 849, + /*0x0444*/ 303, + /*0x04c6*/ 377, + /*0x0146*/ 89, + /*0x10449*/ 998, + -1, + /*0x1ef5*/ 584, + /*0x1e75*/ 525, + /*0x04f5*/ 401, + /*0x0175*/ 112, + /*0xa72d*/ 891, + /*0x0275*/ 218, + /*0x0575*/ 447, + /*0x1f75*/ 643, + /*0x0431*/ 284, + /*0x0562*/ 428, + /*0x1f62*/ 632, + /*0x03c4*/ 256, + /*0x1ef1*/ 582, + /*0x1e71*/ 523, + /*0x04f1*/ 399, + /*0x0171*/ 110, + /*0x2c41*/ 720, + /*0x0271*/ 216, + /*0x0571*/ 443, + /*0x1f71*/ 639, + /*0x24e2*/ 695, + /*0xa7a7*/ 937, + /*0xa68d*/ 880, + -1, + /*0x03b1*/ 238, + /*0x1ebd*/ 556, + /*0x1e3d*/ 497, + /*0x04bd*/ 373, + -1, + /*0x2cbd*/ 788, + /*0x01bf*/ 137, + /*0x0256*/ 204, + /*0x1eb9*/ 554, + /*0x1e39*/ 495, + /*0x04b9*/ 371, + /*0x2c3f*/ 718, + /*0x2cb9*/ 786, + -1, -1, + /*0xff55*/ 959, + -1, + /*0x10447*/ 996, + -1, + /*0x24d6*/ 683, + /*0x03ad*/ 235, + /*0x2c37*/ 710, + /*0xa727*/ 888, + -1, -1, + /*0xff4f*/ 953, + -1, -1, + /*0x1044e*/ 1003, + /*0x2c35*/ 708, + -1, + /*0x10445*/ 994, + /*0x0582*/ 460, + /*0x00eb*/ 36, + /*0xff4b*/ 949, + /*0x1e95*/ 541, + /*0x1e15*/ 477, + /*0x0495*/ 353, + /*0x0115*/ 66, + /*0x2c95*/ 768, + /*0x0215*/ 175, + /*0x0515*/ 417, + /*0x1f15*/ 603, + /*0x2d15*/ 832, + /*0x1e93*/ 540, + /*0x1e13*/ 476, + /*0x0493*/ 352, + /*0x0113*/ 65, + /*0x2c93*/ 767, + /*0x0213*/ 174, + /*0x0513*/ 416, + /*0x1f13*/ 601, + /*0x2d13*/ 830, + -1, + /*0x0446*/ 305, + -1, -1, + /*0x1efd*/ 588, + /*0x1e7d*/ 529, + /*0x04fd*/ 405, + /*0x0475*/ 341, + /*0xa73d*/ 898, + /*0x027d*/ 219, + /*0x057d*/ 455, + /*0x1f7d*/ 651, + /*0x2c44*/ 723, + /*0x1d7d*/ 466, + /*0xff49*/ 947, + /*0xa739*/ 896, + /*0x00e6*/ 31, + /*0x03c6*/ 258, + -1, + /*0x0471*/ 339, + -1, + /*0x1ef9*/ 586, + /*0x1e79*/ 527, + /*0x04f9*/ 403, + -1, + /*0x2c31*/ 704, + /*0xa793*/ 933, + /*0x0579*/ 451, + /*0x1f79*/ 647, + /*0x00ef*/ 40, + /*0x1d79*/ 465, + -1, + /*0x043d*/ 296, + /*0x0456*/ 321, + -1, -1, + /*0xa695*/ 884, + /*0x2175*/ 665, + -1, + /*0x0439*/ 292, + /*0x01ad*/ 131, + /*0x006e*/ 12, + /*0x2cec*/ 808, + /*0x00ed*/ 38, + /*0x056c*/ 438, + /*0xa693*/ 883, + -1, -1, + /*0x03bd*/ 250, + /*0x2171*/ 661, + -1, + /*0x10443*/ 992, + /*0x0570*/ 442, + /*0x1f70*/ 638, + -1, + /*0x03b9*/ 246, + -1, + /*0xff47*/ 945, + /*0x1ea1*/ 542, + /*0x1e21*/ 483, + /*0x04a1*/ 359, + /*0x0121*/ 72, + /*0x2ca1*/ 774, + -1, + /*0x0521*/ 423, + /*0x1f21*/ 605, + /*0x2d21*/ 844, + -1, + /*0xff4e*/ 952, + /*0x1e87*/ 534, + /*0x1e07*/ 470, + /*0xff45*/ 943, + /*0x0107*/ 59, + /*0x2c87*/ 761, + /*0x0207*/ 168, + /*0x0507*/ 410, + /*0x1f07*/ 597, + /*0x2d07*/ 818, + /*0x1efb*/ 587, + /*0x1e7b*/ 528, + /*0x04fb*/ 404, + /*0x04cc*/ 380, + -1, + /*0x10441*/ 990, + /*0x057b*/ 453, + /*0x1f7b*/ 649, + /*0x04c2*/ 375, + /*0x0142*/ 87, + /*0x047d*/ 345, + /*0x0242*/ 193, + /*0x01c6*/ 138, + /*0x1f42*/ 622, + /*0x00f4*/ 45, + /*0xa7a1*/ 934, + -1, + /*0x2c46*/ 725, + /*0x01f5*/ 160, + /*0x1ebb*/ 555, + /*0x1e3b*/ 496, + /*0x04bb*/ 372, + -1, + /*0x2cbb*/ 787, + /*0x1043f*/ 988, + /*0x00f8*/ 48, + /*0xa787*/ 930, + /*0x0479*/ 343, + -1, + /*0x1ef7*/ 585, + /*0x1e77*/ 526, + /*0x04f7*/ 402, + /*0x0177*/ 113, + -1, + /*0x10437*/ 980, + /*0x0577*/ 449, + /*0x1f77*/ 645, + -1, + /*0x00fa*/ 50, + /*0x0254*/ 203, + /*0x217d*/ 673, + -1, + /*0x10435*/ 978, + /*0x01bd*/ 136, + /*0x01d6*/ 145, + /*0xa687*/ 877, + /*0x0576*/ 448, + /*0x1f76*/ 644, + /*0x2c3d*/ 716, + /*0x2c56*/ 741, + /*0x01b9*/ 135, + /*0x24d4*/ 681, + /*0x1eff*/ 589, + /*0x1e7f*/ 530, + /*0x04ff*/ 406, + /*0x2c39*/ 712, + -1, + /*0x2179*/ 669, + /*0x057f*/ 457, + /*0x04ca*/ 379, + /*0x1eaf*/ 549, + /*0x1e2f*/ 490, + /*0x04af*/ 366, + /*0x012f*/ 79, + /*0x2caf*/ 781, + /*0x022f*/ 187, + /*0xff43*/ 941, + /*0x1ea9*/ 546, + /*0x1e29*/ 487, + /*0x04a9*/ 363, + /*0x0129*/ 76, + /*0x2ca9*/ 778, + /*0x0229*/ 184, + /*0x0272*/ 217, + /*0x0572*/ 444, + /*0x1f72*/ 640, + /*0x0250*/ 199, + /*0x0195*/ 123, + /*0x10444*/ 993, + /*0xa73b*/ 897, + /*0x04c8*/ 378, + /*0x0148*/ 90, + /*0x2170*/ 660, + /*0x0075*/ 19, + /*0x047b*/ 344, + /*0x044c*/ 311, + /*0x0062*/ 1, + -1, + /*0x24d0*/ 677, + /*0x24da*/ 687, + /*0x0442*/ 301, + /*0x10431*/ 974, + /*0x1f36*/ 618, + /*0x1f34*/ 616, + /*0x013c*/ 84, + /*0x0071*/ 15, + /*0x023c*/ 190, + /*0x1fd0*/ 654, + /*0xff41*/ 939, + /*0x01fd*/ 163, + /*0x03fb*/ 282, + /*0x03cc*/ 264, + /*0xa7a9*/ 938, + /*0x043b*/ 294, + /*0x1eab*/ 547, + /*0x1e2b*/ 488, + /*0x04ab*/ 364, + /*0x012b*/ 77, + /*0x2cab*/ 779, + /*0x022b*/ 185, + -1, + /*0x1042d*/ 970, + /*0xa77f*/ 926, + /*0x0477*/ 342, + /*0x217b*/ 671, + -1, + /*0x01f9*/ 161, + /*0x0252*/ 201, + /*0x0454*/ 319, + /*0x03bb*/ 248, + /*0xa72f*/ 892, + /*0x1e19*/ 479, + /*0x0499*/ 355, + /*0x0119*/ 68, + /*0x2c99*/ 770, + /*0x0219*/ 177, + /*0x0519*/ 419, + /*0xa729*/ 889, + /*0x2d19*/ 836, + /*0x24d2*/ 679, + /*0x1e17*/ 478, + /*0x0497*/ 354, + /*0x0117*/ 67, + /*0x2c97*/ 769, + /*0x0217*/ 176, + /*0x0517*/ 418, + /*0x047f*/ 346, + /*0x2d17*/ 834, + /*0x2c6c*/ 755, + /*0x1f30*/ 612, + /*0x013e*/ 85, + /*0x044a*/ 309, + /*0x24d8*/ 685, + /*0x2177*/ 667, + /*0x1e1d*/ 481, + /*0x049d*/ 357, + /*0x011d*/ 70, + /*0x2c9d*/ 772, + /*0x021d*/ 179, + /*0x051d*/ 421, + /*0x0585*/ 463, + /*0x2d1d*/ 840, + -1, + /*0x01a1*/ 127, + /*0x2176*/ 666, + /*0x0450*/ 315, + /*0x045a*/ 325, + /*0x03ca*/ 262, + /*0x1fb0*/ 652, + -1, + /*0x03af*/ 237, + /*0x10446*/ 995, + /*0x0448*/ 307, + -1, + /*0xa72b*/ 890, + /*0x0583*/ 461, + /*0x217f*/ 675, + -1, + /*0x03f2*/ 280, + /*0x0436*/ 289, + /*0x0434*/ 287, + /*0xff44*/ 942, + /*0x0438*/ 291, + /*0x01fb*/ 162, + /*0x01cc*/ 140, + /*0x043c*/ 295, + /*0x013a*/ 83, + -1, + /*0x03c8*/ 260, + /*0x2c4c*/ 731, + -1, + /*0x0079*/ 23, + /*0x2172*/ 662, + /*0xa697*/ 885, + /*0x2c42*/ 721, + /*0x03b6*/ 243, + /*0x03b4*/ 241, + -1, + /*0x03b8*/ 245, + -1, -1, + /*0x03bc*/ 249, + /*0x1043d*/ 986, + -1, -1, -1, + /*0x0452*/ 317, + /*0x2c3b*/ 714, + /*0x006c*/ 10, + /*0x10439*/ 982, + -1, -1, -1, -1, -1, -1, + /*0x0070*/ 14, + /*0x01d4*/ 144, + -1, + /*0x0458*/ 323, + -1, -1, + /*0x2c54*/ 739, + -1, -1, -1, + /*0x0430*/ 283, + -1, + /*0x2c76*/ 757, + /*0x0371*/ 228, + -1, + /*0x043e*/ 297, + -1, -1, -1, + /*0x01ff*/ 164, + -1, -1, -1, -1, -1, -1, + -1, + /*0x00ee*/ 39, + -1, + /*0x2c4a*/ 729, + -1, + /*0x03be*/ 251, + -1, -1, -1, -1, -1, -1, + /*0x01d0*/ 142, + /*0x01da*/ 147, + -1, -1, -1, + /*0x2c50*/ 735, + /*0x2c5a*/ 745, + -1, -1, -1, + /*0xff46*/ 944, + -1, + /*0x2c48*/ 727, + /*0x043a*/ 293, + /*0x01b6*/ 134, + /*0x01b4*/ 133, + -1, -1, -1, + /*0x2c36*/ 709, + /*0x2c34*/ 707, + -1, + /*0x2c38*/ 711, + /*0x0077*/ 21, + -1, + /*0x2c3c*/ 715, + -1, -1, -1, + /*0x03ba*/ 247, + -1, -1, -1, -1, + /*0x0076*/ 20, + -1, -1, -1, -1, -1, -1, + /*0x01d2*/ 143, + /*0xff56*/ 960, + -1, + /*0x037d*/ 233, + -1, + /*0x2c52*/ 737, + -1, -1, + /*0x0199*/ 124, + -1, -1, -1, -1, + /*0x01d8*/ 146, + -1, -1, -1, -1, + /*0x2c58*/ 743, + -1, + /*0x01b0*/ 132, + /*0x0072*/ 16, + -1, -1, -1, + /*0x2c30*/ 703, + -1, -1, -1, -1, + /*0x2c3e*/ 717, + -1, -1, -1, -1, -1, -1, + -1, + /*0x1044c*/ 1001, + -1, -1, -1, -1, + /*0x10442*/ 991, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0x1043b*/ 984, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x2c3a*/ 713, + -1, + /*0x00f5*/ 46, + -1, -1, + /*0x00e2*/ 27, + -1, -1, -1, -1, -1, + /*0x037b*/ 231, + -1, -1, + /*0x00f1*/ 42, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, + /*0x1044a*/ 999, + -1, -1, + /*0x1042f*/ 972, + -1, -1, -1, -1, -1, -1, + /*0x10429*/ 966, + -1, + /*0x0377*/ 230, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0x10448*/ 997, + -1, -1, -1, -1, -1, -1, + /*0x10436*/ 979, + /*0x10434*/ 977, + -1, + /*0x10438*/ 981, + -1, -1, + /*0x1043c*/ 985, + -1, -1, + /*0xff4c*/ 950, + -1, -1, -1, -1, + /*0xff42*/ 940, + -1, -1, -1, -1, + /*0x1042b*/ 968, + -1, -1, -1, -1, -1, -1, + -1, + /*0x00fd*/ 53, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0xff54*/ 958, + -1, + /*0x00f9*/ 49, + -1, -1, + /*0x10430*/ 973, + -1, -1, -1, -1, + /*0x1043e*/ 987, + -1, -1, -1, -1, -1, -1, + -1, -1, + /*0x00ec*/ 37, + -1, -1, -1, + /*0xff4a*/ 948, + -1, -1, -1, + /*0x00f0*/ 41, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0xff50*/ 954, + /*0xff5a*/ 964, + -1, -1, -1, -1, -1, + /*0xff48*/ 946, + -1, + /*0x1043a*/ 983, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0x00fb*/ 51, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0xff52*/ 956, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + /*0xff58*/ 962, + -1, -1, -1, -1, -1, -1, + -1, + /*0x00f6*/ 47, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + /*0x00ff*/ 55, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, + -1, -1, -1, + /*0x00f2*/ 43 + }; + + if (code <= MAX_CODE_VALUE && code >= MIN_CODE_VALUE) + { + register int key = onigenc_unicode_CaseUnfold_11_hash(code); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register short s = wordlist[key]; + + if (s >= 0 && code1_equal(code, CaseUnfold_11_Table[s].from)) + return &CaseUnfold_11_Table[s].to; + } + } + return 0; +} + static const CaseUnfold_12_Type CaseUnfold_12_Table[] = { #define CaseUnfold_12 (*(CaseUnfold_12_Type (*)[58])(CaseUnfold_12_Table+0)) {{0x0061, 0x02be}, {1, {0x1e9a}}}, @@ -3730,6 +5040,5 @@ static const CaseUnfold_13_Type CaseUnfold_13_Table[] = { {{0x03c9, 0x0342, 0x03b9}, {1, {0x1ff7}}}, }; -#define UNFOLD1_TABLE_SIZE 1207 #define UNFOLD2_TABLE_SIZE 88 #define UNFOLD3_TABLE_SIZE 23 -- cgit v1.2.3