cprover
|
Non-graph-based representation of the class hierarchy. More...
#include <class_hierarchy.h>
Classes | |
class | entryt |
Public Types | |
typedef std::vector< irep_idt > | idst |
typedef std::map< irep_idt, entryt > | class_mapt |
Public Member Functions | |
void | operator() (const symbol_tablet &) |
Looks for all the struct types in the symbol table and construct a map from class names to a data structure that contains lists of parent and child classes for each struct type (ie class). More... | |
idst | get_children_trans (const irep_idt &id) const |
idst | get_parents_trans (const irep_idt &id) const |
void | output (std::ostream &, bool children_only) const |
Output the class hierarchy in plain text. More... | |
void | output_dot (std::ostream &) const |
Output class hierarchy in Graphviz DOT format. More... | |
void | output (json_stream_arrayt &, bool children_only) const |
Output the class hierarchy in JSON format. More... | |
Public Attributes | |
class_mapt | class_map |
Protected Member Functions | |
void | get_children_trans_rec (const irep_idt &, idst &) const |
void | get_parents_trans_rec (const irep_idt &, idst &) const |
Get all the classes that class c inherits from (directly or indirectly). More... | |
Non-graph-based representation of the class hierarchy.
class_hierarchy_grapht
is a more advanced graph-based representation of the class hierarchy and its use is preferred over class_hierarchy_classt
. Definition at line 43 of file class_hierarchy.h.
typedef std::map<irep_idt, entryt> class_hierarchyt::class_mapt |
Definition at line 55 of file class_hierarchy.h.
typedef std::vector<irep_idt> class_hierarchyt::idst |
Definition at line 46 of file class_hierarchy.h.
Definition at line 61 of file class_hierarchy.h.
References get_children_trans_rec().
Referenced by ci_lazy_methodst::get_virtual_method_targets(), remove_instanceoft::lower_instanceof(), and uncaught_exceptions_domaint::transform().
Definition at line 128 of file class_hierarchy.cpp.
References class_hierarchyt::entryt::children, and class_map.
Referenced by get_children_trans().
Definition at line 69 of file class_hierarchy.h.
References get_parents_trans_rec().
Referenced by taint_analysist::instrument().
Get all the classes that class c inherits from (directly or indirectly).
The first element(s) will be the immediate parents of c, though after this the order is all the parents of the first immediate parent
c | The class to consider | |
[out] | dest | A list of class ids that c eventually inherits from. |
Definition at line 180 of file class_hierarchy.cpp.
References class_map, and class_hierarchyt::entryt::parents.
Referenced by get_parents_trans().
void class_hierarchyt::operator() | ( | const symbol_tablet & | symbol_table | ) |
Looks for all the struct types in the symbol table and construct a map from class names to a data structure that contains lists of parent and child classes for each struct type (ie class).
symbol_table | The symbol table to analyze |
Definition at line 149 of file class_hierarchy.cpp.
References class_map, dstringt::empty(), irept::find(), irept::get_bool(), irept::get_sub(), symbol_table_baset::symbols, and to_struct_type().
void class_hierarchyt::output | ( | std::ostream & | out, |
bool | children_only | ||
) | const |
Output the class hierarchy in plain text.
out | the output stream |
children_only | print the children only and do not print the parents |
Definition at line 200 of file class_hierarchy.cpp.
References class_map.
Referenced by show_class_hierarchy().
void class_hierarchyt::output | ( | json_stream_arrayt & | json_stream, |
bool | children_only | ||
) | const |
Output the class hierarchy in JSON format.
json_stream | the output JSON stream array |
children_only | print the children only and do not print the parents |
Definition at line 240 of file class_hierarchy.cpp.
References class_map, jsont::json_boolean(), json_stream_arrayt::push_back(), json_stream_objectt::push_back_stream_array(), and json_stream_arrayt::push_back_stream_object().
void class_hierarchyt::output_dot | ( | std::ostream & | ostr | ) | const |
Output class hierarchy in Graphviz DOT format.
ostr | stream to write DOT to |
Definition at line 219 of file class_hierarchy.cpp.
References class_map.
Referenced by goto_instrument_parse_optionst::doit().
class_mapt class_hierarchyt::class_map |
Definition at line 56 of file class_hierarchy.h.
Referenced by get_any_incomplete_ancestor_for_stub_static_field(), remove_virtual_functionst::get_child_functions_rec(), get_children_trans_rec(), get_parents_trans_rec(), operator()(), resolve_inherited_componentt::operator()(), output(), output_dot(), and resolve_inherited_componentt::resolve_inherited_componentt().