]>
Commit | Line | Data |
---|---|---|
878ddf1f | 1 | /* T e m p l a t e F o r S y m b o l T a b l e M a n a g e r */\r |
2 | \r | |
3 | /* define some hash function */\r | |
4 | #ifndef HASH\r | |
5 | #define HASH(p, h) while ( *p != '\0' ) h = (h<<1) + *p++;\r | |
6 | #endif\r | |
7 | \r | |
8 | /* minimum symbol table record */\r | |
9 | typedef struct _sym {\r | |
10 | char *symbol;\r | |
11 | struct _sym *next, *prev, **head, *scope;\r | |
12 | unsigned int hash;\r | |
13 | } Sym, *SymPtr;\r | |
14 | \r | |
15 | #ifdef __USE_PROTOS\r | |
16 | void zzs_init(int, int);\r | |
17 | void zzs_done(void);\r | |
18 | void zzs_add(char *, Sym *);\r | |
19 | Sym *zzs_get(char *);\r | |
20 | void zzs_del(Sym *);\r | |
21 | void zzs_keydel(char *);\r | |
22 | Sym **zzs_scope(Sym **);\r | |
23 | Sym *zzs_rmscope(Sym **);\r | |
24 | void zzs_stat(void);\r | |
25 | Sym *zzs_new(char *);\r | |
26 | Sym *zzs_newadd(char *);\r | |
27 | char *zzs_strdup(char *);\r | |
28 | #else\r | |
29 | void zzs_init();\r | |
30 | void zzs_done();\r | |
31 | void zzs_add();\r | |
32 | Sym *zzs_get();\r | |
33 | void zzs_del();\r | |
34 | void zzs_keydel();\r | |
35 | Sym **zzs_scope();\r | |
36 | Sym *zzs_rmscope();\r | |
37 | void zzs_stat();\r | |
38 | Sym *zzs_new();\r | |
39 | Sym *zzs_newadd();\r | |
40 | char *zzs_strdup();\r | |
41 | #endif\r |