3#include <clingo/input/aggregate.hh>
4#include <clingo/input/literal.hh>
5#include <clingo/input/theory.hh>
9namespace CppClingo::Input {
18 static constexpr auto attributes() {
return std::tuple{
a_lit = &HdLitSimple::lit_}; }
25 [[nodiscard]]
auto lit() const ->
Lit const & {
return lit_; }
41 return std::tuple{
a_loc = &HdLitDisjunction::loc_,
a_elems = &HdLitDisjunction::elems_};
46 : loc_{std::move(
loc)}, elems_{std::move(
elems)} {}
48 [[nodiscard]]
auto loc() const ->
Location const & {
return loc_; }
62 return std::tuple{
a_loc = &HdLitAggregateElement::loc_,
a_tuple = &HdLitAggregateElement::tuple_,
63 a_lit = &HdLitAggregateElement::lit_,
a_cond = &HdLitAggregateElement::cond_};
94 return std::tuple{
a_loc = &HdLitAggregate::loc_,
a_lhs = &HdLitAggregate::lhs_,
a_fun = &HdLitAggregate::fun_,
95 a_elems = &HdLitAggregate::elems_,
a_rhs = &HdLitAggregate::rhs_};
101 : loc_{std::move(
loc)}, fun_(
fun), elems_(std::move(
elems)), lhs_{std::move(
lhs)}, rhs_{std::move(
rhs)} {}
111 [[nodiscard]]
auto loc() const ->
Location const & {
return loc_; }
117 [[nodiscard]]
auto lhs() const ->
LGuard const & {
return lhs_; }
119 [[nodiscard]]
auto rhs() const ->
RGuard const & {
return rhs_; }
130using HdLit = std::variant<HdLitSimple, HdLitDisjunction, HdLitAggregate, HdLitSetAggregate, HdLitTheoryAtom>;
The Location of an expression in an input source.
Definition location.hh:44
auto location(T const &x) -> Location const &
Get the location of an expression.
Definition location.hh:123
Relation
Enumeration of supported relations.
Definition core.hh:35
AggregateFunction
Enumeration of aggregate functions.
Definition core.hh:87