1 /* ANSI-C code produced by gperf version 2.7.1 (19981006 egcs) */
2 /* Command-line: gperf -L ANSI-C -I -t -H gbHash -N inGB -C -E -o -n -c -D gbpercent.txt  */
3 /****************************************************
4  400 Most frequently used GB chars.
5  ****************************************************/
6 #include <string.h>
7 #include "zhstatis.h"
8 
9 /* maximum key range = 991, duplicates = 5 */
10 
11 #ifdef __GNUC__
12 __inline
13 #endif
14 static unsigned int
gbHash(register const char * str,register unsigned int len)15 gbHash (register const char *str, register unsigned int len)
16 {
17   static const unsigned short asso_values[] =
18     {
19       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
20       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
21       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
22       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
23       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
24       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
25       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
26       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
27       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
28       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
29       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
30       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
31       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
32       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
33       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
34       991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
35       991,  91, 425, 320, 148,  70, 510,  85, 203, 160,
36         6,  18, 480, 223, 113, 345,  28, 120, 320, 390,
37        75,  20, 275, 380, 230,  50, 433,  15, 145,   5,
38       455, 460, 163, 180, 338,  40,   8, 508, 510,  45,
39       325,  85,  30, 140, 105, 305,   3, 225, 100, 403,
40       113, 480,  25, 205,   0, 250, 393, 371,  63, 260,
41       268, 991,  10, 470, 405, 268, 348,  76, 285, 131,
42       408, 398, 991, 125, 330, 126, 388, 503,  51, 148,
43       350,  46,   1, 166,  15,  16, 485, 106, 458,  41,
44       103, 221,  21,  61, 500, 991
45     };
46   return asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]];
47 }
48 
49 #ifdef __GNUC__
50 __inline
51 #endif
52 const struct charHz *
inGB(register const char * str,register unsigned int len)53 inGB (register const char *str, register unsigned int len)
54 {
55   enum
56     {
57       TOTAL_KEYWORDS = 400,
58       MIN_WORD_LENGTH = 2,
59       MAX_WORD_LENGTH = 2,
60       MIN_HASH_VALUE = 0,
61       MAX_HASH_VALUE = 990
62     };
63 
64   static const struct charHz wordlist[] =
65     {
66       {"��",	0.151748},
67       {"��",	0.062792},
68       {"֪",	0.176508},
69       {"Ϊ",	0.442767},
70       {"��",	0.214763},
71       {"��",	0.213959},
72       {"ֻ",	0.229438},
73       {"��",	0.085280},
74       {"λ",	0.128747},
75       {"��",	0.073778},
76       {"��",	0.094296},
77       {"��",	0.168043},
78       {"��",	0.514231},
79       {"��",	0.063487},
80       {"��",	3.500849},
81       {"��",	0.211674},
82       {"Ԫ",	0.071841},
83       {"��",	0.140707},
84       {"ʽ",	0.057680},
85       {"��",	0.167690},
86       {"��",	0.072121},
87       {"��",	0.146944},
88       {"��",	0.070839},
89       {"��",	0.081974},
90       {"ʵ",	0.156769},
91       {"��",	0.083052},
92       {"��",	0.382771},
93       {"û",	0.244614},
94       {"��",	0.057849},
95       {"ë",	0.075090},
96       {"��",	0.396983},
97       {"��",	0.093383},
98       {"��",	0.058726},
99       {"��",	0.233198},
100       {"��",	0.092784},
101       {"��",	0.188655},
102       {"��",	0.054738},
103       {"��",	0.111181},
104       {"ǰ",	0.200232},
105       {"��",	1.345411},
106       {"��",	0.129442},
107       {"��",	0.121678},
108       {"δ",	0.054546},
109       {"ʹ",	0.118288},
110       {"��",	0.123170},
111       {"��",	0.436374},
112       {"��",	0.495768},
113       {"��",	0.174189},
114       {"��",	0.964866},
115       {"ɽ",	0.103285},
116       {"��",	0.091243},
117       {"��",	0.063780},
118       {"��",	0.152685},
119       {"��",	0.717652},
120       {"��",	0.058755},
121       {"ɫ",	0.074190},
122       {"��",	0.089328},
123       {"��",	0.204736},
124       {"��",	0.273937},
125       {"��",	0.117537},
126       {"��",	0.117812},
127       {"��",	0.327524},
128       {"֮",	0.327879},
129       {"��",	0.127394},
130       {"ô",	0.276714},
131       {"��",	1.014949},
132       {"��",	0.137512},
133       {"Ҫ",	0.370943},
134       {"ֱ",	0.075193},
135       {"��",	0.064573},
136       {"̫",	0.103034},
137       {"��",	0.095783},
138       {"��",	0.151640},
139       {"һ",	1.703619},
140       {"��",	0.101242},
141       {"��",	0.091301},
142       {"ҵ",	0.134539},
143       {"��",	0.103181},
144       {"��",	0.126292},
145       {"��",	0.060073},
146       {"��",	0.349432},
147       {"��",	0.222406},
148       {"��",	0.073591},
149       {"ʮ",	0.211422},
150       {"Ա",	0.097189},
151       {"��",	0.152480},
152       {"��",	0.123866},
153       {"ʱ",	0.412130},
154       {"��",	0.078221},
155       {"��",	0.624527},
156       {"��",	0.061338},
157       {"��",	0.098381},
158       {"Ǯ",	0.055097},
159       {"˵",	0.508134},
160       {"��",	0.075883},
161       {"��",	0.055787},
162       {"��",	0.061514},
163       {"��",	0.115919},
164       {"��",	0.075698},
165       {"��",	0.143753},
166       {"��",	0.073937},
167       {"��",	0.083070},
168       {"д",	0.056349},
169       {"��",	0.078525},
170       {"��",	0.104545},
171       {"��",	0.079151},
172       {"��",	0.074843},
173       {"��",	0.197660},
174       {"��",	0.421135},
175       {"��",	0.176988},
176       {"��",	0.064201},
177       {"��",	0.343557},
178       {"��",	0.077728},
179       {"С",	0.293018},
180       {"��",	0.114808},
181       {"��",	0.063376},
182       {"��",	0.128778},
183       {"��",	0.149985},
184       {"��",	0.203868},
185       {"��",	0.305242},
186       {"��",	0.152936},
187       {"��",	0.074596},
188       {"ս",	0.076361},
189       {"��",	0.059639},
190       {"��",	0.057653},
191       {"��",	0.158364},
192       {"��",	0.073128},
193       {"��",	0.065122},
194       {"��",	0.059687},
195       {"��",	0.070030},
196       {"��",	0.061845},
197       {"��",	0.169370},
198       {"��",	0.143764},
199       {"��",	0.058127},
200       {"ָ",	0.068890},
201       {"��",	0.055467},
202       {"��",	0.074475},
203       {"��",	0.055267},
204       {"��",	0.100845},
205       {"��",	0.642527},
206       {"��",	0.113407},
207       {"��",	0.670268},
208       {"��",	0.072306},
209       {"ϵ",	0.085791},
210       {"ԭ",	0.089937},
211       {"��",	0.074014},
212       {"��",	0.087664},
213       {"ˮ",	0.102945},
214       {"չ",	0.063943},
215       {"ת",	0.059482},
216       {"��",	0.324818},
217       {"Щ",	0.166013},
218       {"��",	0.142495},
219       {"��",	0.143041},
220       {"��",	0.062711},
221       {"��",	0.063875},
222       {"��",	0.084231},
223       {"��",	0.070334},
224       {"��",	0.340950},
225       {"��",	0.253537},
226       {"��",	0.089789},
227       {"��",	0.066471},
228       {"��",	0.342850},
229       {"˼",	0.068379},
230       {"��",	0.067758},
231       {"��",	0.061514},
232       {"��",	0.058356},
233       {"��",	0.121345},
234       {"��",	0.084066},
235       {"��",	0.084736},
236       {"��",	0.311761},
237       {"Զ",	0.066691},
238       {"��",	0.134213},
239       {"��",	0.089264},
240       {"ʶ",	0.056331},
241       {"��",	0.101912},
242       {"̨",	0.078054},
243       {"��",	0.636581},
244       {"��",	0.300629},
245       {"��",	0.058334},
246       {"��",	0.076271},
247       {"��",	0.146378},
248       {"��",	0.067145},
249       {"��",	1.283668},
250       {"��",	0.084392},
251       {"��",	0.094190},
252       {"��",	0.060622},
253       {"��",	0.079391},
254       {"��",	0.088464},
255       {"��",	0.065369},
256       {"��",	1.307755},
257       {"��",	0.080068},
258       {"��",	0.402590},
259       {"Ȼ",	0.251950},
260       {"ס",	0.097438},
261       {"ȫ",	0.151277},
262       {"��",	0.136630},
263       {"��",	0.064102},
264       {"��",	0.090869},
265       {"ʲ",	0.130740},
266       {"��",	0.217789},
267       {"��",	0.081322},
268       {"��",	0.088088},
269       {"��",	0.224425},
270       {"��",	0.055379},
271       {"��",	0.107695},
272       {"��",	0.826706},
273       {"��",	0.152597},
274       {"��",	0.073580},
275       {"��",	0.196038},
276       {"��",	0.229908},
277       {"��",	0.077287},
278       {"��",	0.088749},
279       {"��",	0.135949},
280       {"��",	0.060397},
281       {"��",	0.168552},
282       {"��",	0.067138},
283       {"��",	0.084762},
284       {"��",	0.202303},
285       {"��",	0.185462},
286       {"��",	0.182608},
287       {"��",	0.053845},
288       {"��",	0.078045},
289       {"��",	0.126537},
290       {"ȥ",	0.330934},
291       {"��",	0.117460},
292       {"��",	0.084711},
293       {"��",	0.072738},
294       {"ȴ",	0.105046},
295       {"��",	0.056342},
296       {"��",	0.083728},
297       {"��",	0.064229},
298       {"��",	0.156121},
299       {"��",	0.089804},
300       {"��",	0.054791},
301       {"��",	0.092669},
302       {"��",	0.430809},
303       {"��",	0.072425},
304       {"��",	0.061534},
305       {"��",	0.125012},
306       {"��",	0.252867},
307       {"��",	0.103862},
308       {"��",	0.068245},
309       {"��",	0.064196},
310       {"��",	0.131700},
311       {"��",	0.158959},
312       {"Ҳ",	0.412956},
313       {"��",	0.061082},
314       {"��",	0.060972},
315       {"��",	0.088065},
316       {"��",	0.131476},
317       {"��",	0.061942},
318       {"��",	0.057693},
319       {"��",	0.112545},
320       {"��",	0.169738},
321       {"��",	0.097747},
322       {"��",	0.188836},
323       {"��",	0.067301},
324       {"��",	0.103631},
325       {"��",	0.074605},
326       {"��",	0.087462},
327       {"��",	0.112757},
328       {"Ժ",	0.064434},
329       {"��",	0.060794},
330       {"��",	0.161359},
331       {"��",	0.161229},
332       {"��",	1.081233},
333       {"��",	0.211932},
334       {"Ŀ",	0.094628},
335       {"��",	0.100654},
336       {"��",	0.075649},
337       {"��",	0.253067},
338       {"��",	0.232004},
339       {"��",	0.104464},
340       {"��",	0.141283},
341       {"��",	0.202277},
342       {"��",	0.098824},
343       {"��",	0.071268},
344       {"��",	0.076121},
345       {"ѧ",	0.313110},
346       {"ʿ",	0.059531},
347       {"��",	0.262760},
348       {"��",	0.058312},
349       {"��",	0.075691},
350       {"ÿ",	0.067385},
351       {"��",	0.059983},
352       {"ǿ",	0.060747},
353       {"ͨ",	0.095327},
354       {"��",	0.081732},
355       {"��",	0.060990},
356       {"ƽ",	0.116858},
357       {"��",	0.183761},
358       {"��",	0.099417},
359       {"��",	0.208392},
360       {"��",	0.119434},
361       {"��",	0.055445},
362       {"��",	0.075475},
363       {"Ȩ",	0.064165},
364       {"��",	0.238170},
365       {"��",	0.065223},
366       {"��",	0.216015},
367       {"��",	0.176671},
368       {"ʦ",	0.098604},
369       {"��",	0.237050},
370       {"��",	0.310500},
371       {"��",	0.123004},
372       {"��",	0.103316},
373       {"��",	0.073529},
374       {"��",	0.748073},
375       {"��",	0.181841},
376       {"��",	0.069931},
377       {"��",	0.366675},
378       {"��",	0.106073},
379       {"��",	0.063793},
380       {"��",	0.055222},
381       {"��",	0.089414},
382       {"��",	0.197245},
383       {"��",	0.148374},
384       {"��",	0.846428},
385       {"��",	0.158459},
386       {"��",	0.099988},
387       {"��",	0.167521},
388       {"��",	0.077498},
389       {"��",	0.057761},
390       {"˾",	0.084963},
391       {"��",	0.072820},
392       {"��",	0.297066},
393       {"��",	0.074446},
394       {"��",	0.075854},
395       {"��",	0.093914},
396       {"��",	0.165147},
397       {"��",	0.114573},
398       {"Ц",	0.096279},
399       {"��",	0.116060},
400       {"��",	0.082472},
401       {"��",	0.178348},
402       {"Ů",	0.141049},
403       {"��",	0.090741},
404       {"��",	0.109685},
405       {"��",	0.057889},
406       {"��",	0.122566},
407       {"��",	0.060534},
408       {"��",	0.058129},
409       {"��",	0.059348},
410       {"��",	0.090981},
411       {"Ϣ",	0.056893},
412       {"��",	0.167708},
413       {"��",	0.085688},
414       {"��",	0.087272},
415       {"��",	0.067046},
416       {"��",	0.101187},
417       {"��",	0.058894},
418       {"��",	0.154598},
419       {"��",	0.145362},
420       {"��",	0.189995},
421       {"��",	0.270297},
422       {"ͷ",	0.189444},
423       {"��",	0.136868},
424       {"��",	0.138951},
425       {"ͳ",	0.074402},
426       {"��",	0.162739},
427       {"��",	0.134687},
428       {"��",	0.120122},
429       {"��",	0.089189},
430       {"��",	0.093070},
431       {"��",	0.594848},
432       {"·",	0.089668},
433       {"��",	0.125810},
434       {"��",	0.201591},
435       {"��",	0.441396},
436       {"��",	0.260181},
437       {"��",	0.086397},
438       {"��",	0.440206},
439       {"��",	0.111459},
440       {"��",	0.119826},
441       {"��",	0.066006},
442       {"��",	0.335011},
443       {"��",	0.389616},
444       {"��",	0.155393},
445       {"��",	0.076789},
446       {"��",	0.143537},
447       {"ͬ",	0.187525},
448       {"��",	0.152385},
449       {"��",	0.232956},
450       {"��",	0.063231},
451       {"��",	0.099303},
452       {"��",	0.093403},
453       {"��",	0.064661},
454       {"��",	0.235155},
455       {"��",	0.425756},
456       {"��",	0.075191},
457       {"��",	0.087173},
458       {"Ʒ",	0.059628},
459       {"Ӣ",	0.057878},
460       {"��",	0.062792},
461       {"��",	0.096854},
462       {"��",	0.114705},
463       {"��",	0.072145},
464       {"��",	0.061058},
465       {"Ӧ",	0.089767}
466     };
467 
468   static const short lookup[] =
469     {
470          0,   -1,   -1,    1,   -1,   -1,    2,   -1,
471         -1,    3,   -1,    4,   -1,    5,   -1,    6,
472          7,   -1,    8,   -1,    9,   10,   -1,   11,
473         -1,   12,   13,   -1,   14,   -1,   15,   16,
474         -1,   17,   -1,   18,   -1,   -1,   19,   -1,
475         -1,   20,   -1,   21,   -1,   -1,   22,   -1,
476         -1,   23,   24,   25,   -1,   26,   -1,   27,
477         28,   -1,   29,   -1,   30,   31,   -1,   32,
478         -1,   33,   34,   -1,   35,   -1,   36,   37,
479         -1,   38,   -1,   39,   40,   -1, -482,   -1,
480         43, -359,   -2,   44,   45,   46,   47,   -1,
481         48,   -1,   49,   50,   -1,   51,   -1,   -1,
482         52,   -1,   -1,   -1,   53,   54,   -1,   55,
483         -1,   56,   57,   -1,   58,   59,   60,   61,
484         -1,   62,   63,   64,   65,   -1,   66,   67,
485         68,   69,   -1,   70,   -1,   71,   72,   -1,
486         73,   -1,   74,   75,   -1,   76,   77,   78,
487         79,   -1,   80,   -1,   81,   82,   -1,   83,
488         -1,   84,   85,   -1,   86,   -1,   87,   88,
489         -1,   89,   90,   91,   -1,   -1,   92,   -1,
490         93,   94,   -1,   95,   -1,   96,   97,   -1,
491         98,   -1,   99,  100,   -1,  101,   -1,  102,
492        103,   -1,  104,   -1, -605,  107,   -1,  108,
493         -1,  109,  110,   -1,  111,   -1,  112,  113,
494         -1,  114,   -1,  115,  116,   -1,  117,   -1,
495        118,  119,   -1,  120, -295,   -2,   -1,   -1,
496        121,   -1,  122,  123,   -1,   -1,  124,  125,
497        126,   -1,  127,   -1,  128,  129,   -1,  130,
498         -1,  131,  132,   -1,  133,   -1,  134,  135,
499         -1,  136,   -1,  137,  138,   -1,  139,   -1,
500        140,  141,   -1,   -1,  142,  143,   -1,   -1,
501        144,   -1,  145,  146,   -1,  147,   -1,  148,
502        149,   -1,  150,   -1,  151,  152,   -1,   -1,
503         -1,   -1,  153,   -1,  154,   -1,  155,  156,
504         -1,  157,   -1,  158,  159,   -1,  160,   -1,
505        161,   -1,   -1,  162,   -1,  163,  164,   -1,
506        165,   -1,  166,   -1,   -1,  167,   -1,  168,
507         -1,   -1,  169,   -1, -727,  172,   -1,  173,
508         -1,  174,  175,   -1,  176,   -1,  177,  178,
509         -1,  179,   -1,  180,  181,   -1,  182,   -1,
510        183,  184,   -1,  185,   -1,  186, -230,   -2,
511        187,   -1,  188,   -1,   -1,  189,   -1,  190,
512        191,   -1,  192,   -1,  193,  194,   -1,  195,
513         -1,  196,  197,   -1,  198,   -1,  199,  200,
514         -1,  201,   -1,  202,  203,   -1,  204,   -1,
515        205,  206,   -1,  207,   -1,  208,  209,   -1,
516        210,   -1,  211,   -1,   -1,  212,   -1,  213,
517         -1,   -1,  214,   -1,  215,  216,   -1,   -1,
518        217,  218,  219,   -1,  220,   -1,  221,  222,
519         -1,  223,   -1,  224,  225,   -1,  226,  227,
520        228,  229,   -1,  230,   -1,  231,   -1,   -1,
521        232,   -1, -822,  235,   -1,  236,   -1,  237,
522        238,   -1,  239,   -1,  240, -167,   -2,  241,
523         -1,  242,   -1,   -1,  243,   -1,  244,  245,
524         -1,  246,  247,  248,  249,   -1,  250,   -1,
525        251,  252,   -1,  253,  254,  255,   -1,   -1,
526        256,   -1,  257,  258,   -1,  259,   -1,  260,
527        261,   -1,  262,   -1,  263,  264,   -1,  265,
528         -1,  266,  267,   -1,  268,   -1,  269,  270,
529         -1,  271,   -1,  272,  273,   -1,  274,   -1,
530        275,  276,   -1,  277,   -1,  278,   -1,   -1,
531        279,   -1,  280,   -1,   -1,  281,   -1,  282,
532         -1,   -1,  283,   -1,  284,   -1,   -1,  285,
533         -1,  286,   -1,   -1,  287,   -1,  288,   -1,
534         -1,  289,   -1,  290,  291,   -1,  292,   -1,
535        293,   -1,   -1,  294,   -1,  295,  296,   -1,
536        297,   -1,  298,   -1,   -1,  299,   -1,  300,
537         -1,   -1,  301,   -1,  302,   -1,   -1,  303,
538         -1,  304,   -1,   -1,  305,   -1, -952,  -94,
539         -2,  308,   -1,  309,   -1,   -1,   -1,   -1,
540        310,   -1,   -1,  311,   -1,  312,   -1,   -1,
541        313,   -1,  314,   -1,   -1,  315,   -1,  316,
542         -1,   -1,  317,   -1,  318,   -1,   -1,  319,
543         -1,  320,   -1,   -1,  321,   -1,  322,   -1,
544         -1,  323,   -1,  324,   -1,   -1,  325,  326,
545        327,   -1,   -1,  328,   -1,  329,  330,   -1,
546        331,   -1,  332,   -1,   -1,  333,   -1,  334,
547         -1,   -1,   -1,   -1,  335,  336,   -1,  337,
548         -1,  338,   -1,   -1,  339,   -1,  340,   -1,
549         -1,   -1,   -1,  341,   -1,   -1,  342,   -1,
550        343,   -1,   -1,   -1,   -1,  344,   -1,   -1,
551         -1,   -1,  345,   -1,   -1,  346,   -1,  347,
552         -1,   -1,  348,   -1,  349,   -1,   -1,  350,
553         -1,  351,  352,   -1,   -1,   -1,   -1,   -1,
554         -1,   -1,   -1,  353,   -1,   -1,  354,   -1,
555        355,   -1,   -1,   -1,   -1,  356,   -1,   -1,
556        357,   -1,  358,   -1,   -1,   -1,   -1,  359,
557         -1,   -1,   -1,   -1,  360,  361,   -1,   -1,
558         -1,  362,   -1,   -1,   -1,   -1,  363,   -1,
559         -1,  364,   -1,  365,   -1,   -1,  366,   -1,
560        367,   -1,   -1,  368,   -1,   -1,   -1,   -1,
561         -1,   -1,  369,   -1,   -1,  370,   -1,  371,
562         -1,   -1,  372,   -1,   -1,   -1,   -1,   -1,
563         -1,  373,   -1,   -1,   -1,   -1,   -1,   -1,
564         -1,  374,   -1,  375,   -1,   -1,  376,   -1,
565        377,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
566         -1,   -1,   -1,   -1,   -1,   -1,   -1,  378,
567         -1,   -1,  379,   -1,  380,   -1,   -1,   -1,
568         -1,  381,   -1,   -1,   -1,   -1,   -1,   -1,
569         -1,   -1,   -1,  382,   -1,   -1,   -1,   -1,
570         -1,   -1,   -1,   -1,   -1,  383,   -1,   -1,
571         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
572         -1,   -1,   -1,   -1,   -1,  384,   -1,   -1,
573         -1,   -1,   -1,   -1,  385,   -1,   -1,   -1,
574         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
575         -1,  386,   -1,   -1,   -1,   -1,   -1,   -1,
576        387,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
577         -1,   -1,   -1,   -1,  388,   -1,   -1,   -1,
578         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
579         -1,   -1,   -1,  389,   -1,   -1,   -1,   -1,
580        390,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
581        391,   -1,  392,   -1,   -1,   -1,   -1,   -1,
582         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
583         -1,  393,   -1,   -1,   -1,   -1,   -1,   -1,
584         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
585         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
586         -1,   -1,   -1,   -1,   -1,   -1,   -1,   -1,
587         -1,   -1,   -1,   -1,  394,   -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,  395,   -1,   -1,   -1,   -1,
591        396,   -1,  397,   -1,   -1,   -1,   -1,   -1,
592         -1,   -1,   -1,   -1,  398,   -1,   -1,   -1,
593         -1,   -1,   -1,   -1,   -1,   -1,  399
594     };
595 
596   if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
597     {
598       register int key = gbHash (str, len);
599 
600       if (key <= MAX_HASH_VALUE && key >= 0)
601         {
602           register int index = lookup[key];
603 
604           if (index >= 0)
605             {
606               register const char *s = wordlist[index].name;
607 
608               if (*str == *s && !strncmp (str + 1, s + 1, len - 1))
609                 return &wordlist[index];
610             }
611           else if (index < -TOTAL_KEYWORDS)
612             {
613               register int offset = - 1 - TOTAL_KEYWORDS - index;
614               register const struct charHz *wordptr = &wordlist[TOTAL_KEYWORDS + lookup[offset]];
615               register const struct charHz *wordendptr = wordptr + -lookup[offset + 1];
616 
617               while (wordptr < wordendptr)
618                 {
619                   register const char *s = wordptr->name;
620 
621                   if (*str == *s && !strncmp (str + 1, s + 1, len - 1))
622                     return wordptr;
623                   wordptr++;
624                 }
625             }
626         }
627     }
628   return 0;
629 }
630