organic/src/org_compare.rs

27 lines
963 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()?;
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)?;
2023-04-11 16:28:56 -04:00
println!("{}", org_sexp);
let (_remaining, parsed_sexp) = sexp(org_sexp.as_str()).expect("Sexp Parse failure");
2023-04-11 16:28:56 -04:00
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(())
}