Skip to content

Commit e5fbe4e

Browse files
author
Daniel Kroening
committed
separate format_rec for codet
1 parent 78c12b5 commit e5fbe4e

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
@@ -309,24 +309,27 @@ std::ostream &format_rec(std::ostream &os, const exprt &expr)
309309
<< format(if_expr.true_case()) << " : "
310310
<< format(if_expr.false_case()) << ')';
311311
}
312-
else if(id == ID_code)
313-
{
314-
const auto &code = to_code(expr);
315-
const irep_idt &statement = code.get_statement();
312+
else
313+
return fallback_format_rec(os, expr);
314+
}
316315

317-
if(statement == ID_assign)
318-
return os << format(to_code_assign(code).lhs()) << " = "
319-
<< format(to_code_assign(code).rhs()) << ';';
320-
else if(statement == ID_block)
321-
{
322-
os << '{';
323-
for(const auto &s : to_code_block(code).statements())
324-
os << ' ' << format(s);
325-
return os << " }";
326-
}
327-
else
328-
return fallback_format_rec(os, expr);
316+
// The below generates a string in a generic syntax
317+
// that is inspired by C/C++/Java, and is meant for debugging
318+
// purposes.
319+
std::ostream &format_rec(std::ostream &os, const codet &code)
320+
{
321+
const irep_idt &statement = code.get_statement();
322+
323+
if(statement == ID_assign)
324+
return os << format(to_code_assign(code).lhs()) << " = "
325+
<< format(to_code_assign(code).rhs()) << ';';
326+
else if(statement == ID_block)
327+
{
328+
os << '{';
329+
for(const auto &s : to_code_block(code).statements())
330+
os << ' ' << format(s);
331+
return os << " }";
329332
}
330333
else
331-
return fallback_format_rec(os, expr);
334+
return os << statement;
332335
}

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)