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