1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
mod instruction;
pub mod compiler;
pub mod machine;
pub mod bytecode;

pub use bytecode::{ByteCode, ByteCodeType};
pub use compiler::Compiler;
pub use machine::Machine;

pub mod prelude {
    pub use compiler::Compiler;
    pub use machine::Machine;
    pub use bytecode::ByteCode;
    use std::io::{Read, Write};

    pub fn execute<R: Read, W: Write>(code: &str, r: R, w: W) -> Result<(), String> {
        let mut comp = Compiler::new(code);
        let mut machine = Machine::new(comp.compile(), r, w);
        machine.execute()
    }
}