12 #ifndef CPROVER_CPP_CPP_DECLARATION_H
13 #define CPROVER_CPP_CPP_DECLARATION_H
37 return type().
id()==ID_constructor;
42 return get_bool(ID_is_static_assert);
47 return type().
id()==ID_destructor;
75 find(ID_storage_spec));
81 add(ID_storage_spec));
87 find(ID_member_spec));
109 add(ID_partial_specialization_args));
115 find(ID_partial_specialization_args));
120 set(ID_specialization_of,
id);
125 return get(ID_specialization_of);
130 set(ID_is_typedef,
true);
138 void output(std::ostream &out)
const;
bool is_destructor() const
cpp_member_spect & member_spec()
bool is_static_assert() const
void output(std::ostream &out) const
cpp_storage_spect & storage_spec()
const declaratorst & declarators() const
void set_specialization_of(const irep_idt &id)
irep_idt get_specialization_of() const
declaratorst & declarators()
const cpp_storage_spect & storage_spec() const
const cpp_member_spect & member_spec() const
bool is_constructor() const
bool is_class_template() const
const template_typet & template_type() const
std::vector< cpp_declaratort > declaratorst
const cpp_template_args_non_tct & partial_specialization_args() const
template_typet & template_type()
cpp_template_args_non_tct & partial_specialization_args()
void name_anon_struct_union()
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
bool has_operands() const
Return true if there is at least one operand.
typet & type()
Return the type of the expression.
There are a large number of kinds of tree structured or tree-like data in CPROVER.
bool get_bool(const irep_idt &name) const
const irept & find(const irep_idt &name) const
const irep_idt & get(const irep_idt &name) const
void set(const irep_idt &name, const irep_idt &value)
const irep_idt & id() const
irept & add(const irep_idt &name)
The type of an expression, extends irept.
cpp_declarationt & to_cpp_declaration(irept &irep)
C++ Language Type Checking.
C++ Language Type Checking.
#define PRECONDITION(CONDITION)