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