10 lines
281 B
Plaintext
10 lines
281 B
Plaintext
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
|