|
cprover
|
Public Types | |
| typedef java_bytecode_parse_treet::classt | classt |
| typedef java_bytecode_parse_treet::fieldt | fieldt |
| typedef java_bytecode_parse_treet::methodt | methodt |
| typedef java_bytecode_parse_treet::annotationt | annotationt |
Public Member Functions | |
| java_bytecode_convert_classt (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) | |
| void | operator() (const java_class_loadert::parse_tree_with_overlayst &parse_trees) |
| Converts all the class parse trees into a class symbol and adds it to the symbol table. | |
Private Types | |
| typedef std::list< std::reference_wrapper< const classt > > | overlay_classest |
Private Member Functions | |
| void | convert (const classt &c, const overlay_classest &overlay_classes) |
| Convert a class, adding symbols to the symbol table for its members. | |
| void | convert (symbolt &class_symbol, const fieldt &f) |
| Convert a field, adding a symbol to teh symbol table for it. | |
| bool | check_field_exists (const fieldt &field, const irep_idt &qualified_fieldname, const struct_union_typet::componentst &fields) const |
Static Private Member Functions | |
| static bool | is_overlay_method (const methodt &method) |
| Check if a method is an overlay method by searching for ID_overlay_method in its list of annotations. | |
| static bool | is_ignored_method (const irep_idt &class_name, const methodt &method) |
| Check if a method is an ignored method, by one of two mechanisms: | |
Private Attributes | |
| messaget | log |
| symbol_table_baset & | symbol_table |
| const size_t | max_array_length |
| method_bytecodet & | method_bytecode |
| java_string_library_preprocesst & | string_preprocess |
| std::unordered_set< std::string > | no_load_classes |
Definition at line 33 of file java_bytecode_convert_class.cpp.
Definition at line 107 of file java_bytecode_convert_class.cpp.
Definition at line 104 of file java_bytecode_convert_class.cpp.
Definition at line 105 of file java_bytecode_convert_class.cpp.
Definition at line 106 of file java_bytecode_convert_class.cpp.
|
private |
Definition at line 117 of file java_bytecode_convert_class.cpp.
|
inline |
Definition at line 36 of file java_bytecode_convert_class.cpp.
|
private |
Definition at line 621 of file java_bytecode_convert_class.cpp.
|
private |
Convert a class, adding symbols to the symbol table for its members.
| c | Bytecode of the class to convert |
| overlay_classes | Bytecode of any overlays for the class to convert |
Definition at line 270 of file java_bytecode_convert_class.cpp.
Convert a field, adding a symbol to teh symbol table for it.
| class_symbol | The already added symbol for the containing class |
| f | The bytecode for the field to convert |
this is for a free type variable, e.g., a field of the form T f;
this is for a field that holds a generic type, either with instantiated or with free type variables, e.g., List<T> l; or List<Integer> l;
Definition at line 642 of file java_bytecode_convert_class.cpp.
|
inlinestaticprivate |
Check if a method is an ignored method, by one of two mechanisms:
| class_name | class the method is declared on |
| method | a methodt object from a java bytecode parse tree |
Definition at line 161 of file java_bytecode_convert_class.cpp.
|
inlinestaticprivate |
Check if a method is an overlay method by searching for ID_overlay_method in its list of annotations.
An overlay method is a method with the annotation @OverlayMethodImplementation. They should only appear in overlay classes. They will be loaded by JBMC instead of the method with the same signature in the underlying class. It is an error if there is no method with the same signature in the underlying class. It is an error if a method in an overlay class has the same signature as a method in the underlying class and it isn't marked as an overlay method or an ignored method.
| method | a methodt object from a java bytecode parse tree |
Definition at line 136 of file java_bytecode_convert_class.cpp.
|
inline |
Converts all the class parse trees into a class symbol and adds it to the symbol table.
| parse_trees | The parse trees found for the class to be converted. |
Definition at line 67 of file java_bytecode_convert_class.cpp.
|
private |
Definition at line 110 of file java_bytecode_convert_class.cpp.
|
private |
Definition at line 112 of file java_bytecode_convert_class.cpp.
|
private |
Definition at line 113 of file java_bytecode_convert_class.cpp.
|
private |
Definition at line 176 of file java_bytecode_convert_class.cpp.
|
private |
Definition at line 114 of file java_bytecode_convert_class.cpp.
|
private |
Definition at line 111 of file java_bytecode_convert_class.cpp.