crosslang/tsm-lean/Main.lean
Maximus Gorog bd2e14214d Add 'tsm-lean/' from commit '2e9061abead6f2daa464b39a79c17a949db30785'
git-subtree-dir: tsm-lean
git-subtree-mainline: 6592cd058d
git-subtree-split: 2e9061abea
2026-05-12 02:59:14 -06:00

22 lines
498 B
Text

import TsmLean
open TsmLean.Core in
def main : IO UInt32 := do
-- Demo: 5 + 3, then * 2 = 16
let prog : Array Instr := #[
.push 5,
.push 3,
.add,
.push 2,
.mul,
.halt
]
let s₀ : State := { code := prog, pc := 0, stack := [] }
match run 100 s₀ with
| some s_final =>
IO.println s!"final stack: {repr s_final.stack}"
IO.println s!"final pc: {s_final.pc}"
return 0
| none =>
IO.eprintln "execution did not terminate within fuel"
return 1