diff options
Diffstat (limited to 'src/vm.rs')
| -rw-r--r-- | src/vm.rs | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -40,6 +40,10 @@ pub enum Op { AssertEqual, + ReadLocal(usize), + Assign(usize), + + Print, Return, } @@ -247,6 +251,14 @@ impl VM { self.stack.push(Value::Bool(a == b)); } + Op::ReadLocal(slot) => { + self.stack.push(self.stack[slot]); + } + + Op::Assign(slot) => { + self.stack[slot] = self.stack.pop().unwrap(); + } + Op::Print => { println!("PRINT: {:?}", self.stack.pop()); } |
