diff options
author | thing1 <thing1@seacrossedlovers.xyz> | 2025-03-30 19:22:31 +0000 |
---|---|---|
committer | thing1 <thing1@seacrossedlovers.xyz> | 2025-03-30 19:22:31 +0000 |
commit | ff0eee931d3918eedf1c125c58328e54b47a4994 (patch) | |
tree | a61c94e89ea76ef68c55a9fe387be0a1b56e8e3e /types.c |
init
Diffstat (limited to 'types.c')
-rw-r--r-- | types.c | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +#include <stdbool.h> +#include <stdlib.h> + +#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; +} |