#[macro_use] extern crate log; use simple_logger::SimpleLogger; use runtime::run_thread::{RunThread, ThreadToken}; use runtime::program::Program; use asm::data::literal::Addr; fn main() { SimpleLogger::new().init().unwrap(); // ;(dec r0 (z? (ret))) let program = " ( (main (ld r0 2) (:again) (dec r0) (jif nz :again) (fault \"that's it\") ) ) "; let parsed = asm::assemble(program).unwrap(); debug!("---"); for op in &parsed { debug!("{:?}", op); } debug!("---"); let thread = RunThread::new(ThreadToken(0), Program::new(parsed), Addr(0), &[]); thread.start().join().unwrap(); }