cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
printf_formatter.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: printf Formatting
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_GOTO_PROGRAMS_PRINTF_FORMATTER_H
13
#define CPROVER_GOTO_PROGRAMS_PRINTF_FORMATTER_H
14
15
#include <
util/expr.h
>
16
17
#include <list>
18
19
class
printf_formattert
20
{
21
public
:
22
void
operator()
(
const
std::string &
format
,
const
std::list<exprt> &_operands);
23
24
void
print
(std::ostream &out);
25
std::string
as_string
();
26
27
explicit
printf_formattert
(
const
namespacet
&_ns) :
ns
(_ns),
format_pos
(0)
28
{
29
}
30
31
protected
:
32
const
namespacet
&
ns
;
33
std::string
format
;
34
std::list<exprt>
operands
;
35
std::list<exprt>::const_iterator
next_operand
;
36
unsigned
format_pos
;
37
bool
eol
()
const
38
{
39
return
format_pos
>=
format
.size();
40
}
41
42
class
eol_exceptiont
43
{
44
};
45
46
char
next
()
47
{
48
if
(
eol
())
49
throw
eol_exceptiont
();
50
return
format
[
format_pos
++];
51
}
52
53
void
process_char
(std::ostream &out);
54
void
process_format
(std::ostream &out);
55
56
const
exprt
make_type
(
const
exprt
&src,
const
typet
&dest);
57
};
58
59
#endif
// CPROVER_GOTO_PROGRAMS_PRINTF_FORMATTER_H
exprt
Base class for all expressions.
Definition
expr.h:57
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
printf_formattert::eol_exceptiont
Definition
printf_formatter.h:43
printf_formattert::operands
std::list< exprt > operands
Definition
printf_formatter.h:34
printf_formattert::make_type
const exprt make_type(const exprt &src, const typet &dest)
Definition
printf_formatter.cpp:23
printf_formattert::format
std::string format
Definition
printf_formatter.h:33
printf_formattert::format_pos
unsigned format_pos
Definition
printf_formatter.h:36
printf_formattert::next
char next()
Definition
printf_formatter.h:46
printf_formattert::next_operand
std::list< exprt >::const_iterator next_operand
Definition
printf_formatter.h:35
printf_formattert::as_string
std::string as_string()
Definition
printf_formatter.cpp:54
printf_formattert::operator()
void operator()(const std::string &format, const std::list< exprt > &_operands)
Definition
printf_formatter.cpp:30
printf_formattert::process_format
void process_format(std::ostream &out)
Definition
printf_formatter.cpp:61
printf_formattert::eol
bool eol() const
Definition
printf_formatter.h:37
printf_formattert::printf_formattert
printf_formattert(const namespacet &_ns)
Definition
printf_formatter.h:27
printf_formattert::print
void print(std::ostream &out)
Definition
printf_formatter.cpp:38
printf_formattert::ns
const namespacet & ns
Definition
printf_formatter.h:32
printf_formattert::process_char
void process_char(std::ostream &out)
Definition
printf_formatter.cpp:314
typet
The type of an expression, extends irept.
Definition
type.h:29
expr.h
ansi-c
printf_formatter.h
Generated by
1.17.0