1#[cfg(feature = "solver-scip")]
2mod error;
3pub mod flatpint;
4#[cfg(feature = "solver-scip")]
5pub mod scip;
6
7use crate::flatpint::FlatPint;
8#[cfg(feature = "solver-scip")]
9use crate::scip::Solver;
10use lalrpop_util::lalrpop_mod;
11#[cfg(feature = "solver-scip")]
12use russcip::ProblemCreated;
13
14lalrpop_mod!(#[allow(unused, clippy::ptr_arg, clippy::type_complexity, clippy::empty_line_after_outer_attr)] pub flatpint_parser);
15
16pub fn parse_flatpint(
17 src: &str,
18) -> Result<FlatPint, lalrpop_util::ParseError<usize, lalrpop_util::lexer::Token, &'static str>> {
19 flatpint_parser::FlatPintParser::new().parse(src)
20}
21
22#[cfg(feature = "solver-scip")]
23pub fn solver(ast: &FlatPint) -> Solver<ProblemCreated> {
24 Solver::<ProblemCreated>::new(ast)
25}