19075Srrh #ifndef lint
2*9098Srrh static char ehash_sccsid[] = "@(#)ehash.c	4.2	(Berkeley)	82/11/06";
39075Srrh #endif not lint
49075Srrh 
59075Srrh #
69075Srrh struct hnode {
79075Srrh 	char *aakey;
89075Srrh 	struct dict *aadata;
99075Srrh };
109075Srrh struct dict {
119075Srrh 	char *entry;
129075Srrh 	char val;
139075Srrh };
149075Srrh char able();
159075Srrh struct dict able_d[];
169075Srrh char ace();
179075Srrh struct dict ace_d[];
189075Srrh char age();
199075Srrh struct dict age_d[];
209075Srrh char ance();
219075Srrh struct dict ance_d[];
229075Srrh char ant();
239075Srrh struct dict ant_d[];
249075Srrh char cal();
259075Srrh struct dict cal_d[];
269075Srrh char cle();
279075Srrh struct dict cle_d[];
289075Srrh char ee();
299075Srrh struct dict ee_d[];
309075Srrh char ence();
319075Srrh struct dict ence_d[];
329075Srrh char ess();
339075Srrh struct dict ess_d[];
349075Srrh char est();
359075Srrh struct dict est_d[];
369075Srrh char ful();
379075Srrh struct dict ful_d[];
389075Srrh char ible();
399075Srrh struct dict ible_d[];
409075Srrh char ic();
419075Srrh struct dict ic_d[];
429075Srrh char ice();
439075Srrh struct dict ice_d[];
449075Srrh char ion();
459075Srrh struct dict ion_d[];
469075Srrh char ional();
479075Srrh struct dict ional_d[];
489075Srrh char is();
499075Srrh struct dict is_d[];
509075Srrh char ish();
519075Srrh struct dict ish_d[];
529075Srrh char ist();
539075Srrh struct dict ist_d[];
549075Srrh char ite();
559075Srrh struct dict ite_d[];
569075Srrh char ive();
579075Srrh struct dict ive_d[];
589075Srrh char ize();
599075Srrh struct dict ize_d[];
609075Srrh char lar();
619075Srrh struct dict lar_d[];
629075Srrh char less();
639075Srrh struct dict less_d[];
649075Srrh char man();
659075Srrh struct dict man_d[];
669075Srrh char ment();
679075Srrh struct dict ment_d[];
689075Srrh char ness();
699075Srrh struct dict ness_d[];
709075Srrh char ous();
719075Srrh struct dict ous_d[];
729075Srrh char ship();
739075Srrh struct dict ship_d[];
749075Srrh char ss();
759075Srrh struct dict ss_d[];
769075Srrh char ure();
779075Srrh struct dict ure_d[];
789075Srrh char us();
799075Srrh struct dict us_d[];
809075Srrh char ing();
819075Srrh struct dict ing_d[];
829075Srrh char ed();
839075Srrh struct dict ed_d[];
849075Srrh struct fandd {
859075Srrh 	char (*fun)();
869075Srrh 	struct dict *yd;
879075Srrh } arr[] = {
889075Srrh able,	able_d,
899075Srrh ace,	ace_d,
909075Srrh age,	age_d,
919075Srrh ance,	ance_d,
929075Srrh ant,	ant_d,
939075Srrh cal,	cal_d,
949075Srrh cle,	cle_d,
959075Srrh ee,	ee_d,
969075Srrh ence,	ence_d,
979075Srrh ess,	ess_d,
989075Srrh est,	est_d,
999075Srrh ful,	ful_d,
1009075Srrh ible,	ible_d,
1019075Srrh ic,	ic_d,
1029075Srrh ice,	ice_d,
1039075Srrh ion,	ion_d,
1049075Srrh ional,	ional_d,
1059075Srrh is,	is_d,
1069075Srrh ish,	ish_d,
1079075Srrh ist,	ist_d,
1089075Srrh ite,	ite_d,
1099075Srrh ive,	ive_d,
1109075Srrh ize,	ize_d,
1119075Srrh lar,	lar_d,
1129075Srrh less,	less_d,
1139075Srrh man,	man_d,
1149075Srrh ment,	ment_d,
1159075Srrh ness,	ness_d,
1169075Srrh ous,	ous_d,
1179075Srrh ship,	ship_d,
1189075Srrh ss,	ss_d,
1199075Srrh ure,	ure_d,
1209075Srrh us,	us_d,
1219075Srrh ing,	ing_d,
1229075Srrh ed,	ed_d,
1239075Srrh 0,	0
1249075Srrh };
1259075Srrh egetd(){
1269075Srrh 	struct dict *pp;
1279075Srrh 	struct fandd *ptr;
1289075Srrh 	ptr = arr;
1299075Srrh 	while(ptr->fun != 0){
1309075Srrh 		pp = ptr->yd;
1319075Srrh 		while(pp->entry != 0){
1329075Srrh 			(*ptr->fun)(pp->entry,0,pp);
1339075Srrh 			pp++;
1349075Srrh 		}
1359075Srrh 		ptr++;
1369075Srrh 	}
1379075Srrh }
1389075Srrh char
1399075Srrh aahash(s,ex,aatsize,aapr1,aapr2,tbl,data)
1409075Srrh char *s;
1419075Srrh struct hnode tbl[];
1429075Srrh struct dict *data;
1439075Srrh {
1449075Srrh 	char *cp;
1459075Srrh 	int i, key, c, p1, p2;
1469075Srrh 	cp = s;
1479075Srrh 	key =0;
1489075Srrh 	while (c = *cp++)
1499075Srrh 		key = key + (key<<5) + c;
1509075Srrh 	key &= 077777;
1519075Srrh 	p1 = key%aapr1;
1529075Srrh 	p2 = key%aapr2;
1539075Srrh 	if (p2==0) p2=17;
1549075Srrh 	for(i=0; i<aatsize; i++)
1559075Srrh 	{
1569075Srrh 		if (tbl[p1].aakey==0)
1579075Srrh 		{ /* new item */
1589075Srrh 			if (ex ==0)
1599075Srrh 			{
1609075Srrh 				tbl[p1].aakey = s;
1619075Srrh 				tbl[p1].aadata= data;
1629075Srrh 				return(tbl[p1].aadata->val);
1639075Srrh 			}
1649075Srrh 			else
1659075Srrh 				return(0);
1669075Srrh 		}
1679075Srrh 		else
1689075Srrh 			if(strcmp(tbl[p1].aakey, s)== 0)
1699075Srrh 			{
1709075Srrh 				return(tbl[p1].aadata->val);
1719075Srrh 			}
1729075Srrh 		p1 = (p1+p2)%aatsize;
1739075Srrh 	}
1749075Srrh 	fprintf(stderr, "hash table full\n");
1759075Srrh 	exit();
1769075Srrh }
1779075Srrh struct hnode aa1root[43];
1789075Srrh #define aa1tsize 43
1799075Srrh #define aa1p1 37
1809075Srrh #define aa1p2 41
1819075Srrh char
1829075Srrh able(a0,a1,ptr)
1839075Srrh 	char *a0;
1849075Srrh 	struct dict *ptr;
1859075Srrh {
1869075Srrh 	return(aahash(a0,a1,aa1tsize,aa1p1,aa1p2,aa1root,ptr));
1879075Srrh }
1889075Srrh struct hnode aa2root[11];
1899075Srrh #define aa2tsize 11
1909075Srrh #define aa2p1 5
1919075Srrh #define aa2p2 7
1929075Srrh char
1939075Srrh ace(a0,a1,ptr)
1949075Srrh 	char *a0;
1959075Srrh 	struct dict *ptr;
1969075Srrh {
1979075Srrh 	return(aahash(a0,a1,aa2tsize,aa2p1,aa2p2,aa2root,ptr));
1989075Srrh }
1999075Srrh struct hnode aa3root[61];
2009075Srrh #define aa3tsize 61
2019075Srrh #define aa3p1 53
2029075Srrh #define aa3p2 59
2039075Srrh char
2049075Srrh age(a0,a1,ptr)
2059075Srrh 	char *a0;
2069075Srrh 	struct dict *ptr;
2079075Srrh {
2089075Srrh 	return(aahash(a0,a1,aa3tsize,aa3p1,aa3p2,aa3root,ptr));
2099075Srrh }
210*9098Srrh struct hnode aa4root[37];
211*9098Srrh #define aa4tsize 37
212*9098Srrh #define aa4p1 29
213*9098Srrh #define aa4p2 31
2149075Srrh char
2159075Srrh ance(a0,a1,ptr)
2169075Srrh 	char *a0;
2179075Srrh 	struct dict *ptr;
2189075Srrh {
2199075Srrh 	return(aahash(a0,a1,aa4tsize,aa4p1,aa4p2,aa4root,ptr));
2209075Srrh }
2219075Srrh struct hnode aa5root[31];
2229075Srrh #define aa5tsize 31
2239075Srrh #define aa5p1 23
2249075Srrh #define aa5p2 29
2259075Srrh char
2269075Srrh ant(a0,a1,ptr)
2279075Srrh 	char *a0;
2289075Srrh 	struct dict *ptr;
2299075Srrh {
2309075Srrh 	return(aahash(a0,a1,aa5tsize,aa5p1,aa5p2,aa5root,ptr));
2319075Srrh }
2329075Srrh struct hnode aa7root[19];
2339075Srrh #define aa7tsize 19
2349075Srrh #define aa7p1 13
2359075Srrh #define aa7p2 17
2369075Srrh char
2379075Srrh cal(a0,a1,ptr)
2389075Srrh 	char *a0;
2399075Srrh 	struct dict *ptr;
2409075Srrh {
2419075Srrh 	return(aahash(a0,a1,aa7tsize,aa7p1,aa7p2,aa7root,ptr));
2429075Srrh }
2439075Srrh struct hnode aa8root[13];
2449075Srrh #define aa8tsize 13
2459075Srrh #define aa8p1 7
2469075Srrh #define aa8p2 11
2479075Srrh char
2489075Srrh cle(a0,a1,ptr)
2499075Srrh 	char *a0;
2509075Srrh 	struct dict *ptr;
2519075Srrh {
2529075Srrh 	return(aahash(a0,a1,aa8tsize,aa8p1,aa8p2,aa8root,ptr));
2539075Srrh }
2549075Srrh struct hnode aa10root[31];
2559075Srrh #define aa10tsize 31
2569075Srrh #define aa10p1 23
2579075Srrh #define aa10p2 29
2589075Srrh char
2599075Srrh ee(a0,a1,ptr)
2609075Srrh 	char *a0;
2619075Srrh 	struct dict *ptr;
2629075Srrh {
2639075Srrh 	return(aahash(a0,a1,aa10tsize,aa10p1,aa10p2,aa10root,ptr));
2649075Srrh }
265*9098Srrh struct hnode aa11root[31];
266*9098Srrh #define aa11tsize 31
267*9098Srrh #define aa11p1 23
268*9098Srrh #define aa11p2 29
2699075Srrh char
2709075Srrh ence(a0,a1,ptr)
2719075Srrh 	char *a0;
2729075Srrh 	struct dict *ptr;
2739075Srrh {
2749075Srrh 	return(aahash(a0,a1,aa11tsize,aa11p1,aa11p2,aa11root,ptr));
2759075Srrh }
2769075Srrh struct hnode aa13root[47];
2779075Srrh #define aa13tsize 47
2789075Srrh #define aa13p1 41
2799075Srrh #define aa13p2 43
2809075Srrh char
2819075Srrh ess(a0,a1,ptr)
2829075Srrh 	char *a0;
2839075Srrh 	struct dict *ptr;
2849075Srrh {
2859075Srrh 	return(aahash(a0,a1,aa13tsize,aa13p1,aa13p2,aa13root,ptr));
2869075Srrh }
2879075Srrh struct hnode aa14root[67];
2889075Srrh #define aa14tsize 67
2899075Srrh #define aa14p1 59
2909075Srrh #define aa14p2 61
2919075Srrh char
2929075Srrh est(a0,a1,ptr)
2939075Srrh 	char *a0;
2949075Srrh 	struct dict *ptr;
2959075Srrh {
2969075Srrh 	return(aahash(a0,a1,aa14tsize,aa14p1,aa14p2,aa14root,ptr));
2979075Srrh }
2989075Srrh struct hnode aa15root[43];
2999075Srrh #define aa15tsize 43
3009075Srrh #define aa15p1 37
3019075Srrh #define aa15p2 41
3029075Srrh char
3039075Srrh ful(a0,a1,ptr)
3049075Srrh 	char *a0;
3059075Srrh 	struct dict *ptr;
3069075Srrh {
3079075Srrh 	return(aahash(a0,a1,aa15tsize,aa15p1,aa15p2,aa15root,ptr));
3089075Srrh }
3099075Srrh struct hnode aa18root[19];
3109075Srrh #define aa18tsize 19
3119075Srrh #define aa18p1 13
3129075Srrh #define aa18p2 17
3139075Srrh char
3149075Srrh ible(a0,a1,ptr)
3159075Srrh 	char *a0;
3169075Srrh 	struct dict *ptr;
3179075Srrh {
3189075Srrh 	return(aahash(a0,a1,aa18tsize,aa18p1,aa18p2,aa18root,ptr));
3199075Srrh }
3209075Srrh struct hnode aa19root[151];
3219075Srrh #define aa19tsize 151
3229075Srrh #define aa19p1 139
3239075Srrh #define aa19p2 149
3249075Srrh char
3259075Srrh ic(a0,a1,ptr)
3269075Srrh 	char *a0;
3279075Srrh 	struct dict *ptr;
3289075Srrh {
3299075Srrh 	return(aahash(a0,a1,aa19tsize,aa19p1,aa19p2,aa19root,ptr));
3309075Srrh }
3319075Srrh struct hnode aa20root[11];
3329075Srrh #define aa20tsize 11
3339075Srrh #define aa20p1 5
3349075Srrh #define aa20p2 7
3359075Srrh char
3369075Srrh ice(a0,a1,ptr)
3379075Srrh 	char *a0;
3389075Srrh 	struct dict *ptr;
3399075Srrh {
3409075Srrh 	return(aahash(a0,a1,aa20tsize,aa20p1,aa20p2,aa20root,ptr));
3419075Srrh }
342*9098Srrh struct hnode aa21root[89];
343*9098Srrh #define aa21tsize 89
344*9098Srrh #define aa21p1 79
345*9098Srrh #define aa21p2 83
3469075Srrh char
3479075Srrh ion(a0,a1,ptr)
3489075Srrh 	char *a0;
3499075Srrh 	struct dict *ptr;
3509075Srrh {
3519075Srrh 	return(aahash(a0,a1,aa21tsize,aa21p1,aa21p2,aa21root,ptr));
3529075Srrh }
3539075Srrh struct hnode aa22root[13];
3549075Srrh #define aa22tsize 13
3559075Srrh #define aa22p1 7
3569075Srrh #define aa22p2 11
3579075Srrh char
3589075Srrh ional(a0,a1,ptr)
3599075Srrh 	char *a0;
3609075Srrh 	struct dict *ptr;
3619075Srrh {
3629075Srrh 	return(aahash(a0,a1,aa22tsize,aa22p1,aa22p2,aa22root,ptr));
3639075Srrh }
3649075Srrh struct hnode aa23root[11];
3659075Srrh #define aa23tsize 11
3669075Srrh #define aa23p1 5
3679075Srrh #define aa23p2 7
3689075Srrh char
3699075Srrh is(a0,a1,ptr)
3709075Srrh 	char *a0;
3719075Srrh 	struct dict *ptr;
3729075Srrh {
3739075Srrh 	return(aahash(a0,a1,aa23tsize,aa23p1,aa23p2,aa23root,ptr));
3749075Srrh }
3759075Srrh struct hnode aa24root[71];
3769075Srrh #define aa24tsize 71
3779075Srrh #define aa24p1 61
3789075Srrh #define aa24p2 67
3799075Srrh char
3809075Srrh ish(a0,a1,ptr)
3819075Srrh 	char *a0;
3829075Srrh 	struct dict *ptr;
3839075Srrh {
3849075Srrh 	return(aahash(a0,a1,aa24tsize,aa24p1,aa24p2,aa24root,ptr));
3859075Srrh }
3869075Srrh struct hnode aa25root[151];
3879075Srrh #define aa25tsize 151
3889075Srrh #define aa25p1 139
3899075Srrh #define aa25p2 149
3909075Srrh char
3919075Srrh ist(a0,a1,ptr)
3929075Srrh 	char *a0;
3939075Srrh 	struct dict *ptr;
3949075Srrh {
3959075Srrh 	return(aahash(a0,a1,aa25tsize,aa25p1,aa25p2,aa25root,ptr));
3969075Srrh }
3979075Srrh struct hnode aa26root[79];
3989075Srrh #define aa26tsize 79
3999075Srrh #define aa26p1 71
4009075Srrh #define aa26p2 73
4019075Srrh char
4029075Srrh ite(a0,a1,ptr)
4039075Srrh 	char *a0;
4049075Srrh 	struct dict *ptr;
4059075Srrh {
4069075Srrh 	return(aahash(a0,a1,aa26tsize,aa26p1,aa26p2,aa26root,ptr));
4079075Srrh }
4089075Srrh struct hnode aa28root[151];
4099075Srrh #define aa28tsize 151
4109075Srrh #define aa28p1 139
4119075Srrh #define aa28p2 149
4129075Srrh char
4139075Srrh ive(a0,a1,ptr)
4149075Srrh 	char *a0;
4159075Srrh 	struct dict *ptr;
4169075Srrh {
4179075Srrh 	return(aahash(a0,a1,aa28tsize,aa28p1,aa28p2,aa28root,ptr));
4189075Srrh }
4199075Srrh struct hnode aa29root[11];
4209075Srrh #define aa29tsize 11
4219075Srrh #define aa29p1 5
4229075Srrh #define aa29p2 7
4239075Srrh char
4249075Srrh ize(a0,a1,ptr)
4259075Srrh 	char *a0;
4269075Srrh 	struct dict *ptr;
4279075Srrh {
4289075Srrh 	return(aahash(a0,a1,aa29tsize,aa29p1,aa29p2,aa29root,ptr));
4299075Srrh }
4309075Srrh struct hnode aa30root[37];
4319075Srrh #define aa30tsize 37
4329075Srrh #define aa30p1 29
4339075Srrh #define aa30p2 31
4349075Srrh char
4359075Srrh lar(a0,a1,ptr)
4369075Srrh 	char *a0;
4379075Srrh 	struct dict *ptr;
4389075Srrh {
4399075Srrh 	return(aahash(a0,a1,aa30tsize,aa30p1,aa30p2,aa30root,ptr));
4409075Srrh }
4419075Srrh struct hnode aa31root[11];
4429075Srrh #define aa31tsize 11
4439075Srrh #define aa31p1 5
4449075Srrh #define aa31p2 7
4459075Srrh char
4469075Srrh less(a0,a1,ptr)
4479075Srrh 	char *a0;
4489075Srrh 	struct dict *ptr;
4499075Srrh {
4509075Srrh 	return(aahash(a0,a1,aa31tsize,aa31p1,aa31p2,aa31root,ptr));
4519075Srrh }
4529075Srrh struct hnode aa33root[11];
4539075Srrh #define aa33tsize 11
4549075Srrh #define aa33p1 5
4559075Srrh #define aa33p2 7
4569075Srrh char
4579075Srrh man(a0,a1,ptr)
4589075Srrh 	char *a0;
4599075Srrh 	struct dict *ptr;
4609075Srrh {
4619075Srrh 	return(aahash(a0,a1,aa33tsize,aa33p1,aa33p2,aa33root,ptr));
4629075Srrh }
463*9098Srrh struct hnode aa34root[37];
464*9098Srrh #define aa34tsize 37
465*9098Srrh #define aa34p1 29
466*9098Srrh #define aa34p2 31
4679075Srrh char
4689075Srrh ment(a0,a1,ptr)
4699075Srrh 	char *a0;
4709075Srrh 	struct dict *ptr;
4719075Srrh {
4729075Srrh 	return(aahash(a0,a1,aa34tsize,aa34p1,aa34p2,aa34root,ptr));
4739075Srrh }
4749075Srrh struct hnode aa35root[11];
4759075Srrh #define aa35tsize 11
4769075Srrh #define aa35p1 5
4779075Srrh #define aa35p2 7
4789075Srrh char
4799075Srrh ness(a0,a1,ptr)
4809075Srrh 	char *a0;
4819075Srrh 	struct dict *ptr;
4829075Srrh {
4839075Srrh 	return(aahash(a0,a1,aa35tsize,aa35p1,aa35p2,aa35root,ptr));
4849075Srrh }
4859075Srrh struct hnode aa37root[11];
4869075Srrh #define aa37tsize 11
4879075Srrh #define aa37p1 5
4889075Srrh #define aa37p2 7
4899075Srrh char
4909075Srrh ous(a0,a1,ptr)
4919075Srrh 	char *a0;
4929075Srrh 	struct dict *ptr;
4939075Srrh {
4949075Srrh 	return(aahash(a0,a1,aa37tsize,aa37p1,aa37p2,aa37root,ptr));
4959075Srrh }
4969075Srrh struct hnode aa39root[11];
4979075Srrh #define aa39tsize 11
4989075Srrh #define aa39p1 5
4999075Srrh #define aa39p2 7
5009075Srrh char
5019075Srrh ship(a0,a1,ptr)
5029075Srrh 	char *a0;
5039075Srrh 	struct dict *ptr;
5049075Srrh {
5059075Srrh 	return(aahash(a0,a1,aa39tsize,aa39p1,aa39p2,aa39root,ptr));
5069075Srrh }
5079075Srrh struct hnode aa40root[61];
5089075Srrh #define aa40tsize 61
5099075Srrh #define aa40p1 53
5109075Srrh #define aa40p2 59
5119075Srrh char
5129075Srrh ss(a0,a1,ptr)
5139075Srrh 	char *a0;
5149075Srrh 	struct dict *ptr;
5159075Srrh {
5169075Srrh 	return(aahash(a0,a1,aa40tsize,aa40p1,aa40p2,aa40root,ptr));
5179075Srrh }
5189075Srrh struct hnode aa42root[89];
5199075Srrh #define aa42tsize 89
5209075Srrh #define aa42p1 79
5219075Srrh #define aa42p2 83
5229075Srrh char
5239075Srrh ure(a0,a1,ptr)
5249075Srrh 	char *a0;
5259075Srrh 	struct dict *ptr;
5269075Srrh {
5279075Srrh 	return(aahash(a0,a1,aa42tsize,aa42p1,aa42p2,aa42root,ptr));
5289075Srrh }
5299075Srrh struct hnode aa43root[19];
5309075Srrh #define aa43tsize 19
5319075Srrh #define aa43p1 13
5329075Srrh #define aa43p2 17
5339075Srrh char
5349075Srrh us(a0,a1,ptr)
5359075Srrh 	char *a0;
5369075Srrh 	struct dict *ptr;
5379075Srrh {
5389075Srrh 	return(aahash(a0,a1,aa43tsize,aa43p1,aa43p2,aa43root,ptr));
5399075Srrh }
5409075Srrh struct hnode aa44root[23];
5419075Srrh #define aa44tsize 23
5429075Srrh #define aa44p1 17
5439075Srrh #define aa44p2 19
5449075Srrh char
5459075Srrh ing(a0,a1,ptr)
5469075Srrh 	char *a0;
5479075Srrh 	struct dict *ptr;
5489075Srrh {
5499075Srrh 	return(aahash(a0,a1,aa44tsize,aa44p1,aa44p2,aa44root,ptr));
5509075Srrh }
551*9098Srrh struct hnode aa45root[47];
552*9098Srrh #define aa45tsize 47
553*9098Srrh #define aa45p1 41
554*9098Srrh #define aa45p2 43
5559075Srrh char
5569075Srrh ed(a0,a1,ptr)
5579075Srrh 	char *a0;
5589075Srrh 	struct dict *ptr;
5599075Srrh {
5609075Srrh 	return(aahash(a0,a1,aa45tsize,aa45p1,aa45p2,aa45root,ptr));
5619075Srrh }
562