summaryrefslogtreecommitdiff
path: root/src/compiler/parser.c
diff options
context:
space:
mode:
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) {