From c7ff0b98146693b60a3f075818f96764f646b2d5 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Fri, 29 Jul 2022 22:41:17 -0700 Subject: Fix the bytecode interpreter. I'm too scared to actually try to run it right now. --- bytecode/src/stack.rs | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 bytecode/src/stack.rs (limited to 'bytecode/src/stack.rs') diff --git a/bytecode/src/stack.rs b/bytecode/src/stack.rs deleted file mode 100644 index 66d3f7c..0000000 --- a/bytecode/src/stack.rs +++ /dev/null @@ -1,33 +0,0 @@ -struct Stack { - v: Vec, -} - -impl Stack { - fn pop(&mut self) -> Result { - self.v.pop().ok_or(String::from("stack underflow")) - } - - fn pop_int(&mut self) -> Result { - Ok(self.pop()? as i64 >> 1) - } - - fn push_int(&mut self, i: i64) { - self.v.push((i as u64) << 1 | 1); - } - - fn pop_pointer(&mut self) -> Result { - Ok(Pointer::from_bytes(self.pop()?)) - } - - fn push_pointer(&mut self, p: Pointer) { - self.v.push(p.bytes()); - } - - fn pop_usize(&mut self) -> Result { - Ok(usize::try_from(self.pop()?).unwrap() >> 1) - } - - fn push_usize(&mut self, p: usize) { - self.v.push(u64::try_from(p).unwrap() << 1 | 1); - } -} -- cgit v1.3.1