lemonlang 0.0.3

an experimental, modern, purely safe, programming language.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::{
	ast,
	ir::{ir, Instr, IrValue, Register},
};

use super::Builder;

impl Builder<'_> {
	pub fn build_deref_expr(&mut self, deref_exper: &ast::DerefExpr) -> Register {
		let value = self.build_expr(&deref_exper.expr);
		let type_id = self.get_type_id(deref_exper.type_id);
		let dest = self.ir_ctx.new_register();
		let instr = ir::UnaryInstr { type_id, value, dest };
		self.ir_ctx.add_instr(Instr::Deref(instr));
		dest
	}
}