summaryrefslogtreecommitdiff
path: root/src/compiler/parser.c
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-24 15:19:06 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-24 15:19:06 +0330
commit79babd7e6c97ead76c7cd6295f01e049d1b28524 (patch)
treefe03d2c6907211ee2cbed86c31ff4319f09a26f1 /src/compiler/parser.c
parente89f5c93893e5dd969fe39e1aca00ad5bd8b5b7b (diff)
add code type
Diffstat (limited to 'src/compiler/parser.c')
-rw-r--r--src/compiler/parser.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/compiler/parser.c b/src/compiler/parser.c
index f0d3e9b..956b834 100644
--- a/src/compiler/parser.c
+++ b/src/compiler/parser.c
@@ -40,6 +40,7 @@ const char *PARSER_TOKEN_STRINGS[] = {
"PARSER_TOKEN_TYPE_F32",
"PARSER_TOKEN_TYPE_F64",
"PARSER_TOKEN_TYPE_F128",
+ "PARSER_TOKEN_TYPE_CODE",
"PARSER_TOKEN_KEYWORD_PUTC",
"PARSER_TOKEN_KEYWORD_RETURN",
@@ -239,6 +240,7 @@ void parserNodePrint(const ParserNode *node, int indent) {
case PARSER_TOKEN_TYPE_F32:
case PARSER_TOKEN_TYPE_F64:
case PARSER_TOKEN_TYPE_F128:
+ case PARSER_TOKEN_TYPE_CODE:
case PARSER_TOKEN_KEYWORD_NULL:
case PARSER_TOKEN_KEYWORD_UNDEFINED:
goto RETURN_SUCCESS;
@@ -521,6 +523,7 @@ void parserNodeDelete(ParserNode *node) {
case PARSER_TOKEN_TYPE_F32:
case PARSER_TOKEN_TYPE_F64:
case PARSER_TOKEN_TYPE_F128:
+ case PARSER_TOKEN_TYPE_CODE:
case PARSER_TOKEN_KEYWORD_NULL:
case PARSER_TOKEN_KEYWORD_UNDEFINED:
goto RETURN_SUCCESS;
@@ -799,6 +802,8 @@ ParserNode *parseNode(LexerNode *node, LexerNode *begin, LexerNode *end,
return parserNoMetadata(node, parent, PARSER_TOKEN_TYPE_F64);
case LEXER_TOKEN_KEYWORD_F128:
return parserNoMetadata(node, parent, PARSER_TOKEN_TYPE_F128);
+ case LEXER_TOKEN_KEYWORD_CODE:
+ return parserNoMetadata(node, parent, PARSER_TOKEN_TYPE_CODE);
case LEXER_TOKEN_KEYWORD_NULL:
return parserNoMetadata(node, parent, PARSER_TOKEN_KEYWORD_NULL);
case LEXER_TOKEN_KEYWORD_UNDEFINED:
@@ -1520,6 +1525,7 @@ ParserNode *parserFunction(LexerNode *node, LexerNode *begin, LexerNode *end,
case PARSER_TOKEN_TYPE_F32:
case PARSER_TOKEN_TYPE_F64:
case PARSER_TOKEN_TYPE_F128:
+ case PARSER_TOKEN_TYPE_CODE:
case PARSER_TOKEN_KEYWORD_NULL:
case PARSER_TOKEN_KEYWORD_UNDEFINED:
case PARSER_TOKEN_KEYWORD_PUTC:
@@ -2018,6 +2024,7 @@ bool isExpression(ParserNode *node) {
case PARSER_TOKEN_TYPE_F32:
case PARSER_TOKEN_TYPE_F64:
case PARSER_TOKEN_TYPE_F128:
+ case PARSER_TOKEN_TYPE_CODE:
case PARSER_TOKEN_KEYWORD_NULL:
case PARSER_TOKEN_KEYWORD_UNDEFINED:
case PARSER_TOKEN_KEYWORD_STRUCT:
@@ -2051,6 +2058,7 @@ bool isType(ParserNode *node) {
case PARSER_TOKEN_TYPE_F32:
case PARSER_TOKEN_TYPE_F64:
case PARSER_TOKEN_TYPE_F128:
+ case PARSER_TOKEN_TYPE_CODE:
case PARSER_TOKEN_TYPE_BOOL:
case PARSER_TOKEN_IDENTIFIER:
case PARSER_TOKEN_BUILTIN:
@@ -2166,6 +2174,7 @@ bool isValue(ParserNode *node) {
case PARSER_TOKEN_TYPE_F32:
case PARSER_TOKEN_TYPE_F64:
case PARSER_TOKEN_TYPE_F128:
+ case PARSER_TOKEN_TYPE_CODE:
case PARSER_TOKEN_KEYWORD_NULL:
case PARSER_TOKEN_KEYWORD_UNDEFINED:
case PARSER_TOKEN_KEYWORD_IF: