CBMC: case_exprt Class Reference
Case expression: evaluates to the value corresponding to the first matching case. More...
Public Member Functions
case_exprt (operandst _operands, typet _type) case_exprt (exprt _select_value, typet _type) Constructor with select value.const exprt & select_value () const Get the value that is being compared against.
exprt & select_value () Get the value that is being compared against.
void add_case (const exprt &case_value, const exprt &result_value) Add a case: value to compare and corresponding result.
std::size_t number_of_cases () const Get the number of cases (excluding the select value)
const exprt & case_value (std::size_t i) const Get the case value for the i-th case.
exprt & case_value (std::size_t i) Get the case value for the i-th case.
const exprt & result_value (std::size_t i) const Get the result value for the i-th case.
exprt & result_value (std::size_t i) Get the result value for the i-th case.
Public Member Functions inherited from multi_ary_exprt
multi_ary_exprt (const irep_idt &_id, operandst _operands, typet _type)
multi_ary_exprt (const irep_idt &_id, operandst _operands)
multi_ary_exprt (const exprt &_lhs, const irep_idt &_id, exprt _rhs)
multi_ary_exprt (exprt _lhs, const irep_idt &_id, exprt _rhs, typet _type)
exprt & op0 ()
exprt & op1 ()
exprt & op2 ()
exprt & op3 ()
const exprt & op0 () const
const exprt & op1 () const
const exprt & op2 () const
const exprt & op3 () const
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 (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
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 = 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.
Protected Member Functions inherited from expr_protectedt
expr_protectedt (irep_idt _id, typet _type)
expr_protectedt (irep_idt _id, typet _type, operandst _operands)
exprt & op0 ()
const exprt & op0 () const
exprt & op1 ()
const exprt & op1 () const
exprt & op2 ()
const exprt & op2 () const
exprt & op3 ()
const exprt & op3 () const
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
Case expression: evaluates to the value corresponding to the first matching case.
The first operand is the value to compare against. Subsequent operands alternate between compare values and result values. The syntax is: case(select_value, case1_value, result1, case2_value, result2, ...)
- Deprecated:
- This expression is SMV-specific and has no other use.
Definition at line 3454 of file std_expr.h.