#![feature(let_chains)] use std::{env, fs, path::PathBuf}; mod asm_gen; mod compiler; mod interpreter; mod tokenizer; fn main() { let args: Vec = env::args().collect(); let input = args.get(1).expect("malformed arguments"); let program: Vec = load_program(input); let name = args .get(2) .map(|s| s.to_string()) .unwrap_or_else(|| "program".to_string()); compiler::compile(program, name); // interpreter::run(program); } fn load_program(input: &str) -> Vec { let path: PathBuf = input.into(); let input = fs::read_to_string(path).expect("failed to read the program file"); input.as_bytes().to_vec() }