constraint_parser.hpp file
Parser for user constraint expressions (AMPL-inspired syntax)
This module provides a recursive-descent parser that converts AMPL-inspired constraint expression strings into ConstraintExpr AST objects.
Example usage
// Single element references auto expr = ConstraintParser::parse( "gen_limit", R"(generator("TORO").generation + generator("uid:23").generation <= 300, for(stage in {4,5,6}, block in 1..30))"); // AMPL-style sum aggregation auto sum_expr = ConstraintParser::parse( "total_gen", R"(sum(generator("G1","G2","G3").generation) <= 500)"); // Sum over all elements of a type auto all_expr = ConstraintParser::parse( "system_cap", R"(sum(generator(all).generation) <= 1000)");
Namespaces
- namespace gtopt
Classes
- class gtopt::ConstraintParser
- Parser for AMPL-inspired user constraint expressions.