CBMC
class_hierarchyt Class Reference

Non-graph-based representation of the class hierarchy. More...

#include <class_hierarchy.h>

+ Collaboration diagram for class_hierarchyt:

Classes

class  entryt
 

Public Types

typedef std::vector< irep_idtidst
 
typedef std::map< irep_idt, entrytclass_mapt
 

Public Member Functions

void operator() (const symbol_table_baset &)
 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...
 
 class_hierarchyt ()=default
 
 class_hierarchyt (const symbol_table_baset &symbol_table)
 
 class_hierarchyt (const class_hierarchyt &)=delete
 
class_hierarchytoperator= (const class_hierarchyt &)=delete
 
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...
 

Detailed Description

Non-graph-based representation of the class hierarchy.

Deprecated:
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 40 of file class_hierarchy.h.

Member Typedef Documentation

◆ class_mapt

Definition at line 52 of file class_hierarchy.h.

◆ idst

typedef std::vector<irep_idt> class_hierarchyt::idst

Definition at line 43 of file class_hierarchy.h.

Constructor & Destructor Documentation

◆ class_hierarchyt() [1/3]

class_hierarchyt::class_hierarchyt ( )
default

◆ class_hierarchyt() [2/3]

class_hierarchyt::class_hierarchyt ( const symbol_table_baset symbol_table)
inlineexplicit

Definition at line 58 of file class_hierarchy.h.

◆ class_hierarchyt() [3/3]

class_hierarchyt::class_hierarchyt ( const class_hierarchyt )
delete

Member Function Documentation

◆ get_children_trans()

idst class_hierarchyt::get_children_trans ( const irep_idt id) const
inline

Definition at line 66 of file class_hierarchy.h.

◆ get_children_trans_rec()

void class_hierarchyt::get_children_trans_rec ( const irep_idt c,
idst dest 
) const
protected

Definition at line 129 of file class_hierarchy.cpp.

◆ get_parents_trans()

idst class_hierarchyt::get_parents_trans ( const irep_idt id) const
inline

Definition at line 74 of file class_hierarchy.h.

◆ get_parents_trans_rec()

void class_hierarchyt::get_parents_trans_rec ( const irep_idt c,
idst dest 
) const
protected

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

Parameters
cThe class to consider
[out]destA list of class ids that c eventually inherits from.

Definition at line 179 of file class_hierarchy.cpp.

◆ operator()()

void class_hierarchyt::operator() ( const symbol_table_baset 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).

Parameters
symbol_tableThe symbol table to analyze

Definition at line 150 of file class_hierarchy.cpp.

◆ operator=()

class_hierarchyt& class_hierarchyt::operator= ( const class_hierarchyt )
delete

◆ output() [1/2]

void class_hierarchyt::output ( json_stream_arrayt json_stream,
bool  children_only 
) const

Output the class hierarchy in JSON format.

Parameters
json_streamthe output JSON stream array
children_onlyprint the children only and do not print the parents

Definition at line 239 of file class_hierarchy.cpp.

◆ output() [2/2]

void class_hierarchyt::output ( std::ostream &  out,
bool  children_only 
) const

Output the class hierarchy in plain text.

Parameters
outthe output stream
children_onlyprint the children only and do not print the parents

Definition at line 199 of file class_hierarchy.cpp.

◆ output_dot()

void class_hierarchyt::output_dot ( std::ostream &  ostr) const

Output class hierarchy in Graphviz DOT format.

Parameters
ostrstream to write DOT to

Definition at line 218 of file class_hierarchy.cpp.

Member Data Documentation

◆ class_map

class_mapt class_hierarchyt::class_map

Definition at line 53 of file class_hierarchy.h.


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