summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/semantic/analysis.rs2
-rw-r--r--src/semantic/ir.rs4
-rw-r--r--src/semantic/translate.rs5
3 files changed, 6 insertions, 5 deletions
diff --git a/src/semantic/analysis.rs b/src/semantic/analysis.rs
index 4c936f3..973e703 100644
--- a/src/semantic/analysis.rs
+++ b/src/semantic/analysis.rs
@@ -222,7 +222,7 @@ fn trans_exp<'a, 'b, F: frame::Frame>(
&Add => {
match (left_ty, right_ty) {
(Ty::Int, Ty::Int) => {
- Ok((tr.make_binop(ir::Binop::Plus, left_exp, right_exp),
+ Ok((tr.make_binop(ir::BinOp::Plus, left_exp, right_exp),
Ty::Int))
}
(Ty::String, Ty::String) => {
diff --git a/src/semantic/ir.rs b/src/semantic/ir.rs
index be358c4..f92cf27 100644
--- a/src/semantic/ir.rs
+++ b/src/semantic/ir.rs
@@ -1,7 +1,7 @@
use super::temp;
#[derive(Debug)]
-pub enum Binop {
+pub enum BinOp {
Plus,
}
@@ -10,7 +10,7 @@ pub enum Expression {
Const(u64),
Name(temp::TempLabel),
Temp(temp::TempName),
- Binop(Binop, Box<Expression>, Box<Expression>),
+ BinOp(BinOp, Box<Expression>, Box<Expression>),
Memory(Box<Expression>),
Call(Box<Expression>, Vec<Expression>),
Seq(Vec<Statement>, Box<Expression>),
diff --git a/src/semantic/translate.rs b/src/semantic/translate.rs
index 4a2b6c5..57581a4 100644
--- a/src/semantic/translate.rs
+++ b/src/semantic/translate.rs
@@ -50,11 +50,12 @@ impl<F: frame::Frame> Translate<F> {
Expression::Exp(ir::Expression::Const(num))
}
- pub fn make_binop(&mut self, op: ir::Binop,
+ pub fn make_binop(&mut self, op: ir::BinOp,
left: Expression, right: Expression) -> Expression {
match (left, right) {
(Expression::Exp(left), Expression::Exp(right)) =>
- Expression::Exp(ir::Expression::Binop(op, Box::new(left), Box::new(right))),
+ Expression::Exp(ir::Expression::BinOp(op, Box::new(left), Box::new(right))),
+ // TODO: return Result
_ => panic!("Can't make binop from Void"),
}
}