aboutsummaryrefslogtreecommitdiff
path: root/src/interpreter.c
diff options
context:
space:
mode:
authorFlavian Kaufmann <flavian@flaviankaufmann.ch>2025-05-26 09:33:05 +0200
committerFlavian Kaufmann <flavian@flaviankaufmann.ch>2025-05-26 09:33:05 +0200
commit041fcfd0b17e7a6f654fc155108847aac8293144 (patch)
tree2e2330f73c2911f7f7c03cd38c8370a68a6dc1d0 /src/interpreter.c
parent49e4ca2fa0c6de8f50d3f739ce46e8d4c7b75da8 (diff)
downloadimp-041fcfd0b17e7a6f654fc155108847aac8293144.tar.gz
imp-041fcfd0b17e7a6f654fc155108847aac8293144.zip
[feature] only allow procedure declarations on top level
Diffstat (limited to 'src/interpreter.c')
-rw-r--r--src/interpreter.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/interpreter.c b/src/interpreter.c
index b04a293..6efebc3 100644
--- a/src/interpreter.c
+++ b/src/interpreter.c
@@ -69,9 +69,9 @@ static int interpret_proccall(IMP_InterpreterContext *context, const IMP_ASTNode
IMP_ASTNodeList *caller_val_args = node->data.proc_call.val_args;
IMP_ASTNodeList *callee_val_args = procdecl->data.proc_decl.val_args;
while (caller_val_args && callee_val_args) {
- const char *caller_arg_name = caller_val_args->node->data.variable.name;
+ int val = eval_aexpr(context, caller_val_args->node);
const char *callee_arg_name = callee_val_args->node->data.variable.name;
- imp_interpreter_context_var_set(proc_context, callee_arg_name, imp_interpreter_context_var_get(context, caller_arg_name));
+ imp_interpreter_context_var_set(proc_context, callee_arg_name, val);
caller_val_args = caller_val_args->next;
callee_val_args = callee_val_args->next;
}