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