20 std::ostringstream out;
23 return std::move(
json);
28 std::ostringstream out;
47 if(condition.
id() == ID_index)
51 if(!no_simplification)
54 return no_simplification;
56 else if(condition.
id() == ID_dereference)
60 if(!no_simplification)
63 return no_simplification;
65 else if(condition.
id() == ID_member)
73 if(!no_simplification)
76 return no_simplification;
Abstract Interpretation Domain.
This is the basic interface of the abstract interpreter with default implementations of the core func...
virtual xmlt output_xml(const ai_baset &ai, const namespacet &ns) const
virtual jsont output_json(const ai_baset &ai, const namespacet &ns) const
virtual bool ai_simplify_lhs(exprt &condition, const namespacet &ns) const
Simplifies the expression but keeps it as an l-value.
virtual void output(std::ostream &, const ai_baset &, const namespacet &) const
virtual bool ai_simplify(exprt &condition, const namespacet &) const
also add
Operator to dereference a pointer.
Base class for all expressions.
const irep_idt & id() const
Extract member of struct or union.
const exprt & compound() const
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
API to expression classes for Pointers.
const dereference_exprt & to_dereference_expr(const exprt &expr)
Cast an exprt to a dereference_exprt.
static void json(json_objectT &result, const irep_idt &property_id, const property_infot &property_info)
xmlt xml(const irep_idt &property_id, const property_infot &property_info)
exprt simplify_expr(exprt src, const namespacet &ns)
const member_exprt & to_member_expr(const exprt &expr)
Cast an exprt to a member_exprt.
const index_exprt & to_index_expr(const exprt &expr)
Cast an exprt to an index_exprt.