Go to the documentation of this file.
6 #ifndef CPROVER_GOTO_PROGRAMS_LAZY_GOTO_FUNCTIONS_MAP_H
7 #define CPROVER_GOTO_PROGRAMS_LAZY_GOTO_FUNCTIONS_MAP_H
9 #include <unordered_set>
40 typedef std::pair<const key_type, goto_functiont>
value_type;
52 typedef std::function<void(
58 typedef std::function<bool(
157 function.body.compute_location_numbers();
160 return named_function;
187 function_symbol_table,
205 #endif // CPROVER_GOTO_PROGRAMS_LAZY_GOTO_FUNCTIONS_MAP_H
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
symbol_tablet & symbol_table
bool can_produce_function(const key_type &name) const
Determines if this lazy GOTO functions map can produce a body for the given function.
std::function< bool(const irep_idt &name)> can_generate_function_bodyt
static journalling_symbol_tablet wrap(symbol_table_baset &base_symbol_table)
const post_process_functiont post_process_function
language_filest & language_files
void convert_function(const irep_idt &identifier, goto_functionst::goto_functiont &result)
reference ensure_function_loaded_internal(const key_type &name) const
reference ensure_entry_converted(const key_type &name, symbol_table_baset &function_symbol_table) const
Convert a function if not already converted, then return a reference to its goto_functionst map entry...
Provides a wrapper for a map of lazily loaded goto_functiont.
void unload(const key_type &name) const
goto_functiont & mapped_type
std::function< void(const irep_idt &name, goto_functionst::goto_functiont &function, journalling_symbol_tablet &function_symbols)> post_process_functiont
const typedef value_type & const_reference
message_handlert & message_handler
const_mapped_type at(const key_type &name) const
Gets the body for a given function.
const typedef goto_functiont & const_mapped_type
The type of elements returned by const members.
The symbol table base class interface.
std::function< bool(const irep_idt &function_name, symbol_table_baset &symbol_table, goto_functiont &function, bool body_available)> generate_function_bodyt
std::pair< const key_type, goto_functiont > value_type
const can_generate_function_bodyt driver_program_can_generate_function_body
A goto function, consisting of function body (see body) and parameter identifiers (see parameter_iden...
const typedef value_type * const_pointer
void convert_lazy_method(const irep_idt &id, symbol_table_baset &symbol_table)
lazy_goto_functions_mapt(underlying_mapt &goto_functions, language_filest &language_files, symbol_tablet &symbol_table, post_process_functiont post_process_function, can_generate_function_bodyt driver_program_can_generate_function_body, generate_function_bodyt driver_program_generate_function_body, message_handlert &message_handler)
Creates a lazy_goto_functions_mapt.
::goto_functiont goto_functiont
std::unordered_set< irep_idt > processed_functions
Names of functions that are already fully available in the programt state.
static symbol_table_buildert wrap(symbol_table_baset &base_symbol_table)
void ensure_function_loaded(const key_type &name) const
const generate_function_bodyt driver_program_generate_function_body
bool can_convert_lazy_method(const irep_idt &id) const
std::map< key_type, goto_functiont > underlying_mapt
underlying_mapt & goto_functions
mapped_type at(const key_type &name)
Gets the body for a given function.
A symbol table wrapper that records which entries have been updated/removed.