cprover
Loading...
Searching...
No Matches
ansi_c_declarationt Class Reference

#include <ansi_c_declaration.h>

+ Inheritance diagram for ansi_c_declarationt:
+ Collaboration diagram for ansi_c_declarationt:

Public Types

typedef std::vector< ansi_c_declaratort > declaratorst
 
- Public Types inherited from exprt
typedef std::vector< exprt > operandst
 
- Public Types inherited from irept
using baset = tree_implementationt
 
- Public Types inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
using dt
 
using subt
 
using named_subt
 
using tree_implementationt
 Used to refer to this class from derived classes.
 

Public Member Functions

 ansi_c_declarationt ()
 
bool get_is_typedef () const
 
void set_is_typedef (bool is_typedef)
 
bool get_is_enum_constant () const
 
void set_is_enum_constant (bool is_enum_constant)
 
bool get_is_static () const
 
void set_is_static (bool is_static)
 
bool get_is_parameter () const
 
void set_is_parameter (bool is_parameter)
 
bool get_is_member () const
 
void set_is_member (bool is_member)
 
bool get_is_global () const
 
void set_is_global (bool is_global)
 
bool get_is_register () const
 
void set_is_register (bool is_register)
 
bool get_is_thread_local () const
 
void set_is_thread_local (bool is_thread_local)
 
bool get_is_inline () const
 
void set_is_inline (bool is_inline)
 
bool get_is_extern () const
 
void set_is_extern (bool is_extern)
 
bool get_is_static_assert () const
 
void set_is_static_assert (bool is_static_assert)
 
bool get_is_weak () const
 
void set_is_weak (bool is_weak)
 
symbolt to_symbol (const ansi_c_declaratort &) const
 
typet full_type (const ansi_c_declaratort &) const
 
const declaratorst & declarators () const
 
declaratorst & declarators ()
 
const ansi_c_declaratort & declarator () const
 
ansi_c_declaratort & declarator ()
 
void output (std::ostream &) const
 
void add_initializer (exprt &value)
 
- Public Member Functions inherited from exprt
 exprt ()
 
 exprt (const irep_idt &_id)
 
 exprt (irep_idt _id, typet _type)
 
 exprt (irep_idt _id, typet _type, operandst &&_operands)
 
 exprt (const irep_idt &id, typet type, source_locationt loc)
 
typet & type ()
 Return the type of the expression.
 
const typet & type () const
 
bool has_operands () const
 Return true if there is at least one operand.
 
operandst & operands ()
 
const operandst & operands () const
 
template<typename T >
T & with_source_location (const exprt &other) &
 Add the source location from other, if it has any.
 
template<typename T >
T && with_source_location (const exprt &other) &&
 Add the source location from other, if it has any.
 
void reserve_operands (operandst::size_type n)
 
void copy_to_operands (const exprt &expr)
 Copy the given argument to the end of exprt's operands.
 
void add_to_operands (const exprt &expr)
 Add the given argument to the end of exprt's operands.
 
void add_to_operands (exprt &&expr)
 Add the given argument to the end of exprt's operands.
 
void add_to_operands (exprt &&e1, exprt &&e2)
 Add the given arguments to the end of exprt's operands.
 
void add_to_operands (exprt &&e1, exprt &&e2, exprt &&e3)
 Add the given arguments to the end of exprt's operands.
 
bool is_constant () const
 Return whether the expression is a constant.
 
bool is_true () const
 Return whether the expression is a constant representing true.
 
bool is_false () const
 Return whether the expression is a constant representing false.
 
bool is_zero () const
 Return whether the expression is a constant representing 0.
 
bool is_one () const
 Return whether the expression is a constant representing 1.
 
bool is_boolean () const
 Return whether the expression represents a Boolean.
 
const source_locationt & find_source_location () const
 Get a source_locationt from the expression or from its operands (non-recursively).
 
const source_locationt & source_location () const
 
source_locationt & add_source_location ()
 
void drop_source_location ()
 
void visit (class expr_visitort &visitor)
 These are pre-order traversal visitors, i.e., the visitor is executed on a node before its children have been visited.
 
void visit (class const_expr_visitort &visitor) const
 
void visit_pre (std::function< void(exprt &)>)
 
void visit_pre (std::function< void(const exprt &)>) const
 
void visit_post (std::function< void(exprt &)>)
 These are post-order traversal visitors, i.e., the visitor is executed on a node after its children have been visited.
 
void visit_post (std::function< void(const exprt &)>) const
 
depth_iteratort depth_begin ()
 
depth_iteratort depth_end ()
 
const_depth_iteratort depth_begin () const
 
const_depth_iteratort depth_end () const
 
