aboutsummaryrefslogtreecommitdiffstats
path: root/src/vm.rs
diff options
context:
space:
mode:
authorEdvard Thörnros <edvard.thornros@gmail.com>2021-01-10 22:50:04 +0100
committerEdvard Thörnros <edvard.thornros@gmail.com>2021-01-10 22:50:04 +0100
commitdde985c7abb4dbe37281131b8b36a75302e48438 (patch)
tree82039adbf7a2cad15dc4bdd2116bd8dca27fff48 /src/vm.rs
parent6d94077778d6043e135640f40b09e2582d3a3064 (diff)
downloadsylt-dde985c7abb4dbe37281131b8b36a75302e48438.tar.gz
VARIABLES!!!
Diffstat (limited to 'src/vm.rs')
-rw-r--r--src/vm.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/vm.rs b/src/vm.rs
index a372d0b..8f2c631 100644
--- a/src/vm.rs
+++ b/src/vm.rs
@@ -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());
}