diff options
Diffstat (limited to 'src/translators/btparse/sym.h')
-rw-r--r-- | src/translators/btparse/sym.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/translators/btparse/sym.h b/src/translators/btparse/sym.h new file mode 100644 index 0000000..78983d1 --- /dev/null +++ b/src/translators/btparse/sym.h @@ -0,0 +1,33 @@ +#include <ctype.h> + +/* + * Declarations for symbol table in sym.c + */ + +/* define some hash function */ +#ifndef HASH_FUN +#define HASH_FUN(p, h) while ( *p != '\0' ) h = (h<<1) + tolower (*p++); +#endif + +/* minimum symbol table record */ +typedef struct _sym +{ + char *symbol; /* the macro name */ + char *text; /* its expansion */ + struct _sym *next, *prev, **head, *scope; + unsigned int hash; +} Sym, *SymPtr; + +void zzs_init(int, int); +void zzs_free(void); +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 *); |