diff --git a/ccodegen.cpp b/ccodegen.cpp index bdd308b..2e0cc36 100644 --- a/ccodegen.cpp +++ b/ccodegen.cpp @@ -240,7 +240,7 @@ gen_ast(Ast *ast){ For(node->ifs){ if(it->init) gen_expr(it->init); if(node->ifs.is_first(&it)){ - genln("if("); + gen("if("); gen_expr(it->expr); gen(")"); gen_block(it->block); diff --git a/new_parse.cpp b/new_parse.cpp index dd5b56a..5037783 100644 --- a/new_parse.cpp +++ b/new_parse.cpp @@ -218,6 +218,7 @@ parse_block(){ if(token_match(TK_Comma)) expr = parse_expr(); else expr = 0; } + if(init_val == expr) init_val = 0; Ast_Block *if_block = parse_block(); Ast_If_Node *if_node = ast_if_node(token, init_val, expr, if_block); diff --git a/new_types.kl b/new_types.kl index 4836c6c..230b104 100644 --- a/new_types.kl +++ b/new_types.kl @@ -26,7 +26,10 @@ binary_test :: () boolean_var: Bool = boolean_equals bvar2 := int_val > 1 - bvar3 := int_val < 1 + if int_val < 1 + if int_val > 1 + pass + basic_type_assignment :: ()