|
|
1.1 root 1: struct dict {
2: char *entry;
3: char val;
4: };
5: extern struct dict ary_d[], cy_d[], ery_d[], fy_d[],gy_d[];
6: extern struct dict ity_d[],ly_d[],ory_d[],ry_d[],ty_d[];
7: extern struct dict dict[];
8: char aahash();
9: char lookup();
10: char ary();
11: char cy();
12: char ery();
13: char fy();
14: char gy();
15: char ity();
16: char ly();
17: char ory();
18: char ry();
19: char ty();
20:
21: struct hnode {
22: char *aakey;
23: struct dict *aadata;
24: };
25: char
26: aahash(s,ex,aatsize,aapr1,aapr2,tbl,data)
27: char *s;
28: struct hnode tbl[];
29: struct dict *data;
30: {
31: char *cp;
32: int ii, key, c, p1, p2;
33: cp = s;
34: key =0;
35: while (c = *cp++)
36: key = key + (key<<5) + c;
37: key &= 077777;
38: p1 = key%aapr1;
39: p2 = key%aapr2;
40: if (p2==0) p2=17;
41: for(ii=0; ii<aatsize; ii++)
42: {
43: if (tbl[p1].aakey==0)
44: { /* new item */
45: if (ex ==0)
46: {
47: tbl[p1].aakey = s;
48: tbl[p1].aadata= data;
49: return(tbl[p1].aadata->val);
50: }
51: else
52: return(0);
53: }
54: else
55: if(strcmp(tbl[p1].aakey, s)== 0)
56: {
57: return(tbl[p1].aadata->val);
58: }
59: p1 = (p1+p2)%aatsize;
60: }
61: fprintf(stderr, "hash table full\n");
62: exit();
63: }
64: getd(){
65: struct dict *ptr;
66: ptr = dict;
67: while(ptr->entry != 0){
68: lookup(ptr->entry,0,ptr);
69: ptr++;
70: }
71: }
72:
73: struct hnode aa1root[463];
74: #define aa1tsize 463
75: #define aa1p1 457
76: #define aa1p2 461
77: char
78: lookup(a0,a1,ptr)
79: char *a0;
80: struct dict *ptr;
81: {
82: return(aahash(a0,a1,aa1tsize,aa1p1,aa1p2,aa1root,ptr));
83: }
84: struct hnode aa6root[113];
85: #define aa6tsize 113
86: #define aa6p1 107
87: #define aa6p2 109
88: char
89: ary(a0,a1,ptr)
90: char *a0;
91: struct dict *ptr;
92: {
93: return(aahash(a0,a1,aa6tsize,aa6p1,aa6p2,aa6root,ptr));
94: }
95: struct hnode aa9root[13];
96: #define aa9tsize 13
97: #define aa9p1 7
98: #define aa9p2 1
99: char
100: cy(a0,a1,ptr)
101: char *a0;
102: struct dict *ptr;
103: {
104: return(aahash(a0,a1,aa9tsize,aa9p1,aa9p2,aa9root,ptr));
105: }
106: struct hnode aa12root[59];
107: #define aa12tsize 59
108: #define aa12p1 47
109: #define aa12p2 43
110: char
111: ery(a0,a1,ptr)
112: char *a0;
113: struct dict *ptr;
114: {
115: return(aahash(a0,a1,aa12tsize,aa12p1,aa12p2,aa12root,ptr));
116: }
117: struct hnode aa16root[23];
118: #define aa16tsize 23
119: #define aa16p1 17
120: #define aa16p2 19
121: char
122: fy(a0,a1,ptr)
123: char *a0;
124: struct dict *ptr;
125: {
126: return(aahash(a0,a1,aa16tsize,aa16p1,aa16p2,aa16root,ptr));
127: }
128: struct hnode aa17root[29];
129: #define aa17tsize 29
130: #define aa17p1 19
131: #define aa17p2 23
132: char
133: gy(a0,a1,ptr)
134: char *a0;
135: struct dict *ptr;
136: {
137: return(aahash(a0,a1,aa17tsize,aa17p1,aa17p2,aa17root,ptr));
138: }
139: struct hnode aa27root[11];
140: #define aa27tsize 11
141: #define aa27p1 5
142: #define aa27p2 7
143: char
144: ity(a0,a1,ptr)
145: char *a0;
146: struct dict *ptr;
147: {
148: return(aahash(a0,a1,aa27tsize,aa27p1,aa27p2,aa27root,ptr));
149: }
150: struct hnode aa32root[281];
151: #define aa32tsize 281
152: #define aa32p1 271
153: #define aa32p2 277
154: char
155: ly(a0,a1,ptr)
156: char *a0;
157: struct dict *ptr;
158: {
159: return(aahash(a0,a1,aa32tsize,aa32p1,aa32p2,aa32root,ptr));
160: }
161: struct hnode aa36root[59];
162: #define aa36tsize 59
163: #define aa36p1 47
164: #define aa36p2 43
165: char
166: ory(a0,a1,ptr)
167: char *a0;
168: struct dict *ptr;
169: {
170: return(aahash(a0,a1,aa36tsize,aa36p1,aa36p2,aa36root,ptr));
171: }
172: struct hnode aa38root[59];
173: #define aa38tsize 59
174: #define aa38p1 47
175: #define aa38p2 53
176: char
177: ry(a0,a1,ptr)
178: char *a0;
179: struct dict *ptr;
180: {
181: return(aahash(a0,a1,aa38tsize,aa38p1,aa38p2,aa38root,ptr));
182: }
183: struct hnode aa41root[127];
184: #define aa41tsize 127
185: #define aa41p1 109
186: #define aa41p2 113
187: char
188: ty(a0,a1,ptr)
189: char *a0;
190: struct dict *ptr;
191: {
192: return(aahash(a0,a1,aa41tsize,aa41p1,aa41p2,aa41root,ptr));
193: }
194: struct fandd {
195: char (*fun)();
196: struct dict *yd;
197: } arr[] = {
198: ary, ary_d,
199: cy, cy_d,
200: ery, ery_d,
201: fy, fy_d,
202: gy, gy_d,
203: ity, ity_d,
204: ly, ly_d,
205: ory, ory_d,
206: ry, ry_d,
207: ty, ty_d,
208: 0, 0
209: };
210:
211: ygetd(){
212: struct fandd *ptr;
213: struct dict *pp;
214: ptr=arr;
215: while(ptr->fun != 0){
216: pp = ptr->yd;
217: while(pp->entry != 0){
218: (*ptr->fun)(pp->entry,0,pp);
219: pp++;
220: }
221: ptr++;
222: }
223: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.