organic/src/org_compare.rs
Tom Alexander a456acd1e9
Do not print the parsed sexp.
These were particularly spammy.
2023-04-11 19:51:20 -04:00

29 lines
1009 B
Rust

#![feature(round_char_boundary)]
#![feature(exit_status_error)]
use crate::compare::compare_document;
use crate::init_tracing::init_telemetry;
use crate::init_tracing::shutdown_telemetry;
use crate::parser::document;
use compare::emacs_parse_org_document;
use compare::sexp;
mod compare;
mod init_tracing;
mod parser;
fn main() -> Result<(), Box<dyn std::error::Error>> {
init_telemetry()?;
for org_path in std::env::args().skip(1) {
let org_contents = std::fs::read_to_string(&org_path)?;
let org_sexp = emacs_parse_org_document(&org_path)?;
println!("{}", org_sexp);
let (_remaining, parsed_sexp) = sexp(org_sexp.as_str()).expect("Sexp Parse failure");
let (_remaining, rust_parsed) = document(org_contents.as_str()).expect("Org Parse failure");
println!("{:#?}", rust_parsed);
let diff_result = compare_document(&parsed_sexp, &rust_parsed)?;
diff_result.print()?;
}
println!("Done.");
shutdown_telemetry()?;
Ok(())
}