bfin/src/main.rs

31 lines
738 B
Rust
Raw Normal View History

#![feature(let_chains)]
use std::{env, fs, io::Write, path::PathBuf};
mod asm_gen;
mod compiler;
mod interpreter;
mod tokenizer;
fn main() {
let program: Vec<u8> = load_program();
let tokens = tokenizer::Tokenizer::default().tokenize(program);
let asm = asm_gen::generate(tokens);
let mut file = fs::File::create("./demo.asm").unwrap();
file.write_all(asm.as_bytes()).unwrap();
// interpreter::run(program);
}
fn load_program() -> Vec<u8> {
let args: Vec<String> = env::args().collect();
let input = args.get(1).expect("malformed arguments");
let path: PathBuf = input.into();
let input = fs::read_to_string(path).expect("failed to read the program file");
input.as_bytes().to_vec()
}