From 1204bffb4d9c4e89313c64b675cab995242e9899 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Mon, 2 Dec 2024 11:37:01 +0000 Subject: [PATCH] lang: ast: fix parsing of parenthesised sub-expressions in keyword arguments --- lang/ast/expr.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lang/ast/expr.c b/lang/ast/expr.c index 5ac8c89..63f6f8a 100644 --- a/lang/ast/expr.c +++ b/lang/ast/expr.c @@ -819,8 +819,14 @@ static enum ivy_status add_child( || state->s_subexpr == EXPR_SUBTYPE_COMPLEX_MSG) { /* treat the child node as a keyword-message argument */ b_queue_push_back(&state->s_args, &child->n_entry); + } else if (state->s_subexpr == EXPR_SUBTYPE_KEYWORD_ARG) { + /* treat the child node as a sub-expression enclosed in + * parentheses (i.e. an operand). */ + b_queue_push_back(&state->s_output_queue, &child->n_entry); + state->s_prev_component = EXPR_CMP_OPERAND; } else if (child->n_type == IVY_AST_MSG) { push_operator(state, child); + state->s_prev_component = EXPR_CMP_MSG; } else { /* treat the child node as a sub-expression enclosed in * parentheses (i.e. an operand). */