const_depth_iteratort depth_cbegin () const
 
const_depth_iteratort depth_cend () const
 
depth_iteratort depth_begin (std::function< exprt &()> mutate_root) const
 
const_unique_depth_iteratort unique_depth_begin () const
 
const_unique_depth_iteratort unique_depth_end () const
 
const_unique_depth_iteratort unique_depth_cbegin () const
 
const_unique_depth_iteratort unique_depth_cend () const
 
- Public Member Functions inherited from irept
bool is_nil () const
 
bool is_not_nil () const
 
 irept (const irep_idt &_id)
 
 irept (const irep_idt &_id, const named_subt &_named_sub, const subt &_sub)
 
 irept ()=default
 
const irep_idt & id () const
 
const std::string & id_string () const
 
void id (const irep_idt &_data)
 
const irept & find (const irep_idt &name) const
 
irept & add (const irep_idt &name)
 
irept & add (const irep_idt &name, irept irep)
 
const std::string & get_string (const irep_idt &name) const
 
const irep_idt & get (const irep_idt &name) const
 
bool get_bool (const irep_idt &name) const
 
signed int get_int (const irep_idt &name) const
 
std::size_t get_size_t (const irep_idt &name) const
 
long long get_long_long (const irep_idt &name) const
 
void set (const irep_idt &name, const irep_idt &value)
 
void set (const irep_idt &name, irept irep)
 
void set (const irep_idt &name, const long long value)
 
void set_size_t (const irep_idt &name, const std::size_t value)
 
void remove (const irep_idt &name)
 
void move_to_sub (irept &irep)
 
