use std::env;
use std::fs;
use std::process;
use verbena::*;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() < 2 {
eprintln!("Usage: {} <file>", args[0]);
process::exit(1);
}
let file = &args[1];
let text = match fs::read_to_string(file) {
Ok(text) => text,
Err(e) => {
eprintln!("Error reading {}: {}", file, e);
process::exit(1);
}
};
let text = prep(&text);
match parse(&text) {
Err(e) => {
eprintln!("{}", e.format_error(file, &text));
process::exit(1);
}
Ok(program) => {
let mut process = Process::new(program);
if let Err(e) = process.run() {
eprintln!("{}", e.format_error(file, &text));
process::exit(1);
}
}
}
}