X-Git-Url: https://jxself.org/git/?p=zilutils.git;a=blobdiff_plain;f=zilasm%2Fsymtable.h;h=8903d8de0e1b6ff69e8243ec091bd071323fb01a;hp=bbb70843494120d40561216492026fb7a889956a;hb=82b0f84ab797141758929d16894d42e12ef79af7;hpb=37d32bd49e745a5c1686b6495f60172b24222361 diff --git a/zilasm/symtable.h b/zilasm/symtable.h index bbb7084..8903d8d 100644 --- a/zilasm/symtable.h +++ b/zilasm/symtable.h @@ -1,7 +1,7 @@ /* * symtable.h -- part of ZilUtils/ZilAsm * - * Copyright (C) 2016 Jason Self + * Copyright (C) 2016, 2019 Jason Self * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as @@ -22,19 +22,31 @@ #ifndef ZILASM_SYMTABLE #define ZILASM_SYMTABLE 1 -typedef struct { - unsigned elems_count; - unsigned name_size; - unsigned elem_size; - char contents[1]; + +typedef struct +{ + char *name; + void *value; + +} SymtableElem; + +typedef struct +{ + unsigned elems_count; + unsigned name_size; + unsigned elem_size; + //char* contents; + SymtableElem *contents; // table of elements } Symtable; -Symtable* symtable_create (unsigned elems_count, unsigned name_size, unsigned elem_size); -void* symtable_lookup (const Symtable*, const char *name); -void* symtable_lookup2(const Symtable*, const char *name, unsigned namelen); -void* symtable_add (Symtable*, const char *name, void *contents); -void* symtable_add2 (Symtable*, const char *name, unsigned namelen, void *contents); -void symtable_sort (Symtable*); -void symtable_destroy(Symtable*); +Symtable *symtable_create (unsigned elems_count, unsigned name_size, + unsigned elem_size); +void *symtable_lookup (const Symtable *, const char *name); +void *symtable_lookup2 (const Symtable *, const char *name, unsigned namelen); +void *symtable_add (Symtable *, const char *name, void *contents); +void *symtable_add2 (Symtable *, const char *name, unsigned namelen, + void *contents); +void symtable_sort (Symtable *); +void symtable_destroy (Symtable *); -#endif /* ifndef ZILASM_SYMTABLE */ +#endif /* ifndef ZILASM_SYMTABLE */