ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
symbol.h
Go to the documentation of this file.
1
// LOOK AT <util/message/format.h> FOR MORE INFO ABOUT
2
// WHAT THIS FILE IS ABOUT!!!
3
4
#ifndef ESBMC_FORMATS_START_ASSERTION
5
# error Do not include this header directly, use <util/message/format.h>
6
#endif
7
8
// symbol Specialization
9
#include <
util/symtab/symbol.h
>
10
template
<>
11
struct
fmt::formatter<
symbolt
>
12
{
13
// symbol does not support any specific format
14
constexpr
auto
parse
(format_parse_context &ctx)
15
{
16
auto
it = ctx.begin(), end = ctx.end();
17
if
(it != end && *it !=
'}'
)
18
throw
format_error(
"invalid format"
);
19
return
it;
20
}
21
22
// This will teach fmt how to convert irep_idt into a str.
23
template
<
typename
FormatContext>
24
auto
format
(
const
symbolt
&p, FormatContext &ctx)
const
25
{
26
std::ostringstream oss;
27
p.show(oss);
28
return
fmt::format_to(ctx.out(),
"{}"
, oss.str());
29
}
30
};
symbolt
Definition
symbol.h:12
fmt::formatter< symbolt >::format
auto format(const symbolt &p, FormatContext &ctx) const
Definition
symbol.h:24
fmt::formatter< symbolt >::parse
constexpr auto parse(format_parse_context &ctx)
Definition
symbol.h:14
symbol.h
src
util
message
formats
symbol.h
Generated by
1.15.0