X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=symbol_table.c;h=f43b2200214807aab32308fae61f6fe7f5ba1f57;hb=516b4ed5ac675f2d94becf9fa0815ddc65f637ac;hp=b756e8ef714fdd93f69fc683abcaf688394bd986;hpb=628e91d9a3561fdf8a23128db353e597a8be56ed;p=cparser diff --git a/symbol_table.c b/symbol_table.c index b756e8e..f43b220 100644 --- a/symbol_table.c +++ b/symbol_table.c @@ -19,6 +19,7 @@ */ #include +#include "adt/strutil.h" #include "symbol_table_t.h" #include "symbol_t.h" #include "token_t.h" @@ -32,7 +33,7 @@ void init_symbol_table_entry(symbol_t *entry, const char *string) { entry->string = string; entry->ID = T_IDENTIFIER; - entry->pp_ID = TP_IDENTIFIER; + entry->pp_ID = TP_NULL; entry->entity = NULL; entry->pp_definition = NULL; } @@ -48,7 +49,7 @@ void init_symbol_table_entry(symbol_t *entry, const char *string) #define GetKey(value) (value)->string #define InitData(this,value,key) ((void)((value) = (ValueType)obstack_alloc(&symbol_obstack, sizeof(symbol_t)), init_symbol_table_entry((value), key))) #define Hash(this, key) hash_string(key) -#define KeysEqual(this,key1,key2) (strcmp(key1, key2) == 0) +#define KeysEqual(this,key1,key2) (streq(key1, key2)) #define SetRangeEmpty(ptr,size) memset(ptr, 0, (size) * sizeof(symbol_table_hash_entry_t)) #define SCALAR_RETURN @@ -67,6 +68,8 @@ void init_symbol_table_entry(symbol_t *entry, const char *string) static symbol_table_t symbol_table; +symbol_t *sym_anonymous; + symbol_t *symbol_table_insert(const char *string) { return _symbol_table_insert(&symbol_table, string); @@ -76,6 +79,7 @@ void init_symbol_table(void) { obstack_init(&symbol_obstack); _symbol_table_init(&symbol_table); + sym_anonymous = symbol_table_insert(""); } void exit_symbol_table(void)