From fa256eecfaf035cd6c46335452357856dc0bd9e9 Mon Sep 17 00:00:00 2001 From: rsc Date: Wed, 21 Apr 2004 02:43:50 +0000 Subject: need this --- src/cmd/acidtypes/sym.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/cmd/acidtypes/sym.c (limited to 'src/cmd/acidtypes') diff --git a/src/cmd/acidtypes/sym.c b/src/cmd/acidtypes/sym.c new file mode 100644 index 00000000..7250ed44 --- /dev/null +++ b/src/cmd/acidtypes/sym.c @@ -0,0 +1,50 @@ +#include +#include +#include +#include +#include +#include +#include +#include "dat.h" + +Sym *symbols; +Sym **lsym; + +void +addsymx(char *fn, char *name, Type *type) +{ + Sym *s; + + s = emalloc(sizeof *s); + s->fn = fn; + s->name = name; + s->type = type; + if(lsym == nil) + lsym = &symbols; + *lsym = s; + lsym = &s->next; +} + +void +dumpsyms(Biobuf *b) +{ + Sym *s; + Type *t; + + for(s=symbols; s; s=s->next){ + t = s->type; + t = defer(t); + if(t->ty == Pointer){ + t = t->sub; + if(t && t->equiv) + t = t->equiv; + } + if(t == nil || t->ty != Aggr) + continue; + Bprint(b, "complex %s %s%s%s;\n", nameof(t, 1), + s->fn ? fixname(s->fn) : "", s->fn ? ":" : "", fixname(s->name)); + } + + symbols = nil; + lsym = &symbols; +} -- cgit v1.2.3