|
Clingo
|
Data structures and functions to match symbols and expressions. More...
Concepts | |
| concept | CppClingo::Ground::IsBase |
| Concept for atom bases. | |
| concept | CppClingo::Ground::IsMatch |
| Concept for matchable expressions. | |
| concept | CppClingo::Ground::IsEval |
| Concept for evaluable expressions. | |
Classes | |
| class | CppClingo::Ground::OnceMatcher |
| A matcher that matches only provides one match. More... | |
Functions | |
| auto | CppClingo::Ground::make_once_matcher () -> UMatcher |
| Construct a matcher matching only once. | |
| auto | CppClingo::Ground::make_interval_matcher (std::vector< bool > const &bound, Term const &lhs, Term const &lower, Term const &upper) -> UMatcher |
| Construct an interval matcher. | |
| auto | CppClingo::Ground::make_comp_matcher (std::vector< bool > const &bound, Term const &lhs, Relation rel, Term const &rhs) -> UMatcher |
| Construct a matcher for comparisons. | |
| template<IsEval Expr> | |
| auto | CppClingo::Ground::make_once_matcher (Expr const &expr, typename Expr::Key &target) -> UMatcher |
| Construct a once matcher that also evaluates an expression. | |
| template<IsBase Base, IsMatch Match> | |
| auto | CppClingo::Ground::make_non_fact_matcher (Base &base, Match const &match, typename Match::Key &target) -> UMatcher |
| Construct a matcher for facts. | |
| template<IsBase Base, IsMatch Match> | |
| auto | CppClingo::Ground::make_atom_matcher (std::pmr::monotonic_buffer_resource &mbr, std::vector< bool > const &bound, Base &base, Match const &atom, MatcherType type, size_t &offset) -> UMatcher |
| Construct a matcher for an atom. | |
Data structures and functions to match symbols and expressions.
| auto CppClingo::Ground::make_atom_matcher | ( | std::pmr::monotonic_buffer_resource & | mbr, |
| std::vector< bool > const & | bound, | ||
| Base & | base, | ||
| Match const & | atom, | ||
| MatcherType | type, | ||
| size_t & | offset | ||
| ) | -> UMatcher |
Construct a matcher for an atom.
A base and an atom implementing the IsBase and IsMatch concepts must be given.
| auto CppClingo::Ground::make_comp_matcher | ( | std::vector< bool > const & | bound, |
| Term const & | lhs, | ||
| Relation | rel, | ||
| Term const & | rhs | ||
| ) | -> UMatcher |
Construct a matcher for comparisons.
It matches if lhs rel rhs holds. All variables in lhs and rhs must be bound.
| auto CppClingo::Ground::make_interval_matcher | ( | std::vector< bool > const & | bound, |
| Term const & | lhs, | ||
| Term const & | lower, | ||
| Term const & | upper | ||
| ) | -> UMatcher |
Construct an interval matcher.
It matches [lhs] with all values from the interval [lower, upper]. All variables in lower and upper must be bound.
| auto CppClingo::Ground::make_non_fact_matcher | ( | Base & | base, |
| Match const & | match, | ||
| typename Match::Key & | target | ||
| ) | -> UMatcher |
Construct a matcher for facts.
A matcher for anything that is not a fact. The evaluated match is stored in the given reference.
| auto CppClingo::Ground::make_once_matcher | ( | Expr const & | expr, |
| typename Expr::Key & | target | ||
| ) | -> UMatcher |
Construct a once matcher that also evaluates an expression.
The evaluated match is stored in the given reference.