mod loader; mod state; #[cfg (test)] mod tests; fn main() { use state::State; let lua_file = { let data = std::fs::read ("test_vectors/closure.luac").unwrap (); let mut rdr = std::io::Cursor::new (data); loader::parse_chunk (&mut rdr).unwrap () }; assert_eq! (lua_file.blocks.len (), 3); let mut vm = State::default (); if std::env::var("LUA_DEBUG").is_ok() { vm.debug_print = true; } let upvalues = State::upvalues_from_args (std::env::args ()); vm.breakpoints.push (state::Breakpoint { block_idx: 2, program_counter: 3, }); vm.breakpoints.push (state::Breakpoint { block_idx: 0, program_counter: 10, }); println! ("Returned: {:?}", vm.execute_chunk (&lua_file, &upvalues)); }