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;
249 return static_cast<const exprt &
>(
find(ID_C_spec_assigns));
254 return static_cast<const exprt &
>(
find(ID_C_spec_requires));
259 return static_cast<const exprt &
>(
find(ID_C_spec_ensures));
265 assert(expr.
id()==ID_declaration);
271 assert(expr.
id()==ID_declaration);
ansi_c_declaratort & to_ansi_c_declarator(exprt &expr)
ansi_c_declarationt & to_ansi_c_declaration(exprt &expr)
void set_is_thread_local(bool is_thread_local)
void set_is_enum_constant(bool is_enum_constant)
bool get_is_member() const
const ansi_c_declaratort & declarator() const
void set_is_weak(bool is_weak)
const exprt & spec_requires() const
void set_is_parameter(bool is_parameter)
bool get_is_extern() const
const declaratorst & declarators() const
bool get_is_parameter() const
void add_initializer(exprt &value)
bool get_is_inline() const
std::vector< ansi_c_declaratort > declaratorst
void set_is_static_assert(bool is_static_assert)
void set_is_register(bool is_register)
declaratorst & declarators()
void set_is_inline(bool is_inline)
typet full_type(const ansi_c_declaratort &) const
bool get_is_enum_constant() const
const exprt & spec_ensures() const
void set_is_member(bool is_member)
bool get_is_static() const
void to_symbol(const ansi_c_declaratort &, symbolt &symbol) const
const exprt & spec_assigns() const
ansi_c_declaratort & declarator()
void set_is_global(bool is_global)
bool get_is_register() const
void set_is_extern(bool is_extern)
bool get_is_global() const
bool get_is_thread_local() const
void set_is_used(bool is_used)
bool get_is_typedef() const
void set_is_typedef(bool is_typedef)
bool get_is_static_assert() const
void output(std::ostream &) const
void set_is_static(bool is_static)
void set_base_name(const irep_idt &base_name)
void set_name(const irep_idt &name)
irep_idt get_base_name() const
const exprt & value() const
irep_idt get_name() const
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
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)
An expression without operands.
The type of an expression, extends irept.
API to expression classes.