diff --git a/rust/src/vm.rs b/rust/src/vm.rs index db7c172..e26bb5f 100644 --- a/rust/src/vm.rs +++ b/rust/src/vm.rs @@ -34,14 +34,18 @@ impl VM { pub fn interpret(&mut self) -> Result<()> { loop { - let op_code = &self.chunk.code[self.ip]; + debug!("{:?}", &self.stack[0..self.stack_top]); debug!("{}", DisassembledInstruction::new(self.ip, &self.chunk,)); - match op_code { + + match &self.chunk.code[self.ip] { OpCode::Constant(constant) => { let value = self.chunk.constants[*constant]; - println!("{}", value); + self.push(value); + } + OpCode::Return => { + println!("{}", self.pop()); + return Ok(()); } - OpCode::Return => return Ok(()), } self.ip += 1;