From 21ad9744c006d25d8d8ac3aa58d8ec4205893dc0 Mon Sep 17 00:00:00 2001
From: David Li
Date: Tue, 7 Nov 2017 16:59:14 -0500
Subject: Add datatypes for IR
---
src/semantic/ir.rs | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
create mode 100644 src/semantic/ir.rs
(limited to 'src')
diff --git a/src/semantic/ir.rs b/src/semantic/ir.rs
new file mode 100644
index 0000000..deeed96
--- /dev/null
+++ b/src/semantic/ir.rs
@@ -0,0 +1,23 @@
+use super::temp;
+
+pub enum Binop {
+ Plus,
+}
+
+pub enum Expression {
+ Const(u64),
+ Name(temp::TempLabel),
+ Temp(temp::TempName),
+ Binop(Binop, Box, Box),
+ Memory(Box),
+ Call(Box, Vec),
+ Seq(Vec, Box),
+}
+
+pub enum Statement {
+ Exp(Expression),
+ MoveTemp(temp::TempName, Expression),
+ MoveMem(Expression, Expression),
+ Seq(Box, Box),
+ Label(temp::TempLabel),
+}
--
cgit v1.2.3