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