Go to the documentation of this file.
12 #ifndef CPROVER_ANSI_C_ANSI_C_DECLARATION_H
13 #define CPROVER_ANSI_C_ANSI_C_DECLARATION_H
28 return static_cast<exprt &
>(
add(ID_value));
33 return static_cast<const exprt &
>(
find(ID_value));
38 return set(ID_name, name);
48 return get(ID_base_name);
53 return set(ID_base_name, base_name);
61 assert(expr.
id()==ID_declarator);
67 assert(expr.
id()==ID_declarator);
85 set(ID_is_typedef, is_typedef);
90 return get_bool(ID_is_enum_constant);
95 set(ID_is_enum_constant, is_enum_constant);
105 set(ID_is_static, is_static);
115 set(ID_is_parameter, is_parameter);
125 set(ID_is_member, is_member);
135 set(ID_is_global, is_global);
145 set(ID_is_register, is_register);
150 return get_bool(ID_is_thread_local);
155 set(ID_is_thread_local, is_thread_local);
165 set(ID_is_inline, is_inline);
175 set(ID_is_extern, is_extern);
180 return get_bool(ID_is_static_assert);
185 set(ID_is_static_assert, is_static_assert);
195 set(ID_is_weak, is_weak);
205 set(ID_is_used, is_used);
239 void output(std::ostream &)
const;
250 assert(expr.
id()==ID_declaration);
256 assert(expr.
id()==ID_declaration);
260 #endif // CPROVER_ANSI_C_ANSI_C_DECLARATION_H
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
const exprt & value() const
bool get_is_thread_local() const
const declaratorst & declarators() const
void set_is_parameter(bool is_parameter)
bool get_is_typedef() const
ansi_c_declaratort & to_ansi_c_declarator(exprt &expr)
The type of an expression, extends irept.
bool get_is_static() const
const irept & find(const irep_idt &name) const
void add_initializer(exprt &value)
void set_is_enum_constant(bool is_enum_constant)
Base class for all expressions.
void set_is_global(bool is_global)
const ansi_c_declaratort & declarator() const
declaratorst & declarators()
bool get_is_static_assert() const
void set_base_name(const irep_idt &base_name)
void set_is_typedef(bool is_typedef)
irep_idt get_name() const
const irep_idt & get(const irep_idt &name) const
An expression without operands.
bool get_is_parameter() const
void set_is_register(bool is_register)
irep_idt get_base_name() const
void set_is_weak(bool is_weak)
void set(const irep_idt &name, const irep_idt &value)
void to_symbol(const ansi_c_declaratort &, symbolt &symbol) const
bool get_is_register() const
bool get_is_enum_constant() const
const irep_idt & id() const
ansi_c_declarationt & to_ansi_c_declaration(exprt &expr)
bool get_is_member() const
void set_is_thread_local(bool is_thread_local)
irept & add(const irep_idt &name)
void set_name(const irep_idt &name)
void set_is_static(bool is_static)
bool get_is_global() const
bool get_is_extern() const
ansi_c_declaratort & declarator()
void set_is_static_assert(bool is_static_assert)
void set_is_extern(bool is_extern)
void output(std::ostream &) const
typet full_type(const ansi_c_declaratort &) const
void set_is_member(bool is_member)
There are a large number of kinds of tree structured or tree-like data in CPROVER.
std::vector< ansi_c_declaratort > declaratorst
bool get_bool(const irep_idt &name) const
void set_is_inline(bool is_inline)
void set_is_used(bool is_used)
bool get_is_inline() const