diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-05-29 21:44:10 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-05-29 21:44:10 +0330 |
commit | 9c7d2cad8ef9bcc019af3924fb72dd896c8c77e7 (patch) | |
tree | 68374525dc338e74241f39174903abb730951940 /src/compiler/parser.c | |
parent | 80d92c10bf4a646861b27c634c765b7f7ce63c69 (diff) |
add any type
Diffstat (limited to 'src/compiler/parser.c')
-rw-r--r-- | src/compiler/parser.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/compiler/parser.c b/src/compiler/parser.c index e90d5fb..65fd3c9 100644 --- a/src/compiler/parser.c +++ b/src/compiler/parser.c @@ -48,6 +48,7 @@ const char *PARSER_TOKEN_STRINGS[] = { "PARSER_TOKEN_VALUE_STRING", "PARSER_TOKEN_TYPE_TYPE", + "PARSER_TOKEN_TYPE_ANY_TYPE", "PARSER_TOKEN_TYPE_FUNCTION", "PARSER_TOKEN_TYPE_VOID", "PARSER_TOKEN_TYPE_BOOL", @@ -298,6 +299,7 @@ void parserNodePrint(const ParserNode *node, int indent) { case PARSER_TOKEN_BUILTIN_SHIFT_LEFT: case PARSER_TOKEN_BUILTIN_SHIFT_RIGHT: case PARSER_TOKEN_TYPE_TYPE: + case PARSER_TOKEN_TYPE_ANY_TYPE: case PARSER_TOKEN_TYPE_VOID: case PARSER_TOKEN_TYPE_BOOL: case PARSER_TOKEN_TYPE_I8: @@ -620,6 +622,7 @@ void parserNodeDelete(ParserNode *node) { case PARSER_TOKEN_BUILTIN_SHIFT_LEFT: case PARSER_TOKEN_BUILTIN_SHIFT_RIGHT: case PARSER_TOKEN_TYPE_TYPE: + case PARSER_TOKEN_TYPE_ANY_TYPE: case PARSER_TOKEN_TYPE_VOID: case PARSER_TOKEN_TYPE_BOOL: case PARSER_TOKEN_TYPE_I8: @@ -971,6 +974,8 @@ ParserNode *parseNode(LexerNode *node, LexerNode *begin, LexerNode *end, return parserNoMetadata(node, parent, PARSER_TOKEN_BUILTIN_SHIFT_RIGHT); case LEXER_TOKEN_KEYWORD_TYPE: return parserNoMetadata(node, parent, PARSER_TOKEN_TYPE_TYPE); + case LEXER_TOKEN_KEYWORD_ANY_TYPE: + return parserNoMetadata(node, parent, PARSER_TOKEN_TYPE_ANY_TYPE); case LEXER_TOKEN_KEYWORD_VOID: return parserNoMetadata(node, parent, PARSER_TOKEN_TYPE_VOID); case LEXER_TOKEN_KEYWORD_I8: @@ -1810,6 +1815,7 @@ ParserNode *parserFunction(LexerNode *node, LexerNode *begin, LexerNode *end, case PARSER_TOKEN_VALUE_CHAR: case PARSER_TOKEN_VALUE_STRING: case PARSER_TOKEN_TYPE_TYPE: + case PARSER_TOKEN_TYPE_ANY_TYPE: case PARSER_TOKEN_TYPE_FUNCTION: case PARSER_TOKEN_TYPE_VOID: case PARSER_TOKEN_TYPE_BOOL: @@ -2396,6 +2402,7 @@ bool isExpression(ParserNode *node) { case PARSER_TOKEN_KEYWORD_WHILE: case PARSER_TOKEN_KEYWORD_COMPTIME: case PARSER_TOKEN_TYPE_TYPE: + case PARSER_TOKEN_TYPE_ANY_TYPE: case PARSER_TOKEN_TYPE_FUNCTION: case PARSER_TOKEN_TYPE_VOID: case PARSER_TOKEN_TYPE_BOOL: @@ -2516,6 +2523,7 @@ bool parserIsFunction(ParserNode *node) { case PARSER_TOKEN_KEYWORD_WHILE: case PARSER_TOKEN_KEYWORD_COMPTIME: case PARSER_TOKEN_TYPE_TYPE: + case PARSER_TOKEN_TYPE_ANY_TYPE: case PARSER_TOKEN_TYPE_FUNCTION: case PARSER_TOKEN_TYPE_VOID: case PARSER_TOKEN_TYPE_BOOL: @@ -2555,6 +2563,7 @@ bool parserIsFunction(ParserNode *node) { bool isType(ParserNode *node) { switch (node->token) { case PARSER_TOKEN_TYPE_TYPE: + case PARSER_TOKEN_TYPE_ANY_TYPE: case PARSER_TOKEN_TYPE_FUNCTION: case PARSER_TOKEN_TYPE_VOID: case PARSER_TOKEN_TYPE_I8: @@ -2742,6 +2751,7 @@ bool isValue(ParserNode *node) { case PARSER_TOKEN_OPERATOR_SHIFT_RIGHT: case PARSER_TOKEN_TYPE_FUNCTION: case PARSER_TOKEN_TYPE_TYPE: + case PARSER_TOKEN_TYPE_ANY_TYPE: case PARSER_TOKEN_TYPE_VOID: case PARSER_TOKEN_TYPE_BOOL: case PARSER_TOKEN_TYPE_I8: |