aboutsummaryrefslogtreecommitdiffstats
path: root/bytecode/src/stack.rs
diff options
context:
space:
mode:
Diffstat (limited to 'bytecode/src/stack.rs')
-rw-r--r--bytecode/src/stack.rs33
1 files changed, 0 insertions, 33 deletions
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<u64>,
-}
-
-impl Stack {
- fn pop(&mut self) -> Result<u64, String> {
- self.v.pop().ok_or(String::from("stack underflow"))
- }
-
- fn pop_int(&mut self) -> Result<i64, String> {
- 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<Pointer, String> {
- Ok(Pointer::from_bytes(self.pop()?))
- }
-
- fn push_pointer(&mut self, p: Pointer) {
- self.v.push(p.bytes());
- }
-
- fn pop_usize(&mut self) -> Result<usize, String> {
- 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);
- }
-}