From c9c3cacb539d74940686134d8f6a6cf96ad0cc17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vili=20Sinerv=C3=A4?= Date: Wed, 5 Feb 2025 20:56:47 +0200 Subject: [PATCH] Add variable declaration to IR Generator --- src/compiler/ir_generator.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/compiler/ir_generator.rs b/src/compiler/ir_generator.rs index a7e8f8e..48a226a 100644 --- a/src/compiler/ir_generator.rs +++ b/src/compiler/ir_generator.rs @@ -142,7 +142,12 @@ fn visit_ast_node( result_var } }, - VarDeclaration(_, _, _) => todo!(), + VarDeclaration(_, expr, _) => { + let expr_var = visit_ast_node(expr, types, symbols, instructions, labels); + let result_var = add_var(&expr.node_type, types); + instructions.push(IrInstruction::new(expr.loc, Copy(expr_var, result_var))); + symbols.get("unit").clone() + } Conditional(condition_expr, then_expr, else_expr) => match else_expr { Some(else_expr) => { let l_then = add_label("then", then_expr.loc, labels);