CBMC
cpp_idt Class Reference

#include <cpp_id.h>

+ Inheritance diagram for cpp_idt:
+ Collaboration diagram for cpp_idt:

Public Types

enum class  id_classt {
  UNKNOWN , SYMBOL , TYPEDEF , CLASS ,
  ENUM , TEMPLATE , TEMPLATE_PARAMETER , NAMESPACE ,
  BLOCK_SCOPE , TEMPLATE_SCOPE , ROOT_SCOPE
}
 

Public Member Functions

 cpp_idt ()
 
bool is_class () const
 
bool is_enum () const
 
bool is_namespace () const
 
bool is_typedef () const
 
bool is_template_scope () const
 
cpp_idtget_parent () const
 
void set_parent (cpp_idt &_parent)
 
void clear ()
 
void print (std::ostream &out, unsigned indent=0) const
 
void print_fields (std::ostream &out, unsigned indent=0) const
 

Public Attributes

bool is_member
 
bool is_method
 
bool is_static_member
 
bool is_scope
 
bool is_constructor
 
id_classt id_class
 
irep_idt identifier
 
irep_idt base_name
 
irep_idt class_identifier
 
exprt this_expr
 
std::string prefix
 
std::string suffix
 
unsigned compound_counter
 

Protected Types

typedef std::multimap< irep_idt, cpp_idtcpp_id_mapt
 
typedef std::vector< cpp_idt * > scope_listt
 

Protected Attributes

cpp_id_mapt sub
 
scope_listt using_scopes
 
scope_listt secondary_scopes
 
cpp_idtparent
 

Detailed Description

Definition at line 22 of file cpp_id.h.

Member Typedef Documentation

◆ cpp_id_mapt

typedef std::multimap<irep_idt, cpp_idt> cpp_idt::cpp_id_mapt
protected

Definition at line 103 of file cpp_id.h.

◆ scope_listt

typedef std::vector<cpp_idt *> cpp_idt::scope_listt
protected

Definition at line 107 of file cpp_id.h.

Member Enumeration Documentation

◆ id_classt

enum cpp_idt::id_classt
strong
Enumerator
UNKNOWN 
SYMBOL 
TYPEDEF 
CLASS 
ENUM 
TEMPLATE 
TEMPLATE_PARAMETER 
NAMESPACE 
BLOCK_SCOPE 
TEMPLATE_SCOPE 
ROOT_SCOPE 

Definition at line 27 of file cpp_id.h.

Constructor & Destructor Documentation

◆ cpp_idt()

cpp_idt::cpp_idt ( )

Definition at line 18 of file cpp_id.cpp.

Member Function Documentation

◆ clear()

void cpp_idt::clear ( void  )
inline

Definition at line 94 of file cpp_id.h.

◆ get_parent()

cpp_idt& cpp_idt::get_parent ( ) const
inline

Definition at line 82 of file cpp_id.h.

◆ is_class()

bool cpp_idt::is_class ( ) const
inline

Definition at line 47 of file cpp_id.h.

◆ is_enum()

bool cpp_idt::is_enum ( ) const
inline

Definition at line 52 of file cpp_id.h.

◆ is_namespace()

bool cpp_idt::is_namespace ( ) const
inline

Definition at line 57 of file cpp_id.h.

◆ is_template_scope()

bool cpp_idt::is_template_scope ( ) const
inline

Definition at line 67 of file cpp_id.h.

◆ is_typedef()

bool cpp_idt::is_typedef ( ) const
inline

Definition at line 62 of file cpp_id.h.

◆ print()

void cpp_idt::print ( std::ostream &  out,
unsigned  indent = 0 
) const

Definition at line 31 of file cpp_id.cpp.

◆ print_fields()

void cpp_idt::print_fields ( std::ostream &  out,
unsigned  indent = 0 
) const

Definition at line 44 of file cpp_id.cpp.

◆ set_parent()

void cpp_idt::set_parent ( cpp_idt _parent)
inline

Definition at line 88 of file cpp_id.h.

Member Data Documentation

◆ base_name

irep_idt cpp_idt::base_name

Definition at line 72 of file cpp_id.h.

◆ class_identifier

irep_idt cpp_idt::class_identifier

Definition at line 75 of file cpp_id.h.

◆ compound_counter

unsigned cpp_idt::compound_counter

Definition at line 80 of file cpp_id.h.

◆ id_class

id_classt cpp_idt::id_class

Definition at line 45 of file cpp_id.h.

◆ identifier

irep_idt cpp_idt::identifier

Definition at line 72 of file cpp_id.h.

◆ is_constructor

bool cpp_idt::is_constructor

Definition at line 43 of file cpp_id.h.

◆ is_member

bool cpp_idt::is_member

Definition at line 42 of file cpp_id.h.

◆ is_method

bool cpp_idt::is_method

Definition at line 42 of file cpp_id.h.

◆ is_scope

bool cpp_idt::is_scope

Definition at line 43 of file cpp_id.h.

◆ is_static_member

bool cpp_idt::is_static_member

Definition at line 42 of file cpp_id.h.

◆ parent

cpp_idt* cpp_idt::parent
protected

Definition at line 109 of file cpp_id.h.

◆ prefix

std::string cpp_idt::prefix

Definition at line 79 of file cpp_id.h.

◆ secondary_scopes

scope_listt cpp_idt::secondary_scopes
protected

Definition at line 108 of file cpp_id.h.

◆ sub

cpp_id_mapt cpp_idt::sub
protected

Definition at line 104 of file cpp_id.h.

◆ suffix

std::string cpp_idt::suffix

Definition at line 79 of file cpp_id.h.

◆ this_expr

exprt cpp_idt::this_expr

Definition at line 76 of file cpp_id.h.

◆ using_scopes

scope_listt cpp_idt::using_scopes
protected

Definition at line 108 of file cpp_id.h.


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