souffle  2.0.2-371-g6315b36
Public Member Functions | Protected Attributes | Private Types
souffle::interpreter::CompoundNode Class Reference

Compound node represents interpreter node with a list of children. More...

#include <Node.h>

Inheritance diagram for souffle::interpreter::CompoundNode:
Inheritance graph
Collaboration diagram for souffle::interpreter::CompoundNode:
Collaboration graph

Public Member Functions

 CompoundNode (enum NodeType ty, const ram::Node *sdw, NodePtrVec children={}, RelationHandle *relHandle=nullptr)
 
const NodegetChild (size_t i) const
 get children of node More...
 
const NodePtrVecgetChildren () const
 get list of all children More...
 
- Public Member Functions inherited from souffle::interpreter::Node
RelationWrappergetRelation () const
 get relation from handle More...
 
const ram::NodegetShadow () const
 get shadow node, i.e., RAM node More...
 
enum NodeType getType () const
 get node type More...
 
 Node (enum NodeType ty, const ram::Node *sdw, RelationHandle *relHandle=nullptr)
 
virtual ~Node ()=default
 

Protected Attributes

NodePtrVec children
 
- Protected Attributes inherited from souffle::interpreter::Node
RelationHandle *const relHandle
 
const ram::Nodeshadow
 
enum NodeType type
 

Private Types

using NodePtrVec = VecOwn< Node >
 

Additional Inherited Members

- Public Types inherited from souffle::interpreter::Node
using RelationHandle = Own< RelationWrapper >
 

Detailed Description

Compound node represents interpreter node with a list of children.

Definition at line 212 of file Node.h.

Member Typedef Documentation

◆ NodePtrVec

Definition at line 213 of file Node.h.

Constructor & Destructor Documentation

◆ CompoundNode()

souffle::interpreter::CompoundNode::CompoundNode ( enum NodeType  ty,
const ram::Node sdw,
NodePtrVec  children = {},
RelationHandle relHandle = nullptr 
)
inline

Definition at line 216 of file Node.h.

217  :

Referenced by souffle::interpreter::Filter::Filter(), and souffle::interpreter::Project::Project().

Member Function Documentation

◆ getChild()

const Node* souffle::interpreter::CompoundNode::getChild ( size_t  i) const
inline

get children of node

Definition at line 221 of file Node.h.

225  : public Node {

◆ getChildren()

const NodePtrVec& souffle::interpreter::CompoundNode::getChildren ( ) const
inline

get list of all children

Definition at line 226 of file Node.h.

226  :
227  UnaryNode(enum NodeType ty, const ram::Node* sdw, Own<Node> child, RelationHandle* relHandle = nullptr)
228  : Node(ty, sdw, relHandle), child(std::move(child)) {}

Field Documentation

◆ children

NodePtrVec souffle::interpreter::CompoundNode::children
protected

Definition at line 231 of file Node.h.


The documentation for this class was generated from the following file:
souffle::interpreter::Node::relHandle
RelationHandle *const relHandle
Definition: Node.h:205
souffle::interpreter::NodeType
NodeType
Definition: Node.h:129
souffle::interpreter::Node::Node
Node(enum NodeType ty, const ram::Node *sdw, RelationHandle *relHandle=nullptr)
Definition: Node.h:182
souffle::interpreter::CompoundNode::children
NodePtrVec children
Definition: Node.h:231
souffle::interpreter::CompoundNode::NodePtrVec
VecOwn< Node > NodePtrVec
Definition: Node.h:213
std
Definition: Brie.h:3053
souffle::interpreter::Node::RelationHandle
Own< RelationWrapper > RelationHandle
Definition: Node.h:180