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.