| souffle
    2.0.2-371-g6315b36
    | 
 
 
 
Go to the documentation of this file.
   37         return current->getQualifiedName() == 
relation->getQualifiedName();
 
   39     assert(existingRelation == 
nullptr && 
"Redefinition of relation!");
 
   45         const auto& 
rel = *it;
 
   46         if (
rel->getQualifiedName() == name) {
 
   55     assert(clause != 
nullptr && 
"Undefined clause");
 
   56     assert(clause->getHead() != 
nullptr && 
"Undefined head of the clause");
 
   57     clauses.push_back(std::move(clause));
 
   62         if (**it == *clause) {
 
   72         if (**it == *directive) {
 
   82             [&](
const Type* current) { 
return current->getQualifiedName() == 
type->getQualifiedName(); });
 
   83     assert(existingType == 
nullptr && 
"Redefinition of type!");
 
   88     assert(pragma && 
"NULL pragma");
 
   89     pragmas.push_back(std::move(pragma));
 
   95     assert(existingFunctorDecl == 
nullptr && 
"Redefinition of functor!");
 
  
User-defined functor declaration.
std::vector< FunctorDeclaration * > getFunctorDeclarations() const
Return functor declarations.
VecOwn< Pragma > pragmas
Pragmas.
const std::string & getName() const
Return name.
VecOwn< Directive > directives
Directives.
VecOwn< Relation > relations
Program relations.
An abstract base class for types to be covered within a type environment.
VecOwn< Clause > clauses
Program clauses.
void addPragma(Own< Pragma > pragma)
bool removeRelationDecl(const QualifiedName &name)
Remove relation.
a directive has a type (e.g. input/output/printsize/limitsize), qualified relation name,...
void addType(Own< Type > type)
Add a type declaration.
void addClause(Own< Clause > clause)
Add a clause.
VecOwn< FunctorDeclaration > functors
External Functors.
std::vector< Relation * > getRelations() const
Return relations.
void clearComponents()
Remove components and components' instantiations.
void addRelation(Own< Relation > relation)
std::vector< Type * > getTypes() const
Return types.
C::value_type getIf(const C &container, std::function< bool(const typename C::value_type)> pred)
Returns the first element in a container that satisfies a given predicate, nullptr otherwise.
bool removeDirective(const Directive *directive)
Remove a directive.
void addFunctorDeclaration(Own< FunctorDeclaration > functor)
VecOwn< Component > components
Component definitions.
VecOwn< Type > types
Program types
Qualified Name class defines fully/partially qualified names to identify objects in components.
void rel(size_t limit, bool showLimit=true)
bool removeClause(const Clause *clause)
Remove a clause.
VecOwn< ComponentInit > instantiations
Component instantiations.