X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=zilasm%2Fsymtable.h;h=8903d8de0e1b6ff69e8243ec091bd071323fb01a;hb=82b0f84ab797141758929d16894d42e12ef79af7;hp=aa72b0ed4296657c84ab6180eec1212314e22e52;hpb=fd453701e368225dd15e9df2e5b1752aebe454e8;p=zilutils.git diff --git a/zilasm/symtable.h b/zilasm/symtable.h index aa72b0e..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 @@ -15,24 +15,38 @@ * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see + * + * SPDX-License-Identifier: AGPL-3.0-or-later */ #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 */