1 /* ANSI-C code produced by gperf version 2.7.1 (19981006 egcs) */
2 /* Command-line: gperf -L ANSI-C -I -t -H b5Hash -N inBig5 -C -E -o -n -c -D b5percent.txt  */
3 /****************************************************
4  400 Most frequently used BIG5 chars in GB code space.
5  The percentage is taken over all BIG5 code space.
6 ****************************************************/
7 #include <string.h>
8 #include "zhstatis.h"
9 
10 /* maximum key range = 986, duplicates = 4 */
11 
12 #ifdef __GNUC__
13 __inline
14 #endif
15 static unsigned int
b5Hash(register const char * str,register unsigned int len)16 b5Hash (register const char *str, register unsigned int len)
17 {
18   static const unsigned short asso_values[] =
19     {
20       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
21       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
22       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
23       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
24       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
25       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
26       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
27       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
28       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
29       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
30       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
31       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
32       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
33       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
34       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
35       986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
36       986,  81,   0, 166,   0,  55,  35,   5, 396,  21,
37       116,  80, 265,  19, 986, 311,  28,  25, 345, 105,
38       215,  95,  10, 415,  30, 468,  40, 110, 330,  80,
39       155, 480, 180, 333,  21, 498, 188, 190,  89, 453,
40       200, 228, 380,  13, 436, 475,  11, 278, 273, 430,
41       280, 340, 120, 236, 183, 296, 488, 500, 456, 356,
42       246, 120,  64, 491,  78, 285, 163, 461, 418, 288,
43         4, 510, 326, 438, 383, 478,  76, 135, 330, 260,
44       495,  45,  33,   1,  73, 501, 380, 433, 348, 505,
45       425, 363,  23, 206, 195, 986
46     };
47   return asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]];
48 }
49 
50 #ifdef __GNUC__
51 __inline
52 #endif
53 const struct charHz *
inBig5(register const char * str,register unsigned int len)54 inBig5 (register const char *str, register unsigned int len)
55 {
56   enum
57     {
58       TOTAL_KEYWORDS = 400,
59       MIN_WORD_LENGTH = 2,
60       MAX_WORD_LENGTH = 2,
61       MIN_HASH_VALUE = 0,
62       MAX_HASH_VALUE = 985
63     };
64 
65   static const struct charHz wordlist[] =
66     {
67       {"��",	0.769287},
68       {"��",	0.306841},
69       {"��",	0.019016},
70       {"��",	0.088828},
71       {"��",	0.065464},
72       {"��",	0.031305},
73       {"��",	0.112574},
74       {"��",	0.028211},
75       {"��",	0.046708},
76       {"��",	0.015041},
77       {"��",	0.071498},
78       {"��",	0.025611},
79       {"��",	0.035635},
80       {"��",	0.016753},
81       {"§",	0.018038},
82       {"��",	0.160736},
83       {"��",	0.090439},
84       {"��",	0.058479},
85       {"��",	0.037804},
86       {"��",	0.015738},
87       {"��",	0.014759},
88       {"��",	0.229607},
89       {"��",	0.034256},
90       {"��",	0.166304},
91       {"��",	0.093519},
92       {"��",	0.018394},
93       {"��",	0.045773},
94       {"��",	0.147260},
95       {"��",	0.017462},
96       {"��",	0.055894},
97       {"��",	0.015586},
98       {"��",	0.018907},
99       {"��",	0.019326},
100       {"��",	0.015277},
101       {"��",	0.039054},
102       {"��",	0.049332},
103       {"��",	0.057086},
104       {"��",	0.043716},
105       {"��",	0.423518},
106       {"��",	0.038273},
107       {"��",	0.016983},
108       {"��",	0.065455},
109       {"��",	0.043318},
110       {"��",	0.137466},
111       {"��",	0.404486},
112       {"��",	0.027452},
113       {"��",	0.031913},
114       {"��",	0.022180},
115       {"��",	0.108684},
116       {"��",	0.064182},
117       {"��",	0.066723},
118       {"��",	0.023091},
119       {"��",	0.113864},
120       {"��",	0.021874},
121       {"��",	0.015441},
122       {"��",	0.037946},
123       {"��",	0.028469},
124       {"��",	0.014519},
125       {"��",	0.069696},
126       {"��",	0.093334},
127       {"��",	0.128990},
128       {"��",	0.070255},
129       {"��",	0.083516},
130       {"��",	0.072818},
131       {"��",	0.016109},
132       {"½",	0.018793},
133       {"��",	0.135395},
134       {"��",	0.098976},
135       {"��",	0.022989},
136       {"��",	0.185013},
137       {"��",	0.067999},
138       {"��",	0.041783},
139       {"��",	0.169524},
140       {"��",	0.098767},
141       {"��",	0.035493},
142       {"��",	0.031729},
143       {"��",	0.117938},
144       {"��",	0.019888},
145       {"��",	0.079914},
146       {"��",	0.041485},
147       {"��",	0.018574},
148       {"��",	0.016470},
149       {"��",	0.068123},
150       {"��",	0.014632},
151       {"��",	0.019986},
152       {"��",	0.061454},
153       {"��",	0.060330},
154       {"��",	0.016134},
155       {"��",	1.331823},
156       {"��",	0.311471},
157       {"��",	0.014513},
158       {"��",	0.033989},
159       {"��",	0.103263},
160       {"��",	0.127011},
161       {"��",	0.029026},
162       {"��",	0.015288},
163       {"��",	0.025526},
164       {"��",	0.137685},
165       {"��",	0.205378},
166       {"��",	1.647294},
167       {"��",	0.114942},
168       {"��",	0.049163},
169       {"��",	0.023332},
170       {"��",	0.029635},
171       {"��",	0.022240},
172       {"¾",	0.030851},
173       {"��",	0.141643},
174       {"��",	0.120274},
175       {"��",	0.028860},
176       {"��",	0.102537},
177       {"��",	0.092950},
178       {"��",	0.051303},
179       {"��",	0.371579},
180       {"��",	0.014627},
181       {"��",	0.046636},
182       {"��",	0.049927},
183       {"��",	0.063111},
184       {"��",	0.019307},
185       {"��",	0.019892},
186       {"��",	0.082802},
187       {"��",	0.037599},
188       {"��",	0.069500},
189       {"��",	0.046553},
190       {"��",	0.022982},
191       {"��",	0.039860},
192       {"ı",	0.125828},
193       {"��",	0.027650},
194       {"��",	0.014572},
195       {"��",	0.035152},
196       {"��",	0.028902},
197       {"��",	0.030283},
198       {"��",	0.018765},
199       {"��",	0.037953},
200       {"��",	0.015175},
201       {"��",	0.052447},
202       {"��",	0.016471},
203       {"��",	0.018525},
204       {"��",	0.016991},
205       {"��",	0.016309},
206       {"��",	0.023295},
207       {"��",	0.210737},
208       {"ť",	0.109895},
209       {"��",	0.019304},
210       {"��",	0.016478},
211       {"��",	0.120442},
212       {"��",	0.029056},
213       {"��",	0.017140},
214       {"��",	0.205663},
215       {"��",	0.021996},
216       {"��",	0.026937},
217       {"��",	0.100132},
218       {"��",	0.076828},
219       {"��",	0.074701},
220       {"��",	0.070771},
221       {"��",	0.033967},
222       {"��",	0.135818},
223       {"��",	0.286923},
224       {"��",	0.021442},
225       {"��",	0.066187},
226       {"��",	0.154665},
227       {"��",	0.066513},
228       {"��",	0.019366},
229       {"��",	0.092406},
230       {"ĵ",	0.019427},
231       {"��",	0.143276},
232       {"ԣ",	0.019852},
233       {"��",	0.378802},
234       {"��",	0.029765},
235       {"��",	0.060734},
236       {"ij",	0.060089},
237       {"��",	0.047633},
238       {"��",	0.017041},
239       {"��",	0.142548},
240       {"��",	0.041400},
241       {"��",	0.036977},
242       {"��",	0.030253},
243       {"��",	0.014722},
244       {"Ū",	0.041732},
245       {"��",	0.023904},
246       {"��",	0.024133},
247       {"��",	0.034493},
248       {"��",	0.031733},
249       {"��",	0.017932},
250       {"��",	0.036924},
251       {"��",	0.086345},
252       {"��",	0.036020},
253       {"��",	0.014800},
254       {"��",	0.015329},
255       {"��",	0.039660},
256       {"��",	0.021045},
257       {"��",	0.029324},
258       {"��",	0.180739},
259       {"��",	0.020917},
260       {"��",	0.021087},
261       {"��",	0.016450},
262       {"��",	0.034270},
263       {"��",	0.023452},
264       {"��",	0.135500},
265       {"��",	0.022743},
266       {"��",	0.175203},
267       {"��",	0.029011},
268       {"��",	0.025235},
269       {"��",	0.020801},
270       {"��",	0.335331},
271       {"��",	0.159704},
272       {"��",	0.043805},
273       {"��",	0.082474},
274       {"��",	0.041141},
275       {"��",	0.070902},
276       {"��",	0.019910},
277       {"²",	0.029031},
278       {"��",	0.016313},
279       {"��",	0.018368},
280       {"��",	0.125698},
281       {"��",	0.034810},
282       {"��",	0.267319},
283       {"��",	0.112807},
284       {"��",	0.018520},
285       {"��",	0.030641},
286       {"��",	0.348555},
287       {"��",	0.036569},
288       {"��",	0.056596},
289       {"��",	0.016607},
290       {"��",	0.122909},
291       {"��",	0.054052},
292       {"��",	0.268859},
293       {"��",	0.094117},
294       {"��",	0.024633},
295       {"��",	0.096599},
296       {"��",	0.065257},
297       {"��",	0.021939},
298       {"��",	0.019991},
299       {"��",	0.014644},
300       {"��",	0.030914},
301       {"��",	0.062679},
302       {"��",	0.015188},
303       {"��",	0.021828},
304       {"��",	0.649007},
305       {"��",	0.037749},
306       {"��",	0.072864},
307       {"��",	0.053675},
308       {"��",	0.093825},
309       {"��",	0.034648},
310       {"��",	0.018468},
311       {"��",	0.097010},
312       {"��",	0.031320},
313       {"��",	0.034071},
314       {"��",	0.017071},
315       {"��",	0.331414},
316       {"��",	0.236619},
317       {"��",	0.017806},
318       {"��",	0.033741},
319       {"��",	0.071342},
320       {"��",	0.158870},
321       {"��",	0.075241},
322       {"��",	0.082499},
323       {"��",	0.050505},
324       {"��",	0.037712},
325       {"��",	0.033770},
326       {"��",	0.026064},
327       {"��",	0.122616},
328       {"��",	0.072859},
329       {"��",	0.036769},
330       {"��",	0.023777},
331       {"��",	0.018066},
332       {"��",	0.024433},
333       {"��",	0.105024},
334       {"��",	1.503535},
335       {"��",	0.059178},
336       {"��",	0.115500},
337       {"��",	0.106853},
338       {"��",	0.072786},
339       {"��",	0.028320},
340       {"��",	0.024624},
341       {"��",	0.080762},
342       {"��",	0.124968},
343       {"��",	0.103272},
344       {"��",	0.036130},
345       {"��",	0.084656},
346       {"��",	0.023113},
347       {"��",	0.054908},
348       {"��",	0.095309},
349       {"��",	0.057877},
350       {"��",	0.015462},
351       {"��",	0.259234},
352       {"��",	0.030173},
353       {"��",	0.028259},
354       {"��",	0.025462},
355       {"��",	0.081804},
356       {"��",	0.019704},
357       {"��",	0.037346},
358       {"��",	0.172006},
359       {"��",	0.062596},
360       {"��",	0.042139},
361       {"��",	0.030141},
362       {"��",	0.017032},
363       {"��",	0.033712},
364       {"��",	0.097897},
365       {"��",	0.019585},
366       {"��",	0.036788},
367       {"��",	0.040640},
368       {"��",	0.021701},
369       {"��",	0.015084},
370       {"ñ",	0.019035},
371       {"��",	0.046922},
372       {"��",	0.033282},
373       {"��",	0.142554},
374       {"��",	0.350021},
375       {"��",	0.020720},
376       {"��",	0.117753},
377       {"��",	0.155168},
378       {"��",	0.027903},
379       {"��",	0.034138},
380       {"��",	0.195193},
381       {"��",	0.091897},
382       {"��",	0.025892},
383       {"��",	0.092087},
384       {"��",	0.098278},
385       {"��",	0.206358},
386       {"��",	0.035629},
387       {"��",	0.037969},
388       {"��",	0.059885},
389       {"��",	0.017369},
390       {"��",	0.041338},
391       {"��",	0.042914},
392       {"��",	0.110517},
393       {"��",	0.024560},
394       {"��",	0.023162},
395       {"��",	0.023874},
396       {"��",	0.020609},
397       {"��",	0.227495},
398       {"��",	0.141367},
399       {"��",	0.015495},
400       {"��",	0.022215},
401       {"��",	0.056262},
402       {"��",	0.151584},
403       {"��",	0.061118},
404       {"��",	0.272770},
405       {"��",	0.085263},
406       {"��",	0.016105},
407       {"��",	0.053881},
408       {"��",	0.021204},
409       {"��",	0.093396},
410       {"��",	0.469347},
411       {"��",	0.020237},
412       {"��",	0.034130},
413       {"��",	0.059852},
414       {"��",	0.043658},
415       {"��",	0.017357},
416       {"��",	0.045179},
417       {"��",	0.023371},
418       {"��",	0.110726},
419       {"��",	0.020201},
420       {"��",	0.024993},
421       {"��",	0.029663},
422       {"��",	0.032246},
423       {"��",	0.015996},
424       {"��",	0.026776},
425       {"��",	0.027477},
426       {"��",	0.039371},
427       {"��",	0.016772},
428       {"��",	0.014455},
429       {"��",	0.024243},
430       {"��",	0.048220},
431       {"��",	0.027036},
432       {"��",	0.019130},
433       {"��",	0.022422},
434       {"��",	0.045496},
435       {"��",	0.054332},
436       {"��",	0.042048},
437       {"��",	0.030469},
438       {"��",	0.042275},
439       {"��",	0.016165},
440       {"��",	0.291129},
441       {"��",	0.094920},
442       {"��",	0.043175},
443       {"��",	0.025828},
444       {"��",	0.016134},
445       {"��",	0.034991},
446       {"��",	0.020823},
447       {"��",	0.035779},
448       {"��",	0.018547},
449       {"��",	0.023479},
450       {"��",	0.045329},
451       {"��",	0.297640},
452       {"��",	0.028177},
453       {"��",	0.085551},
454       {"��",	0.153848},
455       {"��",	0.037319},
456       {"��",	0.129670},
457       {"��",	0.049393},
458       {"��",	0.042645},
459       {"��",	0.030758},
460       {"��",	0.041439},
461       {"��",	0.042696},
462       {"ù",	0.028028},
463       {"��",	0.019105},
464       {"��",	0.052699},
465       {"��",	0.014792},
466       {"��",	0.098239}
467     };
468 
469   static const short lookup[] =
470     {
471          0,   -1,   -1,   -1,   -1, -408,    3, -399,
472         -2,   -1, -413,    6, -396,   -2,   -1,    7,
473          8,   -1,    9,   10,   11,   -1,   -1,   12,
474         -1,   13,   14,   -1,   15,   16,   17,   18,
475         -1,   19,   20,   -1,   21,   -1,   22,   23,
476         24,   -1,   25,   26,   -1,   27,   28,   -1,
477         29,   30,   31,   32,   -1,   33,   34,   35,
478         36,   -1,   37,   38,   39,   40,   -1,   41,
479         42,   43,   44,   -1,   45,   46,   47,   -1,
480         -1,   48,   49,   50,   51,   -1,   -1,   -1,
481         52,   53,   -1,   54,   55,   56,   57,   -1,
482         -1,   58,   59,   60,   -1,   -1,   61,   62,
483         -1,   -1,   -1,   63,   64,   65,   -1,   66,
484         67,   68,   69,   -1,   -1,   70,   71,   72,
485         -1,   73,   74,   75,   76,   -1,   77,   -1,
486         78,   79,   -1,   -1,   -1,   80,   81,   -1,
487         82,   -1,   83,   -1,   -1,   84,   -1,   85,
488         86,   -1,   87,   -1,   88,   -1,   -1,   89,
489         90,   91,   -1,   -1,   -1,   -1,   92,   -1,
490         -1,   -1,   -1,   93,   94,   -1,   95,   -1,
491         96,   -1,   -1,   97,   -1,   98,   99,   -1,
492        100,   -1,  101,  102,   -1,  103,   -1,  104,
493        105,   -1,   -1,   -1,  106,   -1,   -1,  107,
494         -1,  108,  109,   -1,  110,   -1,  111,  112,
495         -1,  113,  114,   -1,  115,   -1,  116,   -1,
496        117,  118,   -1,  119,   -1,  120,  121,   -1,
497        122,   -1,  123,  124,   -1,  125,   -1,  126,
498        127,   -1,   -1,   -1,  128,  129,   -1,  130,
499         -1,  131,  132,   -1,  133,   -1,  134,  135,
500         -1,   -1,   -1,  136,  137,   -1,  138,   -1,
501        139,  140,   -1,   -1,   -1,  141,  142,   -1,
502        143,   -1,  144,   -1,   -1,  145,   -1,  146,
503        147,   -1,  148,   -1,  149,  150,   -1,  151,
504         -1,  152,  153,   -1,  154,   -1,  155,  156,
505         -1,  157,   -1,  158,  159,   -1,  160,   -1,
506        161,  162,   -1,  163,   -1,  164,  165,   -1,
507        166,   -1,  167,  168,   -1,  169,   -1,  170,
508        171,   -1,  172,   -1,  173,  174,   -1,  175,
509         -1,  176,  177,   -1,  178,  179, -737,  182,
510         -1,  183,   -1,  184,  185,   -1,  186,   -1,
511        187,  188,   -1,  189,   -1,  190,  191,   -1,
512        192,   -1,  193,  194,   -1,  195,   -1,  196,
513       -220,   -2,   -1,   -1,  197,  198,   -1,  199,
514         -1,  200,  201,   -1,   -1,   -1,  202,   -1,
515         -1,  203,  204,  205,  206,   -1,   -1,   -1,
516        207,  208,   -1,  209,   -1,   -1,  210,   -1,
517        211,  212,  213,   -1,   -1,  214,   -1,  215,
518        216,   -1,  217,   -1,  218,  219,   -1,  220,
519         -1,  221,  222,   -1,  223,   -1,  224,  225,
520         -1,  226,   -1,  227,  228,   -1,   -1,   -1,
521        229,  230,   -1,  231,   -1,  232,  233,   -1,
522        234,   -1,  235,  236,   -1,  237,   -1,  238,
523        239,   -1,  240,  241,  242,  243,   -1,  244,
524         -1,  245,  246,   -1,  247,   -1,  248,  249,
525         -1,  250,   -1,  251,  252,   -1,  253,   -1,
526        254,  255,   -1,  256,   -1,  257,   -1,   -1,
527        258,   -1,  259,  260,   -1,  261,  262,  263,
528        264,   -1,  265,   -1,  266,  267,   -1,  268,
529         -1,  269,  270,   -1,  271,   -1,  272,  273,
530         -1,  274,   -1,  275,   -1,   -1,  276,  277,
531        278,  279,   -1,  280,   -1,  281,   -1,   -1,
532        282,   -1,  283,  284,   -1,  285,   -1,  286,
533        287,   -1,  288,   -1,  289,  290,   -1,  291,
534         -1,  292,  293,   -1,  294,   -1,  295,  296,
535         -1,  297,   -1,  298,  299,   -1,  300,   -1,
536        301,  302,   -1,  303,   -1,  304,  305,   -1,
537        306,   -1,  307,  308,   -1,  309,   -1,  310,
538         -1,   -1,  311,   -1,  312,  313,   -1,  314,
539         -1,  315,  316,   -1,  317,   -1,  318,   -1,
540         -1,  319,   -1,  320,  321,   -1,  322,   -1,
541        323,  324,   -1,  325,   -1,  326,  327,   -1,
542         -1,   -1,  328,  329,   -1, -975,  -70,   -2,
543         -1,   -1,  332,   -1,  333,  334,   -1,  335,
544         -1,  336,   -1,   -1,  337,   -1,   -1,   -1,
545         -1,   -1,   -1,   -1,  338,   -1,   -1,   -1,
546        339,   -1,   -1,  340,   -1,  341,  342,   -1,
547        343,   -1,  344,  345,   -1,   -1,   -1,  346,
548        347,   -1,  348,   -1,   -1,   -1,   -1,  349,
549         -1,   -1,  350,   -1,  351,   -1,  352,   -1,
550         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
551        353,  354,   -1,   -1,   -1,   -1,   -1,   -1,
552        355,   -1,  356,  357,   -1,   -1,   -1,   -1,
553         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
554         -1,   -1,   -1,   -1,   -1,   -1,  358,   -1,
555         -1,   -1,   -1,  359,   -1,   -1,  360,   -1,
556        361,   -1,   -1,   -1,   -1,  362,  363,   -1,
557        364,  365,  366,   -1,   -1,  367,   -1,  368,
558         -1,   -1,   -1,   -1,  369,   -1,   -1,   -1,
559         -1,   -1,   -1,   -1,   -1,   -1,  370,   -1,
560         -1,  371,   -1,   -1,   -1,   -1,   -1,   -1,
561         -1,   -1,   -1,   -1,   -1,  372,   -1,   -1,
562        373,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
563         -1,   -1,   -1,   -1,  374,   -1,   -1,   -1,
564         -1,   -1,  375,   -1,  376,   -1,   -1,  377,
565         -1,   -1,   -1,  378,   -1,   -1,   -1,   -1,
566         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
567         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
568        379,   -1,  380,   -1,   -1,   -1,   -1,   -1,
569         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
570         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
571         -1,   -1,   -1,   -1,   -1,   -1,  381,   -1,
572         -1,   -1,   -1,  382,   -1,  383,   -1,   -1,
573         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
574         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
575         -1,  384,   -1,   -1,  385,   -1,   -1,   -1,
576         -1,   -1,   -1,   -1,   -1,   -1,  386,   -1,
577         -1,   -1,   -1,  387,   -1,   -1,   -1,   -1,
578         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
579         -1,   -1,   -1,   -1,  388,   -1,   -1,   -1,
580         -1,   -1,   -1,   -1,   -1,   -1,  389,   -1,
581         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
582         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
583         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
584         -1,  390,   -1,   -1,   -1,   -1,   -1,   -1,
585         -1,   -1,   -1,   -1,  391,   -1,  392,   -1,
586         -1,   -1,   -1,   -1,  393,   -1,   -1,   -1,
587        394,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
588         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
589         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
590         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
591         -1,   -1,   -1,   -1,   -1,   -1,  395,   -1,
592         -1,  396,   -1,  397,   -1,   -1,   -1,   -1,
593         -1,   -1,  398,   -1,   -1,   -1,   -1,   -1,
594         -1,  399
595     };
596 
597   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
598     {
599       register int key = b5Hash (str, len);
600 
601       if (key <= MAX_HASH_VALUE && key >= 0)
602         {
603           register int index = lookup[key];
604 
605           if (index >= 0)
606             {
607               register const char *s = wordlist[index].name;
608 
609               if (*str == *s && !strncmp (str + 1, s + 1, len - 1))
610                 return &wordlist[index];
611             }
612           else if (index < -TOTAL_KEYWORDS)
613             {
614               register int offset = - 1 - TOTAL_KEYWORDS - index;
615               register const struct charHz *wordptr = &wordlist[TOTAL_KEYWORDS + lookup[offset]];
616               register const struct charHz *wordendptr = wordptr + -lookup[offset + 1];
617 
618               while (wordptr < wordendptr)
619                 {
620                   register const char *s = wordptr->name;
621 
622                   if (*str == *s && !strncmp (str + 1, s + 1, len - 1))
623                     return wordptr;
624                   wordptr++;
625                 }
626             }
627         }
628     }
629   return 0;
630 }
631