implement protocol ast and instruction-selection examples
This commit is contained in:
2 files changed
+19
No files matched your search
@@ -0,0 +1,9 @@
|
||||
data Exp = Const Int | Reg Int | Plus Exp Exp | Times Exp Exp
|
||||
|
||||
data Instr = LoadImm Int | LoadReg Int | AddInstr | MulInstr
|
||||
|
||||
match select (e : Exp) : Instr =
|
||||
| Plus (Reg a) (Reg b) -> AddInstr
|
||||
| Times (Reg a) (Reg b) -> MulInstr
|
||||
| Const n -> LoadImm n
|
||||
| Reg n -> LoadReg n
|
||||
@@ -0,0 +1,10 @@
|
||||
data Exp = Const Int | Reg Int | Plus Exp Exp | Times Exp Exp
|
||||
|
||||
data Instr = LoadImm Int | LoadReg Int | AddInstr | MulInstr
|
||||
|
||||
match select (e : Exp) : Instr =
|
||||
| Plus (Reg a) (Reg b) -> AddInstr
|
||||
| Times (Reg a) (Reg b) -> MulInstr
|
||||
| Const n -> LoadImm n
|
||||
| Reg n -> LoadReg n
|
||||
| _ -> LoadImm 0
|
||||
Reference in new issue
Block a user