@@ -36,6 +36,7 @@ class expr2javat:public expr2ct
36
36
protected:
37
37
virtual std::string convert (const exprt &src, unsigned &precedence);
38
38
virtual std::string convert_java_this (const exprt &src, unsigned precedence);
39
+ virtual std::string convert_java_instanceof (const exprt &src, unsigned precedence);
39
40
virtual std::string convert_java_new (const exprt &src, unsigned precedence);
40
41
virtual std::string convert_code_java_delete (const exprt &src, unsigned precedence);
41
42
virtual std::string convert_struct (const exprt &src, unsigned &precedence);
@@ -348,6 +349,31 @@ std::string expr2javat::convert_java_this(
348
349
349
350
/* ******************************************************************\
350
351
352
+ Function: expr2javat::convert_java_instanceof
353
+
354
+ Inputs:
355
+
356
+ Outputs:
357
+
358
+ Purpose:
359
+
360
+ \*******************************************************************/
361
+
362
+ std::string expr2javat::convert_java_instanceof (
363
+ const exprt &src,
364
+ unsigned precedence)
365
+ {
366
+ if (src.operands ().size ()!=2 )
367
+ {
368
+ unsigned precedence;
369
+ return convert_norep (src, precedence);
370
+ }
371
+
372
+ return convert (src.op0 ())+" instanceof " +convert (src.op1 ().type ());
373
+ }
374
+
375
+ /* ******************************************************************\
376
+
351
377
Function: expr2javat::convert_java_new
352
378
353
379
Inputs:
@@ -432,6 +458,8 @@ std::string expr2javat::convert(
432
458
{
433
459
if (src.id ()==" java-this" )
434
460
return convert_java_this (src, precedence=15 );
461
+ if (src.id ()==" java_instanceof" )
462
+ return convert_java_instanceof (src, precedence=15 );
435
463
else if (src.id ()==ID_side_effect &&
436
464
(src.get (ID_statement)==ID_java_new ||
437
465
src.get (ID_statement)==ID_java_new_array))
0 commit comments