diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-02-07 22:16:18 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-02-07 22:16:18 +0330 |
commit | 34099f0d7752a2fab5eadccfeb578b77b292c889 (patch) | |
tree | 31c628e40f802b58db8bb27d5a3d4a6ead7a57d7 /src/compiler/parser.h | |
parent | 6bd439f35c1184f04488ee4f0db21632e1301b51 (diff) |
add return
Diffstat (limited to 'src/compiler/parser.h')
-rw-r--r-- | src/compiler/parser.h | 6 |
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); |