souffle  2.0.2-371-g6315b36
Data Structures | Namespaces | Macros | Enumerations | Functions
Node.h File Reference
#include "interpreter/Util.h"
#include "ram/Relation.h"
#include "souffle/RamTypes.h"
#include "souffle/utility/ContainerUtil.h"
#include "souffle/utility/MiscUtil.h"
#include <array>
#include <cassert>
#include <cstddef>
#include <memory>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
Include dependency graph for Node.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  souffle::interpreter::AbstractParallel
 node that utilizes parallel execution should inherit from this class. Enable node with its own view context for parallel execution. More...
 
class  souffle::interpreter::Aggregate
 
class  souffle::interpreter::AutoIncrement
 
class  souffle::interpreter::BinaryNode
 Binary node represents interpreter node with two children. More...
 
class  souffle::interpreter::BinRelOperation
 operation that involves with two relations should inherit from this class. E.g. Swap, Extend More...
 
class  souffle::interpreter::Break
 
class  souffle::interpreter::Call
 
class  souffle::interpreter::Choice
 
class  souffle::interpreter::Clear
 
class  souffle::interpreter::CompoundNode
 Compound node represents interpreter node with a list of children. More...
 
class  souffle::interpreter::ConditionalOperation
 Encode a conditional operation for the interpreter node. E.g. Exit, Filter. More...
 
class  souffle::interpreter::Conjunction
 
class  souffle::interpreter::Constant
 
class  souffle::interpreter::Constraint
 
class  souffle::interpreter::DebugInfo
 
class  souffle::interpreter::EmptinessCheck
 
class  souffle::interpreter::ExistenceCheck
 
class  souffle::interpreter::Exit
 
class  souffle::interpreter::Extend
 
class  souffle::interpreter::False
 
class  souffle::interpreter::Filter
 
class  souffle::interpreter::IndexAggregate
 
class  souffle::interpreter::IndexChoice
 
class  souffle::interpreter::IndexScan
 
class  souffle::interpreter::IntrinsicOperator
 
class  souffle::interpreter::IO
 
class  souffle::interpreter::LogRelationTimer
 
class  souffle::interpreter::LogSize
 
class  souffle::interpreter::LogTimer
 
class  souffle::interpreter::Loop
 
class  souffle::interpreter::Negation
 
class  souffle::interpreter::NestedIntrinsicOperator
 
class  souffle::interpreter::NestedOperation
 Encode a nested operation for the interpreter node. E.g. Loop, IndexScan. More...
 
class  souffle::interpreter::Node
 This is a shadow node for a ram::Node that is enriched for with local information so that the interpreter is executing quickly. More...
 
class  souffle::interpreter::PackRecord
 
class  souffle::interpreter::Parallel
 
class  souffle::interpreter::ParallelAggregate
 
class  souffle::interpreter::ParallelChoice
 
class  souffle::interpreter::ParallelIndexAggregate
 
class  souffle::interpreter::ParallelIndexChoice
 
class  souffle::interpreter::ParallelIndexScan
 
class  souffle::interpreter::ParallelScan
 
class  souffle::interpreter::Project
 
class  souffle::interpreter::ProvenanceExistenceCheck
 
class  souffle::interpreter::Query
 
class  souffle::interpreter::RelationSize
 
class  souffle::interpreter::Scan
 
class  souffle::interpreter::Sequence
 
class  souffle::interpreter::SubroutineArgument
 
class  souffle::interpreter::SubroutineReturn
 
class  souffle::interpreter::SuperInstruction
 This class encodes information for a super-instruction, which is used to eliminate Number and TupleElement in index/project/existence operation. More...
 
class  souffle::interpreter::SuperOperation
 node that utilizes the super instruction optimization should inherit from this class. E.g. ExistenceCheck, Project More...
 
class  souffle::interpreter::Swap
 
class  souffle::interpreter::True
 
class  souffle::interpreter::TupleElement
 
class  souffle::interpreter::TupleOperation
 
class  souffle::interpreter::UnaryNode
 Unary node represents interpreter node with a single child. More...
 
class  souffle::interpreter::UnpackRecord
 
class  souffle::interpreter::UserDefinedOperator
 
class  souffle::interpreter::ViewOperation
 operation that utilizes the index view from underlying relation should inherit from this class. More...
 

Namespaces

 souffle
 
 souffle::interpreter
 
 souffle::ram
 

Macros

#define __TO_STRING(a)   #a
 
#define EXPAND_TOKEN(structure, arity, tok)   I_##tok##_##structure##_##arity,
 
#define EXPAND_TOKEN_ENTRY(Structure, arity, tok)   {__TO_STRING(I_##tok##_##Structure##_##arity), I_##tok##_##Structure##_##arity},
 
#define FOR_EACH_INTERPRETER_TOKEN(Forward, Expand)
 
#define SINGLE_TOKEN(tok)   I_##tok,
 
#define SINGLE_TOKEN_ENTRY(tok)   {__TO_STRING(I_##tok), I_##tok},
 

Enumerations

enum  souffle::interpreter::NodeType
 

Functions

NodeType souffle::interpreter::constructNodeType (std::string tokBase, const ram::Relation &rel)
 Construct interpreterNodeType by looking at the representation and the arity of the given rel. More...
 

Macro Definition Documentation

◆ __TO_STRING

#define __TO_STRING (   a)    #a

Definition at line 136 of file Node.h.

◆ EXPAND_TOKEN

#define EXPAND_TOKEN (   structure,
  arity,
  tok 
)    I_##tok##_##structure##_##arity,

Definition at line 121 of file Node.h.

◆ EXPAND_TOKEN_ENTRY

#define EXPAND_TOKEN_ENTRY (   Structure,
  arity,
  tok 
)    {__TO_STRING(I_##tok##_##Structure##_##arity), I_##tok##_##Structure##_##arity},

Definition at line 138 of file Node.h.

◆ FOR_EACH_INTERPRETER_TOKEN

#define FOR_EACH_INTERPRETER_TOKEN (   Forward,
  Expand 
)

Definition at line 68 of file Node.h.

◆ SINGLE_TOKEN

#define SINGLE_TOKEN (   tok)    I_##tok,

Definition at line 119 of file Node.h.

◆ SINGLE_TOKEN_ENTRY

#define SINGLE_TOKEN_ENTRY (   tok)    {__TO_STRING(I_##tok), I_##tok},

Definition at line 137 of file Node.h.