46 if(parameters.size()>
ops.size())
49 ops.reserve(parameters.size());
51 for(std::size_t i=
ops.size(); i<parameters.size(); i++)
53 const exprt &default_value=
54 parameters[i].default_value();
59 ops.push_back(default_value);
62 else if(parameters.size()<
ops.size())
69 exprt::operandst::iterator it=
ops.begin();
89 std::cout <<
"O: " <<
operand.pretty() <<
'\n';
118 std::cout <<
"OK " <<
rank <<
'\n';
123 operand.operands().size() == 1 &&
132 std::cout <<
"NOT OK\n";
141 for( ; it!=
ops.end(); ++it)
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
std::vector< parametert > parameterst
exprt::operandst operands
bool match(const code_typet &code_type, unsigned &distance, cpp_typecheckt &cpp_typecheck) const
bool has_class_type() const
void build(const side_effect_expr_function_callt &function_call)
Base class for all expressions.
std::vector< exprt > operandst
void set(const irep_idt &name, const irep_idt &value)
A side_effect_exprt representation of a function call side effect.
exprt::operandst & arguments()
The type of an expression, extends irept.
bool cpp_typecheck(cpp_parse_treet &cpp_parse_tree, symbol_table_baset &symbol_table, const std::string &module, message_handlert &message_handler)
C++ Language Type Checking.
C++ Language Type Checking.
bool is_reference(const typet &type)
Returns true if the type is a reference.
#define DATA_INVARIANT(CONDITION, REASON)
This condition should be used to document that assumptions that are made on goto_functions,...
const unary_exprt & to_unary_expr(const exprt &expr)
Cast an exprt to a unary_exprt.