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 = &BdLitSimple::lit_}; }
25 [[nodiscard]]
auto lit() const ->
Lit const & {
return lit_; }
35 static constexpr auto attributes() {
return std::tuple{
a_lit = &BdLitConjunction::lit_}; }
42 [[nodiscard]]
auto lit() const ->
CondLit const & {
return lit_; }
53 return std::tuple{
a_loc = &BdLitAggregateElement::loc_,
a_tuple = &BdLitAggregateElement::tuple_,
54 a_cond = &BdLitAggregateElement::cond_};
82 return std::tuple{
a_loc = &BdLitAggregate::loc_,
a_sign = &BdLitAggregate::sign_,
83 a_lhs = &BdLitAggregate::lhs_,
a_fun = &BdLitAggregate::fun_,
84 a_elems = &BdLitAggregate::elems_,
a_rhs = &BdLitAggregate::rhs_};
90 : loc_{std::move(
loc)}, sign_{
sign}, fun_(
fun), elems_(std::move(
elems)), lhs_{std::move(
lhs)},
91 rhs_{std::move(
rhs)} {}
94 [[nodiscard]]
auto loc() const ->
Location const & {
return loc_; }
96 [[nodiscard]]
auto sign() const ->
Sign {
return sign_; }
102 [[nodiscard]]
auto lhs() const ->
LGuard const & {
return lhs_; }
104 [[nodiscard]]
auto rhs() const ->
RGuard const & {
return rhs_; }
116using BdLit = std::variant<BdLitSimple, BdLitConjunction, BdLitAggregate, BdLitSetAggregate, BdLitTheoryAtom>;
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
Sign
Enumeration of signs (default negation).
Definition core.hh:16
AggregateFunction
Enumeration of aggregate functions.
Definition core.hh:87
std::variant< BdLitSimple, BdLitConjunction, BdLitAggregate, BdLitSetAggregate, BdLitTheoryAtom > BdLit
A body literal.
Definition body_literal.hh:116