void java_bytecode_parse_treet::annotationt::element_value_pairt::output( std::ostream &out) const { symbol_tablet symbol_table; namespacet ns(symbol_table); out << '"' << element_name << '"' << '='; out << expr2java(value, ns); }
std::string type2java(const typet &type, const namespacet &ns) { expr2javat expr2java(ns); return expr2java.convert(type); }
std::string expr2java(const exprt &expr, const namespacet &ns) { expr2javat expr2java(ns); expr2java.get_shorthands(expr); return expr2java.convert(expr); }
void java_bytecode_parse_treet::methodt::output(std::ostream &out) const { symbol_tablet symbol_table; namespacet ns(symbol_table); for(const auto &annotation : annotations) { out << " "; annotation.output(out); out << '\n'; } out << " "; if(is_public) out << "public "; if(is_protected) out << "protected "; if(is_private) out << "private "; if(is_static) out << "static "; if(is_final) out << "final "; if(is_native) out << "native "; if(is_synchronized) out << "synchronized "; out << name; out << " : " << signature; out << '\n'; out << " {" << '\n'; for(const auto &i : instructions) { if(!i.source_location.get_line().empty()) out << " // " << i.source_location << '\n'; out << " " << i.address << ": "; out << i.statement; for(std::vector<exprt>::const_iterator a_it=i.args.begin(); a_it!=i.args.end(); a_it++) { if(a_it!=i.args.begin()) out << ','; #if 0 out << ' ' << from_expr(*a_it); #else out << ' ' << expr2java(*a_it, ns); #endif } out << '\n'; } out << " }" << '\n'; out << '\n'; out << " Locals:\n"; for(const auto &v : local_variable_table) { out << " " << v.index << ": " << v.name << ' ' << v.signature << '\n'; } out << '\n'; }