Go to the documentation of this file.
12 #ifndef CPROVER_GOTO_PROGRAMS_GOTO_MODEL_H
13 #define CPROVER_GOTO_PROGRAMS_GOTO_MODEL_H
244 #endif // CPROVER_GOTO_PROGRAMS_GOTO_MODEL_H
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
void unload(const irep_idt &name)
journalling_symbol_tablet & symbol_table
void validate(const namespacet &, validation_modet) const
Check that the goto functions are well-formed.
wrapper_goto_modelt(const symbol_tablet &symbol_table, const goto_functionst &goto_functions)
const goto_functionst & goto_functions
goto_functionst & goto_functions
const irep_idt & get_function_id()
Get function id.
void compute_location_numbers()
goto_modelt(goto_modelt &&other)
goto_model_functiont(journalling_symbol_tablet &symbol_table, goto_functionst &goto_functions, const irep_idt &function_id, goto_functionst::goto_functiont &goto_function)
Construct a function wrapper.
void validate(const validation_modet vm=validation_modet::INVARIANT) const
Check that the symbol table is well-formed.
const goto_functionst::goto_functiont & get_goto_function(const irep_idt &id) override
Get a GOTO function by name, or throw if no such function exists.
function_mapt function_map
void validate(const validation_modet vm, const goto_model_validation_optionst &goto_model_validation_options) const override
Check that the goto model is well-formed.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
const goto_functionst & get_goto_functions() const override
Accessor to get a raw goto_functionst.
journalling_symbol_tablet & get_symbol_table()
Get symbol table.
void compute_location_numbers()
Re-number our goto_function.
goto_functionst::goto_functiont & goto_function
goto_modelt & operator=(goto_modelt &&other)
virtual void clear() override
Wipe internal state of the symbol table.
const goto_functionst::goto_functiont & get_goto_function(const irep_idt &id) override
Get a GOTO function by name, or throw if no such function exists.
void unload(const irep_idt &name)
Remove function from the function map.
::goto_functiont goto_functiont
bool can_produce_function(const irep_idt &id) const override
Determines if this model can produce a body for the given function.
goto_modelt & operator=(const goto_modelt &)=delete
A collection of goto functions.
Class providing the abstract GOTO model interface onto an unrelated symbol table and goto_functionst.
const symbol_tablet & get_symbol_table() const override
Accessor to get the symbol table.
goto_functionst goto_functions
GOTO functions.
const symbol_tablet & get_symbol_table() const override
Accessor to get the symbol table.
void validate_goto_model(const goto_functionst &goto_functions, const validation_modet vm, const goto_model_validation_optionst validation_options)
void validate(const validation_modet vm=validation_modet::INVARIANT, const goto_model_validation_optionst &goto_model_validation_options=goto_model_validation_optionst{}) const override
Check that the goto model is well-formed.
Abstract interface to eager or lazy GOTO models.
const goto_functionst & get_goto_functions() const override
Accessor to get a raw goto_functionst.
goto_functionst::goto_functiont & get_goto_function()
Get GOTO function.
A symbol table wrapper that records which entries have been updated/removed.
symbol_tablet symbol_table
Symbol table.
bool can_produce_function(const irep_idt &id) const override
Determines if this model can produce a body for the given function.
Interface providing access to a single function in a GOTO model, plus its associated symbol table.
const symbol_tablet & symbol_table