|
|
1.1 root 1: #ifndef lint
2: static char ehash_sccsid[] = "@(#)ehash.c 4.2 (Berkeley) 82/11/06";
3: #endif not lint
4:
5: #
6: struct hnode {
7: char *aakey;
8: struct dict *aadata;
9: };
10: struct dict {
11: char *entry;
12: char val;
13: };
14: char able();
15: struct dict able_d[];
16: char ace();
17: struct dict ace_d[];
18: char age();
19: struct dict age_d[];
20: char ance();
21: struct dict ance_d[];
22: char ant();
23: struct dict ant_d[];
24: char cal();
25: struct dict cal_d[];
26: char cle();
27: struct dict cle_d[];
28: char ee();
29: struct dict ee_d[];
30: char ence();
31: struct dict ence_d[];
32: char ess();
33: struct dict ess_d[];
34: char est();
35: struct dict est_d[];
36: char ful();
37: struct dict ful_d[];
38: char ible();
39: struct dict ible_d[];
40: char ic();
41: struct dict ic_d[];
42: char ice();
43: struct dict ice_d[];
44: char ion();
45: struct dict ion_d[];
46: char ional();
47: struct dict ional_d[];
48: char is();
49: struct dict is_d[];
50: char ish();
51: struct dict ish_d[];
52: char ist();
53: struct dict ist_d[];
54: char ite();
55: struct dict ite_d[];
56: char ive();
57: struct dict ive_d[];
58: char ize();
59: struct dict ize_d[];
60: char lar();
61: struct dict lar_d[];
62: char less();
63: struct dict less_d[];
64: char man();
65: struct dict man_d[];
66: char ment();
67: struct dict ment_d[];
68: char ness();
69: struct dict ness_d[];
70: char ous();
71: struct dict ous_d[];
72: char ship();
73: struct dict ship_d[];
74: char ss();
75: struct dict ss_d[];
76: char ure();
77: struct dict ure_d[];
78: char us();
79: struct dict us_d[];
80: char ing();
81: struct dict ing_d[];
82: char ed();
83: struct dict ed_d[];
84: struct fandd {
85: char (*fun)();
86: struct dict *yd;
87: } arr[] = {
88: able, able_d,
89: ace, ace_d,
90: age, age_d,
91: ance, ance_d,
92: ant, ant_d,
93: cal, cal_d,
94: cle, cle_d,
95: ee, ee_d,
96: ence, ence_d,
97: ess, ess_d,
98: est, est_d,
99: ful, ful_d,
100: ible, ible_d,
101: ic, ic_d,
102: ice, ice_d,
103: ion, ion_d,
104: ional, ional_d,
105: is, is_d,
106: ish, ish_d,
107: ist, ist_d,
108: ite, ite_d,
109: ive, ive_d,
110: ize, ize_d,
111: lar, lar_d,
112: less, less_d,
113: man, man_d,
114: ment, ment_d,
115: ness, ness_d,
116: ous, ous_d,
117: ship, ship_d,
118: ss, ss_d,
119: ure, ure_d,
120: us, us_d,
121: ing, ing_d,
122: ed, ed_d,
123: 0, 0
124: };
125: egetd(){
126: struct dict *pp;
127: struct fandd *ptr;
128: ptr = arr;
129: while(ptr->fun != 0){
130: pp = ptr->yd;
131: while(pp->entry != 0){
132: (*ptr->fun)(pp->entry,0,pp);
133: pp++;
134: }
135: ptr++;
136: }
137: }
138: char
139: aahash(s,ex,aatsize,aapr1,aapr2,tbl,data)
140: char *s;
141: struct hnode tbl[];
142: struct dict *data;
143: {
144: char *cp;
145: int i, key, c, p1, p2;
146: cp = s;
147: key =0;
148: while (c = *cp++)
149: key = key + (key<<5) + c;
150: key &= 077777;
151: p1 = key%aapr1;
152: p2 = key%aapr2;
153: if (p2==0) p2=17;
154: for(i=0; i<aatsize; i++)
155: {
156: if (tbl[p1].aakey==0)
157: { /* new item */
158: if (ex ==0)
159: {
160: tbl[p1].aakey = s;
161: tbl[p1].aadata= data;
162: return(tbl[p1].aadata->val);
163: }
164: else
165: return(0);
166: }
167: else
168: if(strcmp(tbl[p1].aakey, s)== 0)
169: {
170: return(tbl[p1].aadata->val);
171: }
172: p1 = (p1+p2)%aatsize;
173: }
174: fprintf(stderr, "hash table full\n");
175: exit();
176: }
177: struct hnode aa1root[43];
178: #define aa1tsize 43
179: #define aa1p1 37
180: #define aa1p2 41
181: char
182: able(a0,a1,ptr)
183: char *a0;
184: struct dict *ptr;
185: {
186: return(aahash(a0,a1,aa1tsize,aa1p1,aa1p2,aa1root,ptr));
187: }
188: struct hnode aa2root[11];
189: #define aa2tsize 11
190: #define aa2p1 5
191: #define aa2p2 7
192: char
193: ace(a0,a1,ptr)
194: char *a0;
195: struct dict *ptr;
196: {
197: return(aahash(a0,a1,aa2tsize,aa2p1,aa2p2,aa2root,ptr));
198: }
199: struct hnode aa3root[61];
200: #define aa3tsize 61
201: #define aa3p1 53
202: #define aa3p2 59
203: char
204: age(a0,a1,ptr)
205: char *a0;
206: struct dict *ptr;
207: {
208: return(aahash(a0,a1,aa3tsize,aa3p1,aa3p2,aa3root,ptr));
209: }
210: struct hnode aa4root[37];
211: #define aa4tsize 37
212: #define aa4p1 29
213: #define aa4p2 31
214: char
215: ance(a0,a1,ptr)
216: char *a0;
217: struct dict *ptr;
218: {
219: return(aahash(a0,a1,aa4tsize,aa4p1,aa4p2,aa4root,ptr));
220: }
221: struct hnode aa5root[31];
222: #define aa5tsize 31
223: #define aa5p1 23
224: #define aa5p2 29
225: char
226: ant(a0,a1,ptr)
227: char *a0;
228: struct dict *ptr;
229: {
230: return(aahash(a0,a1,aa5tsize,aa5p1,aa5p2,aa5root,ptr));
231: }
232: struct hnode aa7root[19];
233: #define aa7tsize 19
234: #define aa7p1 13
235: #define aa7p2 17
236: char
237: cal(a0,a1,ptr)
238: char *a0;
239: struct dict *ptr;
240: {
241: return(aahash(a0,a1,aa7tsize,aa7p1,aa7p2,aa7root,ptr));
242: }
243: struct hnode aa8root[13];
244: #define aa8tsize 13
245: #define aa8p1 7
246: #define aa8p2 11
247: char
248: cle(a0,a1,ptr)
249: char *a0;
250: struct dict *ptr;
251: {
252: return(aahash(a0,a1,aa8tsize,aa8p1,aa8p2,aa8root,ptr));
253: }
254: struct hnode aa10root[31];
255: #define aa10tsize 31
256: #define aa10p1 23
257: #define aa10p2 29
258: char
259: ee(a0,a1,ptr)
260: char *a0;
261: struct dict *ptr;
262: {
263: return(aahash(a0,a1,aa10tsize,aa10p1,aa10p2,aa10root,ptr));
264: }
265: struct hnode aa11root[31];
266: #define aa11tsize 31
267: #define aa11p1 23
268: #define aa11p2 29
269: char
270: ence(a0,a1,ptr)
271: char *a0;
272: struct dict *ptr;
273: {
274: return(aahash(a0,a1,aa11tsize,aa11p1,aa11p2,aa11root,ptr));
275: }
276: struct hnode aa13root[47];
277: #define aa13tsize 47
278: #define aa13p1 41
279: #define aa13p2 43
280: char
281: ess(a0,a1,ptr)
282: char *a0;
283: struct dict *ptr;
284: {
285: return(aahash(a0,a1,aa13tsize,aa13p1,aa13p2,aa13root,ptr));
286: }
287: struct hnode aa14root[67];
288: #define aa14tsize 67
289: #define aa14p1 59
290: #define aa14p2 61
291: char
292: est(a0,a1,ptr)
293: char *a0;
294: struct dict *ptr;
295: {
296: return(aahash(a0,a1,aa14tsize,aa14p1,aa14p2,aa14root,ptr));
297: }
298: struct hnode aa15root[43];
299: #define aa15tsize 43
300: #define aa15p1 37
301: #define aa15p2 41
302: char
303: ful(a0,a1,ptr)
304: char *a0;
305: struct dict *ptr;
306: {
307: return(aahash(a0,a1,aa15tsize,aa15p1,aa15p2,aa15root,ptr));
308: }
309: struct hnode aa18root[19];
310: #define aa18tsize 19
311: #define aa18p1 13
312: #define aa18p2 17
313: char
314: ible(a0,a1,ptr)
315: char *a0;
316: struct dict *ptr;
317: {
318: return(aahash(a0,a1,aa18tsize,aa18p1,aa18p2,aa18root,ptr));
319: }
320: struct hnode aa19root[151];
321: #define aa19tsize 151
322: #define aa19p1 139
323: #define aa19p2 149
324: char
325: ic(a0,a1,ptr)
326: char *a0;
327: struct dict *ptr;
328: {
329: return(aahash(a0,a1,aa19tsize,aa19p1,aa19p2,aa19root,ptr));
330: }
331: struct hnode aa20root[11];
332: #define aa20tsize 11
333: #define aa20p1 5
334: #define aa20p2 7
335: char
336: ice(a0,a1,ptr)
337: char *a0;
338: struct dict *ptr;
339: {
340: return(aahash(a0,a1,aa20tsize,aa20p1,aa20p2,aa20root,ptr));
341: }
342: struct hnode aa21root[89];
343: #define aa21tsize 89
344: #define aa21p1 79
345: #define aa21p2 83
346: char
347: ion(a0,a1,ptr)
348: char *a0;
349: struct dict *ptr;
350: {
351: return(aahash(a0,a1,aa21tsize,aa21p1,aa21p2,aa21root,ptr));
352: }
353: struct hnode aa22root[13];
354: #define aa22tsize 13
355: #define aa22p1 7
356: #define aa22p2 11
357: char
358: ional(a0,a1,ptr)
359: char *a0;
360: struct dict *ptr;
361: {
362: return(aahash(a0,a1,aa22tsize,aa22p1,aa22p2,aa22root,ptr));
363: }
364: struct hnode aa23root[11];
365: #define aa23tsize 11
366: #define aa23p1 5
367: #define aa23p2 7
368: char
369: is(a0,a1,ptr)
370: char *a0;
371: struct dict *ptr;
372: {
373: return(aahash(a0,a1,aa23tsize,aa23p1,aa23p2,aa23root,ptr));
374: }
375: struct hnode aa24root[71];
376: #define aa24tsize 71
377: #define aa24p1 61
378: #define aa24p2 67
379: char
380: ish(a0,a1,ptr)
381: char *a0;
382: struct dict *ptr;
383: {
384: return(aahash(a0,a1,aa24tsize,aa24p1,aa24p2,aa24root,ptr));
385: }
386: struct hnode aa25root[151];
387: #define aa25tsize 151
388: #define aa25p1 139
389: #define aa25p2 149
390: char
391: ist(a0,a1,ptr)
392: char *a0;
393: struct dict *ptr;
394: {
395: return(aahash(a0,a1,aa25tsize,aa25p1,aa25p2,aa25root,ptr));
396: }
397: struct hnode aa26root[79];
398: #define aa26tsize 79
399: #define aa26p1 71
400: #define aa26p2 73
401: char
402: ite(a0,a1,ptr)
403: char *a0;
404: struct dict *ptr;
405: {
406: return(aahash(a0,a1,aa26tsize,aa26p1,aa26p2,aa26root,ptr));
407: }
408: struct hnode aa28root[151];
409: #define aa28tsize 151
410: #define aa28p1 139
411: #define aa28p2 149
412: char
413: ive(a0,a1,ptr)
414: char *a0;
415: struct dict *ptr;
416: {
417: return(aahash(a0,a1,aa28tsize,aa28p1,aa28p2,aa28root,ptr));
418: }
419: struct hnode aa29root[11];
420: #define aa29tsize 11
421: #define aa29p1 5
422: #define aa29p2 7
423: char
424: ize(a0,a1,ptr)
425: char *a0;
426: struct dict *ptr;
427: {
428: return(aahash(a0,a1,aa29tsize,aa29p1,aa29p2,aa29root,ptr));
429: }
430: struct hnode aa30root[37];
431: #define aa30tsize 37
432: #define aa30p1 29
433: #define aa30p2 31
434: char
435: lar(a0,a1,ptr)
436: char *a0;
437: struct dict *ptr;
438: {
439: return(aahash(a0,a1,aa30tsize,aa30p1,aa30p2,aa30root,ptr));
440: }
441: struct hnode aa31root[11];
442: #define aa31tsize 11
443: #define aa31p1 5
444: #define aa31p2 7
445: char
446: less(a0,a1,ptr)
447: char *a0;
448: struct dict *ptr;
449: {
450: return(aahash(a0,a1,aa31tsize,aa31p1,aa31p2,aa31root,ptr));
451: }
452: struct hnode aa33root[11];
453: #define aa33tsize 11
454: #define aa33p1 5
455: #define aa33p2 7
456: char
457: man(a0,a1,ptr)
458: char *a0;
459: struct dict *ptr;
460: {
461: return(aahash(a0,a1,aa33tsize,aa33p1,aa33p2,aa33root,ptr));
462: }
463: struct hnode aa34root[37];
464: #define aa34tsize 37
465: #define aa34p1 29
466: #define aa34p2 31
467: char
468: ment(a0,a1,ptr)
469: char *a0;
470: struct dict *ptr;
471: {
472: return(aahash(a0,a1,aa34tsize,aa34p1,aa34p2,aa34root,ptr));
473: }
474: struct hnode aa35root[11];
475: #define aa35tsize 11
476: #define aa35p1 5
477: #define aa35p2 7
478: char
479: ness(a0,a1,ptr)
480: char *a0;
481: struct dict *ptr;
482: {
483: return(aahash(a0,a1,aa35tsize,aa35p1,aa35p2,aa35root,ptr));
484: }
485: struct hnode aa37root[11];
486: #define aa37tsize 11
487: #define aa37p1 5
488: #define aa37p2 7
489: char
490: ous(a0,a1,ptr)
491: char *a0;
492: struct dict *ptr;
493: {
494: return(aahash(a0,a1,aa37tsize,aa37p1,aa37p2,aa37root,ptr));
495: }
496: struct hnode aa39root[11];
497: #define aa39tsize 11
498: #define aa39p1 5
499: #define aa39p2 7
500: char
501: ship(a0,a1,ptr)
502: char *a0;
503: struct dict *ptr;
504: {
505: return(aahash(a0,a1,aa39tsize,aa39p1,aa39p2,aa39root,ptr));
506: }
507: struct hnode aa40root[61];
508: #define aa40tsize 61
509: #define aa40p1 53
510: #define aa40p2 59
511: char
512: ss(a0,a1,ptr)
513: char *a0;
514: struct dict *ptr;
515: {
516: return(aahash(a0,a1,aa40tsize,aa40p1,aa40p2,aa40root,ptr));
517: }
518: struct hnode aa42root[89];
519: #define aa42tsize 89
520: #define aa42p1 79
521: #define aa42p2 83
522: char
523: ure(a0,a1,ptr)
524: char *a0;
525: struct dict *ptr;
526: {
527: return(aahash(a0,a1,aa42tsize,aa42p1,aa42p2,aa42root,ptr));
528: }
529: struct hnode aa43root[19];
530: #define aa43tsize 19
531: #define aa43p1 13
532: #define aa43p2 17
533: char
534: us(a0,a1,ptr)
535: char *a0;
536: struct dict *ptr;
537: {
538: return(aahash(a0,a1,aa43tsize,aa43p1,aa43p2,aa43root,ptr));
539: }
540: struct hnode aa44root[23];
541: #define aa44tsize 23
542: #define aa44p1 17
543: #define aa44p2 19
544: char
545: ing(a0,a1,ptr)
546: char *a0;
547: struct dict *ptr;
548: {
549: return(aahash(a0,a1,aa44tsize,aa44p1,aa44p2,aa44root,ptr));
550: }
551: struct hnode aa45root[47];
552: #define aa45tsize 47
553: #define aa45p1 41
554: #define aa45p2 43
555: char
556: ed(a0,a1,ptr)
557: char *a0;
558: struct dict *ptr;
559: {
560: return(aahash(a0,a1,aa45tsize,aa45p1,aa45p2,aa45root,ptr));
561: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.