From 5adca3ef1277b9e7f8f4d77e1b2ecce9ad78d76b Mon Sep 17 00:00:00 2001 From: A404M Date: Tue, 28 Jan 2025 03:40:39 +0330 Subject: clean syntax to not allowing variable definition else where --- src/compiler/ast-tree.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/compiler/ast-tree.h') diff --git a/src/compiler/ast-tree.h b/src/compiler/ast-tree.h index 8dba559..7f3e3dc 100644 --- a/src/compiler/ast-tree.h +++ b/src/compiler/ast-tree.h @@ -9,6 +9,7 @@ typedef enum AstTreeToken { AST_TREE_TOKEN_KEYWORD_PRINT_U64, + AST_TREE_TOKEN_TYPE_TYPE, AST_TREE_TOKEN_TYPE_FUNCTION, AST_TREE_TOKEN_TYPE_VOID, AST_TREE_TOKEN_TYPE_U64, @@ -17,8 +18,6 @@ typedef enum AstTreeToken { AST_TREE_TOKEN_VARIABLE, AST_TREE_TOKEN_VALUE_U64, - AST_TREE_TOKEN_VARIABLE_DEFINE, - AST_TREE_TOKEN_NONE, } AstTreeToken; @@ -83,6 +82,7 @@ void astTreeDelete(AstTree *tree); void astTreeRootDelete(AstTreeRoot *root); AstTree *newAstTree(AstTreeToken token, void *metadata); +AstTree *copyAstTree(AstTree *tree); AstTreeRoot *makeAstTree(ParserNode *parsedRoot); @@ -114,9 +114,10 @@ AstTree *astTreeParsePrintU64(ParserNode *parserNode, AstTreeVariables **variables, size_t variables_size); -AstTree *astTreeParseConstant(ParserNode *parserNode, +bool astTreeParseConstant(ParserNode *parserNode, AstTreeVariables **variables, size_t variables_size); bool hasTypeOf(AstTree *value, AstTree *type); +AstTree *makeTypeOf(AstTree *value); bool typeIsEqual(AstTree *type0, AstTree *type1); -- cgit v1.2.3