diff options
author | thing1 <thing1@seacrossedlovers.xyz> | 2024-07-09 15:40:55 +0100 |
---|---|---|
committer | thing1 <thing1@seacrossedlovers.xyz> | 2024-07-09 15:40:55 +0100 |
commit | b6cf209e65721c9b749124e6c5866b9359fc6583 (patch) | |
tree | 6426e7481f864b3a1d72c0bc21e4c89df6e9463e /comp/lucas-standen-NEA/code/execution/builtin.c | |
parent | 3f23b452f8ab504a3337f88ddc714c3a660d2648 (diff) |
made alot work with vars
Diffstat (limited to 'comp/lucas-standen-NEA/code/execution/builtin.c')
-rw-r--r-- | comp/lucas-standen-NEA/code/execution/builtin.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/comp/lucas-standen-NEA/code/execution/builtin.c b/comp/lucas-standen-NEA/code/execution/builtin.c index 12441cd..a2b67fb 100644 --- a/comp/lucas-standen-NEA/code/execution/builtin.c +++ b/comp/lucas-standen-NEA/code/execution/builtin.c @@ -1,6 +1,8 @@ #include <stdlib.h> #include <stdio.h> -#include "../global/types.h" + +#include "vars.h" + #include "../global/util.h" #define MAXARGS 8 @@ -41,10 +43,18 @@ void *doCall(ast_node *node){ for (int i = 0; i < node->literalArgs[0]->arr->len; i++) fputc(node->literalArgs[0]->arr->arr[i].ch->data, stdout); break; + + case LET: + newVar(node->literalArgs[0]->vdef, node->literalArgs[1]); + break; case EXIT: - int returnValue = (int)node->literalArgs[0]->i64->data; - exit(returnValue); + exit((int)node->literalArgs[0]->i64->data); + break; + + default: + fprintf(stderr, "command not implemented"); + exit(1); break; } } |