cprover
abstract_value_object.cpp
Go to the documentation of this file.
1 /*******************************************************************\
2 
3  Module: analyses variable-sensitivity
4 
5  Author: Jez Higgins, jez@jezuk.co.uk
6 
7 \*******************************************************************/
8 
10 
12 {
13 public:
14  const exprt &current() const override
15  {
16  return nil;
17  }
18  bool advance_to_next() override
19  {
20  return false;
21  }
22 
23 private:
25 };
26 
28 {
29 public:
31  {
32  }
33 };
34 
36  : value(val), available(true)
37 {
38 }
39 
41 {
42  return value;
43 }
44 
46 {
47  bool a = available;
48  available = false;
49  return a;
50 }
51 
53 {
54  return std::make_shared<empty_index_ranget>();
55 }
56 
58 {
59  return std::make_shared<indeterminate_index_ranget>();
60 }
index_range_ptrt make_empty_index_range()
index_range_ptrt make_indeterminate_index_range()
Common behaviour for abstract objects modelling values - constants, intervals, etc.
std::shared_ptr< index_ranget > index_range_ptrt
const exprt & current() const override
bool advance_to_next() override
Base class for all expressions.
Definition: expr.h:54
The NIL expression.
Definition: std_expr.h:2735
single_value_index_ranget(const exprt &val)
const exprt & current() const override