From f91fc3bac670a8c775c7ea7b8ba8789dba9559ad Mon Sep 17 00:00:00 2001 From: A404M Date: Wed, 23 Apr 2025 15:39:11 +0330 Subject: prepairing more for importing --- src/runner/runner.c | 31 +++++++++++++++++-------------- src/runner/runner.h | 2 +- 2 files changed, 18 insertions(+), 15 deletions(-) (limited to 'src/runner') diff --git a/src/runner/runner.c b/src/runner/runner.c index 7d1879d..b96f1a8 100644 --- a/src/runner/runner.c +++ b/src/runner/runner.c @@ -40,27 +40,30 @@ void runnerVariableSetValueWihtoutConstCheck(AstTreeVariable *variable, variable->value = value; } -bool runAstTree(AstTreeRoot *root) { +bool runAstTree(AstTreeRoots roots) { static const char MAIN_STR[] = "main"; static const size_t MAIN_STR_SIZE = (sizeof(MAIN_STR) / sizeof(*MAIN_STR)) - sizeof(*MAIN_STR); AstTreeVariable *mainVariable = NULL; - for (size_t i = 0; i < root->variables.size; ++i) { - AstTreeVariable *variable = root->variables.data[i]; - size_t name_size = variable->name_end - variable->name_begin; - if (name_size == MAIN_STR_SIZE && - strncmp(variable->name_begin, MAIN_STR, MAIN_STR_SIZE) == 0 && - variable->type->token == AST_TREE_TOKEN_TYPE_FUNCTION) { - if (mainVariable != NULL) { - printLog("Too many main variables"); - return false; + for (size_t i = 0; i < roots.size; ++i) { + AstTreeRoot *root = roots.data[i]; + for (size_t i = 0; i < root->variables.size; ++i) { + AstTreeVariable *variable = root->variables.data[i]; + size_t name_size = variable->name_end - variable->name_begin; + if (name_size == MAIN_STR_SIZE && + strncmp(variable->name_begin, MAIN_STR, MAIN_STR_SIZE) == 0 && + variable->type->token == AST_TREE_TOKEN_TYPE_FUNCTION) { + if (mainVariable != NULL) { + printLog("Too many main variables"); + return false; + } + mainVariable = variable; + } + if (!variable->isConst) { + runnerVariableSetValueWihtoutConstCheck(variable, variable->initValue); } - mainVariable = variable; - } - if (!variable->isConst) { - runnerVariableSetValueWihtoutConstCheck(variable, variable->initValue); } } diff --git a/src/runner/runner.h b/src/runner/runner.h index eef0d40..12ee241 100644 --- a/src/runner/runner.h +++ b/src/runner/runner.h @@ -7,7 +7,7 @@ void runnerVariableSetValue(AstTreeVariable *variable, AstTree *value); void runnerVariableSetValueWihtoutConstCheck(AstTreeVariable *variable, AstTree *value); -bool runAstTree(AstTreeRoot *root); +bool runAstTree(AstTreeRoots roots); AstTree *runAstTreeFunction(AstTree *tree, AstTreeFunctionCallParam *arguments, size_t arguments_size); -- cgit v1.2.3