From 390fc1981dcb60bc8d470aad5217c017d27b4e74 Mon Sep 17 00:00:00 2001 From: Kyler Date: Fri, 28 Nov 2025 20:34:52 -0700 Subject: [PATCH] Created Interpreter Interface --- SLS_C/include/sls/interpreter.h | 4 ++++ SLS_C/src/interpreter.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/SLS_C/include/sls/interpreter.h b/SLS_C/include/sls/interpreter.h index 1d3b5a0..782f860 100644 --- a/SLS_C/include/sls/interpreter.h +++ b/SLS_C/include/sls/interpreter.h @@ -57,4 +57,8 @@ typedef struct { HashTable functions; } InterpreterState; +InterpreterState *interpreter_create(); +void execute(InterpreterState *interpreter, LexerTokenResult *token); +void interpreter_delete(InterpreterState *interpreter); + #endif // SLS_INTERPRETER_H diff --git a/SLS_C/src/interpreter.c b/SLS_C/src/interpreter.c index 2940e8a..5d66282 100644 --- a/SLS_C/src/interpreter.c +++ b/SLS_C/src/interpreter.c @@ -3,7 +3,9 @@ // Interpreter // November 2025 +#include "sls/string.h" #include "sls/interpreter.h" +#include "sls/lexer.h" const char *STACK_TYPES_NAMES[] = { "Identifier", @@ -23,3 +25,11 @@ const char *STACK_TYPES_NAMES[] = { }; const size_t STACK_TYPE_COUNT = sizeof(STACK_TYPES_NAMES) / sizeof(*STACK_TYPES_NAMES); + +static Boolean hash_table_put_funcs(HashTable *ht, SlsStr key, TokenString *item) { + return hash_table_put(ht, key, (void *)item); +} + +static TokenString* hash_table_get_funcs(const HashTable *ht, SlsStr key, TokenString *default_item) { + return (TokenString*)hash_table_get(ht, key, (void *)default_item); +}