lang: ast: implement parsing of break/continue loop-control statements
This commit is contained in:
@@ -110,6 +110,23 @@ enum ivy_status arith_push_operand(
|
||||
b_queue_push_back(&state->s_output_queue, &v->n_entry);
|
||||
break;
|
||||
}
|
||||
case IVY_TOK_KEYWORD: {
|
||||
struct ivy_ast_node *v = NULL;
|
||||
switch (tok->t_keyword) {
|
||||
case IVY_KW_BREAK:
|
||||
v = ast_node_create(IVY_AST_LOOP_BREAK);
|
||||
break;
|
||||
case IVY_KW_CONTINUE:
|
||||
v = ast_node_create(IVY_AST_LOOP_REPEAT);
|
||||
break;
|
||||
default:
|
||||
return IVY_ERR_BAD_SYNTAX;
|
||||
}
|
||||
|
||||
ivy_ast_node_set_bounds_from_token((struct ivy_ast_node *)v, tok);
|
||||
b_queue_push_back(&state->s_output_queue, &v->n_entry);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return IVY_ERR_BAD_SYNTAX;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user