12 #ifndef CPROVER_JAVA_BYTECODE_JAVA_EXPR_H
13 #define CPROVER_JAVA_BYTECODE_JAVA_EXPR_H
61 "java_instanceof_exprt rhs should be a type_exprt");
65 "java_instanceof_exprt rhs should denote a struct_tag_typet");
A base class for expressions that are predicates, i.e., Boolean-typed, and that take exactly two argu...
static void check(const exprt &expr, const validation_modet vm=validation_modet::INVARIANT)
static void validate(const exprt &expr, const namespacet &ns, const validation_modet vm=validation_modet::INVARIANT)
Base class for all expressions.
typet & type()
Return the type of the expression.
const irep_idt & id() const
java_instanceof_exprt(exprt lhs, const struct_tag_typet &target_type)
static void validate(const exprt &expr, const namespacet &ns, const validation_modet vm=validation_modet::INVARIANT)
const exprt & tested_expr() const
const struct_tag_typet & target_type() const
static void check(const exprt &expr, const validation_modet vm=validation_modet::INVARIANT)
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
A struct tag type, i.e., struct_typet with an identifier.
An expression denoting a type.
bool can_cast_expr< java_instanceof_exprt >(const exprt &base)
const java_instanceof_exprt & to_java_instanceof_expr(const exprt &expr)
Cast an exprt to a java_instanceof_exprt.
void validate_expr(const java_instanceof_exprt &value)
#define PRECONDITION(CONDITION)
API to expression classes.
bool can_cast_expr< type_exprt >(const exprt &base)
bool can_cast_expr< binary_exprt >(const exprt &base)
bool can_cast_type< struct_tag_typet >(const typet &type)
Check whether a reference to a typet is a struct_tag_typet.
const struct_tag_typet & to_struct_tag_type(const typet &type)
Cast a typet to a struct_tag_typet.
#define DATA_CHECK(vm, condition, message)
This macro takes a condition which denotes a well-formedness criterion on goto programs,...