|
souffle
2.0.2-371-g6315b36
|
Defines a relation with a name, attributes, qualifiers, and internal representation. More...
#include <Relation.h>


Public Member Functions | |
| void | addAttribute (Own< Attribute > attr) |
| Add a new used type to this relation. More... | |
| void | addQualifier (RelationQualifier q) |
| Add qualifier to this relation. More... | |
| void | apply (const NodeMapper &map) override |
| Apply the mapper to all child nodes. More... | |
| Relation * | clone () const override |
| Create a clone (i.e. More... | |
| size_t | getArity () const |
| Return the arity of this relation. More... | |
| std::vector< Attribute * > | getAttributes () const |
| Get relation attributes. More... | |
| std::vector< const Node * > | getChildNodes () const override |
| Obtain a list of all embedded AST child nodes. More... | |
| const QualifiedName & | getQualifiedName () const |
| Get qualified relation name. More... | |
| const std::set< RelationQualifier > & | getQualifiers () const |
| Get relation qualifiers. More... | |
| RelationRepresentation | getRepresentation () const |
| Get relation representation. More... | |
| bool | hasQualifier (RelationQualifier q) const |
| Check for a relation qualifier. More... | |
| Relation ()=default | |
| Relation (QualifiedName name, SrcLocation loc={}) | |
| void | removeQualifier (RelationQualifier q) |
| Remove qualifier from this relation. More... | |
| void | setAttributes (VecOwn< Attribute > attrs) |
| Set relation attributes. More... | |
| void | setQualifiedName (QualifiedName n) |
| Set name for this relation. More... | |
| void | setRepresentation (RelationRepresentation representation) |
| Set relation representation. More... | |
Public Member Functions inherited from souffle::ast::Node | |
| std::string | extloc () const |
| Return source location of the syntactic element. More... | |
| const SrcLocation & | getSrcLoc () const |
| Return source location of the Node. More... | |
| Node (SrcLocation loc={}) | |
| bool | operator!= (const Node &other) const |
| Inequality check for two AST nodes. More... | |
| bool | operator== (const Node &other) const |
| Equivalence check for two AST nodes. More... | |
| void | setSrcLoc (SrcLocation l) |
| Set source location for the Node. More... | |
| virtual | ~Node ()=default |
Protected Member Functions | |
| bool | equal (const Node &node) const override |
| Abstract equality check for two AST nodes. More... | |
| void | print (std::ostream &os) const override |
| Output to a given output stream. More... | |
Protected Attributes | |
| VecOwn< Attribute > | attributes |
| Attributes of the relation. More... | |
| QualifiedName | name |
| Name of relation. More... | |
| std::set< RelationQualifier > | qualifiers |
| Qualifiers of relation. More... | |
| RelationRepresentation | representation {RelationRepresentation::DEFAULT} |
| Datastructure to use for this relation. More... | |
Defines a relation with a name, attributes, qualifiers, and internal representation.
Definition at line 49 of file Relation.h.
|
default |
|
inline |
Definition at line 52 of file Relation.h.
Add a new used type to this relation.
Definition at line 67 of file Relation.h.
References attributes.
|
inline |
|
inlineoverridevirtual |
Apply the mapper to all child nodes.
Reimplemented from souffle::ast::Node.
Definition at line 125 of file Relation.h.
References attributes.
|
inlineoverridevirtual |
Create a clone (i.e.
deep copy) of this node
Implements souffle::ast::Node.
Definition at line 117 of file Relation.h.
|
inlineoverrideprotectedvirtual |
Abstract equality check for two AST nodes.
Reimplemented from souffle::ast::Node.
Definition at line 145 of file Relation.h.
|
inline |
Return the arity of this relation.
Definition at line 73 of file Relation.h.
|
inline |
|
inlineoverridevirtual |
Obtain a list of all embedded AST child nodes.
Reimplemented from souffle::ast::Node.
Definition at line 131 of file Relation.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineoverrideprotectedvirtual |
Output to a given output stream.
Implements souffle::ast::Node.
Definition at line 140 of file Relation.h.
|
inline |
Set relation attributes.
Definition at line 78 of file Relation.h.
|
inline |
|
inline |
Attributes of the relation.
Definition at line 154 of file Relation.h.
Referenced by addAttribute(), and apply().
|
protected |
Name of relation.
Definition at line 151 of file Relation.h.
|
protected |
Qualifiers of relation.
Definition at line 157 of file Relation.h.
|
protected |
Datastructure to use for this relation.
Definition at line 160 of file Relation.h.
1.8.17