CBMC
array_typet Class Reference

Arrays with given size. More...

#include <std_types.h>

+ Inheritance diagram for array_typet:
+ Collaboration diagram for array_typet:

Public Member Functions

 array_typet (typet _subtype, exprt _size)
 
typet index_type () const
 The type of the index expressions into any instance of this type. More...
 
typetindex_type_nonconst ()
 The type of the index expressions into any instance of this type. More...
 
const typetelement_type () const
 The type of the elements of the array. More...
 
typetelement_type ()
 The type of the elements of the array. More...
 
const exprtsize () const
 
exprtsize ()
 
bool is_complete () const
 
bool is_incomplete () const
 
- Public Member Functions inherited from type_with_subtypet
 type_with_subtypet (irep_idt _id, typet _subtype)
 
const typetsubtype () const
 
typetsubtype ()
 
- Public Member Functions inherited from typet
 typet ()
 
 typet (const irep_idt &_id)
 
 typet (irep_idt _id, typet _subtype)
 
typetadd_subtype ()
 
bool has_subtypes () const
 
bool has_subtype () const
 
void remove_subtype ()
 
const source_locationtsource_location () const
 
source_locationtadd_source_location ()
 
typet && with_source_location (source_locationt location) &&
 This is a 'fluent style' method for creating a new type with an added-on source location. More...
 
typetwith_source_location (source_locationt location) &
 This is a 'fluent style' method for adding a source location. More...
 
typet && with_source_location (const typet &type) &&
 This is a 'fluent style' method for creating a new type with an added-on source location. More...
 
typetwith_source_location (const typet &type) &
 This is a 'fluent style' method for adding a source location. More...
 
typetadd_type (const irep_idt &name)
 
const typetfind_type (const irep_idt &name) const
 
- Public Member Functions inherited from irept
bool is_nil () const
 
bool is_not_nil () const
 
 irept (const irep_idt &_id)
 
 irept (const irep_idt &_id, const named_subt &_named_sub, const subt &_sub)
 
 irept ()=default
 
const irep_idtid () const
 
const std::string & id_string () const
 
void id (const irep_idt &_data)
 
const ireptfind (const irep_idt &name) const
 
ireptadd (const irep_idt &name)
 
ireptadd (const irep_idt &name, irept irep)
 
const std::string & get_string (const irep_idt &name) const
 
const irep_idtget (const irep_idt &name) const
 
bool get_bool (const irep_idt &name) const
 
signed int get_int (const irep_idt &name) const
 
std::size_t get_size_t (const irep_idt &name) const
 
long long get_long_long (const irep_idt &name) const
 
void set (const irep_idt &name, const irep_idt &value)
 
void set (const irep_idt &name, irept irep)
 
void set (const irep_idt &name, const long long value)
 
void set_size_t (const irep_idt &name, const std::size_t value)
 
void remove (const irep_idt &name)
 
void move_to_sub (irept &irep)
 
void move_to_named_sub (const irep_idt &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 comments are ignored More...
 
void clear ()
 
void make_nil ()
 
subtget_sub ()
 
const subtget_sub () const
 
named_subtget_named_sub ()
 
const named_subtget_named_sub () 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
 
- Public Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
 sharing_treet (irep_idt _id)
 
 sharing_treet (irep_idt _id, named_subt _named_sub, subt _sub)
 
 sharing_treet ()
 
 sharing_treet (const sharing_treet &irep)
 
 sharing_treet (sharing_treet &&irep)
 
sharing_treetoperator= (const sharing_treet &irep)
 
sharing_treetoperator= (sharing_treet &&irep)
 
 ~sharing_treet ()
 
const dtread () const
 
dtwrite ()
 

Static Public Member Functions

static void check (const typet &type, const validation_modet vm=validation_modet::INVARIANT)
 
- Static Public Member Functions inherited from type_with_subtypet
static void check (const typet &type, const validation_modet vm=validation_modet::INVARIANT)
 
- Static Public Member Functions inherited from typet
static void check (const typet &, const validation_modet=validation_modet::INVARIANT)
 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...
 
- Static Public Member Functions inherited from irept
static bool is_comment (const irep_idt &name)
 
static std::size_t number_of_non_comments (const named_subt &)
 count the number of named_sub elements that are not comments More...
 

Protected Member Functions

const typetsubtype () const
 
typetsubtype ()
 
- Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
void detach ()
 

Additional Inherited Members

- Public Types inherited from irept
using baset = tree_implementationt
 
- Public Types inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
using dt = tree_nodet< irept, forward_list_as_mapt< irep_idt, irept >, true >
 
using subt = typename dt::subt
 
using named_subt = typename dt::named_subt
 
using tree_implementationt = sharing_treet
 Used to refer to this class from derived classes. More...
 
- Static Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
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...
 
- Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
dtdata
 
- Static Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > >
static dt empty_d
 

Detailed Description

Arrays with given size.

Used for ordinary source-language arrays.

Definition at line 806 of file std_types.h.

Constructor & Destructor Documentation

◆ array_typet()

array_typet::array_typet ( typet  _subtype,
exprt  _size 
)
inline

Definition at line 809 of file std_types.h.

Member Function Documentation

◆ check()

void array_typet::check ( const typet type,
const validation_modet  vm = validation_modet::INVARIANT 
)
static

Definition at line 20 of file std_types.cpp.

◆ element_type() [1/2]

typet& array_typet::element_type ( )
inline

The type of the elements of the array.

Definition at line 833 of file std_types.h.

◆ element_type() [2/2]

const typet& array_typet::element_type ( ) const
inline

The type of the elements of the array.

Definition at line 827 of file std_types.h.

◆ index_type()

typet array_typet::index_type ( ) const

The type of the index expressions into any instance of this type.

Definition at line 34 of file std_types.cpp.

◆ index_type_nonconst()

typet& array_typet::index_type_nonconst ( )
inline

The type of the index expressions into any instance of this type.

This is added as a comment now for backwards compatibility, but will eventually be the first subtype.

Definition at line 821 of file std_types.h.

◆ is_complete()

bool array_typet::is_complete ( ) const
inline

Definition at line 852 of file std_types.h.

◆ is_incomplete()

bool array_typet::is_incomplete ( ) const
inline

Definition at line 857 of file std_types.h.

◆ size() [1/2]

exprt& array_typet::size ( )
inline

Definition at line 847 of file std_types.h.

◆ size() [2/2]

const exprt& array_typet::size ( ) const
inline

Definition at line 840 of file std_types.h.

◆ subtype() [1/2]

typet& type_with_subtypet::subtype
inlineprotected

Definition at line 193 of file type.h.

◆ subtype() [2/2]

const typet& type_with_subtypet::subtype
inlineprotected

Definition at line 187 of file type.h.


The documentation for this class was generated from the following files: