gen_expected/
gen_expected.rs1use sevenmark_parser::core::parse_document;
2use std::fs;
3use std::path::Path;
4
5fn main() {
6 let categories = [
7 "brace", "comment", "complex", "escape", "fold", "if", "macro", "markdown",
8 ];
9
10 for category in categories {
11 let input_dir = format!("tc/{}/input", category);
12 let expected_dir = format!("tc/{}/expected", category);
13
14 if !Path::new(&expected_dir).exists() {
16 fs::create_dir_all(&expected_dir).expect("Failed to create expected directory");
17 }
18
19 if let Ok(entries) = fs::read_dir(&input_dir) {
21 for entry in entries.flatten() {
22 let path = entry.path();
23 if path.extension().is_some_and(|ext| ext == "txt") {
24 let file_stem = path.file_stem().unwrap().to_str().unwrap();
25 let input_content = fs::read_to_string(&path)
27 .expect("Failed to read input file")
28 .replace("\r\n", "\n");
29
30 let result = parse_document(&input_content);
31 let json_output = serde_json::to_string_pretty(&result).unwrap();
32
33 let expected_path = format!("{}/{}.json", expected_dir, file_stem);
34 fs::write(&expected_path, &json_output).expect("Failed to write expected file");
35
36 println!("Generated: {}", expected_path);
37 }
38 }
39 }
40 }
41}