P4C
The P4 Compiler
IR::Node Class Referenceabstract
Inheritance diagram for IR::Node:
IR::INode Util::IHasSourceInfo IHasDbPrint IR::NameMap< T, MAP, COMP, ALLOC > IR::NodeMap< KEY, VALUE, MAP, COMP, ALLOC > IR::VectorBase IR::Vector< T > IR::Vector< IR::Declaration > IR::Vector< IR::Expression > IR::Vector< IR::Type > IR::IndexedVector< IR::Node > IR::IndexedVector< IR::StatOrDecl > IR::IndexedVector< T > IR::IndexedVector< IR::Declaration >

Public Member Functions

 Node (Util::SourceInfo si)
 
 Node (const Node &other)
 
 Node (JSONLoader &json)
 
const Nodeapply (Visitor &v) const
 
const Nodeapply (Visitor &&v) const
 
virtual void apply_visitor_postorder (Modifier &v)
 
virtual void apply_visitor_postorder (Inspector &v) const
 
virtual const Nodeapply_visitor_postorder (Transform &v)
 
virtual bool apply_visitor_preorder (Modifier &v)
 
virtual bool apply_visitor_preorder (Inspector &v) const
 
virtual const Nodeapply_visitor_preorder (Transform &v)
 
virtual void apply_visitor_revisit (Modifier &v, const Node *n) const
 
virtual void apply_visitor_revisit (Inspector &v) const
 
virtual void apply_visitor_revisit (Transform &v, const Node *n) const
 
template<typename T >
const T & as () const
 
virtual Nodeclone () const =0
 
void dbprint (std::ostream &out) const override
 
virtual void dump_fields (std::ostream &) const
 
const NodegetNode () const final
 
NodegetNode () final
 
Util::SourceInfo getSourceInfo () const override
 
template<typename T >
bool is () const
 
cstring node_type_name () const override
 
virtual int num_children ()
 
bool operator!= (const Node &n) const
 
virtual bool operator== (const Node &a) const
 
template<typename T >
const T * to () const
 
void toJSON (JSONGenerator &json) const override
 
cstring toString () const override
 
void traceCreation () const
 
- Public Member Functions inherited from IR::INode
template<typename T >
const T & as () const
 
template<typename T >
bool is () const
 
template<typename T >
const T * to () const
 
virtual void validate () const
 
- Public Member Functions inherited from IHasDbPrint
void print () const
 

Static Public Member Functions

static cstring static_type_name ()
 

Public Attributes

int id
 
Util::SourceInfo srcInfo
 

Protected Member Functions

void traceVisit (const char *visitor) const
 
virtual void visit_children (Visitor &)
 
virtual void visit_children (Visitor &) const
 

Static Protected Attributes

static int currentId = 0
 

Friends

class ::Inspector
 
class ::Modifier
 
class ::Transform
 
class ::Visitor