souffle  2.0.2-371-g6315b36
Public Types | Public Member Functions | Protected Attributes | Friends
souffle::ast::analysis::Variable< Id, PropertySpace > Struct Template Reference

A variable to be utilized within constraints to be handled by the constraint solver. More...

#include <ConstraintSystem.h>

Collaboration diagram for souffle::ast::analysis::Variable< Id, PropertySpace >:
Collaboration graph

Public Types

using property_space = PropertySpace
 exports the property space More...
 

Public Member Functions

bool operator!= (const Variable &other) const
 Adds support for inequality comparison. More...
 
bool operator< (const Variable &other) const
 Adds support for less-than comparison. More...
 
Variableoperator= (const Variable &)=default
 
Variableoperator= (Variable &&)=default
 
bool operator== (const Variable &other) const
 Adds support for equality comparison. More...
 
virtual void print (std::ostream &out) const
 Adds print support. More...
 
 Variable (const Variable &)=default
 
 Variable (Id id)
 
 Variable (Variable &&)=default
 
virtual ~Variable ()=default
 

Protected Attributes

Id id
 the underlying value giving this variable its identity More...
 

Friends

std::ostream & operator<< (std::ostream &out, const Variable &var)
 Adds print support. More...
 

Detailed Description

template<typename Id, typename PropertySpace>
struct souffle::ast::analysis::Variable< Id, PropertySpace >

A variable to be utilized within constraints to be handled by the constraint solver.

Template Parameters
Idthe type of object this variable shall be bound to
PropertySpacethe property space this variable is associated to

Definition at line 41 of file ConstraintSystem.h.

Member Typedef Documentation

◆ property_space

template<typename Id , typename PropertySpace >
using souffle::ast::analysis::Variable< Id, PropertySpace >::property_space = PropertySpace

exports the property space

Definition at line 139 of file ConstraintSystem.h.

Constructor & Destructor Documentation

◆ Variable() [1/3]

template<typename Id , typename PropertySpace >
souffle::ast::analysis::Variable< Id, PropertySpace >::Variable ( Id  id)
inline

Definition at line 141 of file ConstraintSystem.h.

145 {

◆ ~Variable()

template<typename Id , typename PropertySpace >
virtual souffle::ast::analysis::Variable< Id, PropertySpace >::~Variable ( )
virtualdefault

◆ Variable() [2/3]

template<typename Id , typename PropertySpace >
souffle::ast::analysis::Variable< Id, PropertySpace >::Variable ( const Variable< Id, PropertySpace > &  )
default

◆ Variable() [3/3]

template<typename Id , typename PropertySpace >
souffle::ast::analysis::Variable< Id, PropertySpace >::Variable ( Variable< Id, PropertySpace > &&  )
default

Member Function Documentation

◆ operator!=()

template<typename Id , typename PropertySpace >
bool souffle::ast::analysis::Variable< Id, PropertySpace >::operator!= ( const Variable< Id, PropertySpace > &  other) const
inline

Adds support for inequality comparison.

Definition at line 156 of file ConstraintSystem.h.

◆ operator<()

template<typename Id , typename PropertySpace >
bool souffle::ast::analysis::Variable< Id, PropertySpace >::operator< ( const Variable< Id, PropertySpace > &  other) const
inline

Adds support for less-than comparison.

Definition at line 161 of file ConstraintSystem.h.

◆ operator=() [1/2]

template<typename Id , typename PropertySpace >
Variable& souffle::ast::analysis::Variable< Id, PropertySpace >::operator= ( const Variable< Id, PropertySpace > &  )
default

◆ operator=() [2/2]

template<typename Id , typename PropertySpace >
Variable& souffle::ast::analysis::Variable< Id, PropertySpace >::operator= ( Variable< Id, PropertySpace > &&  )
default

◆ operator==()

template<typename Id , typename PropertySpace >
bool souffle::ast::analysis::Variable< Id, PropertySpace >::operator== ( const Variable< Id, PropertySpace > &  other) const
inline

Adds support for equality comparison.

Definition at line 151 of file ConstraintSystem.h.

155  {

◆ print()

template<typename Id , typename PropertySpace >
virtual void souffle::ast::analysis::Variable< Id, PropertySpace >::print ( std::ostream &  out) const
inlinevirtual

Adds print support.

Reimplemented in souffle::ast::analysis::ConstraintAnalysisVar< PropertySpace >.

Definition at line 166 of file ConstraintSystem.h.

170  :
171  /** the underlying value giving this variable its identity */

Friends And Related Function Documentation

◆ operator<<

template<typename Id , typename PropertySpace >
std::ostream& operator<< ( std::ostream &  out,
const Variable< Id, PropertySpace > &  var 
)
friend

Adds print support.

Definition at line 171 of file ConstraintSystem.h.

185  {

Field Documentation

◆ id

template<typename Id , typename PropertySpace >
Id souffle::ast::analysis::Variable< Id, PropertySpace >::id
protected

the underlying value giving this variable its identity

Definition at line 178 of file ConstraintSystem.h.

Referenced by souffle::ast::analysis::Variable< const Argument *, PropertySpace >::Variable().


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