|
|
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.