summaryrefslogtreecommitdiff
path: root/BaseTools/Source/C/VfrCompile/Pccts/support/sym/template.h
blob: ee6e665e34794085ffa3980db1899d7ad62ca33c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* 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 */

/* define some hash function */
#ifndef HASH
#define HASH(p, h) while ( *p != '\0' ) h = (h<<1) + *p++;
#endif

/* minimum symbol table record */
typedef struct _sym {
			char *symbol;
			struct _sym *next, *prev, **head, *scope;
			unsigned int hash;
		} Sym, *SymPtr;

#ifdef __USE_PROTOS
void zzs_init(int, int);
void zzs_done(void);
void zzs_add(char *, Sym *);
Sym *zzs_get(char *);
void zzs_del(Sym *);
void zzs_keydel(char *);
Sym **zzs_scope(Sym **);
Sym *zzs_rmscope(Sym **);
void zzs_stat(void);
Sym *zzs_new(char *);
Sym *zzs_newadd(char *);
char *zzs_strdup(char *);
#else
void zzs_init();
void zzs_done();
void zzs_add();
Sym *zzs_get();
void zzs_del();
void zzs_keydel();
Sym **zzs_scope();
Sym *zzs_rmscope();
void zzs_stat();
Sym *zzs_new();
Sym *zzs_newadd();
char *zzs_strdup();
#endif