Skip to content

Commit a3d7392

Browse files
author
Daniel Kroening
committed
separate format_rec for codet
1 parent 2c44f49 commit a3d7392

File tree

2 files changed

+23
-17
lines changed

2 files changed

+23
-17
lines changed

src/util/format_expr.cpp

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -259,24 +259,27 @@ std::ostream &format_rec(std::ostream &os, const exprt &expr)
259259
return os << format(if_expr.cond()) << '?' << format(if_expr.true_case())
260260
<< ':' << format(if_expr.false_case());
261261
}
262-
else if(id == ID_code)
263-
{
264-
const auto &code = to_code(expr);
265-
const irep_idt &statement = code.get_statement();
262+
else
263+
return fallback_format_rec(os, expr);
264+
}
266265

267-
if(statement == ID_assign)
268-
return os << format(to_code_assign(code).lhs()) << " = "
269-
<< format(to_code_assign(code).rhs()) << ';';
270-
else if(statement == ID_block)
271-
{
272-
os << '{';
273-
for(const auto &s : to_code_block(code).statements())
274-
os << ' ' << format(s);
275-
return os << " }";
276-
}
277-
else
278-
return fallback_format_rec(os, expr);
266+
// The below generates a string in a generic syntax
267+
// that is inspired by C/C++/Java, and is meant for debugging
268+
// purposes.
269+
std::ostream &format_rec(std::ostream &os, const codet &code)
270+
{
271+
const irep_idt &statement = code.get_statement();
272+
273+
if(statement == ID_assign)
274+
return os << format(to_code_assign(code).lhs()) << " = "
275+
<< format(to_code_assign(code).rhs()) << ';';
276+
else if(statement == ID_block)
277+
{
278+
os << '{';
279+
for(const auto &s : to_code_block(code).statements())
280+
os << ' ' << format(s);
281+
return os << " }";
279282
}
280283
else
281-
return fallback_format_rec(os, expr);
284+
return os << statement;
282285
}

src/util/format_expr.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,11 @@ Author: Daniel Kroening, [email protected]
1212
#include "expr.h"
1313
#include "format.h"
1414

15+
class codet;
16+
1517
//! Formats an expression in a generic syntax
1618
//! that is inspired by C/C++/Java, and is meant for debugging
1719
std::ostream &format_rec(std::ostream &, const exprt &);
20+
std::ostream &format_rec(std::ostream &, const codet &);
1821

1922
#endif // CPROVER_UTIL_FORMAT_EXPR_H

0 commit comments

Comments
 (0)