12 #ifndef CPROVER_ANALYSES_VARIABLE_SENSITIVITY_ABSTRACT_VALUE_OBJECT_H
13 #define CPROVER_ANALYSES_VARIABLE_SENSITIVITY_ABSTRACT_VALUE_OBJECT_H
abstract_objectt is the top of the inheritance heirarchy of objects used to represent individual vari...
std::shared_ptr< index_ranget > index_range_ptrt
index_range_ptrt make_empty_index_range()
index_range_ptrt make_indeterminate_index_range()
virtual const typet & type() const
Get the real type of the variable this abstract object is representing.
virtual index_range_ptrt index_range(const namespacet &ns) const =0
abstract_value_objectt(const typet &type, bool tp, bool bttm)
abstract_value_objectt(const exprt &expr, const abstract_environmentt &environment, const namespacet &ns)
abstract_value_objectt(const typet &type)
Base class for all expressions.
virtual ~index_ranget()=default
virtual bool advance_to_next()=0
virtual const exprt & current() const =0
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
bool advance_to_next() override
single_value_index_ranget(const exprt &val)
const exprt & current() const override
The type of an expression, extends irept.