void move_to_named_sub (const irep_idt &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
 
bool ordering (const irept &other) const
 defines ordering on the internal representation
 
int compare (const irept &i) const
 defines ordering on the internal representation comments are ignored
 
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
 
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
 
- Public Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
 sharing_treet (irep_idt _id)
 
 sharing_treet (irep_idt _id, named_subt _named_sub, subt _sub)
 
 sharing_treet ()
 
 sharing_treet (const sharing_treet &irep)
 
 sharing_treet (sharing_treet &&irep)
 
sharing_treet & operator= (const sharing_treet &irep)
 
sharing_treet & operator= (sharing_treet &&irep)
 
 ~sharing_treet ()
 
const dt & read () const
 
dt & write ()
 

Additional Inherited Members

- Static Public Member Functions inherited from exprt
static void check (const exprt &, const validation_modet)
 Check that the expression is well-formed (shallow checks only, i.e., subexpressions and its type are not checked).
 
static void validate (const exprt &expr, const namespacet &, const validation_modet vm=validation_modet::INVARIANT)
 Check that the expression is well-formed, assuming that its subexpressions and type have all ready been checked for well-formedness.
 
static void validate_full (const exprt &expr, const namespacet &ns, const validation_modet vm=validation_modet::INVARIANT)
 Check that the expression is well-formed (full check, including checks of all subexpressions and the type)
 
- Static Public Member Functions inherited from irept
static bool is_comment (const irep_idt &name)
 
static std::size_t number_of_non_comments (const named_subt &)
 count the number of named_sub elements that are not comments
 
- Protected Member Functions inherited from exprt
exprt & op0 ()
 
exprt & op1 ()
 
exprt & op2 ()
 
exprt & op3 ()
 
const exprt & op0 () const
 
const exprt & op1 () const
 
const exprt & op2 () const
 
const exprt & op3 () const
 
exprt & add_expr (const irep_idt &name)
 
const exprt & find_expr (const irep_idt &name) const
 
- Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
void detach ()
 
- Static Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
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.
 
- Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
dt * data
 
- Static Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
static dt empty_d
 

Detailed Description

Definition at line 71 of file ansi_c_declaration.h.

Member Typedef Documentation

◆ declaratorst

Definition at line 202 of file ansi_c_declaration.h.

Constructor & Destructor Documentation

◆ ansi_c_declarationt()

ansi_c_declarationt::ansi_c_declarationt ( )
inline

Definition at line 74 of file ansi_c_declaration.h.

Member Function Documentation

◆ add_initializer()

void ansi_c_declarationt::add_initializer ( exprt & value)
inline

Definition at line 229 of file ansi_c_declaration.h.

◆ declarator() [1/2]

ansi_c_declaratort & ansi_c_declarationt::declarator ( )
inline

Definition at line 221 of file ansi_c_declaration.h.

◆ declarator() [2/2]

const ansi_c_declaratort & ansi_c_declarationt::declarator ( ) const
inline

Definition at line 215 of file ansi_c_declaration.h.

◆ declarators() [1/2]

declaratorst & ansi_c_declarationt::declarators ( )
inline

Definition at line 209 of file ansi_c_declaration.h.

◆ declarators() [2/2]

const declaratorst & ansi_c_declarationt::declarators ( ) const
inline

Definition at line 204 of file ansi_c_declaration.h.

◆ full_type()

typet ansi_c_declarationt::full_type ( const ansi_c_declaratort & declarator) const

Definition at line 94 of file ansi_c_declaration.cpp.

◆ get_is_enum_constant()

bool ansi_c_declarationt::get_is_enum_constant ( ) const
inline

Definition at line 88 of file ansi_c_declaration.h.

◆ get_is_extern()

bool ansi_c_declarationt::get_is_extern ( ) const
inline

Definition at line 168 of file ansi_c_declaration.h.

◆ get_is_global()

bool ansi_c_declarationt::get_is_global ( ) const
inline

Definition at line 128 of file ansi_c_declaration.h.

◆ get_is_inline()

bool ansi_c_declarationt::get_is_inline ( ) const
inline

Definition at line 158 of file ansi_c_declaration.h.

◆ get_is_member()

bool ansi_c_declarationt::get_is_member ( ) const
inline

Definition at line 118 of file ansi_c_declaration.h.

◆ get_is_parameter()

bool ansi_c_declarationt::get_is_parameter ( ) const
inline

Definition at line 108 of file ansi_c_declaration.h.

◆ get_is_register()

bool ansi_c_declarationt::get_is_register ( ) const
inline

Definition at line 138 of file ansi_c_declaration.h.

◆ get_is_static()

bool ansi_c_declarationt::get_is_static ( ) const
inline

Definition at line 98 of file ansi_c_declaration.h.

◆ get_is_static_assert()

bool ansi_c_declarationt::get_is_static_assert ( ) const
inline

Definition at line 178 of file ansi_c_declaration.h.

◆ get_is_thread_local()

bool ansi_c_declarationt::get_is_thread_local ( ) const
inline

Definition at line 148 of file ansi_c_declaration.h.

◆ get_is_typedef()

bool ansi_c_declarationt::get_is_typedef ( ) const
inline

Definition at line 78 of file ansi_c_declaration.h.

◆ get_is_weak()

bool ansi_c_declarationt::get_is_weak ( ) const
inline

Definition at line 188 of file ansi_c_declaration.h.

◆ output()

void ansi_c_declarationt::output ( std::ostream & out) const

Definition at line 63 of file ansi_c_declaration.cpp.

◆ set_is_enum_constant()

void ansi_c_declarationt::set_is_enum_constant ( bool is_enum_constant)
inline

Definition at line 93 of file ansi_c_declaration.h.

◆ set_is_extern()

void ansi_c_declarationt::set_is_extern ( bool is_extern)
inline

Definition at line 173 of file ansi_c_declaration.h.

◆ set_is_global()

void ansi_c_declarationt::set_is_global ( bool is_global)
inline

Definition at line 133 of file ansi_c_declaration.h.

◆ set_is_inline()

void ansi_c_declarationt::set_is_inline ( bool is_inline)
inline

Definition at line 163 of file ansi_c_declaration.h.

◆ set_is_member()

void ansi_c_declarationt::set_is_member ( bool is_member)
inline

Definition at line 123 of file ansi_c_declaration.h.

◆ set_is_parameter()

void ansi_c_declarationt::set_is_parameter ( bool is_parameter)
inline

Definition at line 113 of file ansi_c_declaration.h.

◆ set_is_register()

void ansi_c_declarationt::set_is_register ( bool is_register)
inline

Definition at line 143 of file ansi_c_declaration.h.

◆ set_is_static()

void ansi_c_declarationt::set_is_static ( bool is_static)
inline

Definition at line 103 of file ansi_c_declaration.h.

◆ set_is_static_assert()

void ansi_c_declarationt::set_is_static_assert ( bool is_static_assert)
inline

Definition at line 183 of file ansi_c_declaration.h.

◆ set_is_thread_local()

void ansi_c_declarationt::set_is_thread_local ( bool is_thread_local)
inline

Definition at line 153 of file ansi_c_declaration.h.

◆ set_is_typedef()

void ansi_c_declarationt::set_is_typedef ( bool is_typedef)
inline

Definition at line 83 of file ansi_c_declaration.h.

◆ set_is_weak()

void ansi_c_declarationt::set_is_weak ( bool is_weak)
inline

Definition at line 193 of file ansi_c_declaration.h.

◆ to_symbol()

symbolt ansi_c_declarationt::to_symbol ( const ansi_c_declaratort & declarator) const

Definition at line 129 of file ansi_c_declaration.cpp.


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