Definition at line 27 of file java_bytecode_parser.cpp.
◆ annotationt
◆ classt
◆ constant_poolt
◆ fieldt
◆ instructiont
◆ lambda_method_handlet
◆ method_handle_typet
◆ methodt
◆ java_bytecode_parsert()
java_bytecode_parsert::java_bytecode_parsert |
( |
bool |
skip_instructions, |
|
|
message_handlert & |
message_handler |
|
) |
| |
|
inline |
◆ constant()
exprt & java_bytecode_parsert::constant |
( |
u2 |
index | ) |
|
|
inlineprivate |
◆ get_annotation_class_refs()
void java_bytecode_parsert::get_annotation_class_refs |
( |
const std::vector< annotationt > & |
annotations | ) |
|
|
private |
For each of the given annotations, get a reference to its class and recursively get class references of the values it stores.
Definition at line 611 of file java_bytecode_parser.cpp.
◆ get_annotation_value_class_refs()
void java_bytecode_parsert::get_annotation_value_class_refs |
( |
const exprt & |
value | ) |
|
|
private |
◆ get_class_refs()
void java_bytecode_parsert::get_class_refs |
( |
| ) |
|
|
private |
◆ get_class_refs_rec()
◆ get_relement_value()
exprt java_bytecode_parsert::get_relement_value |
( |
| ) |
|
|
private |
◆ parse()
bool java_bytecode_parsert::parse |
( |
| ) |
|
|
overridevirtual |
◆ parse_local_variable_type_table()
void java_bytecode_parsert::parse_local_variable_type_table |
( |
methodt & |
method | ) |
|
|
private |
Parses the local variable type table of a method.
The LVTT holds generic type information for variables in the local variable table (LVT). At most as many variables as present in the LVT can be in the LVTT.
Definition at line 1850 of file java_bytecode_parser.cpp.
◆ parse_method_handle()
Read method handle pointed to from constant pool entry at index, return type of method handle and name if lambda function is found.
- Parameters
-
entry | the constant pool entry of the methodhandle_info structure |
- Returns
- the method_handle type of the methodhandle_structure, either for a recognized bootstrap method or for a lambda function
Definition at line 1920 of file java_bytecode_parser.cpp.
◆ pool_entry()
◆ rbytecode()
void java_bytecode_parsert::rbytecode |
( |
std::vector< instructiont > & |
instructions | ) |
|
|
private |
◆ rclass_attribute()
void java_bytecode_parsert::rclass_attribute |
( |
| ) |
|
|
private |
◆ rClassFile()
void java_bytecode_parsert::rClassFile |
( |
| ) |
|
|
private |
◆ rcode_attribute()
void java_bytecode_parsert::rcode_attribute |
( |
methodt & |
method | ) |
|
|
private |
◆ rconstant_pool()
void java_bytecode_parsert::rconstant_pool |
( |
| ) |
|
|
private |
◆ read()
T java_bytecode_parsert::read |
( |
| ) |
|
|
inlineprivate |
◆ read_bootstrapmethods_entry()
void java_bytecode_parsert::read_bootstrapmethods_entry |
( |
| ) |
|
|
private |
◆ read_verification_type_info()
◆ relement_value_pairs()
◆ rexceptions_attribute()
std::vector< irep_idt > java_bytecode_parsert::rexceptions_attribute |
( |
| ) |
|
|
private |
◆ rfield_attribute()
void java_bytecode_parsert::rfield_attribute |
( |
fieldt & |
field | ) |
|
|
private |
◆ rfields()
void java_bytecode_parsert::rfields |
( |
| ) |
|
|
private |
◆ rinner_classes_attribute()
void java_bytecode_parsert::rinner_classes_attribute |
( |
const u4 & |
attribute_length | ) |
|
|
private |
Corresponds to the element_value structure Described in Java 8 specification 4.7.6 https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.6 Parses the InnerClasses attribute for the current parsed class, which contains an array of information about its inner classes.
We are interested in getting information only for inner classes, which is determined by checking if the parsed class matches any of the inner classes in its inner class array. If the parsed class is not an inner class, then it is ignored. When a parsed class is an inner class, the accessibility information for the parsed class is overwritten, and the parsed class is marked as an inner class.
Definition at line 1591 of file java_bytecode_parser.cpp.
◆ rinterfaces()
void java_bytecode_parsert::rinterfaces |
( |
| ) |
|
|
private |
◆ rmethod()
void java_bytecode_parsert::rmethod |
( |
| ) |
|
|
private |
◆ rmethod_attribute()
void java_bytecode_parsert::rmethod_attribute |
( |
methodt & |
method | ) |
|
|
private |
◆ rmethods()
void java_bytecode_parsert::rmethods |
( |
| ) |
|
|
private |
◆ rRuntimeAnnotation()
◆ rRuntimeAnnotation_attribute()
void java_bytecode_parsert::rRuntimeAnnotation_attribute |
( |
std::vector< annotationt > & |
annotations | ) |
|
|
private |
◆ skip_bytes()
void java_bytecode_parsert::skip_bytes |
( |
std::size_t |
bytes | ) |
|
|
inlineprivate |
◆ store_unknown_method_handle()
void java_bytecode_parsert::store_unknown_method_handle |
( |
size_t |
bootstrap_method_index | ) |
|
|
private |
Creates an unknown method handle and puts it into the parsed_class.
- Parameters
-
bootstrap_method_index | The current index in the bootstrap entry table |
Definition at line 2109 of file java_bytecode_parser.cpp.
◆ type_entry()
◆ constant_pool
◆ parse_tree
◆ skip_instructions
The documentation for this class was generated from the following file: