From ff0eee931d3918eedf1c125c58328e54b47a4994 Mon Sep 17 00:00:00 2001 From: thing1 Date: Sun, 30 Mar 2025 19:22:31 +0000 Subject: init --- types.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 types.c (limited to 'types.c') diff --git a/types.c b/types.c new file mode 100644 index 0000000..4ef1935 --- /dev/null +++ b/types.c @@ -0,0 +1,35 @@ +#include +#include + +#include "types.h" + +ast *newast(char *fname) { + ast *a = malloc(sizeof(ast)); + a->fname = fname; + return a; +} + +values *newastval(ast *a) { + values *v = malloc(sizeof(values)); + v->ts[v->argc] = FUN; + v->as[0] = a; + v->argc = 1; +} + +values *newintval(int i) { + values *v = malloc(sizeof(values)); + v->ts[v->argc] = INT; + v->is[0] = i; + v->argc = 1; +} + +values *addval(values *vs, values *v) { + if (v->ts[0] == INT) + vs->is[vs->argc] = v->is[0]; + else + vs->as[vs->argc] = v->as[0]; + + vs->ts[vs->argc] = v->ts[0]; + vs->argc++; + return vs; +} -- cgit v1.2.3