diff options
Diffstat (limited to 'test')
-rwxr-xr-x | test/compile_main.sh | 8 | ||||
-rw-r--r-- | test/main.c | 19 | ||||
-rw-r--r-- | test/vec.h | 49 |
3 files changed, 0 insertions, 76 deletions
diff --git a/test/compile_main.sh b/test/compile_main.sh deleted file mode 100755 index 5467005..0000000 --- a/test/compile_main.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -set -eu - -mkdir -p build/test -gcc -E test/main.c -o build/test/main.c -./ngc build/test/main.c > build/test/main_ngc.c -gcc build/test/main_ngc.c -o build/test/main diff --git a/test/main.c b/test/main.c deleted file mode 100644 index 489618b..0000000 --- a/test/main.c +++ /dev/null @@ -1,19 +0,0 @@ -#include <stdio.h> -#include "vec.h" - -typedef ints = vec[int](); - -int main() -{ - struct ints a = intscreate(); - for (size_t i = 0; i < 10; ++i) - intsappend(&a, i); - - int sum = 0; - for (size_t i = 0; i < 10; ++i) { - sum += *intsat(&a, i); - } - - printf("%i\n", sum); - intsdestroy(&a); -} diff --git a/test/vec.h b/test/vec.h deleted file mode 100644 index 810e663..0000000 --- a/test/vec.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef VEC_H -#define VEC_H - -#include <stddef.h> -#include <assert.h> -#include <stdlib.h> - -typedef any {}; - -typedef vec[any type]() { - struct <> { - size_t n; - size_t s; - type *buf; - }; - - static inline struct <> <>create() - { - return (struct <>){ - .n = 0, - .s = 0, - .buf = NULL - }; - } - - static inline void <>append(struct <> *v, type n) - { - v->n++; - if (v->n > v->s) { - v->s = v->s == 0 ? 1 : 2 * v->s; - v->buf = realloc(v->buf, v->s * sizeof(type)); - } - - v->buf[v->n - 1] = n; - } - - static inline type *<>at(struct <> *v, size_t i) - { - assert(i < v->n); - return &v->buf[i]; - } - - static inline void <>destroy(struct <> *v) - { - free(v->buf); - } -} - -#endif /* VEC_H */ |