summaryrefslogtreecommitdiff
path: root/src/compiler/ast-tree.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/ast-tree.h')
-rw-r--r--src/compiler/ast-tree.h19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/compiler/ast-tree.h b/src/compiler/ast-tree.h
index 6d11e16..0ae48f5 100644
--- a/src/compiler/ast-tree.h
+++ b/src/compiler/ast-tree.h
@@ -200,13 +200,12 @@ typedef struct AstTreeWhile {
typedef struct AstTreeHelper {
AstTreeVariables **variables;
size_t variables_size;
- AstTreeVariable *variable;
- AstTreeVariables *globalDeps;
} AstTreeHelper;
typedef struct AstTreeSetTypesHelper {
AstTree *lookingType;
AstTreeHelper *treeHelper;
+ AstTreeVariables dependencies;
} AstTreeSetTypesHelper;
typedef struct AstTreeStruct {
@@ -264,8 +263,8 @@ AstTreeRoot *makeAstTree(ParserNode *parsedRoot);
bool pushVariable(AstTreeHelper *helper, AstTreeVariables *variables,
AstTreeVariable *variable);
-AstTreeVariable *getVariable(AstTreeHelper *helper, char *name_begin,
- char *name_end);
+AstTreeVariables *getAllVariables(AstTreeHelper *helper, char *name_begin,
+ char *name_end);
AstTree *astTreeParse(ParserNode *parserNode, AstTreeHelper *helper);
AstTree *astTreeParseFunction(ParserNode *parserNode, AstTreeHelper *helper);
@@ -307,15 +306,6 @@ bool typeIsEqual(AstTree *type0, AstTree *type1);
bool typeIsEqualBack(const AstTree *type0, const AstTree *type1);
AstTree *getValue(AstTree *tree);
-bool isCircularDependencies(AstTreeHelper *helper, AstTreeVariable *variable);
-bool isCircularDependenciesBack(AstTreeHelper *helper,
- AstTreeVariable *variable, AstTree *tree,
- AstTreeVariables *checkedVariables);
-bool isCircularDependenciesVariable(AstTreeHelper *helper,
- AstTreeVariable *toBeFound,
- AstTreeVariable *currentVariable,
- AstTreeVariables *checkedVariables);
-
bool setAllTypesRoot(AstTreeRoot *root, AstTreeHelper *helper);
bool setAllTypes(AstTree *tree, AstTreeSetTypesHelper helper,
AstTreeFunction *function, AstTreeFunctionCall *functionCall);
@@ -331,7 +321,8 @@ bool setTypesReturn(AstTree *tree, AstTreeSetTypesHelper helper,
AstTreeFunction *function);
bool setTypesTypeFunction(AstTree *tree, AstTreeSetTypesHelper helper);
bool setTypesFunctionCall(AstTree *tree, AstTreeSetTypesHelper helper);
-bool setTypesVariable(AstTree *tree, AstTreeSetTypesHelper helper);
+bool setTypesVariable(AstTree *tree, AstTreeSetTypesHelper helper,
+ AstTreeFunctionCall *functionCall);
bool setTypesOperatorAssign(AstTree *tree, AstTreeSetTypesHelper helper);
bool setTypesOperatorInfix(AstTree *tree, AstTreeSetTypesHelper helper);
bool setTypesOperatorInfixWithRet(AstTree *tree, AstTree *retType,