#ifndef _PLY_SYM_H #define _PLY_SYM_H #include "type.h" typedef struct symtab symtab_t; typedef struct sym { symtab_t *st; const char *name; type_t *type; } sym_t; struct symtab { sym_t **sym; size_t len; }; sym_t *sym_get(symtab_t *st, const char *name); int sym_add(symtab_t *st, const char *name, type_t *type, sym_t **new); void sym_dump(sym_t *sym, FILE *fp); void symtab_dump(symtab_t *st, FILE *fp); //#define symtab_foreach(_st, _sym) for((_sym) = (_st)->sym; (_sym) < (_st)->sym[(_st)->len]; (_sym)++) #endif /* _PLY_SYM_H */