ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
string_constant.h
Go to the documentation of this file.
1#ifndef CPROVER_ANSI_C_EXPR_H
2#define CPROVER_ANSI_C_EXPR_H
3
4#include <util/irep/expr.h>
5
6class string_constantt : public exprt
7{
8public:
9 static const irep_idt k_default;
10 static const irep_idt k_wide;
11 static const irep_idt k_unicode;
12
13 explicit string_constantt(const irep_idt &value);
14 explicit string_constantt(
15 const irep_idt &value,
16 const typet &type,
17 const irep_idt &kind);
18
19 friend inline const string_constantt &to_string_constant(const exprt &expr)
20 {
21 assert(expr.id() == "string-constant");
22 return static_cast<const string_constantt &>(expr);
23 }
24
26 {
27 assert(expr.id() == "string-constant");
28 return static_cast<string_constantt &>(expr);
29 }
30
31 irep_idt mb_value() const;
32
33 class mb_conversion_error : public std::runtime_error
34 {
35 using std::runtime_error::runtime_error;
36 };
37};
38
39const string_constantt &to_string_constant(const exprt &expr);
41
42#endif
Definition expr.h:34
exprt()=default
const irep_idt & value() const
Definition expr.h:67
Definition irep_idt.h:12
typet & type()
Definition irep.h:153
const irep_idt & id() const
Definition irep.h:109
Definition string_constant.h:34
Definition string_constant.h:7
irep_idt mb_value() const
Definition string_constant.cpp:268
static const irep_idt k_wide
Definition string_constant.h:10
string_constantt(const irep_idt &value)
Definition string_constant.cpp:17
friend const string_constantt & to_string_constant(const exprt &expr)
Definition string_constant.h:19
friend string_constantt & to_string_constant(exprt &expr)
Definition string_constant.h:25
static const irep_idt k_unicode
Definition string_constant.h:11
static const irep_idt k_default
Definition string_constant.h:9
Definition type.h:9
const string_constantt & to_string_constant(const exprt &expr)
Definition string_constant.h:19