1010
1111#include  < util/arith_tools.h> 
1212
13+ std::ostream &operator <<(std::ostream &out, const  smt2_parsert::smt2_format &f)
14+ {
15+   if (f.type .id () == ID_unsignedbv)
16+     out << " (_ BitVec " to_unsignedbv_type (f.type ).get_width () << ' )' 
17+   else  if (f.type .id () == ID_bool)
18+     out << " Bool" 
19+   else  if (f.type .id () == ID_integer)
20+     out << " Int" 
21+   else  if (f.type .id () == ID_real)
22+     out << " Real" 
23+   else 
24+     out << " ? " type .id ();
25+ 
26+   return  out;
27+ }
28+ 
1329void  smt2_parsert::command_sequence ()
1430{
1531  exit=false ;
@@ -360,8 +376,8 @@ exprt smt2_parsert::multi_ary(irep_idt id, const exprt::operandst &op)
360376      {
361377        error () << " expression must have operands with matching types," 
362378                   "  but got `" 
363-                 << op[0 ].type (). pretty () 
364-                 << " ' and ` "  <<  op[i].type (). pretty ( ) << ' \' ' 
379+                 << smt2_format ( op[0 ].type ()) <<  " ' and ` " 
380+                 << smt2_format ( op[i].type ()) << ' \' ' 
365381        return  nil_exprt ();
366382      }
367383    }
@@ -385,8 +401,8 @@ exprt smt2_parsert::binary_predicate(irep_idt id, const exprt::operandst &op)
385401    {
386402      error () << " expression must have operands with matching types," 
387403                 "  but got `" 
388-               << op[0 ].type (). pretty () 
389-               << " ' and ` "  <<  op[1 ].type (). pretty ( ) << ' \' ' 
404+               << smt2_format ( op[0 ].type ()) <<  " ' and ` " 
405+               << smt2_format ( op[1 ].type ()) << ' \' ' 
390406      return  nil_exprt ();
391407    }
392408
0 commit comments