Updating to reflect the latest work
[zilutils.git] / zilasm / symtable.h
index bbb70843494120d40561216492026fb7a889956a..8903d8de0e1b6ff69e8243ec091bd071323fb01a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * symtable.h -- part of ZilUtils/ZilAsm
  *
- * Copyright (C) 2016 Jason Self <j@jxself.org>
+ * Copyright (C) 2016, 2019 Jason Self <j@jxself.org>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as
 #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 */