lemonlang 0.0.3

an experimental, modern, purely safe, programming language.
use crate::{
	ast,
	ir::{ir::IrValue, Register},
};

use super::Builder;

impl Builder<'_> {
	pub fn build_expr(&mut self, expr: &ast::Expr) -> Register {
		match expr {
			ast::Expr::Binary(binary) => self.build_binary_expr(binary),
			ast::Expr::Literal(literal) => self.build_literal(literal),
			ast::Expr::If(if_expr) => self.build_if_expr(if_expr),
			ast::Expr::Ident(ident) => self.build_ident_expr(ident),
			ast::Expr::Call(call) => self.build_call_expr(call),
			ast::Expr::Deref(deref) => self.build_deref_expr(deref),
			ast::Expr::Borrow(borrow) => self.build_borrow_expr(borrow),
			ast::Expr::Assign(assign) => self.build_assign_expr(assign),
			ast::Expr::StructInit(struct_init) => self.build_struct_init_expr(struct_init),
			ast::Expr::Member(member) => self.build_member_expr(member),
			_ => todo!("expr: {:?}", expr),
		}
	}
}