feat(interface-types) Split the interpreter into multiple modules/files.

This commit is contained in:
Ivan Enderlin
2019-09-26 14:14:46 +02:00
parent e509f97c2d
commit c042050497
18 changed files with 1222 additions and 1128 deletions

View File

@ -0,0 +1,25 @@
use crate::ast::InterfaceType;
#[derive(PartialEq, Debug)]
pub enum Instruction<'input> {
ArgumentGet { index: u64 },
Call { function_index: usize },
CallExport { export_name: &'input str },
ReadUtf8,
WriteUtf8 { allocator_name: &'input str },
AsWasm(InterfaceType),
AsInterface(InterfaceType),
TableRefAdd,
TableRefGet,
CallMethod(u64),
MakeRecord(InterfaceType),
GetField(InterfaceType, u64),
Const(InterfaceType, u64),
FoldSeq(u64),
Add(InterfaceType),
MemToSeq(InterfaceType, &'input str),
Load(InterfaceType, &'input str),
SeqNew(InterfaceType),
ListPush,
RepeatWhile(u64, u64),
}