More cleanup
This commit is contained in:
@@ -145,7 +145,7 @@ parse_init_stmt(Ast_Expr *expr){
|
||||
result->flags = set_flag(result->flags, AST_STMT);
|
||||
return result;
|
||||
}
|
||||
return 0;
|
||||
return expr;
|
||||
}
|
||||
|
||||
function Ast_Call *
|
||||
@@ -215,7 +215,6 @@ parse_block(){
|
||||
else if(token_match_keyword(keyword_for)){
|
||||
Ast_Expr *expr_first = parse_expr();
|
||||
Ast_Expr *init = parse_init_stmt(expr_first);
|
||||
Ast_Expr *actual_init = init ? init : expr_first;
|
||||
|
||||
Ast_Expr *cond = 0;
|
||||
Ast_Expr *iter = 0;
|
||||
@@ -223,18 +222,19 @@ parse_block(){
|
||||
cond = parse_expr();
|
||||
if(token_match(TK_Comma)){
|
||||
iter = parse_expr();
|
||||
iter = parse_init_stmt(iter);
|
||||
}
|
||||
}
|
||||
|
||||
Ast_Block *for_block = parse_block();
|
||||
stmts.add(ast_for(token, actual_init, cond, iter, for_block));
|
||||
stmts.add(ast_for(token, init, cond, iter, for_block));
|
||||
}
|
||||
|
||||
else if(token_match_keyword(keyword_if)){
|
||||
Array<Ast_If_Node *> if_nodes = {scratch};
|
||||
Ast_Expr *expr = parse_expr();
|
||||
Ast_Expr *init_val = parse_init_stmt(expr);
|
||||
if(init_val){
|
||||
if(init_val != expr){
|
||||
if(token_match(TK_Comma)) expr = parse_expr();
|
||||
else expr = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user