CBMC
|
An expression describing a method on a class. More...
#include <std_expr.h>
Public Member Functions | |
class_method_descriptor_exprt (typet _type, irep_idt mangled_method_name, irep_idt class_id, irep_idt base_method_name) | |
const irep_idt & | mangled_method_name () const |
The method name after mangling it by combining it with the descriptor. More... | |
const irep_idt & | class_id () const |
Unique identifier in the symbol table, of the compile time type of the class which this expression is applied to. More... | |
const irep_idt & | base_method_name () const |
The name of the method to which this expression is applied as would be seen in the source code. More... | |
const irep_idt & | get_identifier () const |
A unique identifier of the combination of class and method overload to which this expression refers. More... | |
Public Member Functions inherited from nullary_exprt | |
nullary_exprt (const irep_idt &_id, typet _type) | |
operandst & | operands ()=delete |
remove all operand methods More... | |
const operandst & | operands () const =delete |
const exprt & | op0 () const =delete |
exprt & | op0 ()=delete |
const exprt & | op1 () const =delete |
exprt & | op1 ()=delete |
const exprt & | op2 () const =delete |
exprt & | op2 ()=delete |
const exprt & | op3 () const =delete |
exprt & | op3 ()=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) | |
exprt (const irep_idt &id, typet type, source_locationt loc) | |
typet & | type () |
Return the type of the expression. More... | |
const typet & | type () const |
bool | has_operands () const |
Return true if there is at least one operand. More... | |
operandst & | operands () |
const operandst & | operands () const |
exprt & | with_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... | |
exprt & | with_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_locationt & | find_source_location () const |
Get a source_locationt from the expression or from its operands (non-recursively). More... | |
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. 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_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 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 () |
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. More... | |
Static Public Member Functions inherited from nullary_exprt | |
static void | check (const exprt &expr, const validation_modet vm=validation_modet::INVARIANT) |
static void | validate (const exprt &expr, const namespacet &, const validation_modet vm=validation_modet::INVARIANT) |
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 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. More... | |
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 |
An expression describing a method on a class.
Definition at line 3507 of file std_expr.h.
|
inlineexplicit |
_type | The type of the method which this expression refers to. |
class_id | Unique identifier in the symbol table, of the compile time type of the class which this expression is applied to. For example this could be - java::java.lang.Object . |
base_method_name | The name of the method to which this expression is applied as would be seen in the source code. For example this could be - toString . |
mangled_method_name | The method name after mangling it by combining it with the descriptor. The mangled name is distinguished from other overloads of the method with different counts of or types of parameters. It is not distinguished between different implementations within a class hierarchy. For example if the overall expression refers to the java.lang.Object.toString method, then the mangled_method_name would be toString:()Ljava/lang/String; |
Definition at line 3524 of file std_expr.h.
|
inline |
The name of the method to which this expression is applied as would be seen in the source code.
For example this could be - toString
.
Definition at line 3560 of file std_expr.h.
|
inline |
Unique identifier in the symbol table, of the compile time type of the class which this expression is applied to.
For example this could be - java::java.lang.Object
.
Definition at line 3553 of file std_expr.h.
|
inline |
A unique identifier of the combination of class and method overload to which this expression refers.
For example this could be - java::java.lang.Object.toString:()Ljava/lang/String;
.
Definition at line 3568 of file std_expr.h.
|
inline |
The method name after mangling it by combining it with the descriptor.
The mangled name is distinguished from other overloads of the method with different counts of or types of parameters. It is not distinguished between different implementations within a class hierarchy. For example if the overall expression refers to the java.lang.Object.toString
method, then the mangled_method_name would be toString:()Ljava/lang/String;
Definition at line 3545 of file std_expr.h.