|
CBMC
|
Case expression: evaluates to the value corresponding to the first matching case. More...
#include <std_expr.h>
Inheritance diagram for case_exprt:
Collaboration diagram for case_exprt: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 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 () |
Static Public Member Functions | |
| static void | validate_expr (const case_exprt &value) |
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 | |
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, ...)
Definition at line 3593 of file std_expr.h.
Definition at line 3596 of file std_expr.h.
Constructor with select value.
Definition at line 3602 of file std_expr.h.
Add a case: value to compare and corresponding result.
| case_value | the value to compare against select_value |
| result_value | the value to return if case_value matches select_value |
Definition at line 3625 of file std_expr.h.
|
inline |
Get the case value for the i-th case.
Definition at line 3647 of file std_expr.h.
Get the case value for the i-th case.
Definition at line 3640 of file std_expr.h.
|
inline |
Get the number of cases (excluding the select value)
Definition at line 3633 of file std_expr.h.
|
inline |
Get the result value for the i-th case.
Definition at line 3661 of file std_expr.h.
Get the result value for the i-th case.
Definition at line 3654 of file std_expr.h.
|
inline |
Get the value that is being compared against.
Definition at line 3615 of file std_expr.h.
Get the value that is being compared against.
Definition at line 3608 of file std_expr.h.
|
inlinestatic |
Definition at line 3667 of file std_expr.h.