1/*******************************************************************\
3Module: Abstract Interpretation
5Author: Daniel Kroening, kroening@kroening.com
7\*******************************************************************/
20 std::ostringstream out;
23 return std::move(
json);
28 std::ostringstream out;
46 // Care must be taken here to give something that is still writable
68 // Since simplify_ai_lhs is required to return an addressable object
69 // (so remains a valid left hand side), to simplify
70 // `(something_simplifiable).b` we require that `something_simplifiable`
71 // must also be addressable
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
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Operator to dereference a pointer.
Base class for all expressions.
const irep_idt & id() const
Extract member of struct or union.
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 index_exprt & to_index_expr(const exprt &expr)
Cast an exprt to an index_exprt.
const member_exprt & to_member_expr(const exprt &expr)
Cast an exprt to a member_exprt.