7#include <boost/unordered_map.hpp>
8#include <boost/unordered_set.hpp>
17 using boost::unordered_map;
18 using boost::unordered_multimap;
19 using boost::unordered_set;
26 bool operator()(
const std::string & s1,
const std::string & s2)
const
38 size_t operator()(
const int n)
const
48 size_t operator()(
const std::pair<int,int> & p)
const
53 return p.first+p.second;
60 bool operator()(
const std::pair<int,int> & p1,
const std::pair<int,int> & p2)
const
62 return (p1.first == p2.first) && (p1.second == p2.second);
101typedef rose_hash::unordered_multimap<std::string, SgGraphNode*> rose_graph_string_node_hash_multimap_base_type;
118 : rose_graph_string_node_hash_multimap_base_type(), parent(
nullptr)
122 : rose_graph_string_node_hash_multimap_base_type(rhs),parent(rhs.parent)
125 void set_parent(
SgNode * new_parent)
134 void delete_elements()
147 friend class SgSymbolTableStorageClass;
151std::ostream & operator<< ( std::ostream & os,
const rose_graph_string_node_hash_multimap::iterator & rhm_it );
166typedef rose_hash::unordered_multimap<SgGraphNode*, SgGraphEdge*, rose_hash::hash_graph_node, rose_hash::eqstr_graph_node> rose_graph_node_edge_hash_multimap_base_type;
178 : rose_graph_node_edge_hash_multimap_base_type()
184 : rose_graph_node_edge_hash_multimap_base_type(rhs),parent(rhs.parent)
187 void set_parent(
SgNode * new_parent)
196 void delete_elements()
206 friend class SgSymbolTableStorageClass;
210std::ostream & operator<< ( std::ostream & os,
const rose_graph_node_edge_hash_multimap::iterator & rhm_it );
219typedef rose_hash::unordered_map<int, SgGraphNode*, rose_hash::hash_integer> rose_graph_integer_node_hash_map_base_type;
228 : rose_graph_integer_node_hash_map_base_type()
232 : rose_graph_integer_node_hash_map_base_type(rhs),parent(rhs.parent)
235 void set_parent(
SgNode * new_parent)
244 void delete_elements()
254 friend class SgSymbolTableStorageClass;
258std::ostream & operator<< ( std::ostream & os,
const rose_graph_integer_node_hash_map::iterator & rhm_it );
268typedef rose_hash::unordered_map<int,SgGraphEdge*, rose_hash::hash_integer> rose_graph_integer_edge_hash_map_base_type;
281 : rose_graph_integer_edge_hash_map_base_type()
284 : rose_graph_integer_edge_hash_map_base_type(rhs),parent(rhs.parent)
287 void set_parent(
SgNode * new_parent)
296 void delete_elements()
306 friend class SgSymbolTableStorageClass;
310std::ostream & operator<< ( std::ostream & os,
const rose_graph_integer_edge_hash_map::iterator & rhm_it );
320typedef rose_hash::unordered_multimap<int,SgGraphEdge*> rose_graph_integer_edge_hash_multimap_base_type;
333 : rose_graph_integer_edge_hash_multimap_base_type()
336 : rose_graph_integer_edge_hash_multimap_base_type(rhs),parent(rhs.parent)
339 void set_parent(
SgNode * new_parent)
348 void delete_elements()
358 friend class SgSymbolTableStorageClass;
362std::ostream & operator<< ( std::ostream & os,
const rose_graph_integer_edge_hash_multimap::iterator & rhm_it );
381 : rose_graph_integerpair_edge_hash_multimap_base_type()
384 : rose_graph_integerpair_edge_hash_multimap_base_type(rhs),parent(rhs.parent)
387 void set_parent(
SgNode * new_parent)
396 void delete_elements()
406 friend class SgSymbolTableStorageClass;
410std::ostream & operator<< ( std::ostream & os,
const rose_graph_integerpair_edge_hash_multimap::iterator & rhm_it );
420typedef rose_hash::unordered_multimap<std::string, int> rose_graph_string_integer_hash_multimap_base_type;
430 : rose_graph_string_integer_hash_multimap_base_type(), parent(
nullptr)
433 : rose_graph_string_integer_hash_multimap_base_type(rhs),parent(rhs.parent)
437 void set_parent(
SgNode * new_parent)
446 void delete_elements()
458 friend class SgSymbolTableStorageClass;
462std::ostream & operator<< ( std::ostream & os,
const rose_graph_string_integer_hash_multimap::iterator & rhm_it );
Class holding static data and functions supporting File I/O.
This class represents the base class for all IR nodes within Sage III.
Hash name support for symbol tables within ROSE.