CBMC
|
JAVA Bytecode Language Conversion. More...
Go to the source code of this file.
Classes | |
class | missing_outer_class_symbol_exceptiont |
An exception that is raised checking whether a class is implicitly generic if a symbol for an outer class is missing. More... | |
Functions | |
bool | java_bytecode_convert_class (const java_class_loadert::parse_tree_with_overlayst &parse_trees, symbol_table_baset &symbol_table, message_handlert &message_handler, size_t max_array_length, method_bytecodet &, java_string_library_preprocesst &string_preprocess, const std::unordered_set< std::string > &no_load_classes) |
See class java_bytecode_convert_classt. More... | |
void | convert_annotations (const java_bytecode_parse_treet::annotationst &parsed_annotations, std::vector< java_annotationt > &annotations) |
Convert parsed annotations into the symbol table. More... | |
void | convert_java_annotations (const std::vector< java_annotationt > &java_annotations, java_bytecode_parse_treet::annotationst &annotations) |
Convert java annotations, e.g. More... | |
void | mark_java_implicitly_generic_class_type (const irep_idt &class_name, symbol_table_baset &symbol_table) |
Checks if the class is implicitly generic, i.e., it is an inner class of any generic class. More... | |
void | add_java_array_types (symbol_table_baset &symbol_table) |
Register in the symbol_table new symbols for the objects java::array[X] where X is byte, short, int, long, char, boolean, float, double and reference. More... | |
JAVA Bytecode Language Conversion.
Definition in file java_bytecode_convert_class.h.
void add_java_array_types | ( | symbol_table_baset & | symbol_table | ) |
Register in the symbol_table
new symbols for the objects java::array[X] where X is byte, short, int, long, char, boolean, float, double and reference.
Also registers a java::array[X].clone():Ljava/lang/Object; method for each type.
Definition at line 791 of file java_bytecode_convert_class.cpp.
void convert_annotations | ( | const java_bytecode_parse_treet::annotationst & | parsed_annotations, |
std::vector< java_annotationt > & | java_annotations | ||
) |
Convert parsed annotations into the symbol table.
parsed_annotations | The parsed annotations to convert |
java_annotations | The java_annotationt collection to populate |
Definition at line 1132 of file java_bytecode_convert_class.cpp.
void convert_java_annotations | ( | const std::vector< java_annotationt > & | java_annotations, |
java_bytecode_parse_treet::annotationst & | annotations | ||
) |
Convert java annotations, e.g.
as retrieved from the symbol table, back to type annotationt (inverse of convert_annotations())
java_annotations | The java_annotationt collection to convert |
annotations | The annotationt collection to populate |
Definition at line 1155 of file java_bytecode_convert_class.cpp.
bool java_bytecode_convert_class | ( | const java_class_loadert::parse_tree_with_overlayst & | parse_trees, |
symbol_table_baset & | symbol_table, | ||
message_handlert & | message_handler, | ||
size_t | max_array_length, | ||
method_bytecodet & | method_bytecode, | ||
java_string_library_preprocesst & | string_preprocess, | ||
const std::unordered_set< std::string > & | no_load_classes | ||
) |
See class java_bytecode_convert_classt.
Definition at line 995 of file java_bytecode_convert_class.cpp.
void mark_java_implicitly_generic_class_type | ( | const irep_idt & | class_name, |
symbol_table_baset & | symbol_table | ||
) |
Checks if the class is implicitly generic, i.e., it is an inner class of any generic class.
All uses of the implicit generic type parameters within the inner class are updated to point to the type parameters of the corresponding outer classes.
Definition at line 1180 of file java_bytecode_convert_class.cpp.