cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
java_bytecode_convert_class.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: JAVA Bytecode Language Conversion
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_JAVA_BYTECODE_JAVA_BYTECODE_CONVERT_CLASS_H
13
#define CPROVER_JAVA_BYTECODE_JAVA_BYTECODE_CONVERT_CLASS_H
14
15
#include <unordered_set>
16
17
#include "
java_bytecode_parse_tree.h
"
18
#include "
java_class_loader.h
"
19
20
class
java_string_library_preprocesst
;
21
class
method_bytecodet
;
22
class
symbol_table_baset
;
23
25
bool
java_bytecode_convert_class
(
26
const
java_class_loadert::parse_tree_with_overlayst
&parse_trees,
27
symbol_table_baset
&symbol_table,
28
message_handlert
&message_handler,
29
size_t
max_array_length,
30
method_bytecodet
&,
31
java_string_library_preprocesst
&string_preprocess,
32
const
std::unordered_set<std::string> &no_load_classes);
33
34
void
convert_annotations
(
35
const
java_bytecode_parse_treet::annotationst
&parsed_annotations,
36
std::vector<java_annotationt> &annotations);
37
38
void
convert_java_annotations
(
39
const
std::vector<java_annotationt> &java_annotations,
40
java_bytecode_parse_treet::annotationst
&annotations);
41
42
void
mark_java_implicitly_generic_class_type
(
43
const
irep_idt
&class_name,
44
symbol_table_baset
&symbol_table);
45
51
void
add_java_array_types
(
symbol_table_baset
&symbol_table);
52
55
class
missing_outer_class_symbol_exceptiont
:
public
std::logic_error
56
{
57
public
:
58
explicit
missing_outer_class_symbol_exceptiont
(
59
const
std::string &outer,
60
const
std::string &inner)
61
:
std
::logic_error(
62
"Missing outer class symbol: "
+ outer +
", for class "
+ inner)
63
{
64
}
65
};
66
67
#endif
// CPROVER_JAVA_BYTECODE_JAVA_BYTECODE_CONVERT_CLASS_H
java_class_loadert::parse_tree_with_overlayst
std::list< java_bytecode_parse_treet > parse_tree_with_overlayst
A list of parse trees supporting overlay classes.
Definition
java_class_loader.h:29
java_string_library_preprocesst
Definition
java_string_library_preprocess.h:38
message_handlert
Definition
message.h:27
method_bytecodet
Definition
ci_lazy_methods.h:34
missing_outer_class_symbol_exceptiont::missing_outer_class_symbol_exceptiont
missing_outer_class_symbol_exceptiont(const std::string &outer, const std::string &inner)
Definition
java_bytecode_convert_class.h:58
symbol_table_baset
The symbol table base class interface.
Definition
symbol_table_base.h:23
convert_annotations
void convert_annotations(const java_bytecode_parse_treet::annotationst &parsed_annotations, std::vector< java_annotationt > &annotations)
Convert parsed annotations into the symbol table.
Definition
java_bytecode_convert_class.cpp:1132
add_java_array_types
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,...
Definition
java_bytecode_convert_class.cpp:791
mark_java_implicitly_generic_class_type
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.
Definition
java_bytecode_convert_class.cpp:1180
convert_java_annotations
void convert_java_annotations(const std::vector< java_annotationt > &java_annotations, java_bytecode_parse_treet::annotationst &annotations)
Convert java annotations, e.g.
Definition
java_bytecode_convert_class.cpp:1155
java_bytecode_convert_class
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.
Definition
java_bytecode_convert_class.cpp:995
java_bytecode_parse_tree.h
java_class_loader.h
std
STL namespace.
java_bytecode_parse_treet::annotationst
std::vector< annotationt > annotationst
Definition
java_bytecode_parse_tree.h:49
irep_idt
dstringt irep_idt
Definition
verification_result.h:16
jbmc
src
java_bytecode
java_bytecode_convert_class.h
Generated by
1.17.0