Fix if parsing bug
This commit is contained in:
@@ -240,7 +240,7 @@ gen_ast(Ast *ast){
|
|||||||
For(node->ifs){
|
For(node->ifs){
|
||||||
if(it->init) gen_expr(it->init);
|
if(it->init) gen_expr(it->init);
|
||||||
if(node->ifs.is_first(&it)){
|
if(node->ifs.is_first(&it)){
|
||||||
genln("if(");
|
gen("if(");
|
||||||
gen_expr(it->expr);
|
gen_expr(it->expr);
|
||||||
gen(")");
|
gen(")");
|
||||||
gen_block(it->block);
|
gen_block(it->block);
|
||||||
|
|||||||
@@ -218,6 +218,7 @@ parse_block(){
|
|||||||
if(token_match(TK_Comma)) expr = parse_expr();
|
if(token_match(TK_Comma)) expr = parse_expr();
|
||||||
else expr = 0;
|
else expr = 0;
|
||||||
}
|
}
|
||||||
|
if(init_val == expr) init_val = 0;
|
||||||
|
|
||||||
Ast_Block *if_block = parse_block();
|
Ast_Block *if_block = parse_block();
|
||||||
Ast_If_Node *if_node = ast_if_node(token, init_val, expr, if_block);
|
Ast_If_Node *if_node = ast_if_node(token, init_val, expr, if_block);
|
||||||
|
|||||||
@@ -26,7 +26,10 @@ binary_test :: ()
|
|||||||
boolean_var: Bool = boolean_equals
|
boolean_var: Bool = boolean_equals
|
||||||
|
|
||||||
bvar2 := int_val > 1
|
bvar2 := int_val > 1
|
||||||
bvar3 := int_val < 1
|
if int_val < 1
|
||||||
|
if int_val > 1
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
basic_type_assignment :: ()
|
basic_type_assignment :: ()
|
||||||
|
|||||||
Reference in New Issue
Block a user