CBMC
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_declaratortdeclaratorst
 
- Public Types inherited from exprt
typedef std::vector< exprtoperandst
 
- 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 = tree_nodet< irept, forward_list_as_mapt< irep_idt, irept >, true >
 
using subt = typename dt::subt
 
using named_subt = typename dt::named_subt
 
using tree_implementationt = sharing_treet
 Used to refer to this class from derived classes. More...
 

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 declaratorstdeclarators () const
 
declaratorstdeclarators ()
 
const ansi_c_declaratortdeclarator () const
 
ansi_c_declaratortdeclarator ()
 
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)
 
typettype ()
 Return the type of the expression. More...
 
const typettype () const
 
bool has_operands () const
 Return true if there is at least one operand. More...
 
operandstoperands ()
 
const operandstoperands () const
 
exprtwith_source_location (source_locationt location) &
 Add the source location from location, if it is non-nil. More...
 
exprt && with_source_location (source_locationt location) &&
 Add the source location from location, if it is non-nil. More...
 
exprtwith_source_location (const exprt &other) &
 Add the source location from other, if it has any. More...
 
exprt && with_source_location (const exprt &other) &&
 Add the source location from other, if it has any. More...
 
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. More...
 
void add_to_operands (const exprt &expr)
 Add the given argument to the end of exprt's operands. More...
 
void add_to_operands (exprt &&expr)
 Add the given argument to the end of exprt's operands. More...
 
void add_to_operands (exprt &&e1, exprt &&e2)
 Add the given arguments to the end of exprt's operands. More...
 
void add_to_operands (exprt &&e1, exprt &&e2, exprt &&e3)
 Add the given arguments to the end of exprt's operands. More...
 
bool is_constant () const
 Return whether the expression is a constant. More...
 
bool is_true () const
 Return whether the expression is a constant representing true. More...
 
bool is_false () const
 Return whether the expression is a constant representing false. More...
 
bool is_zero () const
 Return whether the expression is a constant representing 0. More...
 
bool is_one () const
 Return whether the expression is a constant representing 1. More...
 
bool is_boolean () const
 Return whether the expression represents a Boolean. More...
 
const source_locationtfind_source_location () const
 Get a source_locationt from the expression or from its operands (non-recursively). More...
 
const source_locationtsource_location () const
 
source_locationtadd_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. More...
 
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. More...
 
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_idtid () const
 
const std::string & id_string () const
 
void id (const irep_idt &_data)
 
const ireptfind (const irep_idt &name) const
 
ireptadd (const irep_idt &name)
 
ireptadd (const irep_idt &name, irept irep)
 
const std::string & get_string (const irep_idt &name) const
 
const irep_idtget (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 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 comments are ignored More...
 
void clear ()
 
void make_nil ()
 
subtget_sub ()
 
const subtget_sub () const
 
named_subtget_named_sub ()
 
const named_subtget_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_treetoperator= (const sharing_treet &irep)
 
sharing_treetoperator= (sharing_treet &&irep)
 
 ~sharing_treet ()
 
const dtread () const
 
dtwrite ()
 

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). More...
 
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. More...
 
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) More...
 
- 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 More...
 
- Protected Member Functions inherited from exprt
exprtop0 ()
 
exprtop1 ()
 
exprtop2 ()
 
exprtop3 ()
 
const exprtop0 () const
 
const exprtop1 () const
 
const exprtop2 () const
 
const exprtop3 () const
 
exprtadd_expr (const irep_idt &name)
 
const exprtfind_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. More...
 
- Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
dtdata
 
- 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: