| 1234567891011121314151617181920212223242526272829303132 |
- #ifndef _PLY_SYM_H
- #define _PLY_SYM_H
- #include <stdint.h>
- #include "type.h"
- typedef struct symtab symtab_t;
- typedef struct sym {
- symtab_t *st;
- const char *name;
- type_t *type;
- uint16_t reg;
- } 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 */
|