diff options
Diffstat (limited to 'src/compiler/parser.c')
-rw-r--r-- | src/compiler/parser.c | 10 |
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) { |