4 #ifndef ILANG_ILA_AST_SORT_VALUE_H__
5 #define ILANG_ILA_AST_SORT_VALUE_H__
22 typedef std::shared_ptr<Value>
ValPtr;
47 std::string
str()
const;
49 const bool&
val()
const;
53 std::ostream&
Print(std::ostream& out)
const;
85 std::string
str()
const;
91 std::ostream&
Print(std::ostream& out)
const;
108 #define BvValTypeBitWidth (8 * sizeof(BvValType))
139 std::ostream&
Print(std::ostream& out)
const;
159 #endif // ILANG_ILA_AST_SORT_VALUE_H__
MemVal(const BvValType &def_val)
Constructor with only the default value.
friend std::ostream & operator<<(std::ostream &out, const BvVal &val)
Overload output stream operator.
The base type for constant value.
Definition: sort_value.h:17
std::ostream & Print(std::ostream &out) const
Output to stream.
BvVal(const BvValType &val)
Constructor with boolean value.
const MemValMap & val_map() const
Return the map of addr/data.
friend std::ostream & operator<<(std::ostream &out, const MemVal &val)
Overload output stream operator.
~BoolVal()
Default destructor.
Value::ValPtr ValPtr
Pointer type for all use of Value.
Definition: sort_value.h:27
friend std::ostream & operator<<(std::ostream &out, const BoolVal &val)
Overload output stream operator.
std::map< BvValType, BvValType > MemValMap
Type for storing the address/data mapping.
Definition: sort_value.h:116
std::shared_ptr< MemVal > MemValPtr
Pointer type for all use of MemVal.
Definition: sort_value.h:114
MemVal::MemValPtr MemValPtr
Pointer type for all use of MemVal.
Definition: sort_value.h:153
BoolVal(const bool &val)
Constructor with boolean value.
The container for representing Boolean values.
Definition: sort_value.h:30
BoolVal::BoolValPtr BoolValPtr
Pointer type for all use of BoolVal.
Definition: sort_value.h:65
~BvVal()
Default destructor.
void set_data(const BvValType &addr, const BvValType &data)
Set the value stored in the address.
BvVal::BvValPtr BvValPtr
Pointer type for all use of BvVal.
Definition: sort_value.h:105
virtual ~Value()
virtual destructor.
Definition: sort_value.h:20
uint64_t BvValType
Data type for storing BvVal. NOTE: SHOULD BE SYNCED WITH NumericType!!
Definition: sort_value.h:71
const BvValType & get_data(const BvValType &addr) const
Return the value stored in the address.
std::string str() const
Return the string representation of the value.
std::ostream & Print(std::ostream &out) const
Output to stream.
MemVal::MemValMap MemValMap
Type for storing the address/data mapping.
Definition: sort_value.h:155
std::ostream & Print(std::ostream &out) const
Output to stream.
The container for representing memory (array) values.
Definition: sort_value.h:111
std::shared_ptr< BvVal > BvValPtr
Pointer type for all use of BvVal.
Definition: sort_value.h:73
The container for representing Bitvector values.
Definition: sort_value.h:68
const bool & val() const
Return the bool representation of the value.
BvVal::BvValType BvValType
Data type for storing BvVal.
Definition: sort_value.h:103
std::shared_ptr< Value > ValPtr
Pointer type for all use of Value.
Definition: sort_value.h:22
const BvValType & val() const
Return the arithmetic representation of the value.
std::shared_ptr< BoolVal > BoolValPtr
Pointer type for all use of BoolVal.
Definition: sort_value.h:33
const BvValType & def_val() const
Return the default value.
~MemVal()
Default destructor.
std::string str() const
Return the string representation of the value.