cprover
|
The type of an expression, extends irept. More...
#include <type.h>
Public Member Functions | |
typet () | |
typet (const irep_idt &_id) | |
typet (const irep_idt &_id, const typet &_subtype) | |
const typet & | subtype () const |
typet & | subtype () |
bool | has_subtypes () const |
bool | has_subtype () const |
void | remove_subtype () |
const source_locationt & | source_location () const |
source_locationt & | add_source_location () |
typet & | add_type (const irep_namet &name) |
const typet & | find_type (const irep_namet &name) const |
![]() | |
bool | is_nil () const |
bool | is_not_nil () const |
irept (const irep_idt &_id) | |
irept () | |
irept (const irept &irep) | |
irept (irept &&irep) | |
irept & | operator= (const irept &irep) |
irept & | operator= (irept &&irep) |
~irept () | |
const irep_idt & | id () const |
const std::string & | id_string () const |
void | id (const irep_idt &_data) |
const irept & | find (const irep_namet &name) const |
irept & | add (const irep_namet &name) |
irept & | add (const irep_namet &name, const irept &irep) |
const std::string & | get_string (const irep_namet &name) const |
const irep_idt & | get (const irep_namet &name) const |
bool | get_bool (const irep_namet &name) const |
signed int | get_int (const irep_namet &name) const |
unsigned int | get_unsigned_int (const irep_namet &name) const |
std::size_t | get_size_t (const irep_namet &name) const |
long long | get_long_long (const irep_namet &name) const |
void | set (const irep_namet &name, const irep_idt &value) |
void | set (const irep_namet &name, const irept &irep) |
void | set (const irep_namet &name, const long long value) |
void | remove (const irep_namet &name) |
void | move_to_sub (irept &irep) |
void | move_to_named_sub (const irep_namet &name, irept &irep) |
bool | operator== (const irept &other) const |
bool | operator!= (const irept &other) const |
void | swap (irept &irep) |
bool | operator< (const irept &other) const |
defines ordering on the internal representation More... | |
bool | ordering (const irept &other) const |
defines ordering on the internal representation More... | |
int | compare (const irept &i) const |
defines ordering on the internal representation More... | |
void | clear () |
void | make_nil () |
subt & | get_sub () |
const subt & | get_sub () const |
named_subt & | get_named_sub () |
const named_subt & | get_named_sub () const |
named_subt & | get_comments () |
const named_subt & | get_comments () const |
std::size_t | hash () const |
std::size_t | full_hash () const |
bool | full_eq (const irept &other) const |
std::string | pretty (unsigned indent=0, unsigned max_indent=0) const |
const dt & | read () const |
dt & | write () |
Static Public Member Functions | |
static void | check (const typet &, const validation_modet) |
Check that the type is well-formed (shallow checks only, i.e., subtypes are not checked) More... | |
static void | validate (const typet &type, const namespacet &, const validation_modet vm=validation_modet::INVARIANT) |
Check that the type is well-formed, assuming that its subtypes have already been checked for well-formedness. More... | |
static void | validate_full (const typet &type, const namespacet &ns, const validation_modet vm=validation_modet::INVARIANT) |
Check that the type is well-formed (full check, including checks of subtypes) More... | |
Additional Inherited Members | |
![]() | |
typedef std::vector< irept > | subt |
typedef std::map< irep_namet, irept > | named_subt |
![]() | |
void | detach () |
![]() | |
static bool | is_comment (const irep_namet &name) |
static void | remove_ref (dt *old_data) |
static void | nonrecursive_destructor (dt *old_data) |
Does the same as remove_ref, but using an explicit stack instead of recursion. More... | |
![]() | |
dt * | data |
![]() | |
static dt | empty_d |
The type of an expression, extends irept.
Types may have subtypes. This is modeled with two subs named “subtype” (a single type) and “subtypes” (a vector of types). The class typet only adds specialized methods for accessing the subtype information to the interface of irept. For pre-defined types see std_types.h
and mathematical_types.h
.
|
inline |
|
inline |
|
inlinestatic |
Check that the type is well-formed (shallow checks only, i.e., subtypes are not checked)
Subclasses may override this function to provide specific well-formedness checks for the corresponding types.
The validation mode indicates whether well-formedness check failures are reported via DATA_INVARIANT violations or exceptions.
|
inline |
|
inline |
|
inlinestatic |
Check that the type is well-formed, assuming that its subtypes have already been checked for well-formedness.
Subclasses may override this function to provide specific well-formedness checks for the corresponding types.
The validation mode indicates whether well-formedness check failures are reported via DATA_INVARIANT violations or exceptions.
|
inlinestatic |
Check that the type is well-formed (full check, including checks of subtypes)
Subclasses may override this function, though in most cases the provided implementation should be sufficient.
The validation mode indicates whether well-formedness check failures are reported via DATA_INVARIANT violations or exceptions.