diff options
Diffstat (limited to 'sys/cmd/cc/sym.c')
-rw-r--r-- | sys/cmd/cc/sym.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sys/cmd/cc/sym.c b/sys/cmd/cc/sym.c new file mode 100644 index 0000000..ef40bce --- /dev/null +++ b/sys/cmd/cc/sym.c @@ -0,0 +1,32 @@ +#include "cc.h" + +#include <libn/macro/map.h> + +#define PTR_HASH(p) (uintptr)(p) +#define PTR_EQUAL(p1, p2) ((uintptr)(p1) == (uintptr)(p2)) + +#if 0 +struct SymTab +{ + MAP_STRUCT_BODY(string, Sym*); +}; + +Sym* +getsym(SymTab *tab, string key) +{ + MAP_GET(tab, key, PTR_HASH, PTR_EQUAL, nil); +} + +static +int +moresymtab(SymTab *tab, int n) +{ + MAP_GROW(tab, string, Sym*, n, PTR_HASH); +} + +int +putsym(SymTab *tab, Sym *sym, error *err) +{ + MAP_PUT(tab, sym->name, sym, PTR_HASH, PTR_EQUAL, moresymtab, err); +} +#endif |