Add init statement to if
This commit is contained in:
@@ -212,12 +212,27 @@ eval_stmt(Ast *ast, Ast_Resolved_Type *ret){
|
||||
Ast_End();
|
||||
}
|
||||
|
||||
Ast_Begin(AST_INIT, Ast_Init){
|
||||
switch(node->op){
|
||||
case TK_Comma:{
|
||||
Operand op = eval_expr(node->expr);
|
||||
Sym *sym = sym_new(SYM_Var, node->ident->intern_val, op.type, node);
|
||||
sym_insert(sym);
|
||||
}break;
|
||||
invalid_default_case;
|
||||
}
|
||||
Ast_End();
|
||||
}
|
||||
|
||||
Ast_Begin(AST_IF, Ast_If){
|
||||
For(node->ifs){
|
||||
if(it[0]->expr) eval_expr(it[0]->expr);
|
||||
if(it[0]->init) eval_stmt(it[0]->init, ret);
|
||||
S64 scope_index = scope_push();
|
||||
For_It(it[0]->block->stmts, jt){
|
||||
eval_stmt(jt[0], ret);
|
||||
}
|
||||
scope_pop(scope_index);
|
||||
}
|
||||
Ast_End();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user