cprover
|
#include <cpp_declaration.h>
Public Types | |
typedef std::vector< cpp_declaratort > | declaratorst |
![]() | |
typedef std::vector< exprt > | operandst |
![]() | |
typedef std::vector< irept > | subt |
typedef std::map< irep_namet, irept > | named_subt |
Public Member Functions | |
cpp_declarationt () | |
bool | is_empty () const |
bool | is_constructor () const |
bool | is_static_assert () const |
bool | is_destructor () const |
bool | is_template () const |
bool | is_class_template () const |
const declaratorst & | declarators () const |
declaratorst & | declarators () |
const cpp_storage_spect & | storage_spec () const |
cpp_storage_spect & | storage_spec () |
const cpp_member_spect & | member_spec () const |
cpp_member_spect & | member_spec () |
template_typet & | template_type () |
const template_typet & | template_type () const |
cpp_template_args_non_tct & | partial_specialization_args () |
const cpp_template_args_non_tct & | partial_specialization_args () const |
void | set_specialization_of (const irep_idt &id) |
irep_idt | get_specialization_of () const |
void | set_is_typedef () |
bool | is_typedef () const |
void | output (std::ostream &out) const |
void | name_anon_struct_union () |
void | name_anon_struct_union (typet &dest) |
![]() | |
exprt () | |
exprt (const irep_idt &_id) | |
exprt (const irep_idt &_id, const typet &_type) | |
typet & | type () |
const typet & | type () const |
bool | has_operands () const |
operandst & | operands () |
const operandst & | operands () const |
exprt & | op0 () |
exprt & | op1 () |
exprt & | op2 () |
exprt & | op3 () |
const exprt & | op0 () const |
const exprt & | op1 () const |
const exprt & | op2 () const |
const exprt & | op3 () const |
void | reserve_operands (operandst::size_type n) |
void | move_to_operands (exprt &expr) |
void | move_to_operands (exprt &e1, exprt &e2) |
void | move_to_operands (exprt &e1, exprt &e2, exprt &e3) |
void | copy_to_operands (const exprt &expr) |
void | copy_to_operands (const exprt &e1, const exprt &e2) |
void | copy_to_operands (const exprt &e1, const exprt &e2, const exprt &e3) |
void | make_typecast (const typet &_type) |
void | make_not () |
void | make_true () |
void | make_false () |
void | make_bool (bool value) |
void | negate () |
bool | sum (const exprt &expr) |
bool | mul (const exprt &expr) |
bool | subtract (const exprt &expr) |
bool | is_constant () const |
bool | is_true () const |
bool | is_false () const |
bool | is_zero () const |
bool | is_one () const |
bool | is_boolean () const |
const source_locationt & | find_source_location () const |
const source_locationt & | source_location () const |
source_locationt & | add_source_location () |
exprt & | add_expr (const irep_idt &name) |
const exprt & | find_expr (const irep_idt &name) const |
void | visit (class expr_visitort &visitor) |
void | visit (class const_expr_visitort &visitor) const |
![]() | |
bool | is_nil () const |
bool | is_not_nil () const |
irept (const irep_idt &_id) | |
irept () | |
irept (const irept &irep) | |
irept (irept &&irep) | |
irept & | operator= (const irept &irep) |
irept & | operator= (irept &&irep) |
~irept () | |
const irep_idt & | id () const |
const std::string & | id_string () const |
void | id (const irep_idt &_data) |
const irept & | find (const irep_namet &name) const |
irept & | add (const irep_namet &name) |
irept & | add (const irep_namet &name, const irept &irep) |
const std::string & | get_string (const irep_namet &name) const |
const irep_idt & | get (const irep_namet &name) const |
bool | get_bool (const irep_namet &name) const |
signed int | get_int (const irep_namet &name) const |
unsigned int | get_unsigned_int (const irep_namet &name) const |
std::size_t | get_size_t (const irep_namet &name) const |
long long | get_long_long (const irep_namet &name) const |
void | set (const irep_namet &name, const irep_idt &value) |
void | set (const irep_namet &name, const irept &irep) |
void | set (const irep_namet &name, const long long value) |
void | remove (const irep_namet &name) |
void | move_to_sub (irept &irep) |
void | move_to_named_sub (const irep_namet &name, irept &irep) |
bool | operator== (const irept &other) const |
bool | operator!= (const irept &other) const |
void | swap (irept &irep) |
bool | operator< (const irept &other) const |
defines ordering on the internal representation More... | |
bool | ordering (const irept &other) const |
defines ordering on the internal representation More... | |
int | compare (const irept &i) const |
defines ordering on the internal representation More... | |
void | clear () |
void | make_nil () |
subt & | get_sub () |
const subt & | get_sub () const |
named_subt & | get_named_sub () |
const named_subt & | get_named_sub () const |
named_subt & | get_comments () |
const named_subt & | get_comments () const |
std::size_t | hash () const |
std::size_t | full_hash () const |
bool | full_eq (const irept &other) const |
std::string | pretty (unsigned indent=0, unsigned max_indent=0) const |
const dt & | read () const |
dt & | write () |
Additional Inherited Members | |
![]() | |
void | detach () |
![]() | |
static bool | is_comment (const irep_namet &name) |
static void | remove_ref (dt *old_data) |
static void | nonrecursive_destructor (dt *old_data) |
Does the same as remove_ref, but using an explicit stack instead of recursion. More... | |
![]() | |
dt * | data |
![]() | |
static dt | empty_d |
Definition at line 23 of file cpp_declaration.h.
typedef std::vector<cpp_declaratort> cpp_declarationt::declaratorst |
Definition at line 26 of file cpp_declaration.h.
|
inline |
Definition at line 28 of file cpp_declaration.h.
|
inline |
Definition at line 64 of file cpp_declaration.h.
References exprt::operands().
Referenced by cpp_typecheckt::convert_anonymous_union(), cpp_typecheckt::convert_non_template_declaration(), cpp_typecheckt::convert_template_declaration(), cpp_typecheckt::convert_template_function_or_member_specialization(), cpp_typecheckt::default_cpctor(), cpp_typecheck_resolvet::guess_function_template_args(), cpp_typecheckt::instantiate_template(), is_class_template(), name_anon_struct_union(), output(), Parser::rArgDeclaration(), cpp_convert_typet::read_function_type(), Parser::rIntegralDeclaration(), Parser::rIntegralDeclStatement(), Parser::rOtherDeclaration(), Parser::rOtherDeclStatement(), Parser::rSimpleDeclaration(), Parser::rTempArgDeclaration(), Parser::rTryStatement(), Parser::rTypedef(), Parser::rTypedefUsing(), cpp_typecheckt::typecheck_class_template_member(), cpp_typecheckt::typecheck_compound_body(), cpp_typecheckt::typecheck_friend_declaration(), cpp_typecheckt::typecheck_function_template(), and cpp_typecheckt::typecheck_template_parameters().
|
inline |
Definition at line 69 of file cpp_declaration.h.
References exprt::operands().
|
inline |
Definition at line 125 of file cpp_declaration.h.
Referenced by cpp_typecheck_resolvet::disambiguate_template_classes().
|
inline |
Definition at line 57 of file cpp_declaration.h.
References declarators(), irept::id(), is_template(), and exprt::type().
Referenced by cpp_typecheck_resolvet::apply_template_args(), cpp_typecheckt::convert_template_declaration(), cpp_typecheck_resolvet::disambiguate_template_classes(), and cpp_typecheck_resolvet::resolve().
|
inline |
Definition at line 37 of file cpp_declaration.h.
References irept::id(), and exprt::type().
Referenced by cpp_typecheckt::typecheck_compound_body(), and cpp_typecheckt::typecheck_compound_declarator().
|
inline |
Definition at line 47 of file cpp_declaration.h.
References irept::id(), and exprt::type().
Referenced by cpp_typecheckt::typecheck_compound_body(), and cpp_typecheckt::typecheck_compound_declarator().
|
inline |
Definition at line 32 of file cpp_declaration.h.
References exprt::has_operands(), irept::is_nil(), and exprt::type().
Referenced by cpp_typecheckt::convert().
|
inline |
Definition at line 42 of file cpp_declaration.h.
References irept::get_bool().
|
inline |
Definition at line 52 of file cpp_declaration.h.
References irept::get_bool().
Referenced by cpp_typecheckt::convert(), cpp_typecheckt::convert_non_template_declaration(), cpp_typecheckt::convert_template_declaration(), is_class_template(), output(), cpp_typecheckt::typecheck_compound_body(), and cpp_typecheckt::typecheck_friend_declaration().
|
inline |
Definition at line 135 of file cpp_declaration.h.
References irept::get_bool().
Referenced by cpp_typecheckt::convert_non_template_declaration(), cpp_typecheckt::convert_template_declaration(), cpp_typecheckt::instantiate_template(), and cpp_typecheckt::typecheck_compound_body().
|
inline |
Definition at line 86 of file cpp_declaration.h.
References irept::find().
Referenced by cpp_declarator_convertert::convert(), cpp_typecheckt::convert_non_template_declaration(), cpp_typecheckt::convert_template_declaration(), cpp_typecheckt::instantiate_template(), Parser::rIntegralDeclaration(), Parser::rOtherDeclaration(), cpp_typecheckt::typecheck_compound_body(), cpp_typecheckt::typecheck_compound_declarator(), and cpp_typecheckt::typecheck_friend_declaration().
|
inline |
Definition at line 92 of file cpp_declaration.h.
References irept::add().
|
inline |
Definition at line 144 of file cpp_declaration.h.
References name_anon_struct_union(), and exprt::type().
Referenced by cpp_typecheckt::convert_non_template_declaration(), name_anon_struct_union(), and cpp_typecheckt::typecheck_compound_body().
void cpp_declarationt::name_anon_struct_union | ( | typet & | dest | ) |
Definition at line 32 of file cpp_declaration.cpp.
References declarators(), irept::find(), Forall_subtypes, irept::id(), id2string(), irept::is_nil(), name_anon_struct_union(), and irept::set().
void cpp_declarationt::output | ( | std::ostream & | out | ) | const |
Definition at line 16 of file cpp_declaration.cpp.
References declarators(), is_template(), irept::pretty(), storage_spec(), template_type(), and exprt::type().
Referenced by cpp_languaget::show_parse().
|
inline |
Definition at line 108 of file cpp_declaration.h.
References irept::add().
Referenced by cpp_typecheckt::convert_class_template_specialization(), cpp_typecheck_resolvet::disambiguate_template_classes(), and cpp_typecheckt::typecheck_class_template().
|
inline |
Definition at line 114 of file cpp_declaration.h.
References irept::find().
|
inline |
Definition at line 130 of file cpp_declaration.h.
Referenced by Parser::rTypedef().
|
inline |
Definition at line 120 of file cpp_declaration.h.
References irept::id().
Referenced by cpp_typecheckt::convert_class_template_specialization().
|
inline |
Definition at line 74 of file cpp_declaration.h.
References irept::find().
Referenced by cpp_declarator_convertert::convert(), cpp_typecheckt::convert_anon_struct_union_member(), cpp_typecheckt::convert_non_template_declaration(), cpp_typecheckt::instantiate_template(), output(), Parser::rIntegralDeclaration(), Parser::rIntegralDeclStatement(), Parser::rOtherDeclaration(), Parser::rOtherDeclStatement(), cpp_typecheckt::typecheck_compound_body(), and cpp_typecheckt::typecheck_friend_declaration().
|
inline |
Definition at line 80 of file cpp_declaration.h.
References irept::add().
|
inline |
Definition at line 98 of file cpp_declaration.h.
References irept::add().
Referenced by cpp_typecheckt::convert_class_template_specialization(), cpp_typecheckt::convert_template_declaration(), cpp_typecheck_resolvet::disambiguate_template_classes(), cpp_typecheckt::instantiate_template(), output(), cpp_typecheckt::typecheck_class_template(), cpp_typecheckt::typecheck_class_template_member(), cpp_typecheckt::typecheck_function_template(), and cpp_typecheckt::typecheck_template_args().
|
inline |
Definition at line 103 of file cpp_declaration.h.
References irept::find().