all_scripts/
all_scripts.rs

1use pdx_syntax::script::parse_file;
2use std::path::Path;
3
4fn parse_dir(dir: &Path) {
5    let files = std::fs::read_dir(dir).unwrap();
6    for file in files {
7        let file = file.unwrap();
8        let path = file.path();
9
10        if path.is_dir() {
11            parse_dir(&path);
12            continue;
13        }
14
15        let fname = path.to_str().unwrap();
16        if fname.ends_with(".txt") {
17            // println!("[Parsing] {}", fname);
18            let ast = parse_file(&fname);
19            if ast.is_err() {
20                println!("Parsing failed: {}", fname);
21                println!("Error: {}", ast.err().unwrap());
22            } else {
23                // println!("{:#?}", ast.ok().unwrap());
24            }
25        }
26    }
27}
28
29fn main() {
30    let mut args = std::env::args();
31    args.next();
32    let fname = args.next().expect("Missing argument: path");
33    let path = Path::new(&fname);
34    if path.is_dir() {
35        parse_dir(&path);
36        return;
37    } else {
38        panic!("Not a directory: {}", fname);
39    }
40}