3#include <clingo/input/term.hh>
5#include <clingo/core/core.hh>
9namespace CppClingo::Input {
20 [[nodiscard]]
auto sign() const ->
Sign {
return sign_; };
40using Guard = std::pair<Relation, Term>;
51 return std::tuple{
a_loc = &LitBool::loc_,
a_sign = &LitBool::sign_,
a_value = &LitBool::value_};
58 [[nodiscard]]
auto loc() const ->
Location const & {
return loc_; }
60 [[nodiscard]]
auto sign() const ->
Sign {
return sign_; }
62 [[nodiscard]]
auto value() const ->
bool {
return value_; }
77 return std::tuple{
a_loc = &LitComparison::loc_,
a_sign = &LitComparison::sign_,
a_lhs = &LitComparison::lhs_,
78 a_rhs = &LitComparison::rhs_};
83 : loc_{std::move(
loc)}, sign_(
sign), lhs_(std::move(
lhs)), rhs_(std::move(
rhs)) {}
86 [[nodiscard]]
auto loc() const ->
Location const & {
return loc_; }
88 [[nodiscard]]
auto sign() const ->
Sign {
return sign_; }
90 [[nodiscard]]
auto lhs() const ->
Term const & {
return lhs_; }
108 return std::tuple{
a_loc = &LitSymbolic::loc_,
a_sign = &LitSymbolic::sign_,
a_term = &LitSymbolic::term_};
113 : loc_{std::move(
loc)}, sign_(
sign), term_(std::move(
term)) {}
116 [[nodiscard]]
auto loc() const ->
Location const & {
return loc_; }
118 [[nodiscard]]
auto sign() const ->
Sign {
return sign_; }
120 [[nodiscard]]
auto term() const ->
Term const & {
return term_; }
129using Lit = std::variant<LitBool, LitComparison, LitSymbolic>;
139 return std::tuple{
a_loc = &CondLit::loc_,
a_lit = &CondLit::lit_,
a_cond = &CondLit::cond_};
144 : loc_{std::move(
loc)}, lit_{std::move(
lit)}, cond_{std::move(
cond)} {}
146 [[nodiscard]]
auto loc() const ->
Location const & {
return loc_; }
148 [[nodiscard]]
auto lit() const ->
Lit const & {
return lit_; }
The Location of an expression in an input source.
Definition location.hh:44
Sign
Enumeration of signs (default negation).
Definition core.hh:16