summaryrefslogtreecommitdiff
path: root/src/compiler/parser.h
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-07 22:16:18 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-07 22:16:18 +0330
commit34099f0d7752a2fab5eadccfeb578b77b292c889 (patch)
tree31c628e40f802b58db8bb27d5a3d4a6ead7a57d7 /src/compiler/parser.h
parent6bd439f35c1184f04488ee4f0db21632e1301b51 (diff)
add return
Diffstat (limited to 'src/compiler/parser.h')
-rw-r--r--src/compiler/parser.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/compiler/parser.h b/src/compiler/parser.h
index abce8db..004f14f 100644
--- a/src/compiler/parser.h
+++ b/src/compiler/parser.h
@@ -17,6 +17,7 @@ typedef enum ParserToken {
PARSER_TOKEN_TYPE_U64,
PARSER_TOKEN_KEYWORD_PRINT_U64,
+ PARSER_TOKEN_KEYWORD_RETURN,
PARSER_TOKEN_CONSTANT,
PARSER_TOKEN_VARIABLE,
@@ -88,6 +89,10 @@ typedef struct ParserNodeInfixMetadata {
ParserNode *right;
} ParserNodeInfixMetadata;
+typedef struct ParserNodeReturnMetadata {
+ ParserNode *value;
+} ParserNodeReturnMetadata;
+
void parserNodePrint(const ParserNode *node, int indent);
void parserNodeDelete(ParserNode *node);
@@ -107,6 +112,7 @@ ParserNode *parserType(LexerNode *node, ParserNode *parent);
ParserNode *parserVoid(LexerNode *node, ParserNode *parent);
ParserNode *parserU64(LexerNode *node, ParserNode *parent);
ParserNode *parserPrintU64(LexerNode *node, LexerNode *end, ParserNode *parent);
+ParserNode *parserReturn(LexerNode *node, LexerNode *end, ParserNode *parent);
ParserNode *parserNumber(LexerNode *node, ParserNode *parent);
ParserNode *parserEol(LexerNode *node, LexerNode *begin, ParserNode *parent);
ParserNode *parserComma(LexerNode *node, LexerNode *begin, ParserNode *parent);