Skip to content

Commit b3552fe

Browse files
committed
add formatters for four expressions
This adds formatters for object_address, object_size, pointer_offset, and field_address.
1 parent 0f59864 commit b3552fe

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/util/format_expr.cpp

+26
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,32 @@ void format_expr_configt::setup()
571571
<< format(saturating_plus.rhs()) << ')';
572572
};
573573

574+
expr_map[ID_object_address] =
575+
[](std::ostream &os, const exprt &expr) -> std::ostream & {
576+
const auto &object_address_expr = to_object_address_expr(expr);
577+
return os << u8"\u275d" << object_address_expr.object_identifier()
578+
<< u8"\u275e";
579+
};
580+
581+
expr_map[ID_object_size] =
582+
[](std::ostream &os, const exprt &expr) -> std::ostream & {
583+
const auto &object_size_expr = to_object_size_expr(expr);
584+
return os << "object_size(" << format(object_size_expr.op()) << ')';
585+
};
586+
587+
expr_map[ID_pointer_offset] =
588+
[](std::ostream &os, const exprt &expr) -> std::ostream & {
589+
const auto &pointer_offset_expr = to_pointer_offset_expr(expr);
590+
return os << "pointer_offset(" << format(pointer_offset_expr.op()) << ')';
591+
};
592+
593+
expr_map[ID_field_address] =
594+
[](std::ostream &os, const exprt &expr) -> std::ostream & {
595+
const auto &field_address_expr = to_field_address_expr(expr);
596+
return os << format(field_address_expr.base()) << u8".\u275d"
597+
<< field_address_expr.component_name() << u8"\u275e";
598+
};
599+
574600
fallback = [](std::ostream &os, const exprt &expr) -> std::ostream & {
575601
return fallback_format_rec(os, expr);
576602
};

0 commit comments

Comments
 (0)