cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
string_constant.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module:
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
9
#ifndef CPROVER_UTIL_STRING_CONSTANT_H
10
#define CPROVER_UTIL_STRING_CONSTANT_H
11
12
#include "
std_expr.h
"
13
14
class
string_constantt
:
public
nullary_exprt
15
{
16
public
:
17
explicit
string_constantt
(
const
irep_idt
&);
18
19
void
value
(
const
irep_idt
&);
20
21
const
irep_idt
&
value
()
const
22
{
23
return
get
(ID_value);
24
}
25
26
array_exprt
to_array_expr
()
const
;
27
28
const
typet
&
char_type
()
const
29
{
30
return
type
().
element_type
();
31
}
32
33
const
array_typet
&
type
()
const
;
34
array_typet
&
type
();
35
};
36
37
template
<>
38
inline
bool
can_cast_expr<string_constantt>
(
const
exprt
&base)
39
{
40
return
base.
id
() == ID_string_constant;
41
}
42
43
inline
void
validate_expr
(
const
string_constantt
&expr)
44
{
45
validate_operands
(expr, 0,
"String constants must not have operands"
);
46
}
47
48
inline
const
string_constantt
&
to_string_constant
(
const
exprt
&expr)
49
{
50
PRECONDITION
(expr.
id
() == ID_string_constant);
51
return
static_cast<
const
string_constantt
&
>
(expr);
52
}
53
54
inline
const
string_constantt
&
to_string_constant
(
const
typet
&type)
55
{
56
return
to_string_constant
((
const
exprt
&)type);
57
}
58
59
inline
string_constantt
&
to_string_constant
(
exprt
&expr)
60
{
61
PRECONDITION
(expr.
id
() == ID_string_constant);
62
return
static_cast<
string_constantt
&
>
(expr);
63
}
64
65
inline
string_constantt
&
to_string_constant
(
typet
&type)
66
{
67
return
to_string_constant
((
exprt
&)type);
68
}
69
70
#endif
// CPROVER_ANSI_C_STRING_CONSTANT_H
array_exprt
Array constructor from list of elements.
Definition
std_expr.h:1560
array_typet
Arrays with given size.
Definition
std_types.h:807
array_typet::element_type
const typet & element_type() const
The type of the elements of the array.
Definition
std_types.h:827
exprt
Base class for all expressions.
Definition
expr.h:57
irept::get
const irep_idt & get(const irep_idt &name) const
Definition
irep.cpp:44
irept::id
const irep_idt & id() const
Definition
irep.h:388
nullary_exprt::nullary_exprt
nullary_exprt(const irep_idt &_id, typet _type)
Definition
std_expr.h:25
string_constantt
Definition
string_constant.h:15
string_constantt::type
const array_typet & type() const
Definition
string_constant.cpp:33
string_constantt::char_type
const typet & char_type() const
Definition
string_constant.h:28
string_constantt::value
const irep_idt & value() const
Definition
string_constant.h:21
string_constantt::to_array_expr
array_exprt to_array_expr() const
convert string into array constant
Definition
string_constant.cpp:44
string_constantt::string_constantt
string_constantt(const irep_idt &)
Definition
string_constant.cpp:21
typet
The type of an expression, extends irept.
Definition
type.h:29
validate_operands
void validate_operands(const exprt &value, exprt::operandst::size_type number, const char *message, bool allow_more=false)
Definition
expr_cast.h:250
PRECONDITION
#define PRECONDITION(CONDITION)
Definition
invariant.h:463
std_expr.h
API to expression classes.
validate_expr
void validate_expr(const string_constantt &expr)
Definition
string_constant.h:43
can_cast_expr< string_constantt >
bool can_cast_expr< string_constantt >(const exprt &base)
Definition
string_constant.h:38
to_string_constant
const string_constantt & to_string_constant(const exprt &expr)
Definition
string_constant.h:48
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
util
string_constant.h
Generated by
1.17.0