cprover
refined_string_typet Class Reference

#include <refined_string_type.h>

Inheritance diagram for refined_string_typet:
[legend]
Collaboration diagram for refined_string_typet:
[legend]

Public Member Functions

 refined_string_typet (const typet &index_type, const typet &char_type)
 
const array_typetget_content_type () const
 
const typetget_char_type () const
 
const typetget_index_type () const
 
constant_exprt index_of_int (int i) const
 
- Public Member Functions inherited from struct_typet
 struct_typet ()
 
bool is_prefix_of (const struct_typet &other) const
 
- Public Member Functions inherited from struct_union_typet
 struct_union_typet (const irep_idt &_id)
 
const componentstcomponents () const
 
componentstcomponents ()
 
bool has_component (const irep_idt &component_name) const
 
const componenttget_component (const irep_idt &component_name) const
 
std::size_t component_number (const irep_idt &component_name) const
 
typet component_type (const irep_idt &component_name) const
 
irep_idt get_tag () const
 
void set_tag (const irep_idt &tag)
 
- Public Member Functions inherited from typet
 typet ()
 
 typet (const irep_idt &_id)
 
 typet (const irep_idt &_id, const typet &_subtype)
 
const typetsubtype () const
 
typetsubtype ()
 
subtypestsubtypes ()
 
const subtypestsubtypes () const
 
bool has_subtypes () const
 
bool has_subtype () const
 
void remove_subtype ()
 
void move_to_subtypes (typet &type)
 
void copy_to_subtypes (const typet &type)
 
const source_locationtsource_location () const
 
source_locationtadd_source_location ()
 
typetadd_type (const irep_namet &name)
 
const typetfind_type (const irep_namet &name) const
 
- Public Member Functions inherited from irept
bool is_nil () const
 
bool is_not_nil () const
 
 irept (const irep_idt &_id)
 
 irept ()
 
 irept (const irept &irep)
 
 irept (irept &&irep)
 
ireptoperator= (const irept &irep)
 
ireptoperator= (irept &&irep)
 
 ~irept ()
 
const irep_idtid () const
 
const std::string & id_string () const
 
void id (const irep_idt &_data)
 
const ireptfind (const irep_namet &name) const
 
ireptadd (const irep_namet &name)
 
ireptadd (const irep_namet &name, const irept &irep)
 
const std::string & get_string (const irep_namet &name) const
 
const irep_idtget (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 ()
 
subtget_sub ()
 
const subtget_sub () const
 
named_subtget_named_sub ()
 
const named_subtget_named_sub () const
 
named_subtget_comments ()
 
const named_subtget_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 dtread () const
 
dtwrite ()
 

Static Public Member Functions

static bool is_c_string_type (const typet &type)
 
static bool is_java_string_pointer_type (const typet &type)
 
static bool is_java_string_type (const typet &type)
 
static bool is_java_string_builder_type (const typet &type)
 
static bool is_java_char_sequence_type (const typet &type)
 
static bool is_unrefined_string_type (const typet &type)
 
static bool is_unrefined_string (const exprt &expr)
 

Additional Inherited Members

- Public Types inherited from struct_union_typet
typedef std::vector< componenttcomponentst
 
- Public Types inherited from typet
typedef std::vector< typetsubtypest
 
- Public Types inherited from irept
typedef std::vector< ireptsubt
 
typedef std::map< irep_namet, ireptnamed_subt
 
- Protected Member Functions inherited from irept
void detach ()
 
- Static Protected Member Functions inherited from irept
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...
 
- Protected Attributes inherited from irept
dtdata
 
- Static Protected Attributes inherited from irept
static dt empty_d
 

Detailed Description

Definition at line 28 of file refined_string_type.h.

Constructor & Destructor Documentation

◆ refined_string_typet()

refined_string_typet::refined_string_typet ( const typet index_type,
const typet char_type 
)

Member Function Documentation

◆ get_char_type()

◆ get_content_type()

const array_typet& refined_string_typet::get_content_type ( ) const
inline

◆ get_index_type()

◆ index_of_int()

constant_exprt refined_string_typet::index_of_int ( int  i) const
inline

Definition at line 78 of file refined_string_type.h.

References from_integer(), and get_index_type().

◆ is_c_string_type()

bool refined_string_typet::is_c_string_type ( const typet type)
static
parameters: a type
Returns
Boolean telling whether the type is that of C strings

Definition at line 34 of file refined_string_type.cpp.

References CPROVER_PREFIX, struct_union_typet::get_tag(), irept::id(), and to_struct_type().

Referenced by is_unrefined_string_type().

◆ is_java_char_sequence_type()

bool refined_string_typet::is_java_char_sequence_type ( const typet type)
static
parameters: a type
Returns
Boolean telling whether the type is that of java char sequence

Definition at line 90 of file refined_string_type.cpp.

References struct_union_typet::get_tag(), irept::id(), typet::subtype(), to_pointer_type(), and to_struct_type().

Referenced by is_unrefined_string_type().

◆ is_java_string_builder_type()

bool refined_string_typet::is_java_string_builder_type ( const typet type)
static
parameters: a type
Returns
Boolean telling whether the type is that of java string builder

Definition at line 73 of file refined_string_type.cpp.

References struct_union_typet::get_tag(), irept::id(), typet::subtype(), to_pointer_type(), and to_struct_type().

Referenced by is_unrefined_string_type().

◆ is_java_string_pointer_type()

bool refined_string_typet::is_java_string_pointer_type ( const typet type)
static
parameters: a type
Returns
Boolean telling whether the type is that of java string pointers

Definition at line 43 of file refined_string_type.cpp.

References irept::id(), is_java_string_type(), typet::subtype(), and to_pointer_type().

Referenced by string_constraint_generatort::add_axioms_for_index_of(), string_constraint_generatort::add_axioms_for_last_index_of(), and is_unrefined_string_type().

◆ is_java_string_type()

bool refined_string_typet::is_java_string_type ( const typet type)
static
parameters: a type
Returns
Boolean telling whether the type is that of java string

Definition at line 56 of file refined_string_type.cpp.

References symbol_typet::get_identifier(), struct_union_typet::get_tag(), irept::id(), to_struct_type(), and to_symbol_type().

Referenced by is_java_string_pointer_type().

◆ is_unrefined_string()

static bool refined_string_typet::is_unrefined_string ( const exprt expr)
inlinestatic

Definition at line 73 of file refined_string_type.h.

References is_unrefined_string_type(), and exprt::type().

◆ is_unrefined_string_type()


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