Wasynth/src/main.rs
2021-11-17 00:29:06 -05:00

31 lines
659 B
Rust
Executable File

use backend::{
helper::edition::{Edition, LuaJIT, Luau},
translation::level_3,
};
use data::Module;
use parity_wasm::elements::deserialize_file;
mod backend;
mod data;
fn main() {
let mut args = std::env::args().skip(1);
let spec: &dyn Edition = match args.next().as_deref().map(str::to_lowercase).as_deref() {
Some("luau") => &Luau,
Some("luajit") => &LuaJIT,
_ => {
println!("expected either 'luau' or 'luajit' option");
return;
}
};
let output = std::io::stdout();
for v in args {
let wasm = deserialize_file(v).unwrap();
let module = Module::new(&wasm);
level_3::translate(spec, &module, &mut output.lock()).unwrap();
}
}