/* This file was converted by gperf_fold_key_conv.py from gperf output file. */ /* ANSI-C code produced by gperf version 3.0.4 */ /* Command-line: gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N unicode_fold1_key unicode_fold1_key.gperf */ /* Computed positions: -k'1-3' */ /* This gperf source file was generated by make_unicode_fold_data.py */ #include #include "regenc.h" #define TOTAL_KEYWORDS 1196 #define MIN_WORD_LENGTH 3 #define MAX_WORD_LENGTH 3 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 1304 /* maximum key range = 1299, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif /*ARGSUSED*/ static unsigned int hash(OnigCodePoint codes[]) { static const unsigned short asso_values[] = { 7, 5, 93, 4, 1, 16, 893, 1162, 891, 1085, 889, 380, 8, 376, 1101, 332, 1100, 329, 1099, 3, 874, 943, 870, 914, 87, 322, 1095, 317, 1093, 579, 2, 11, 1054, 13, 956, 902, 31, 775, 632, 343, 619, 330, 611, 323, 0, 27, 850, 311, 599, 309, 849, 1240, 862, 1226, 445, 1220, 591, 888, 583, 1253, 1091, 1217, 1087, 1079, 1074, 419, 858, 845, 441, 304, 400, 842, 394, 1067, 389, 1053, 383, 1211, 218, 1206, 202, 436, 194, 1202, 181, 1183, 153, 1177, 376, 1166, 166, 56, 323, 0, 571, 112, 834, 877, 1035, 609, 123, 901, 145, 684, 115, 933, 364, 1163, 345, 603, 311, 144, 573, 162, 563, 1188, 260, 964, 240, 1174, 476, 1034, 453, 814, 669, 454, 815, 799, 656, 1242, 963, 113, 806, 270, 561, 304, 795, 268, 1031, 581, 1157, 182, 44, 467, 1154, 1305, 1042, 1305, 1028, 387, 869, 1305, 362, 1305, 1142, 1305, 639, 234, 1060, 1305, 1131, 381, 190, 194, 780, 185, 140, 34, 209, 173, 1021, 369, 1017, 145, 1150, 834, 788, 820, 1011, 116, 773, 658, 1004, 1241, 767, 64, 762, 648, 756, 510, 999, 487, 750, 254, 740, 625, 733, 662, 728, 992, 720, 713, 533, 986, 515, 169, 427, 702, 266, 693, 687, 644, 337, 963, 556, 954, 524, 947, 329, 942, 288, 931, 229, 925, 104, 1143, 80, 908, 48, 1138, 71, 1133, 59, 1131, 295, 605, 276, 525, 547, 1107, 540, 406, 504, 156, 920, 93, 493, 84, 676, 34, 247, 4, 1128, 14, 18, 32, 220, 2, 131 }; return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+3] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)]; } #ifdef __GNUC__ __inline #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif int unicode_fold1_key(OnigCodePoint codes[]) { static const short int wordlist[] = { -1, -1, -1, -1, -1, -1, 3240, 2547, 1016, 1772, 1712, 1751, 231, 171, 210, 884, 165, 1724, 147, 2085, 183, 2106, 2082, 1322, 1262, 1301, 1253, 2073, 153, 887, 493, 1274, 156, 3243, 2088, 2748, 2826, 2793, 2745, 3234, 1760, 2985, 2772, 219, 1460, 2829, 159, 2835, 144, 2127, 2751, 2601, 1085, 1920, 1310, 2730, 1214, 2034, 1643, 854, 459, 3456, 80, 2541, 1010, 2844, 2283, 1220, 2040, 1655, 860, 465, 3468, 92, 1514, 756, 405, 2286, 2733, 1217, 2037, 1649, 857, 462, 3462, 86, 2394, 2727, 1211, 2031, 1637, 851, 456, 3450, 1700, 3228, 1742, 2406, 138, 201, 559, 502, 541, 1694, 878, 2121, 3507, 132, 514, 2400, 1292, 2724, 1208, 2028, 1631, 848, 453, 3444, 2388, 2553, 1022, 2808, 2565, 1040, 1863, 354, 1496, 315, 399, 12, 2562, 1034, 1856, 2217, 2268, 309, 1427, 0, 1346, 1259, 2079, 2205, 2382, 499, 694, 168, 1334, 2637, 1121, 1941, 1457, 2577, 387, 1037, 1860, 1478, 3072, 312, 31, 6, 2526, 995, 1835, 2211, 3066, 288, 1688, 1367, 1340, 3501, 126, 2193, 3603, 2538, 1007, 1841, 37, 1178, 294, 1574, 824, 3138, 3387, 1466, 2199, 1373, 3069, 532, 2520, 989, 1832, 2949, 3213, 285, 3045, 1454, 3597, 2631, 1115, 2190, 3354, 2514, 983, 1829, 1448, 3225, 282, 3051, 3348, 2508, 977, 1826, 631, 676, 279, 643, 2640, 1124, 1944, 1463, 3207, 390, 3042, 637, 3342, 2502, 971, 1823, 1256, 2076, 276, 3132, 496, 3201, 162, 3039, 2721, 1205, 2025, 1625, 845, 3195, 3438, 3036, 658, 640, 378, 2580, 1061, 1884, 3141, 712, 336, 613, 52, 1247, 2067, 3189, 2235, 3033, 2301, 3540, 2919, 1388, 1538, 786, 622, 2376, 1058, 1881, 2913, 709, 333, 2700, 46, 2004, 1583, 833, 2229, 3396, 2295, 607, 691, 1382, 1226, 2046, 1667, 866, 471, 3480, 105, 1445, 2916, 1433, 601, 2718, 1202, 2022, 1619, 842, 2892, 3432, 598, 1223, 2043, 1661, 863, 468, 3474, 99, 3315, 2475, 944, 2898, 2418, 3255, 264, 3249, 595, 1049, 1872, 3591, 2178, 324, 2340, 27, 2370, 1439, 2889, 3237, 2544, 1013, 1844, 2412, 1364, 297, 2715, 1199, 2019, 1613, 839, 2886, 3426, 3162, 2706, 1190, 2010, 1595, 2142, 2883, 3408, 2817, 3081, 1046, 1869, 2277, 2811, 321, 3549, 3606, 664, 2136, 3231, 2787, 3054, 2880, 2781, 2364, 1358, 2616, 1100, 1935, 1043, 1866, 372, 2346, 318, 2853, 18, 1472, 3585, 393, 2223, 2532, 1001, 1838, 3078, 1352, 291, 3336, 2496, 965, 1820, 381, 2196, 3330, 2490, 959, 1817, 369, 3324, 2484, 953, 1814, 586, 3075, 3318, 2478, 947, 1811, 2775, 655, 2187, 2739, 2769, 3219, 1682, 3048, 2181, 3495, 120, 3579, 3183, 625, 3030, 3303, 2463, 932, 3177, 3561, 3027, 258, -1, 3171, 2697, 3024, 2001, 1577, 827, 3165, 3390, 3021, 3351, 2511, 980, 652, -1, 3312, 2472, 941, 1808, 3270, 2430, 899, 1787, -1, 2289, 243, 2928, 2175, -1, 1067, 1890, 2157, 715, 342, 345, 65, 74, -1, 2901, 2247, 2256, 2313, 2322, 3198, 1400, 1409, -1, 366, 3159, 706, 3018, 592, 1064, 1887, 2997, 700, 339, 589, 59, -1, 2925, -1, 2241, 3090, 2307, 1532, 779, 1394, 2742, 1241, 2061, 1697, 881, 483, -1, 135, 3111, 2964, -1, 2922, 1235, 2055, 1685, 875, 480, 3498, 123, 3543, 1526, 772, 2694, 2895, 1998, 1571, 820, 421, 3384, 3156, 2877, 2712, 1196, 2016, 1607, 1670, 2874, 3420, 3483, 108, 2691, 2871, 1995, 1565, 814, 574, 3378, 2868, 1232, 2052, 1679, 872, 477, 3492, 117, 1229, 2049, 1673, 869, 474, 3486, 111, 2358, 2709, 1193, 2013, 1601, 697, 2589, 3414, 1908, 1055, 1878, 357, -1, 330, 670, 40, 2550, 1019, 1847, 1052, 1875, 300, 1436, 327, 1376, 34, 2865, 3282, 2442, 911, 1793, 363, 2352, 249, 1370, 3276, 2436, 905, 1790, 2169, 3102, 246, 3087, 3252, -1, 3537, 1778, 2163, 2574, 237, 3057, 2823, 3084, 1664, 3573, 24, 3477, 102, 1769, -1, 1328, 228, 3003, 3531, 1361, 2202, 1766, 2145, -1, 225, 3000, 2862, 1319, 1544, 792, 2139, 3357, -1, 2991, 1763, 1316, 2415, 222, 2859, 2622, 1106, 3567, -1, 2133, 375, 2982, 2856, 1592, 1313, 432, 3405, 1520, 762, 2979, 679, 2274, 661, 1076, 1899, 2850, 724, 1502, 742, 1166, 628, 1550, 2976, 2265, 3363, 2331, 1070, 1893, 1418, 3123, 685, 2343, 71, 1244, 2064, 1703, 2253, 487, 2319, 141, -1, 1406, -1, 2703, 1187, 2007, 1589, 9, 565, 3402, 1184, 2214, 1586, 836, 429, 3399, 1343, 2937, 634, 1181, 556, 1580, 830, 425, 3393, -1, 3510, 2904, 553, 2931, 1172, -1, 1562, 810, 417, 3375, 2688, -1, 1992, 1559, 807, 550, 3372, -1, 2685, 3558, 1989, 1553, 800, 2682, 3366, 1986, 1547, 796, -1, 3360, 2679, 1163, 1983, 1541, 789, 414, -1, 3516, -1, 673, 2676, 1160, 1980, 1535, 783, 411, 2670, 1154, 1974, 1523, 767, 408, 2667, 1151, 1971, 1517, 759, 2664, 1148, 1968, 1511, 752, 3555, 2658, 1142, 1962, 1499, 739, 3552, 2970, 2634, 1118, 1938, 1451, 2271, 384, 2130, 3546, 2652, 1136, 1956, 1487, 730, 396, -1, 2592, 3153, 1911, 3528, -1, 360, 3150, 2847, 721, 348, 3525, 2586, 1082, 1905, -1, 2262, 1442, 2328, 3519, 3135, 1415, 1073, 1896, 3513, 718, -1, 68, 1430, 1490, 733, 2250, 2259, 2316, 2325, 3105, 1403, 1412, -1, 3093, 2556, 1025, 1850, 1484, 727, 303, 3099, 3321, 2481, 950, 3309, 2469, 938, 267, 3258, 3246, 261, 1781, 1775, 2184, 240, 234, 2172, 3306, 2466, 935, 1805, 3264, 2424, 893, 1784, 1331, 1325, -1, 3060, 2613, 1097, 1932, 1739, 2151, 3168, 198, 1736, 2559, 1028, 195, -1, 2115, -1, 2994, 2988, 2109, 1289, 3279, 2439, 908, 1286, 1721, 3015, 1718, 180, 1715, 177, 2802, 174, 2166, 2103, 2796, 2097, 3117, 2091, 1271, -1, 1268, 3, 1265, -1, 1640, 2208, 2124, 3453, 77, 2766, 1337, 2760, 2280, 2754, 1238, 2058, 1691, -1, 2118, 3504, 129, 1628, 2841, 450, 3441, -1, 2568, 1622, 2940, 447, 3435, 583, 2391, 15, 2805, 568, 562, 2220, 1616, 2934, 444, 3429, 1349, 1610, 580, 441, 3423, 2112, 571, 2379, 1604, 1757, 438, 3417, 216, 2373, 529, 1079, 1902, 1598, 526, 435, 3411, 2799, 49, 1307, 2367, 2907, 2232, 2337, 2298, 2361, 1424, 1385, -1, 511, 2838, 508, 2355, 505, 1175, -1, 1568, 817, -1, 3381, 1169, 2349, 1556, 804, 3096, 3369, 2673, 1157, 1977, 1529, 776, 2661, 1145, 1965, 1505, 746, 2961, 3594, 2655, 1139, 1959, 1493, 736, 3588, 2646, 1130, 1950, 1475, 2643, 1127, 1947, 1469, -1, 646, 3582, 2610, 1094, 1929, 2595, 3576, 1914, 2583, -1, 1031, 1853, -1, 3570, 306, 62, 2607, 1091, 1926, 2244, -1, 2310, 3564, 547, 1397, 3147, 3333, 2493, 962, 3144, 1754, 667, 273, 213, 2625, 1109, 3114, -1, -1, 3108, 3327, 2487, 956, 3063, 1304, 3534, 270, 3300, 2460, 929, 1802, 3522, 3297, 2457, 926, 2832, -1, -1, 255, 3180, 3294, 2454, 923, 1799, 3288, 2448, 917, 1796, 3126, 1748, 2100, 1745, 207, 3174, 204, 1733, 1730, 1727, 192, 189, 186, 2736, 3012, 1298, 1676, 1295, 2763, 3489, 114, 1283, 1280, 1277, -1, -1, 2820, 3009, 2814, -1, 682, 3006, 2790, 2784, 2778, 1250, 2070, 2628, 1112, 490, 1658, 150, 1652, 3471, 96, 3465, 89, 1646, 2619, 1103, 3459, 83, 1634, 544, -1, 3447, 2649, 1133, 1953, 1481, 2604, 1088, 1923, 2598, -1, 1917, -1, -1, 2409, 2571, 2403, 3129, 2535, 1004, 2958, 2397, 21, 2943, 577, 2094, 2385, 2910, 3120, 2529, 998, 1355, -1, 56, 2955, 2523, 992, 2238, 538, 2304, 535, 2757, 1391, -1, 523, 520, 517, 43, -1, -1, 3222, 2226, 2973, 2292, 2517, 986, 1379, 3345, 2505, 974, -1, 3216, 3339, 2499, 968, -1, -1, 3210, 3291, 2451, 920, 3273, 2433, 902, 252, -1, 703, 3267, 2427, 896, 3600, -1, -1, 2160, -1, -1, 3204, 1709, -1, 2154, 3192, 3261, 2421, 890, -1, 3186, 1508, 749, 402, 351, 1706, -1, 688, 2148, 3285, 2445, 914, 2334, 649, -1, 1421, 619, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 616, -1, -1, -1, -1, -1, 610, -1, -1, -1, -1, -1, 2967, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2952, 604, -1, 2946 }; if (0 == 0) { int key = hash(codes); if (key <= MAX_HASH_VALUE && key >= 0) { int index = wordlist[key]; if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds1 + index, 1) == 0) return index; } } return -1; }