Annotation of 43BSD/usr.bin/diction/ehash.c, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.