use std::io::{Read, Write};
use luaur_compiler::functions::luau_compile::luau_compile;
fn main() {
let path = std::env::args()
.nth(1)
.expect("usage: luau_compile <lua-file>");
let mut src = Vec::new();
std::fs::File::open(&path)
.expect("cannot open source file")
.read_to_end(&mut src)
.expect("cannot read source file");
luaur_common::set_all_flags(true);
unsafe {
let mut outsize: usize = 0;
let bc = luau_compile(
src.as_ptr() as *const core::ffi::c_char,
src.len(),
core::ptr::null_mut(),
&mut outsize,
);
assert!(!bc.is_null(), "luau_compile returned null");
let bytes = std::slice::from_raw_parts(bc as *const u8, outsize);
std::io::stdout()
.write_all(bytes)
.expect("cannot write bytecode");
}
}