/* This file was converted by gperf_fold_key_conv.py
from gperf output file. */
/* ANSI-C code produced by gperf version 3.0.3 */
/* Command-line: /Library/Developer/CommandLineTools/usr/bin/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 <string.h>
#include "regenc.h"
#define TOTAL_KEYWORDS 1055
#define MIN_WORD_LENGTH 3
#define MAX_WORD_LENGTH 3
#define MIN_HASH_VALUE 6
#define MAX_HASH_VALUE 1196
/* maximum key range = 1191, 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, 9, 57, 1, 12, 682, 788, 676, 782,
665, 294, 885, 291, 884, 288, 879, 275, 873, 776,
659, 772, 379, 745, 45, 272, 871, 266, 865, 157,
2, 14, 815, 198, 697, 675, 28, 628, 479, 615,
471, 545, 463, 551, 0, 303, 650, 524, 454, 504,
648, 1054, 637, 1051, 262, 1045, 450, 1042, 440, 1073,
864, 1035, 860, 849, 845, 1032, 632, 621, 252, 429,
242, 614, 232, 838, 221, 835, 210, 1028, 139, 1022,
127, 832, 115, 1017, 97, 1011, 87, 963, 200, 949,
77, 178, 190, 0, 417, 1038, 602, 724, 117, 634,
44, 1055, 60, 331, 27, 816, 168, 1007, 156, 997,
144, 1001, 408, 387, 396, 991, 280, 763, 272, 981,
294, 769, 321, 532, 497, 535, 587, 560, 488, 964,
82, 125, 584, 474, 371, 213, 555, 457, 813, 667,
64, 448, 810, 508, 990, 1197, 954, 1197, 798, 519,
793, 1197, 787, 1197, 986, 1197, 188, 431, 374, 1197,
319, 288, 166, 1197, 763, 1197, 16, 8, 747, 1197,
981, 397, 945, 1197, 108, 313, 740, 306, 942, 180,
494, 298, 939, 469, 927, 390, 923, 279, 734, 267,
920, 257, 727, 234, 721, 304, 917, 264, 914, 1023,
909, 329, 908, 1014, 181, 555, 869, 212, 623, 202,
905, 887, 552, 813, 718, 688, 581, 664, 536, 439,
533, 418, 530, 384, 364, 255, 357, 221, 311, 281,
349, 229, 339, 143, 520, 114, 513, 268, 710, 63,
703, 48, 696, 240, 604, 97, 505, 155, 897, 152,
36, 24, 850, 105, 18, 100, 749, 15, 430
};
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)];
}
int
unicode_fold1_key(OnigCodePoint codes[])
{
static const int wordlist[] =
{
-1, -1, -1, -1, -1, -1,
2970,
2286,
1013,
1511,
1451,
1490,
231,
171,
210,
2724,
559,
502,
541,
1319,
1259,
1298,
1824,
2376,
1118,
1680,
1250,
1812,
387,
165,
493,
2877,
156,
1827,
2304,
1037,
1602,
1499,
147,
315,
219,
12,
2811,
643,
1244,
1806,
1343,
1307,
1956,
1866,
2658,
2301,
1031,
1595,
1481,
2478,
309,
201,
0,
2805,
637,
532,
120,
1331,
1289,
1944,
1860,
2652,
1034,
1599,
2475,
2337,
312,
1656,
6,
2808,
640,
114,
1821,
1337,
688,
1950,
884,
2655,
2277,
1004,
1580,
2685,
881,
294,
1076,
1641,
2790,
622,
2265,
992,
1574,
2835,
1938,
288,
2637,
1421,
2784,
613,
2259,
986,
1571,
2964,
1932,
285,
2631,
132,
2781,
607,
159,
2388,
1130,
1692,
1929,
153,
2628,
3084,
2253,
980,
1568,
1028,
1592,
282,
102,
306,
2778,
601,
2802,
3078,
2247,
974,
1565,
354,
2625,
279,
2649,
676,
2775,
598,
1424,
3072,
2241,
968,
1562,
2154,
2622,
276,
1046,
1611,
2772,
595,
324,
96,
27,
2820,
655,
875,
2619,
1361,
1043,
1608,
144,
2667,
321,
138,
3183,
2817,
652,
2370,
1112,
1355,
1040,
1605,
2148,
2664,
318,
2871,
18,
2814,
2955,
2280,
1007,
1349,
2433,
1962,
1737,
2661,
399,
421,
2943,
2361,
1103,
2283,
1010,
1583,
375,
2007,
297,
2862,
2937,
2793,
625,
2271,
998,
1577,
1181,
2709,
291,
2640,
429,
2787,
3066,
2235,
962,
1559,
1178,
1935,
2931,
2634,
425,
2769,
592,
3060,
2229,
956,
1556,
3114,
1436,
2616,
2925,
77,
2766,
589,
3054,
2223,
950,
1553,
2019,
89,
2613,
817,
2919,
2763,
3048,
2217,
944,
1550,
3129,
1926,
126,
2610,
2130,
2760,
3042,
2211,
938,
1547,
3123,
1920,
2142,
2607,
833,
2757,
3000,
2169,
896,
1526,
1163,
1914,
243,
2604,
827,
2736,
574,
2319,
1058,
1623,
108,
1896,
336,
2958,
52,
2076,
1055,
1620,
2124,
1385,
333,
1974,
46,
83,
664,
2961,
783,
1379,
381,
1968,
1061,
1626,
703,
3177,
339,
2949,
59,
2973,
670,
2487,
2565,
1391,
3093,
1980,
2136,
2913,
2469,
1211,
1773,
776,
2490,
459,
2568,
80,
2367,
1109,
2907,
1064,
1629,
769,
2022,
342,
2868,
65,
709,
1169,
2583,
2901,
1397,
417,
1986,
759,
706,
9,
2133,
1217,
1779,
2895,
1340,
465,
1953,
92,
3087,
2547,
2472,
1214,
1776,
2889,
2025,
462,
739,
86,
2466,
1208,
1770,
2484,
789,
456,
730,
2463,
1205,
1767,
2145,
851,
453,
724,
2328,
3105,
1647,
2364,
1106,
357,
2139,
712,
2841,
679,
1478,
2865,
1433,
198,
2127,
807,
2676,
529,
450,
2712,
1286,
2121,
1854,
37,
405,
857,
1052,
1617,
1370,
3180,
330,
393,
40,
2826,
661,
854,
3174,
1373,
1049,
1614,
2079,
2118,
327,
848,
34,
2823,
2289,
1016,
1586,
1367,
845,
300,
447,
2670,
2796,
628,
3171,
3045,
2214,
941,
1256,
1818,
2643,
264,
499,
378,
168,
586,
3012,
2181,
908,
1532,
1917,
444,
249,
2112,
753,
2742,
3006,
2175,
902,
1529,
2982,
1908,
246,
1517,
691,
2739,
237,
2562,
3165,
2730,
565,
1902,
1508,
1325,
2106,
228,
1442,
2040,
2721,
556,
1505,
402,
1316,
225,
1884,
2034,
2718,
553,
1502,
3159,
1313,
222,
1878,
1430,
2715,
550,
1073,
1638,
1310,
2046,
1872,
2397,
1139,
1701,
673,
1067,
1632,
1415,
2574,
2004,
2985,
71,
2481,
1238,
1800,
2010,
1403,
483,
1992,
135,
366,
1223,
1785,
2850,
697,
471,
2052,
105,
1220,
1782,
2979,
369,
468,
746,
99,
700,
2892,
2460,
1202,
1764,
2457,
1199,
1761,
2454,
1196,
1758,
68,
345,
2157,
74,
2829,
1400,
721,
1989,
1406,
2151,
1995,
2967,
736,
2445,
1187,
1749,
2331,
1175,
1650,
2115,
1881,
360,
2109,
878,
2844,
2103,
348,
2016,
1439,
2832,
2556,
863,
2679,
1412,
3168,
2001,
2550,
3162,
860,
2526,
3156,
2085,
2451,
1193,
1755,
2325,
1079,
1644,
842,
1070,
1635,
839,
2520,
2838,
836,
2514,
3138,
1427,
2508,
3117,
1409,
2673,
1998,
2295,
1022,
1589,
1235,
1797,
303,
-1,
2097,
2799,
129,
821,
3051,
2220,
947,
-1,
718,
2646,
267,
3039,
2208,
935,
2439,
3150,
1743,
261,
-1,
1923,
1875,
583,
3036,
2205,
932,
1544,
1911,
2994,
2163,
890,
1523,
2754,
580,
1869,
634,
715,
1448,
571,
2988,
1941,
2976,
1520,
1890,
1514,
240,
1445,
234,
2733,
568,
2727,
562,
1328,
1475,
1322,
-1,
195,
-1,
3126,
1460,
526,
441,
180,
1283,
363,
1848,
511,
-1,
685,
1268,
1457,
1842,
830,
177,
2541,
-1,
1454,
508,
2070,
174,
1265,
1863,
1836,
505,
2100,
438,
1262,
2058,
1830,
1232,
1794,
1496,
-1,
480,
216,
123,
1229,
1791,
547,
3153,
477,
1304,
117,
1226,
1788,
-1,
2898,
474,
2094,
111,
2448,
1190,
1752,
2418,
1160,
1722,
2298,
1025,
414,
2415,
1157,
1719,
2055,
3147,
411,
2061,
2409,
1151,
1713,
-1, -1,
408,
2391,
1133,
1695,
-1, -1,
396,
2091,
2379,
1121,
1683,
1253,
1815,
390,
872,
496,
2880,
162,
2601,
2067,
1857,
869,
3144,
-1,
2373,
1115,
1677,
2598,
866,
384,
2322,
49,
2874,
667,
-1,
2595,
1382,
62,
1971,
786,
-1, -1,
1394,
2589,
1983,
780,
2064,
1851,
2355,
1097,
1674,
1845,
764,
372,
2352,
1094,
1671,
1839,
727,
2349,
1091,
1668,
2856,
1833,
2703,
-1, -1,
2853,
-1, -1,
2700,
2340,
1082,
1659,
2334,
2697,
1653,
2307,
1493,
435,
694,
213,
2847,
682,
15,
544,
646,
2688,
1301,
1346,
2682,
1959,
3081,
2250,
977,
3063,
2232,
959,
3057,
2226,
953,
273,
2088,
-1,
270,
3030,
2199,
926,
1541,
3027,
2196,
923,
1247,
1809,
2751,
255,
490,
3141,
150,
577,
3024,
2193,
920,
1538,
3018,
2187,
914,
1535,
1487,
2748,
2436,
207,
1740,
2745,
1484,
538,
1472,
204,
1295,
192,
-1,
535,
1469,
523,
1292,
189,
1280,
1466,
1463,
520,
186,
183,
1277,
432,
517,
514,
-1,
1274,
1271,
1241,
1803,
-1,
2013,
487,
-1,
141,
2442,
1184,
1746,
2430,
2427,
1734,
1731,
3120,
-1,
2424,
2082,
1728,
2421,
2592,
1725,
2412,
1154,
1716,
2406,
1148,
1710,
824,
2403,
1145,
1707,
3135,
2586,
2928,
-1, -1,
2910,
-1, -1,
2904,
2400,
1142,
1704,
2394,
1136,
1698,
2385,
1127,
1689,
3132,
2274,
1001,
3108,
3102,
2886,
2346,
1088,
1665,
3096,
619,
-1,
3090,
2037,
2535,
2268,
995,
811,
804,
2049,
2505,
351,
2694,
797,
616,
-1,
793,
-1,
1418,
773,
2580,
2499,
756,
2382,
1124,
1686,
749,
2493,
2358,
1100,
56,
2883,
2343,
1085,
1662,
1388,
2859,
1977,
743,
2313,
43,
733,
2577,
2316,
2706,
1376,
24,
1965,
2691,
2310,
31,
1358,
658,
2262,
989,
1364,
21,
1172,
649,
2256,
983,
1352,
610,
3075,
2244,
971,
1166,
-1,
604,
3069,
2238,
965,
2028,
3033,
2202,
929,
3021,
2190,
917,
258,
2292,
1019,
252,
3009,
2178,
905,
3003,
2172,
899,
631,
2544,
2952,
2997,
2166,
893,
2991,
2160,
887,
1905,
3111,
-1,
1899,
-1, -1,
3,
2946,
-1,
1893,
3099,
1334,
1887,
1947,
-1,
814,
3015,
2184,
911,
2538,
-1, -1, -1,
2532,
801,
-1, -1, -1, -1,
2502,
-1, -1, -1, -1, -1,
2496,
-1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1,
-1,
2940,
-1, -1, -1, -1, -1,
2934,
2571,
-1, -1, -1,
2922,
-1, -1, -1, -1, -1,
2916,
-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,
2073,
-1, -1, -1, -1, -1,
2559,
-1, -1, -1, -1, -1,
2553,
-1,
2529,
-1, -1,
2043,
-1, -1,
2523,
-1, -1, -1, -1,
2517,
2511,
2031
};
if (0 == 0)
{
int key = hash(codes);
if (key <= MAX_HASH_VALUE)
{
int index = wordlist[key];
if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds1 + index, 1) == 0)
return index;
}
}
return -1;
}
|