#![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> { init_telemetry()?; let org_path = "./org_mode_samples/footnote_definition/simple.org"; 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)?; shutdown_telemetry()?; Ok(()) }