Add some base VM implementations

Some instructions are currently implemented. Others are not. This is
mostly just a checkpoint so I can implement lexical name definitions.

Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
2020-09-14 16:32:00 -07:00
parent 372e58f620
commit fdbb0a1307
11 changed files with 205 additions and 24 deletions

9
src/vm/error.rs Normal file
View File

@@ -0,0 +1,9 @@
use snafu::Snafu;
#[derive(Debug, Snafu)]
pub enum Error {
#[snafu(display("attempted to pop an empty stack"))]
EmptyStack,
}
pub type Result<T, E = Error> = std::result::Result<T, E>;