else if into elif

This commit is contained in:
Krzosa Karol
2022-06-14 21:25:02 +02:00
parent 44ee0f4351
commit 58e919ef69
3 changed files with 13 additions and 7 deletions

View File

@@ -264,16 +264,19 @@ parse_stmt_scope(Ast_Scope *scope_defined_outside = 0){
Ast_If_Node *if_node = ast_if_node(token, init_val, expr, if_block);
if_nodes.add(if_node);
while(token_is(SAME_SCOPE) && token_is_keyword(keyword_else, 1)){
while(token_is(SAME_SCOPE) && (token_is_keyword(keyword_elif, 1) || (token_is_keyword(keyword_else, 1)))){
token_next();
token = token_next();
if(token_match_keyword(keyword_if)){
token = token_get();
if(token_match_keyword(keyword_elif)){
assert(token->intern_val == keyword_elif);
Ast_Expr *expr = parse_expr();
Ast_Scope *else_if_block = parse_stmt_scope();
Ast_If_Node *if_node = ast_if_node(token, 0, expr, else_if_block);
if_nodes.add(if_node);
}
else{
token_match_keyword(keyword_else);
assert(token->intern_val == keyword_else);
Ast_Scope *else_block = parse_stmt_scope();
Ast_If_Node *if_node = ast_if_node(token, 0, 0, else_block);
if_nodes.add(if_node);