diff options
Diffstat (limited to 'src/compiler/ast-tree.c')
-rw-r--r-- | src/compiler/ast-tree.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c index 097e45b..c9b719c 100644 --- a/src/compiler/ast-tree.c +++ b/src/compiler/ast-tree.c @@ -296,10 +296,10 @@ AstTree *copyAstTree(AstTree *tree) { case AST_TREE_TOKEN_TYPE_U64: return newAstTree(tree->token, NULL); case AST_TREE_TOKEN_VALUE_U64: - return newAstTree(AST_TREE_TOKEN_VALUE_U64, - (void *)(AstTreeU64)tree->metadata); + return newAstTree(tree->token, (void *)(AstTreeU64)tree->metadata); case AST_TREE_TOKEN_VARIABLE: - return newAstTree(AST_TREE_TOKEN_VARIABLE, tree->metadata); + return newAstTree(tree->token, tree->metadata); + case AST_TREE_TOKEN_OPERATOR_ASSIGN: case AST_TREE_TOKEN_FUNCTION: case AST_TREE_TOKEN_KEYWORD_PRINT_U64: case AST_TREE_TOKEN_TYPE_FUNCTION: @@ -869,6 +869,7 @@ bool hasTypeOf(AstTree *value, const AstTree *type) { case AST_TREE_TOKEN_VARIABLE: case AST_TREE_TOKEN_VALUE_U64: case AST_TREE_TOKEN_VARIABLE_DEFINE: + case AST_TREE_TOKEN_OPERATOR_ASSIGN: return false; case AST_TREE_TOKEN_NONE: } @@ -898,6 +899,7 @@ bool hasTypeOf(AstTree *value, const AstTree *type) { case AST_TREE_TOKEN_FUNCTION_CALL: case AST_TREE_TOKEN_VARIABLE: case AST_TREE_TOKEN_VARIABLE_DEFINE: + case AST_TREE_TOKEN_OPERATOR_ASSIGN: return false; case AST_TREE_TOKEN_NONE: } @@ -911,6 +913,7 @@ bool hasTypeOf(AstTree *value, const AstTree *type) { case AST_TREE_TOKEN_KEYWORD_PRINT_U64: case AST_TREE_TOKEN_VALUE_U64: case AST_TREE_TOKEN_VARIABLE_DEFINE: + case AST_TREE_TOKEN_OPERATOR_ASSIGN: return false; case AST_TREE_TOKEN_NONE: } @@ -943,6 +946,7 @@ AstTreeFunction *getFunction(AstTree *value) { case AST_TREE_TOKEN_TYPE_U64: case AST_TREE_TOKEN_VALUE_U64: case AST_TREE_TOKEN_VARIABLE_DEFINE: + case AST_TREE_TOKEN_OPERATOR_ASSIGN: return NULL; case AST_TREE_TOKEN_NONE: } @@ -962,6 +966,7 @@ bool isConst(AstTree *value) { case AST_TREE_TOKEN_KEYWORD_PRINT_U64: case AST_TREE_TOKEN_FUNCTION_CALL: case AST_TREE_TOKEN_VARIABLE_DEFINE: + case AST_TREE_TOKEN_OPERATOR_ASSIGN: return false; case AST_TREE_TOKEN_VARIABLE: { AstTreeVariable *metadata = value->metadata; @@ -1009,6 +1014,7 @@ AstTree *makeTypeOf(AstTree *value) { } case AST_TREE_TOKEN_VARIABLE_DEFINE: case AST_TREE_TOKEN_KEYWORD_PRINT_U64: + case AST_TREE_TOKEN_OPERATOR_ASSIGN: case AST_TREE_TOKEN_NONE: } printLog("Bad token '%d'", value->token); @@ -1021,6 +1027,7 @@ bool typeIsEqual(const AstTree *type0, const AstTree *type1) { case AST_TREE_TOKEN_KEYWORD_PRINT_U64: case AST_TREE_TOKEN_VALUE_U64: case AST_TREE_TOKEN_VARIABLE_DEFINE: + case AST_TREE_TOKEN_OPERATOR_ASSIGN: return false; case AST_TREE_TOKEN_TYPE_TYPE: case AST_TREE_TOKEN_TYPE_VOID: @@ -1157,7 +1164,8 @@ bool setTypesFunctionCall(AstTree *tree) { } AstTreeFunction *function = getFunction(metadata->function); - if (function == NULL || function->arguments.size != metadata->parameters_size) { + if (function == NULL || + function->arguments.size != metadata->parameters_size) { printLog("Arguments doesn't match %ld != %ld", function->arguments.size, metadata->parameters_size); return false; |