CBMC: /home/runner/work/cbmc/cbmc/jbmc/src/java_bytecode/java_bytecode_convert_method.h Source File

CBMC
Loading...
Searching...
No Matches
java_bytecode_convert_method.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: JAVA Bytecode Language Conversion
4
5Author: Daniel Kroening, kroening@kroening.com
6
7\*******************************************************************/
8
11
12#ifndef CPROVER_JAVA_BYTECODE_JAVA_BYTECODE_CONVERT_METHOD_H
13#define CPROVER_JAVA_BYTECODE_JAVA_BYTECODE_CONVERT_METHOD_H
14
15#include "java_bytecode_convert_method_class.h"
16#include "java_bytecode_parse_tree.h"
17
18class class_hierarchyt;
19class prefix_filtert;
20
21void java_bytecode_initialize_parameter_names(
22 symbolt &method_symbol,
23 const java_bytecode_parse_treet::methodt::local_variable_tablet
24 &local_variable_table,
25 symbol_table_baset &symbol_table);
26
27void java_bytecode_convert_method(
28 const symbolt &class_symbol,
29 const java_bytecode_parse_treet::methodt &,
30 symbol_table_baset &symbol_table,
31 message_handlert &message_handler,
32 size_t max_array_length,
33 bool throw_assertion_error,
34 std::optional<ci_lazy_methods_neededt> needed_lazy_methods,
35 java_string_library_preprocesst &string_preprocess,
36 const class_hierarchyt &class_hierarchy,
37 bool threading_support,
38 const std::optional<prefix_filtert> &method_context,
39 bool assert_no_exceptions_thrown);
40
41void create_method_stub_symbol(
42 const irep_idt &identifier,
43 const irep_idt &base_name,
44 const irep_idt &pretty_name,
45 const typet &type,
46 const irep_idt &declaring_class,
47 symbol_table_baset &symbol_table,
48 message_handlert &message_handler);
49
50void java_bytecode_convert_method_lazy(
51 symbolt &class_symbol,
52 const irep_idt &method_identifier,
53 const java_bytecode_parse_treet::methodt &,
54 symbol_table_baset &symbol_table,
55 message_handlert &);
56
57typedef expanding_vectort<std::vector<java_bytecode_convert_methodt::variablet>>
58 variablest;
59
70void create_parameter_names(
71 const java_bytecode_parse_treet::methodt &m,
72 const irep_idt &method_identifier,
73 java_method_typet::parameterst &parameters,
74 const java_bytecode_convert_methodt::method_offsett &slots_for_parameters);
75
80 void create_parameter_symbols(
81 const java_method_typet::parameterst &parameters,
82 variablest &variables,
83 symbol_table_baset &symbol_table);
84
85#endif // CPROVER_JAVA_BYTECODE_JAVA_BYTECODE_CONVERT_METHOD_H
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:566
Non-graph-based representation of the class hierarchy.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Definition dstring.h:38
std::vector< parametert > parameterst
Definition std_types.h:585
Provides filtering of strings vai inclusion/exclusion lists of prefixes.
Definition prefix_filter.h:20
The symbol table base class interface.
Symbol table entry.
Definition symbol.h:28
The type of an expression, extends irept.
Definition type.h:29
void java_bytecode_convert_method_lazy(symbolt &class_symbol, const irep_idt &method_identifier, const java_bytecode_parse_treet::methodt &, symbol_table_baset &symbol_table, message_handlert &)
This creates a method symbol in the symtab, but doesn't actually perform method conversion just yet.
expanding_vectort< std::vector< java_bytecode_convert_methodt::variablet > > variablest
void create_parameter_symbols(const java_method_typet::parameterst &parameters, variablest &variables, symbol_table_baset &symbol_table)
Adds the parameter symbols to the symbol table.
void java_bytecode_initialize_parameter_names(symbolt &method_symbol, const java_bytecode_parse_treet::methodt::local_variable_tablet &local_variable_table, symbol_table_baset &symbol_table)
This uses a cut-down version of the logic in java_bytecode_convert_methodt::convert to initialize sym...
void create_parameter_names(const java_bytecode_parse_treet::methodt &m, const irep_idt &method_identifier, java_method_typet::parameterst &parameters, const java_bytecode_convert_methodt::method_offsett &slots_for_parameters)
Extracts the names of parameters from the local variable table in the method, and uses it to construc...
void create_method_stub_symbol(const irep_idt &identifier, const irep_idt &base_name, const irep_idt &pretty_name, const typet &type, const irep_idt &declaring_class, symbol_table_baset &symbol_table, message_handlert &message_handler)
void java_bytecode_convert_method(const symbolt &class_symbol, const java_bytecode_parse_treet::methodt &, symbol_table_baset &symbol_table, message_handlert &message_handler, size_t max_array_length, bool throw_assertion_error, std::optional< ci_lazy_methods_neededt > needed_lazy_methods, java_string_library_preprocesst &string_preprocess, const class_hierarchyt &class_hierarchy, bool threading_support, const std::optional< prefix_filtert > &method_context, bool assert_no_exceptions_thrown)
JAVA Bytecode Language Conversion.
std::optional< irep_idt > declaring_class(const symbolt &symbol)
Gets the identifier of the class which declared a given symbol.
Definition java_utils.cpp:568
std::vector< local_variablet > local_variable_tablet

AltStyle によって変換されたページ (->オリジナル) /