| souffle
    2.0.2-371-g6315b36
    | 
Node is a superclass for all RAM IR classes. More...
#include <Node.h>


| Public Member Functions | |
| virtual void | apply (const NodeMapper &) | 
| Apply the mapper to all child nodes.  More... | |
| virtual Node * | clone () const =0 | 
| Create a clone (i.e.  More... | |
| virtual std::vector< const Node * > | getChildNodes () const | 
| Obtain list of all embedded child nodes.  More... | |
| bool | operator!= (const Node &other) const | 
| Inequality check for two RAM nodes.  More... | |
| bool | operator== (const Node &other) const | 
| Equivalence check for two RAM nodes.  More... | |
| virtual void | rewrite (const Node *oldNode, Own< Node > newNode) | 
| Rewrite a child node.  More... | |
| virtual | ~Node ()=default | 
| Protected Member Functions | |
| virtual bool | equal (const Node &) const | 
| Equality check for two RAM nodes.  More... | |
| virtual void | print (std::ostream &out=std::cout) const =0 | 
| Print RAM node.  More... | |
| Friends | |
| std::ostream & | operator<< (std::ostream &out, const Node &node) | 
| Print RAM on a stream.  More... | |
| 
 | virtualdefault | 
| 
 | inlinevirtual | 
Apply the mapper to all child nodes.
Reimplemented in souffle::ram::Program, souffle::ram::NestedIntrinsicOperator, souffle::ram::Constraint, souffle::ram::IndexOperation, souffle::ram::Project, souffle::ram::UnpackRecord, souffle::ram::Conjunction, souffle::ram::AbstractExistenceCheck, souffle::ram::IndexAggregate, souffle::ram::NestedOperation, souffle::ram::SubroutineReturn, souffle::ram::Aggregate, souffle::ram::PackRecord, souffle::ram::LogRelationTimer, souffle::ram::Query, souffle::ram::IndexChoice, souffle::ram::Negation, souffle::ram::Exit, souffle::ram::LogTimer, souffle::ram::Loop, souffle::ram::Choice, souffle::ram::ListStatement, souffle::ram::AbstractOperator, souffle::ram::AbstractConditional, and souffle::ram::DebugInfo.
Definition at line 71 of file Node.h.
Referenced by souffle::ram::LogRelationTimer::clone().
| 
 | pure virtual | 
Create a clone (i.e.
deep copy) of this node
Implemented in souffle::ram::NestedOperation, souffle::ram::AbstractConditional, souffle::ram::RelationOperation, souffle::ram::TupleOperation, souffle::ram::Statement, souffle::ram::Condition, souffle::ram::Operation, souffle::ram::Expression, souffle::ram::Program, souffle::ram::Relation, souffle::ram::IndexOperation, souffle::ram::IndexChoice, souffle::ram::NestedIntrinsicOperator, souffle::ram::Constraint, souffle::ram::Project, souffle::ram::Conjunction, souffle::ram::UnpackRecord, souffle::ram::UserDefinedOperator, souffle::ram::Choice, souffle::ram::Aggregate, souffle::ram::SubroutineReturn, souffle::ram::LogRelationTimer, souffle::ram::ParallelIndexChoice, souffle::ram::IndexAggregate, souffle::ram::Query, souffle::ram::Negation, souffle::ram::ParallelIndexScan, souffle::ram::Exit, souffle::ram::LogTimer, souffle::ram::Loop, souffle::ram::PackRecord, souffle::ram::EmptinessCheck, souffle::ram::IndexScan, souffle::ram::ParallelAggregate, souffle::ram::ParallelIndexAggregate, souffle::ram::RelationSize, souffle::ram::IO, souffle::ram::Parallel, souffle::ram::ParallelChoice, souffle::ram::ParallelScan, souffle::ram::DebugInfo, souffle::ram::Extend, souffle::ram::IntrinsicOperator, souffle::ram::TupleElement, souffle::ram::Break, souffle::ram::Clear, souffle::ram::Filter, souffle::ram::ExistenceCheck, souffle::ram::Scan, souffle::ram::Call, souffle::ram::FloatConstant, souffle::ram::SignedConstant, souffle::ram::UnsignedConstant, souffle::ram::SubroutineArgument, souffle::ram::LogSize, souffle::ram::ProvenanceExistenceCheck, souffle::ram::Swap, souffle::ram::Sequence, souffle::ram::False, souffle::ram::True, souffle::ram::AutoIncrement, and souffle::ram::UndefValue.
| 
 | inlineprotectedvirtual | 
Equality check for two RAM nodes.
Default action is that nothing needs to be checked.
Reimplemented in souffle::ram::IndexOperation, souffle::ram::Program, souffle::ram::Relation, souffle::ram::IndexChoice, souffle::ram::NestedIntrinsicOperator, souffle::ram::Constraint, souffle::ram::Project, souffle::ram::IndexAggregate, souffle::ram::SubroutineReturn, souffle::ram::UnpackRecord, souffle::ram::UserDefinedOperator, souffle::ram::Aggregate, souffle::ram::Choice, souffle::ram::AbstractExistenceCheck, souffle::ram::Conjunction, souffle::ram::NestedOperation, souffle::ram::PackRecord, souffle::ram::Query, souffle::ram::Loop, souffle::ram::Negation, souffle::ram::Exit, souffle::ram::IntrinsicOperator, souffle::ram::EmptinessCheck, souffle::ram::IO, souffle::ram::ListStatement, souffle::ram::AbstractOperator, souffle::ram::RelationSize, souffle::ram::AbstractConditional, souffle::ram::TupleElement, souffle::ram::Call, souffle::ram::LogSize, souffle::ram::SubroutineArgument, souffle::ram::TupleOperation, souffle::ram::BinRelationStatement, souffle::ram::RelationOperation, souffle::ram::RelationStatement, and souffle::ram::Constant.
| 
 | inlinevirtual | 
Obtain list of all embedded child nodes.
Reimplemented in souffle::ram::IndexChoice, souffle::ram::Constraint, souffle::ram::Choice, souffle::ram::NestedIntrinsicOperator, souffle::ram::IndexOperation, souffle::ram::Program, souffle::ram::Conjunction, souffle::ram::NestedOperation, souffle::ram::AbstractExistenceCheck, souffle::ram::Project, souffle::ram::UnpackRecord, souffle::ram::Query, souffle::ram::Aggregate, souffle::ram::LogRelationTimer, souffle::ram::Negation, souffle::ram::Exit, souffle::ram::LogTimer, souffle::ram::Loop, souffle::ram::SubroutineReturn, souffle::ram::IndexAggregate, souffle::ram::ListStatement, souffle::ram::PackRecord, souffle::ram::AbstractConditional, souffle::ram::AbstractOperator, souffle::ram::TupleOperation, and souffle::ram::DebugInfo.
Definition at line 93 of file Node.h.
Referenced by souffle::ast::Visitor< void >::visitNode(), and souffle::ram::Visitor< Own< Node > >::visitNode().
| 
 | inline | 
| 
 | inline | 
Equivalence check for two RAM nodes.
| 
 | protectedpure virtual | 
Print RAM node.
Implemented in souffle::ram::Program, souffle::ram::Relation, souffle::ram::Constraint, souffle::ram::AbstractExistenceCheck, souffle::ram::Conjunction, souffle::ram::UserDefinedOperator, souffle::ram::PackRecord, souffle::ram::Negation, souffle::ram::EmptinessCheck, souffle::ram::IntrinsicOperator, souffle::ram::RelationSize, souffle::ram::TupleElement, souffle::ram::ProvenanceExistenceCheck, souffle::ram::FloatConstant, souffle::ram::SignedConstant, souffle::ram::UnsignedConstant, souffle::ram::SubroutineArgument, souffle::ram::False, souffle::ram::True, souffle::ram::AutoIncrement, souffle::ram::UndefValue, souffle::ram::Statement, and souffle::ram::Operation.
| 
 | inlinevirtual | 
| 
 | friend | 
 1.8.17
 1.8.17