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). */