PandA-2024.02
Macros | Functions | Variables
tree_node.cpp File Reference

Class implementation of the tree_node structures. More...

#include "config_HAVE_TREE_MANIPULATION_BUILT.hpp"
#include "config_HAVE_TREE_PARSER_BUILT.hpp"
#include "token_interface.hpp"
#include <ostream>
#include "dbgPrintHelper.hpp"
#include "gimple_writer.hpp"
#include "string_manipulation.hpp"
#include "tree_basic_block.hpp"
#include "tree_helper.hpp"
#include "tree_manager.hpp"
#include "tree_node.hpp"
#include "tree_reindex.hpp"
#include <boost/preprocessor/facilities/empty.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <iostream>
#include <unordered_map>
#include <utility>
#include "config_HAVE_ASSERTS.hpp"
Include dependency graph for tree_node.cpp:

Go to the source code of this file.

Macros

#define VISIT_TREE_NODE_MACRO(r, data, elem)
 Autoheader include. More...
 
#define NAME_KIND(r, data, elem)
 
#define KIND_NAME(r, data, elem)
 

Functions

 BOOST_PP_SEQ_FOR_EACH (VISIT_TREE_NODE_MACRO, tree_node,(ctor_initializer)(trait_expr)) BOOST_PP_SEQ_FOR_EACH(VISIT_TREE_NODE_MACRO
 
() label_decl() using_decl (translation_unit_decl)) BOOST_PP_SEQ_FOR_EACH(VISIT_TREE_NODE_MACRO
 
() label_decl()() modop_expr() new_expr() placeholder_expr() template_id_expr (vec_new_expr)) BOOST_PP_SEQ_FOR_EACH(VISIT_TREE_NODE_MACRO
 
() label_decl()() modop_expr() new_expr() placeholder_expr()() boolean_type() CharType() nullptr_type() lang_type() offset_type() qual_union_type() set_type() template_type_parm() typename_type (void_type)) void tree_node
 
std::ostream & operator<< (std::ostream &os, const tree_nodeRef &tn)
 

Variables

 decl_node
 
() label_decl() expr_node
 
() label_decl()() modop_expr() new_expr() placeholder_expr() type_node
 

Detailed Description

Class implementation of the tree_node structures.

This file implements some of the tree_node member functions and define a global variable.

Author
Fabrizio Ferrandi fabri.nosp@m.zio..nosp@m.ferra.nosp@m.ndi@.nosp@m.polim.nosp@m.i.it
Marco Lattuada lattu.nosp@m.ada@.nosp@m.elet..nosp@m.poli.nosp@m.mi.it $Revision$ $Date$ Last modified by $Author$

Definition in file tree_node.cpp.

Macro Definition Documentation

◆ KIND_NAME

#define KIND_NAME (   r,
  data,
  elem 
)
Value:
name = #elem; \
name = name.substr(19); \
name = name.substr(name.front() == ' ', name.find(')') - (name.front() == ' ')); \
out[BOOST_PP_CAT(elem, _K)] = name;

Referenced by tree_node::GetString().

◆ NAME_KIND

#define NAME_KIND (   r,
  data,
  elem 
)
Value:
name = #elem; \
name = name.substr(19); \
name = name.substr(name.front() == ' ', name.find(')') - (name.front() == ' ')); \
out[name] = BOOST_PP_CAT(elem, _K);

Referenced by tree_node::get_kind().

◆ VISIT_TREE_NODE_MACRO

#define VISIT_TREE_NODE_MACRO (   r,
  data,
  elem 
)
Value:
void elem::visit(tree_node_visitor* const v) const \
{ \
unsigned int mask = ALL_VISIT; \
(*v)(this, mask); \
VISIT_SC(mask, data, visit(v)); \
}
#define ALL_VISIT
constant used to allow member visit
Definition: visitor.hpp:71

Autoheader include.

parser/compiler include Tree include Utility include forward declaration macro

Definition at line 76 of file tree_node.cpp.

Referenced by tree_node::GetString().

Function Documentation

◆ BOOST_PP_SEQ_FOR_EACH()

BOOST_PP_SEQ_FOR_EACH ( VISIT_TREE_NODE_MACRO  ,
tree_node  ,
(ctor_initializer)(trait_expr)   
)

Referenced by tree_node::get_kind(), and tree_node::GetString().

Here is the caller graph for this function:

◆ operator<<()

std::ostream& operator<< ( std::ostream &  os,
const tree_nodeRef tn 
)
Parameters
osis the output stream
tnis the tree_node to be printed

Definition at line 192 of file tree_node.cpp.

References refcount< T >::get().

Here is the call graph for this function:

◆ template_id_expr()

() label_decl()() modop_expr() new_expr() placeholder_expr() template_id_expr ( vec_new_expr  )

◆ typename_type()

() label_decl()() modop_expr() new_expr() placeholder_expr()() boolean_type() CharType() nullptr_type() lang_type() offset_type() qual_union_type() set_type() template_type_parm() typename_type ( void_type  )

Definition at line 168 of file tree_node.cpp.

References ALL_VISIT, tree_node::index, tree_node::operator<<, tree_node::ToString(), and tree_node::visit().

Referenced by tree_node_factory::create_tree_node(), tree_node_dup::create_tree_node(), and tree_node_index_factory::create_tree_node().

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

◆ using_decl()

() label_decl() using_decl ( translation_unit_decl  )

Variable Documentation

◆ decl_node

Definition at line 163 of file tree_node.cpp.

Referenced by tree_manager::get_implementation_node().

◆ expr_node

() label_decl() expr_node

Definition at line 164 of file tree_node.cpp.

◆ type_node

() label_decl()() modop_expr() new_expr() placeholder_expr() type_node

Generated on Mon Feb 12 2024 13:03:34 for PandA-2024.02 by doxygen 1.8.13