use std::{env, process};
use parol::{ParolErrorReporter, build::Builder};
use parol::parol_runtime::Report;
fn main() {
println!("cargo:rerun-if-changed=modelica.par");
let rebuild = env::var_os("CARGO_FEATURE_REGEN_PARSER").is_some();
if !rebuild {
return;
}
println!("cargo:warning=Regenerating parser (triggered by feature=regen-parser)");
if let Err(err) = Builder::with_explicit_output_dir("src")
.grammar_file("modelica.par")
.expanded_grammar_output_file("modelica-exp.par")
.parser_output_file("modelica_parser.rs")
.actions_output_file("modelica_grammar_trait.rs")
.user_type_name("ModelicaGrammar")
.user_trait_module_name("modelica_grammar")
.trim_parse_tree()
.minimize_boxed_types()
.generate_parser()
{
ParolErrorReporter::report_error(&err, "modelica.par").unwrap_or_default();
process::exit(1);
}
}