use parol::parol_runtime::Report;
use parol::{ParolErrorReporter, build::Builder};
use std::{env, process};
fn main() {
println!("cargo:rerun-if-changed=src/modelica_grammar/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/modelica_grammar/generated")
.grammar_file("src/modelica_grammar/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, "src/modelica_grammar/modelica.par")
.unwrap_or_default();
process::exit(1);
}
}