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