Clingo
Loading...
Searching...
No Matches

Data structures and functions to represent terms. More...

Classes

class  CppClingo::Input::Projection
 Indicate a projected position. More...
 
class  CppClingo::Input::ArgumentTuple
 An argument tuple for a function or directly a tuple. More...
 
class  CppClingo::Input::TermVariable
 Term representing a variable. More...
 
class  CppClingo::Input::TermSymbol
 Term representing a symbol. More...
 
class  CppClingo::Input::TermTuple
 Term representing a tuple. More...
 
class  CppClingo::Input::TermFunction
 Term representing a symbolic or external function. More...
 
class  CppClingo::Input::TermAbs
 Term representing the absolute function. More...
 
class  CppClingo::Input::TermUnary
 Term representing an unary operation. More...
 
class  CppClingo::Input::TermBinary
 Term representing a binary operation. More...
 

Typedefs

using CppClingo::Input::VariableSet = StringSet
 A set of variable names.
 
using CppClingo::Input::VariableVec = StringVec
 A vector of variable names.
 
using CppClingo::Input::Sig = std::tuple< String, size_t, bool >
 The signature of a predicate.
 
using CppClingo::Input::SharedSig = std::tuple< SharedString, size_t, bool >
 The signature of a predicate.
 
using CppClingo::Input::SharedSigSet = Util::ordered_set< SharedSig >
 A set of predicate signatures.
 
using CppClingo::Input::Term = std::variant< TermVariable, TermSymbol, TermTuple, TermFunction, TermAbs, TermUnary, TermBinary >
 Variant holding the different term types.
 
using CppClingo::Input::TermArray = Util::immutable_array< Term >
 A vector of terms.
 
using CppClingo::Input::Argument = std::variant< Projection, Term >
 A variant capturing either a term or a position that is to be projected.
 
using CppClingo::Input::ArgumentArray = Util::immutable_array< Argument >
 A tuple of terms or positions to project.
 
using CppClingo::Input::PoolArray = Util::immutable_array< ArgumentTuple >
 A vector of tuples used as function or predicate arguments.
 
using CppClingo::Input::TupleElement = std::variant< ArgumentTuple, Term >
 A tuple element.
 
using CppClingo::Input::TupleElementArray = Util::immutable_array< TupleElement >
 A vector of tuple elements.
 

Enumerations

enum class  CppClingo::Input::UnaryOperator : uint8_t { UnaryOperator::minus , UnaryOperator::negate }
 Enumeration of available unary operators. More...
 
enum class  CppClingo::Input::BinaryOperator : uint8_t {
  BinaryOperator::and_ , BinaryOperator::div , BinaryOperator::minus , BinaryOperator::mod ,
  BinaryOperator::times , BinaryOperator::or_ , BinaryOperator::plus , BinaryOperator::pow ,
  BinaryOperator::xor_ , BinaryOperator::dots
}
 Enumeration of available binary operators. More...
 

Detailed Description

Data structures and functions to represent terms.

Enumeration Type Documentation

◆ BinaryOperator

enum class CppClingo::Input::BinaryOperator : uint8_t
strong

Enumeration of available binary operators.

Enumerator
and_ 

The AND bit operation.

div 

The (integer) divide arithmetic operation.

minus 

The minus arithmetic operation.

mod 

The modulo arithmetic operation.

times 

The multiply arithmetic operation.

or_ 

The OR bit operation.

plus 

The plus arithmetic operation.

pow 

The exponentiation arithmetic operation.

xor_ 

The XOR bit operation.

dots 

The interval operator.

◆ UnaryOperator

enum class CppClingo::Input::UnaryOperator : uint8_t
strong

Enumeration of available unary operators.

Enumerator
minus 

The unary minus sign (-).

negate 

The unary negation sign (~).