From 5e95fdfa4b7e6960d83480b8e4062e7484037af7 Mon Sep 17 00:00:00 2001 From: A404M Date: Wed, 9 Apr 2025 22:54:40 +0330 Subject: add builtins (cast) --- src/compiler/ast-tree.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/compiler/ast-tree.h') diff --git a/src/compiler/ast-tree.h b/src/compiler/ast-tree.h index 5170178..6d11e16 100644 --- a/src/compiler/ast-tree.h +++ b/src/compiler/ast-tree.h @@ -7,6 +7,7 @@ typedef enum AstTreeToken { AST_TREE_TOKEN_FUNCTION, + AST_TREE_TOKEN_BUILTIN, AST_TREE_TOKEN_KEYWORD_PUTC, AST_TREE_TOKEN_KEYWORD_RETURN, @@ -226,6 +227,17 @@ typedef struct AstTreeAccess { } member; } AstTreeAccess; +typedef enum AstTreeBuiltinToken { + AST_TREE_BUILTIN_TOKEN_CAST, + AST_TREE_BUILTIN_TOKEN__SIZE__, +} AstTreeBuiltinToken; + +extern const char *AST_TREE_BUILTIN_TOKEN_STRINGS[]; + +typedef struct AstTreeBuiltin { + AstTreeBuiltinToken token; +} AstTreeBuiltin; + void astTreePrint(const AstTree *tree, int indent); void astTreeVariablePrint(const AstTreeVariable *variable, int indent); void astTreeRootPrint(const AstTreeRoot *root); @@ -285,6 +297,7 @@ AstTree *astTreeParseParenthesis(ParserNode *parserNode, AstTreeHelper *helper); AstTree *astTreeParseStruct(ParserNode *parserNode, AstTreeHelper *helper); AstTree *astTreeParseAccessOperator(ParserNode *parserNode, AstTreeHelper *helper, AstTreeToken token); +AstTree *astTreeParseBuiltin(ParserNode *parserNode, AstTreeHelper *helper); bool isFunction(AstTree *value); bool isConst(AstTree *tree); @@ -305,7 +318,7 @@ bool isCircularDependenciesVariable(AstTreeHelper *helper, bool setAllTypesRoot(AstTreeRoot *root, AstTreeHelper *helper); bool setAllTypes(AstTree *tree, AstTreeSetTypesHelper helper, - AstTreeFunction *function); + AstTreeFunction *function, AstTreeFunctionCall *functionCall); bool setTypesValueBool(AstTree *tree, AstTreeSetTypesHelper helper); bool setTypesValueInt(AstTree *tree, AstTreeSetTypesHelper helper); bool setTypesValueFloat(AstTree *tree, AstTreeSetTypesHelper helper); @@ -343,6 +356,8 @@ bool setTypesScope(AstTree *tree, AstTreeSetTypesHelper helper, bool setTypesComptime(AstTree *tree, AstTreeSetTypesHelper helper); bool setTypesStruct(AstTree *tree, AstTreeSetTypesHelper helper); bool setTypesOperatorAccess(AstTree *tree, AstTreeSetTypesHelper helper); +bool setTypesBuiltin(AstTree *tree, AstTreeSetTypesHelper helper, + AstTreeFunctionCall *functionCall); bool setTypesAstVariable(AstTreeVariable *variable, AstTreeSetTypesHelper helper); -- cgit v1.2.3