lang: ast: add support for multiple block termination tokens

This commit is contained in:
2025-01-16 13:15:18 +00:00
parent fa33336ed7
commit 143d61e329
7 changed files with 102 additions and 31 deletions

View File

@@ -70,7 +70,7 @@ static struct token_parse_result parse_do(
= (struct block_parser_state *)parser_push_state(
ctx, IVY_AST_BLOCK, 0);
/* set the sub-expression depth to be non-zero so the expression parser doesn't consume the expression separator. */
block->s_terminator = IVY_KW_END;
block_add_terminator(block, IVY_KW_END);
state->s_prev_token = IVY_KW_DO;
return PARSE_RESULT(IVY_OK, 0);
@@ -90,7 +90,7 @@ static struct token_parse_result parse_expr_begin(
struct block_parser_state *block
= (struct block_parser_state *)parser_push_state(
ctx, IVY_AST_BLOCK, 0);
block->s_terminator = IVY_KW_END;
block_add_terminator(block, IVY_KW_END);
return PARSE_RESULT(IVY_OK, PARSE_REPEAT_TOKEN);
}