std::string expr2javat::convert( const exprt &src, unsigned &precedence) { if(src.id()=="java-this") return convert_java_this(src, precedence=15); if(src.id()=="java_instanceof") return convert_java_instanceof(src, precedence=15); else if(src.id()==ID_side_effect && (src.get(ID_statement)==ID_java_new || src.get(ID_statement)==ID_java_new_array)) return convert_java_new(src, precedence=15); else if(src.id()==ID_side_effect && src.get(ID_statement)==ID_throw) return convert_function(src, "throw", precedence=16); else if(src.is_constant() && to_constant_expr(src).get_value()==ID_nullptr) return "nullptr"; else if(src.id()==ID_unassigned) return "?"; else if(src.id()=="pod_constructor") return "pod_constructor"; else if(src.id()==ID_virtual_function) return convert_function(src, "VIRTUAL_FUNCTION", precedence=16); else if(src.id()==ID_java_string_literal) return '"'+id2string(src.get(ID_value))+'"'; // Todo: add escaping as needed else return expr2ct::convert(src, precedence); }
std::string expr2javat::convert_code( const codet &src, unsigned indent) { const irep_idt &statement=src.get(ID_statement); if(statement==ID_java_new || statement==ID_java_new_array) return convert_java_new(src,indent); return expr2ct::convert_code(src, indent); }
std::string expr2javat::convert( const exprt &src, unsigned &precedence) { if(src.id()=="java-this") return convert_java_this(src, precedence=15); else if(src.id()==ID_side_effect && (src.get(ID_statement)==ID_java_new || src.get(ID_statement)==ID_java_new_array)) return convert_java_new(src, precedence=15); else if(src.id()==ID_side_effect && src.get(ID_statement)==ID_throw) return convert_function(src, "throw", precedence=16); else if(src.is_constant() && to_constant_expr(src).get_value()==ID_nullptr) return "nullptr"; else if(src.id()==ID_unassigned) return "?"; else if(src.id()=="pod_constructor") return "pod_constructor"; else return expr2ct::convert(src, precedence); }