Skip to content

Commit fdf802a

Browse files
author
Daniel Kroening
committed
formatter for ANSI-C
1 parent 677ea94 commit fdf802a

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

src/ansi-c/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ SRC = anonymous_member.cpp \
22
ansi_c_convert_type.cpp \
33
ansi_c_declaration.cpp \
44
ansi_c_entry_point.cpp \
5+
ansi_c_formatter.cpp \
56
ansi_c_internal_additions.cpp \
67
ansi_c_language.cpp \
78
ansi_c_lex.yy.cpp \

src/ansi-c/ansi_c_formatter.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*******************************************************************\
2+
3+
Module:
4+
5+
Author: Daniel Kroening, [email protected]
6+
7+
\*******************************************************************/
8+
9+
#include "ansi_c_formatter.h"
10+
11+
#include "expr2c.h"
12+
13+
#include <ostream>
14+
15+
std::ostream &ansi_c_formattert::format(std::ostream &os, const exprt &expr)
16+
{
17+
return os << expr2c(expr, ns);
18+
}
19+
20+
std::ostream &ansi_c_formattert::format(std::ostream &os, const typet &type)
21+
{
22+
return os << type2c(type, ns);
23+
}
24+
25+
std::ostream &
26+
ansi_c_formattert::format(std::ostream &os, const source_locationt &loc)
27+
{
28+
return os << loc;
29+
}

src/ansi-c/ansi_c_formatter.h

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*******************************************************************\
2+
3+
Module:
4+
5+
Author: Daniel Kroening, [email protected]
6+
7+
\*******************************************************************/
8+
9+
#ifndef CPROVER_ANSI_C_FORMATTER_H
10+
#define CPROVER_ANSI_C_FORMATTER_H
11+
12+
#include <util/formatter.h>
13+
14+
class ansi_c_formattert : public formattert
15+
{
16+
public:
17+
explicit ansi_c_formattert(const namespacet &_ns) : ns(_ns)
18+
{
19+
}
20+
21+
std::ostream &format(std::ostream &, const exprt &) override;
22+
std::ostream &format(std::ostream &, const typet &) override;
23+
std::ostream &format(std::ostream &, const source_locationt &) override;
24+
25+
const namespacet &ns;
26+
};
27+
28+
#endif // CPROVER_ANSI_C_FORMATTER_H

0 commit comments

Comments
 (0)