gtopt/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.