From 721384d400cdeaa8601f7a2185c6fa604e9b5a90 Mon Sep 17 00:00:00 2001 From: Kyler Date: Sun, 30 Nov 2025 21:01:10 -0700 Subject: [PATCH] implemented eval --- SLS_C/src/builtin.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/SLS_C/src/builtin.c b/SLS_C/src/builtin.c index 24f1b1c..0f24b9c 100644 --- a/SLS_C/src/builtin.c +++ b/SLS_C/src/builtin.c @@ -1506,8 +1506,20 @@ Boolean builtin_dup(InterpreterState *interpreter_state) { } Boolean builtin_eval(InterpreterState *interpreter_state) { - (void)interpreter_state; - return FALSE; + if (interpreter_state->stack == NULL) return FALSE; + StackItem *code_target = interpreter_state->stack; + + interpreter_state->stack = code_target->next; + code_target->next = NULL; + + Boolean return_value = FALSE; + if (code_target->type == STACK_TOKEN_STRING || code_target->type == STACK_CODE_BLOCK) + return_value = execute_token_string(interpreter_state, code_target->token_string); + else if (code_target->type == STACK_IDENTIFIER) + return_value = execute_func(interpreter_state, code_target->identifier.name); + + clean_stack(code_target); + return return_value; } Boolean builtin_floor(InterpreterState *interpreter_state) {