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