parser
This commit is contained in:
25
src/main.rs
25
src/main.rs
@@ -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(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user