began support for DAT assembler directive
[dcpu16] / common.h
diff --git a/common.h b/common.h
new file mode 100644 (file)
index 0000000..80ed333
--- /dev/null
+++ b/common.h
@@ -0,0 +1,24 @@
+#ifndef COMMON_H_QPRCB1BH
+#define COMMON_H_QPRCB1BH
+
+#include <stdlib.h>
+
+struct dynamic_array {
+    size_t entry_size;
+    size_t grow_size;
+    size_t allocated;
+    size_t entries;
+    void *a;
+};
+
+#define DYNARRAY_ITEM(da, index) ( (char *)(da).a + ( (da).entry_size * index ) )
+
+int dynarray_init(struct dynamic_array *da, size_t entry_size, size_t grow_size);
+struct dynamic_array *dynarray_new(size_t entry_size, size_t grow_size);
+void *dynarray_add(struct dynamic_array *da, void *item);
+
+int str_to_word(char *s);
+
+char *strqtok_r(char *str, const char *sep, int esc, const char *quote, char **lastq, char **lasts);
+
+#endif /* COMMON_H_QPRCB1BH */