summaryrefslogtreecommitdiff
path: root/dseg.h
diff options
context:
space:
mode:
Diffstat (limited to 'dseg.h')
-rw-r--r--dseg.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/dseg.h b/dseg.h
new file mode 100644
index 0000000..4decf2f
--- /dev/null
+++ b/dseg.h
@@ -0,0 +1,28 @@
+#ifndef DSEG_H
+#define DSEG_H
+
+#include "ccc.h"
+#include <stdio.h>
+
+struct dseg_entry {
+ enum {
+ ENT_STRING,
+ } type;
+ union {
+ const char* string;
+ } key;
+ char* symbol;
+};
+
+struct dseg {
+ struct dseg_entry** entries;
+ integral_t sz;
+ integral_t cap;
+};
+
+void dseg_init(struct dseg* dseg);
+void dseg_destroy(struct dseg* dseg);
+const char* dseg_put(struct dseg* dseg, struct dseg_entry entry);
+void emit_dseg(FILE* outfile, const struct dseg* dseg);
+
+#endif