PandA-2024.02
Public Member Functions | Private Attributes
tree_node_index_factory Struct Reference

#include <tree_nodes_merger.hpp>

Inheritance diagram for tree_node_index_factory:
Inheritance graph
[legend]
Collaboration diagram for tree_node_index_factory:
Collaboration graph
[legend]

Public Member Functions

 tree_node_index_factory (CustomUnorderedMapUnstable< unsigned int, unsigned int > &_remap, const tree_managerRef _TM)
 default constructor More...
 
void create_tree_node (const unsigned int node_id, const tree_nodeRef &tn)
 tree_node visitors More...
 
- Public Member Functions inherited from object_visitor
virtual ~object_visitor ()
 destructor More...
 
 BOOST_PP_SEQ_FOR_EACH (OPERATOR_MACRO, BOOST_PP_EMPTY, VISITED_OBJ_SEQ1)
 virtual template object functor More...
 
 BOOST_PP_SEQ_FOR_EACH (OPERATOR_MACRO, BOOST_PP_EMPTY, VISITED_OBJ_SEQ2)
 

Private Attributes

CustomUnorderedMapUnstable< unsigned int, unsigned int > & remap
 remap old indexes in new indexes More...
 
const tree_managerRef TM
 tree manager More...
 
tree_nodecurr_tree_node_ptr
 current tree node filled according to the tree_node_schema More...
 
bloccurr_bloc
 current basic block pointer More...
 
tree_nodeRef source_tn
 current tree_node source More...
 
blocRef source_bloc
 current basic block source More...
 

Detailed Description

Definition at line 84 of file tree_nodes_merger.hpp.

Constructor & Destructor Documentation

◆ tree_node_index_factory()

tree_node_index_factory::tree_node_index_factory ( CustomUnorderedMapUnstable< unsigned int, unsigned int > &  _remap,
const tree_managerRef  _TM 
)
inline

default constructor

Definition at line 87 of file tree_nodes_merger.hpp.

References object_visitor::BOOST_PP_SEQ_FOR_EACH(), OBJ_NOT_SPECIALIZED_SEQ, OBJ_SPECIALIZED_SEQ, OPERATOR_MACRO, and OPERATOR_MACRO_DECL.

Here is the call graph for this function:

Member Function Documentation

◆ create_tree_node()

void tree_node_index_factory::create_tree_node ( const unsigned int  node_id,
const tree_nodeRef tn 
)

tree_node visitors

Factory method. It creates a tree_node of type equal to the type of tn where all the fields are remapped according the remap relation passed to the constructor

Parameters
node_idis the node id of the created object.
tnis the starting tree node

special care is reserved for identifier_nodes

Definition at line 868 of file tree_nodes_merger.cpp.

References ATTR_MACRO, ATTR_SEQ, object_visitor::BOOST_PP_SEQ_FOR_EACH(), CREATE_TREE_NODE_CASE_BODY, refcount< T >::get(), tree_node::get_kind(), tree_node::get_kind_text(), template_id_expr(), THROW_ASSERT, THROW_ERROR, tree_node_reached::TM, typename_type(), and using_decl().

Referenced by tree_manager::merge_tree_managers().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ curr_bloc

bloc* tree_node_index_factory::curr_bloc
private

current basic block pointer

Definition at line 114 of file tree_nodes_merger.hpp.

◆ curr_tree_node_ptr

tree_node* tree_node_index_factory::curr_tree_node_ptr
private

current tree node filled according to the tree_node_schema

Definition at line 112 of file tree_nodes_merger.hpp.

◆ remap

CustomUnorderedMapUnstable<unsigned int, unsigned int>& tree_node_index_factory::remap
private

remap old indexes in new indexes

Definition at line 106 of file tree_nodes_merger.hpp.

◆ source_bloc

blocRef tree_node_index_factory::source_bloc
private

current basic block source

Definition at line 118 of file tree_nodes_merger.hpp.

◆ source_tn

tree_nodeRef tree_node_index_factory::source_tn
private

current tree_node source

Definition at line 116 of file tree_nodes_merger.hpp.

◆ TM

const tree_managerRef tree_node_index_factory::TM
private

tree manager

Definition at line 109 of file tree_nodes_merger.hpp.


The documentation for this struct was generated from the following files:

Generated on Mon Feb 12 2024 13:04:08 for PandA-2024.02 by doxygen 1.8.13