organic/src/org_compare.rs

28 lines
978 B
Rust
Raw Normal View History

#![feature(round_char_boundary)]
2023-04-10 14:28:40 -04:00
#![feature(exit_status_error)]
use crate::compare::compare_document;
2023-04-11 15:08:46 -04:00
use crate::init_tracing::init_telemetry;
use crate::init_tracing::shutdown_telemetry;
use crate::parser::document;
2023-04-10 14:28:40 -04:00
use compare::emacs_parse_org_document;
2023-04-11 15:08:46 -04:00
use compare::sexp;
mod compare;
2023-04-11 15:08:46 -04:00
mod init_tracing;
mod parser;
fn main() -> Result<(), Box<dyn std::error::Error>> {
2023-04-11 15:08:46 -04:00
init_telemetry()?;
2023-04-11 17:41:23 -04:00
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");
println!("{:#?}", parsed_sexp);
let (_remaining, rust_parsed) = document(org_contents.as_str()).expect("Org Parse failure");
println!("{:#?}", rust_parsed);
compare_document(&parsed_sexp, &rust_parsed)?;
}
2023-04-11 15:08:46 -04:00
shutdown_telemetry()?;
Ok(())
}