This commit is contained in:
2025-05-29 18:28:25 +02:00
parent 0fbc964d37
commit 47412dda11
3 changed files with 198 additions and 9 deletions

View File

@@ -1,16 +1,29 @@
mod parser;
mod tokenizer;
use std::{env, error::Error, fs};
use std::{env, error::Error, fs, process};
fn compile_file(path: String) -> Result<(), Box<dyn Error>> {
let source = fs::read_to_string(path.clone())?;
// TODO: basename
let tokenizer = tokenizer::Tokenizer::new(path, source);
let tokens = tokenizer.tokenize()?;
let parser = parser::Parser::new(tokens);
println!("{:#?}", parser.parse());
Ok(())
}
fn main() -> Result<(), Box<dyn Error>> {
let mut args = env::args();
let path = args.nth(1).unwrap();
let source = fs::read_to_string(path.clone())?;
// TODO: basename
let tokenizer = tokenizer::Tokenizer::new(path, source);
println!("{:#?}", tokenizer.tokenize()?);
if let Err(err) = compile_file(path) {
eprintln!("{}", err);
process::exit(1);
}
Ok(())
}