forked from katzen-cafe/iowo
lang: funky basic error reporting stuff
This commit is contained in:
parent
ae60db7721
commit
84448af714
8 changed files with 122 additions and 18 deletions
|
@ -1,17 +1,32 @@
|
|||
use std::{fs, path::PathBuf};
|
||||
|
||||
use clap::Parser;
|
||||
use lang::parser::parse;
|
||||
use lang::{err_reporting::ErrorCollector, parser::parse};
|
||||
|
||||
#[derive(Parser)]
|
||||
struct Args {
|
||||
file: PathBuf,
|
||||
}
|
||||
|
||||
#[allow(clippy::unwrap_used)]
|
||||
fn main() {
|
||||
let args = Args::parse();
|
||||
let f = fs::read_to_string(args.file).expect("failed to read file");
|
||||
let n = args.file.clone();
|
||||
let f = fs::read_to_string(n.clone()).expect("failed to read file");
|
||||
let mut err_collector = ErrorCollector::new(vec![(n.to_str().unwrap(), &f)]);
|
||||
|
||||
println!("file: {f}\n");
|
||||
println!("parsed: {:?}", parse(&f))
|
||||
let parse_res = parse(&f);
|
||||
err_collector.insert_many(
|
||||
args.file.to_str().unwrap(),
|
||||
lang::err_reporting::Stage::Parse,
|
||||
parse_res
|
||||
.errors()
|
||||
.into_iter()
|
||||
.map(|e| e.to_owned())
|
||||
.collect::<Vec<_>>(),
|
||||
);
|
||||
|
||||
err_collector.report_raw();
|
||||
println!("res: {:?}", parse_res);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue