2023-03-23 19:35:32 -04:00
|
|
|
#![feature(round_char_boundary)]
|
2023-03-25 11:27:38 -04:00
|
|
|
use crate::parser::document;
|
2022-11-25 17:54:26 -05:00
|
|
|
use tracing_subscriber::fmt::format::FmtSpan;
|
2023-03-27 15:08:29 -04:00
|
|
|
use tracing_subscriber::EnvFilter;
|
2022-07-15 23:26:49 -04:00
|
|
|
mod parser;
|
|
|
|
|
|
|
|
const TEST_DOC: &'static str = include_str!("../toy_language.txt");
|
|
|
|
|
|
|
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
2023-03-27 15:08:29 -04:00
|
|
|
init_telemetry()?;
|
|
|
|
let parsed = document(TEST_DOC);
|
|
|
|
println!("{}\n\n\n", TEST_DOC);
|
|
|
|
println!("{:#?}", parsed);
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
fn init_telemetry() -> Result<(), Box<dyn std::error::Error>> {
|
|
|
|
let env_filter = EnvFilter::try_from_default_env().unwrap_or(EnvFilter::new("WARN"));
|
2022-11-25 17:49:38 -05:00
|
|
|
let format = tracing_subscriber::fmt::format()
|
2023-03-27 15:08:29 -04:00
|
|
|
.pretty()
|
2022-11-25 17:49:38 -05:00
|
|
|
.with_file(true)
|
|
|
|
.with_line_number(true)
|
|
|
|
.with_thread_ids(false)
|
|
|
|
.with_target(false);
|
|
|
|
let subscriber = tracing_subscriber::fmt()
|
|
|
|
.event_format(format)
|
2022-11-25 17:54:26 -05:00
|
|
|
.with_span_events(FmtSpan::ENTER | FmtSpan::EXIT)
|
2023-03-27 15:08:29 -04:00
|
|
|
.with_env_filter(env_filter)
|
2022-11-25 17:49:38 -05:00
|
|
|
.finish();
|
2022-11-25 17:27:29 -05:00
|
|
|
tracing::subscriber::set_global_default(subscriber)?;
|
2022-07-15 23:26:49 -04:00
|
|
|
Ok(())
|
|
|
|
}
|