cprover
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 #include "expr.h"
14 
16 {
17 public:
18  explicit string_constantt(const irep_idt &value);
19 
20  void set_value(const irep_idt &value);
21 
22  const irep_idt &get_value() const
23  {
24  return get(ID_value);
25  }
26 
27  array_exprt to_array_expr() const;
29 };
30 
31 inline const string_constantt &to_string_constant(const exprt &expr)
32 {
33  PRECONDITION(expr.id() == ID_string_constant);
34  return static_cast<const string_constantt &>(expr);
35 }
36 
37 inline const string_constantt &to_string_constant(const typet &type)
38 {
39  return to_string_constant((const exprt &)type);
40 }
41 
43 {
44  PRECONDITION(expr.id() == ID_string_constant);
45  return static_cast<string_constantt &>(expr);
46 }
47 
49 {
50  return to_string_constant((exprt &)type);
51 }
52 
53 #endif // CPROVER_ANSI_C_STRING_CONSTANT_H
Array constructor from list of elements.
Definition: std_expr.h:1382
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition: dstring.h:37
Base class for all expressions.
Definition: expr.h:54
const irep_idt & id() const
Definition: irep.h:407
const irep_idt & get(const irep_namet &name) const
Definition: irep.cpp:51
An expression without operands.
Definition: std_expr.h:23
const irep_idt & get_value() const
string_constantt(const irep_idt &value)
bool from_array_expr(const array_exprt &)
array_exprt to_array_expr() const
convert string into array constant
void set_value(const irep_idt &value)
The type of an expression, extends irept.
Definition: type.h:28
#define PRECONDITION(CONDITION)
Definition: invariant.h:464
API to expression classes.
const string_constantt & to_string_constant(const exprt &expr)