4 #include "symbol_table.h"
7 symbol_new(char const * name
)
9 Symbol
* symbol
= (Symbol
*) malloc (sizeof(Symbol
));
10 symbol
->type
= NONE_TYPE
;
11 value_set(&symbol
->value
, symbol
->type
, NULL
);
15 symbol
->name
= strdup(name
);
24 symbol_insert(Symbol
*table
, char const *name
)
26 Symbol
*symbol
= symbol_lookup(table
, name
);
29 symbol
= symbol_new(name
);
38 symbol_lookup(Symbol
*table
, char const *name
)
43 while (temp
!= NULL
) {
44 if (!strcmp (temp
->name
, name
))
54 symbol_table_destroy(Symbol
**table
)
61 while (first
!= NULL
) {
71 symbol_print(Symbol
*symbol
)
78 printf("Symbol: %x\n", symbol
);
79 printf("name: %s\n", symbol
->name
);
80 printf("type: %d\n", symbol
->type
);
82 value_print(&symbol
->value
, symbol
->type
);
83 printf("\nnext: %x\n\n", symbol
->next
);
87 symbol_table_dump(Symbol
*table
)