summaryrefslogtreecommitdiff
path: root/src/compiler/parser.c
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-07 22:21:53 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-07 22:21:53 +0330
commit79360f43b87cbb0e7ec3abca4c08406866fbf26a (patch)
tree651810cf543e321da01c64ba760d6015d786bc1d /src/compiler/parser.c
parent34099f0d7752a2fab5eadccfeb578b77b292c889 (diff)
fix return for void functions
Diffstat (limited to 'src/compiler/parser.c')
-rw-r--r--src/compiler/parser.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/compiler/parser.c b/src/compiler/parser.c
index 1aa596c..d5f61c5 100644
--- a/src/compiler/parser.c
+++ b/src/compiler/parser.c
@@ -549,9 +549,13 @@ ParserNode *parserReturn(LexerNode *node, LexerNode *end, ParserNode *parent) {
ParserNodeReturnMetadata *metadata = a404m_malloc(sizeof(*metadata));
metadata->value = operand;
- return operand->parent = node->parserNode =
- newParserNode(PARSER_TOKEN_KEYWORD_RETURN, node->str_begin,
- node->str_end, metadata, parent);
+ node->parserNode = newParserNode(PARSER_TOKEN_KEYWORD_RETURN, node->str_begin,
+ node->str_end, metadata, parent);
+ if (operand != NULL) {
+ operand->parent = node->parserNode;
+ }
+
+ return node->parserNode;
}
ParserNode *parserNumber(LexerNode *node, ParserNode *parent) {