clingo
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Public Types | Public Member Functions | List of all members
Gringo::Input::Literal Struct Referenceabstract

#include <literal.hh>

Inheritance diagram for Gringo::Input::Literal:
Inheritance graph
Collaboration diagram for Gringo::Input::Literal:
Collaboration graph

Public Types

using AssignVec = std::vector< std::pair< UTerm, UTerm >>
 

Public Member Functions

virtual ULitVec unpool (bool beforeRewrite) const =0
 
virtual void simplify (Projections &project, Term::DotsMap &dots, Term::ScriptMap &scripts, unsigned &auxNum, bool positional=true)=0
 Simplifies the literal. More...
 
virtual void collect (VarTermBoundVec &vars, bool bound) const =0
 
virtual void rewriteArithmetics (Term::ArithmeticsMap &arith, AssignVec &assign, unsigned &auxNum)=0
 
virtual void toTuple (UTermVec &tuple, int &id)=0
 
virtual Value isEDB () const
 
virtual bool hasPool (bool beforeRewrite) const =0
 
virtual void replace (Defines &dx)=0
 
virtual Ground::ULit toGround (PredDomMap &x) const =0
 
virtual ULit shift (bool negate)=0
 
virtual UTerm headRepr () const =0
 
virtual ~Literal ()
 
- Public Member Functions inherited from Gringo::Printable
virtual void print (std::ostream &out) const =0
 
virtual ~Printable ()
 
- Public Member Functions inherited from Gringo::Hashable
virtual size_t hash () const =0
 
virtual ~Hashable ()
 
- Public Member Functions inherited from Gringo::Locatable
virtual Location const & loc () const =0
 
virtual void loc (Location const &loc)=0
 
virtual ~Locatable ()
 
- Public Member Functions inherited from Gringo::Comparable< Literal >
virtual bool operator== (Literalconst &other) const =0
 
virtual bool operator!= (Literalconst &other) const
 
virtual ~Comparable ()
 
- Public Member Functions inherited from Gringo::Clonable< Literal >
virtual Literal * clone () const =0
 
virtual ~Clonable ()
 

Member Typedef Documentation

using Gringo::Input::Literal::AssignVec = std::vector<std::pair<UTerm, UTerm>>

Constructor & Destructor Documentation

virtual Gringo::Input::Literal::~Literal ( )
inlinevirtual

Member Function Documentation

virtual void Gringo::Input::Literal::collect ( VarTermBoundVec vars,
bool  bound 
) const
pure virtual

Collects variables.

Precondition
Must be called after simplify to properly account for bound variables.

Implemented in Gringo::Input::CSPLiteral, Gringo::Input::FalseLiteral, Gringo::Input::ScriptLiteral, Gringo::Input::RangeLiteral, Gringo::Input::RelationLiteral, and Gringo::Input::PredicateLiteral.

virtual bool Gringo::Input::Literal::hasPool ( bool  beforeRewrite) const
pure virtual
virtual UTerm Gringo::Input::Literal::headRepr ( ) const
pure virtual
Value Gringo::Input::Literal::isEDB ( ) const
virtual
virtual void Gringo::Input::Literal::replace ( Defines dx)
pure virtual
virtual void Gringo::Input::Literal::rewriteArithmetics ( Term::ArithmeticsMap arith,
AssignVec assign,
unsigned &  auxNum 
)
pure virtual

Removes non-invertible arithmetics.

Note
This method will not be called for head literals.

Implemented in Gringo::Input::CSPLiteral, Gringo::Input::FalseLiteral, Gringo::Input::ScriptLiteral, Gringo::Input::RangeLiteral, Gringo::Input::RelationLiteral, and Gringo::Input::PredicateLiteral.

virtual ULit Gringo::Input::Literal::shift ( bool  negate)
pure virtual
virtual void Gringo::Input::Literal::simplify ( Projections project,
Term::DotsMap dots,
Term::ScriptMap scripts,
unsigned &  auxNum,
bool  positional = true 
)
pure virtual
virtual Ground::ULit Gringo::Input::Literal::toGround ( PredDomMap x) const
pure virtual
virtual void Gringo::Input::Literal::toTuple ( UTermVec tuple,
int &  id 
)
pure virtual
virtual ULitVec Gringo::Input::Literal::unpool ( bool  beforeRewrite) const
pure virtual

Removes all occurrences of PoolTerm instances. Returns all unpooled incarnations of the literal.

Note
The literal becomes unusable after the method returns.
Postcondition
The returned pool does not contain PoolTerm instances.

Implemented in Gringo::Input::CSPLiteral, Gringo::Input::FalseLiteral, Gringo::Input::ScriptLiteral, Gringo::Input::RangeLiteral, Gringo::Input::RelationLiteral, Gringo::Input::ProjectionLiteral, and Gringo::Input::PredicateLiteral.


The documentation for this struct was generated from the following files: