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

#include <cpp_declaration.h>

Inheritance diagram for cpp_declarationt:
Collaboration diagram for cpp_declarationt:

Public Types

typedef std::vector< cpp_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

 cpp_declarationt ()
bool is_empty () const
bool is_constructor () const
bool is_static_assert () const
bool is_destructor () const
bool is_template () const
bool is_class_template () const
const declaratorst & declarators () const
declaratorst & declarators ()
const cpp_storage_spect & storage_spec () const
cpp_storage_spect & storage_spec ()
const cpp_member_spect & member_spec () const
cpp_member_spect & member_spec ()
template_typet & template_type ()
const template_typet & template_type () const
cpp_template_args_non_tct & partial_specialization_args ()
const cpp_template_args_non_tct & partial_specialization_args () const
void set_specialization_of (const irep_idt &id)
irep_idt get_specialization_of () const
void set_is_typedef ()
bool is_typedef () const
void output (std::ostream &out) const
void name_anon_struct_union ()
void name_anon_struct_union (typet &dest)
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
exprt & with_source_location (source_locationt location) &
 Add the source location from location, if it is non-nil.
exprt && with_source_location (source_locationt location) &&
 Add the source location from location, if it is non-nil.
exprt & with_source_location (const exprt &other) &
 Add the source location from other, if it has any.
exprt && 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 & operator= (const 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=validation_modet::INVARIANT)
 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 21 of file cpp_declaration.h.

Member Typedef Documentation

◆ declaratorst

Definition at line 24 of file cpp_declaration.h.

Constructor & Destructor Documentation

◆ cpp_declarationt()

cpp_declarationt::cpp_declarationt ( )
inline

Definition at line 26 of file cpp_declaration.h.

Member Function Documentation

◆ declarators() [1/2]

declaratorst & cpp_declarationt::declarators ( )
inline

Definition at line 67 of file cpp_declaration.h.

◆ declarators() [2/2]

const declaratorst & cpp_declarationt::declarators ( ) const
inline

Definition at line 62 of file cpp_declaration.h.

◆ get_specialization_of()

irep_idt cpp_declarationt::get_specialization_of ( ) const
inline

Definition at line 123 of file cpp_declaration.h.

◆ is_class_template()

bool cpp_declarationt::is_class_template ( ) const
inline

Definition at line 55 of file cpp_declaration.h.

◆ is_constructor()

bool cpp_declarationt::is_constructor ( ) const
inline

Definition at line 35 of file cpp_declaration.h.

◆ is_destructor()

bool cpp_declarationt::is_destructor ( ) const
inline

Definition at line 45 of file cpp_declaration.h.

◆ is_empty()

bool cpp_declarationt::is_empty ( ) const
inline

Definition at line 30 of file cpp_declaration.h.

◆ is_static_assert()

bool cpp_declarationt::is_static_assert ( ) const
inline

Definition at line 40 of file cpp_declaration.h.

◆ is_template()

bool cpp_declarationt::is_template ( ) const
inline

Definition at line 50 of file cpp_declaration.h.

◆ is_typedef()

bool cpp_declarationt::is_typedef ( ) const
inline

Definition at line 133 of file cpp_declaration.h.

◆ member_spec() [1/2]

cpp_member_spect & cpp_declarationt::member_spec ( )
inline

Definition at line 90 of file cpp_declaration.h.

◆ member_spec() [2/2]

const cpp_member_spect & cpp_declarationt::member_spec ( ) const
inline

Definition at line 84 of file cpp_declaration.h.

◆ name_anon_struct_union() [1/2]

void cpp_declarationt::name_anon_struct_union ( )
inline

Definition at line 142 of file cpp_declaration.h.

◆ name_anon_struct_union() [2/2]

void cpp_declarationt::name_anon_struct_union ( typet & dest)

Definition at line 32 of file cpp_declaration.cpp.

◆ output()

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

Definition at line 16 of file cpp_declaration.cpp.

◆ partial_specialization_args() [1/2]

cpp_template_args_non_tct & cpp_declarationt::partial_specialization_args ( )
inline

Definition at line 106 of file cpp_declaration.h.

◆ partial_specialization_args() [2/2]

const cpp_template_args_non_tct & cpp_declarationt::partial_specialization_args ( ) const
inline

Definition at line 112 of file cpp_declaration.h.

◆ set_is_typedef()

void cpp_declarationt::set_is_typedef ( )
inline

Definition at line 128 of file cpp_declaration.h.

◆ set_specialization_of()

void cpp_declarationt::set_specialization_of ( const irep_idt & id)
inline

Definition at line 118 of file cpp_declaration.h.

◆ storage_spec() [1/2]

cpp_storage_spect & cpp_declarationt::storage_spec ( )
inline

Definition at line 78 of file cpp_declaration.h.

◆ storage_spec() [2/2]

const cpp_storage_spect & cpp_declarationt::storage_spec ( ) const
inline

Definition at line 72 of file cpp_declaration.h.

◆ template_type() [1/2]

template_typet & cpp_declarationt::template_type ( )
inline

Definition at line 96 of file cpp_declaration.h.

◆ template_type() [2/2]

const template_typet & cpp_declarationt::template_type ( ) const
inline

Definition at line 101 of file cpp_declaration.h.


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