#ifndef FLUP_INTERPRETER_H #define FLUP_INTERPRETER_H #include "../submodules/utilitiec/src/dynamicarray/dynamicarray.h" #include "../submodules/utilitiec/src/Scratchpad/Scratchpad.h" #include "tokenizer.h" #include "callframe.h" #include "value.h" #include typedef struct Interpreter_s Interpreter; typedef int (*BuiltinFunction)(CallFrame *); struct Interpreter_s { const char** builtin_names; const BuiltinFunction* builtin_functions; DynamicArray* tokens; DynamicArray call_frames; // stores CallFrame }; int Interpreter_Create(Interpreter* self, DynamicArray* tokens); int Interpreter_Interpret(Interpreter* self); void Interpreter_Destroy(Interpreter* self); #endif //FLUP_INTERPRETER_H