Updated from files in llvm/autoconf. This was done immediently following
[oota-llvm.git] / utils / Burg / symtab.c
1 char rcsid_symtab[] = "$Id$";
2
3 #include <stdio.h>
4 #include <string.h>
5 #include "b.h"
6 #include "fe.h"
7
8 static List symtab;
9
10 Symbol
11 newSymbol(name) char *name;
12 {
13         Symbol s;
14
15         s = (Symbol) zalloc(sizeof(struct symbol));
16         assert(s);
17         s->name = name;
18         return s;
19 }
20
21 Symbol
22 enter(name, new) char *name; int *new;
23 {
24         List l;
25         Symbol s;
26
27         *new = 0;
28         for (l = symtab; l; l = l->next) {
29                 s = (Symbol) l->x;
30                 if (!strcmp(name, s->name)) {
31                         return s;
32                 }
33         }
34         *new = 1;
35         s = newSymbol(name);
36         symtab = newList(s, symtab);
37         return s;
38 }