cprover
symbol_exprt Class Reference

Expression to hold a symbol (variable) More...

#include <std_expr.h>

+ Inheritance diagram for symbol_exprt:
+ Collaboration diagram for symbol_exprt:

Public Member Functions

 symbol_exprt ()
 
 symbol_exprt (const irep_idt &identifier)
 
 symbol_exprt (typet type)
 
 symbol_exprt (const irep_idt &identifier, typet type)
 
void set_identifier (const irep_idt &identifier)
 
const irep_idtget_identifier () const
 
- Public Member Functions inherited from nullary_exprt
 nullary_exprt (const irep_idt &_id)
 
 nullary_exprt (const irep_idt &_id, typet _type)
 
operandstoperands ()=delete
 remove all operand methods More...
 
const operandstoperands () const =delete
 
const exprtop0 () const =delete
 
exprtop0 ()=delete
 
const exprtop1 () const =delete
 
exprtop1 ()=delete
 
const exprtop2 () const =delete
 
exprtop2 ()=delete
 
const exprtop3 () const =delete
 
exprtop3 ()=delete
 
void move_to_operands (exprt &)=delete
 
void move_to_operands (exprt &, exprt &)=delete
 
void move_to_operands (exprt &, exprt &, exprt &)=delete
 
void copy_to_operands (const exprt &expr)=delete
 
void copy_to_operands (const exprt &, const exprt &)=delete
 
void copy_to_operands (const exprt &, const exprt &, const exprt &)=delete
 
- 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)
 
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
 
exprtop0 ()
 
exprtop1 ()
 
exprtop2 ()
 
exprtop3 ()
 
const exprtop0 () const
 
const exprtop1 () const
 
const exprtop2 () const
 
const exprtop3 () const
 
void reserve_operands (operandst::size_type n)
 
void move_to_operands (exprt &expr)
 Move the given argument to the end of exprt's operands. More...
 
void move_to_operands (exprt &e1, exprt &e2)
 Move the given arguments to the end of exprt's operands. More...
 
void move_to_operands (exprt &e1, exprt &e2, exprt &e3)
 Move the given arguments to the end of exprt's operands. More...
 
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 copy_to_operands (const exprt &e1, const exprt &e2)
 Copy the given arguments to the end of exprt's operands. More...
 
void add_to_operands (const exprt &e1, const exprt &e2)
 Add the given arguments 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 (const exprt &e1, const exprt &e2, const exprt &e3)
 Add the given arguments to the end of exprt's operands. More...
 
void copy_to_operands (const exprt &e1, const exprt &e2, const exprt &e3)
 Copy 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...
 
void make_typecast (const typet &_type)
 Create a typecast_exprt to the given type. More...
 
void make_bool (bool value)
 Replace the expression by a Boolean expression representing value. 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 visit (class expr_visitort &visitor)
 
void visit (class const_expr_visitort &visitor) 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_namet &name) const
 
ireptadd (const irep_namet &name)
 
ireptadd (const irep_namet &name, irept irep)
 
const std::string & get_string (const irep_namet &name) const
 
const irep_idtget (const irep_namet &name) const
 
bool get_bool (const irep_namet &name) const
 
signed int get_int (const irep_namet &name) const
 
std::size_t get_size_t (const irep_namet &name) const
 
long long get_long_long (const irep_namet &name) const
 
void set (const irep_namet &name, const irep_idt &value)
 
void set (const irep_namet &name, irept irep)
 
void set (const irep_namet &name, const long long value)
 
void remove (const irep_namet &name)
 
void move_to_sub (irept &irep)
 
void move_to_named_sub (const irep_namet &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 >
 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 ()
 

Static Public Member Functions

static symbol_exprt typeless (const irep_idt &id)
 Generate a symbol_exprt without a proper type. More...
 
- 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_namet &name)
 
static std::size_t number_of_non_comments (const named_subt &)
 count the number of named_sub elements that are not comments More...
 

Additional Inherited Members

- 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 >
using dt = tree_nodet< 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...
 
- Protected Member Functions inherited from expr_protectedt
 expr_protectedt (irep_idt _id, typet _type)
 
 expr_protectedt (irep_idt _id, typet _type, operandst _operands)
 
void make_bool (bool value)
 Replace the expression by a Boolean expression representing value. More...
 
void make_typecast (const typet &_type)
 Create a typecast_exprt to the given type. More...
 
exprtop0 ()
 
const exprtop0 () const
 
exprtop1 ()
 
const exprtop1 () const
 
exprtop2 ()
 
const exprtop2 () const
 
exprtop3 ()
 
const exprtop3 () const
 
- Protected Member Functions inherited from exprt
exprtadd_expr (const irep_idt &name)
 
const exprtfind_expr (const irep_idt &name) const
 
- Protected Member Functions inherited from sharing_treet< irept >
void detach ()
 
- Static Protected Member Functions inherited from sharing_treet< 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 >
dtdata
 
- Static Protected Attributes inherited from sharing_treet< irept >
static dt empty_d
 

Detailed Description

Expression to hold a symbol (variable)

Definition at line 100 of file std_expr.h.

Constructor & Destructor Documentation

◆ symbol_exprt() [1/4]

symbol_exprt::symbol_exprt ( )
inline

Definition at line 104 of file std_expr.h.

◆ symbol_exprt() [2/4]

symbol_exprt::symbol_exprt ( const irep_idt identifier)
inlineexplicit
Parameters
identifierName of symbol

Definition at line 110 of file std_expr.h.

◆ symbol_exprt() [3/4]

symbol_exprt::symbol_exprt ( typet  type)
inlineexplicit
Parameters
typeType of symbol

Definition at line 116 of file std_expr.h.

◆ symbol_exprt() [4/4]

symbol_exprt::symbol_exprt ( const irep_idt identifier,
typet  type 
)
inline
Parameters
identifierName of symbol
typeType of symbol

Definition at line 122 of file std_expr.h.

Member Function Documentation

◆ get_identifier()

const irep_idt& symbol_exprt::get_identifier ( ) const
inline

Definition at line 142 of file std_expr.h.

◆ set_identifier()

void symbol_exprt::set_identifier ( const irep_idt identifier)
inline

Definition at line 137 of file std_expr.h.

◆ typeless()

static symbol_exprt symbol_exprt::typeless ( const irep_idt id)
inlinestatic

Generate a symbol_exprt without a proper type.

Use if, and only if, the type either cannot be determined just yet (such as during type checking) or when the type truly is immaterial. The latter case may better be dealt with by using just an irep_idt, and not a symbol_exprt.

Definition at line 132 of file std_expr.h.


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