lang: ast: fix parens not allowing sub-keyword messages

previously, an expression like:

	x arg1:a arg2:(c subArg:d).

were being parsed incorrectly. This expression was parsed
as single -arg1:arg2:subArg: message being sent to x. the
parentheses around the `c subArg:d` sub-expression were
being ignored.

now, this expression is correcly parsed as the value
of `c subArg:d` being passed as a parameter to the message
-arg1:arg2:
This commit is contained in:
2025-04-17 21:38:31 +01:00
parent 635d23d2e1
commit 51e07522e8

View File

@@ -1276,7 +1276,7 @@ struct token_parse_result arith_parse_label(
return PARSE_RESULT(IVY_ERR_BAD_SYNTAX, 0);
}
if (expr_terminates_at_token(state, IVY_TOK_LABEL)) {
if (state->s_sub_type == EXPR_SUBTYPE_KEYWORD_ARG) {
/* we are currently parsing a keyword or complex message
* argument, and have just encountered the label denoting the
* next argument. terminate here and propagate this label to the