From cf66b5e2db4424cf1947f47b95d7a02344eb315c Mon Sep 17 00:00:00 2001 From: A404M Date: Sun, 9 Feb 2025 07:53:44 +0330 Subject: fixed running functions twoice --- src/runner/runner.h | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src/runner/runner.h') diff --git a/src/runner/runner.h b/src/runner/runner.h index 71c720b..ac36e84 100644 --- a/src/runner/runner.h +++ b/src/runner/runner.h @@ -3,10 +3,29 @@ #include "compiler/ast-tree.h" #include +typedef struct RunnerVariable { + AstTreeVariable *variable; + AstTree *value; +} RunnerVariable; + +typedef struct RunnerVariables { + RunnerVariable **data; + size_t size; +} RunnerVariables; + +typedef struct RunnerVariablePages { + RunnerVariables **data; + size_t size; +} RunnerVariablePages; + +void runnerVariablePush(RunnerVariables *variables,AstTreeVariable *variable); +void runnerVariableSetValue(RunnerVariablePages *pages,AstTreeVariable *variable,AstTree *value); +AstTree* runnerVariableGetValue(RunnerVariablePages *pages,AstTreeVariable *variable); + bool runAstTree(AstTreeRoot *root); -AstTree *runAstTreeFunction(AstTreeFunction *function, AstTree **arguments, - size_t arguments_size); +AstTree *runAstTreeFunction(AstTree *tree, AstTree **arguments, + size_t arguments_size,RunnerVariablePages *pages); -AstTree *calcAstTreeValue(AstTree *tree); +AstTree *calcAstTreeValue(AstTree *tree,RunnerVariablePages *pages); AstTree *deepCopyAstTree(AstTree *tree); -- cgit v1.2.3