2023-04-10 13:45:36 -04:00
|
|
|
#![feature(round_char_boundary)]
|
2023-04-10 14:28:40 -04:00
|
|
|
#![feature(exit_status_error)]
|
2023-04-11 17:35:09 -04:00
|
|
|
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;
|
2023-04-11 17:35:09 -04:00
|
|
|
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;
|
2023-04-10 13:45:36 -04:00
|
|
|
mod compare;
|
2023-04-11 15:08:46 -04:00
|
|
|
mod init_tracing;
|
2023-04-11 17:35:09 -04:00
|
|
|
mod parser;
|
2023-04-10 13:45:36 -04:00
|
|
|
|
|
|
|
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()?;
|
2023-04-10 13:45:36 -04:00
|
|
|
Ok(())
|
|
|
|
}
|