14 #ifndef CPROVER_GOTO_INSTRUMENT_CONTRACTS_CONTRACTS_WRANGLER_H
15 #define CPROVER_GOTO_INSTRUMENT_CONTRACTS_CONTRACTS_WRANGLER_H
38 std::string _identifier,
39 std::string _invariants_str,
40 std::string _assigns_str,
41 std::string _decreases_str,
58 using functionst = std::list<std::pair<std::regex, functiont>>;
65 const std::string &file_name,
92 std::string function_name,
93 const std::size_t num_of_args);
symbol_tablet & symbol_table
message_handlert & message_handler
goto_functionst & goto_functions
void configure_functions(const jsont &)
void add_builtin_pointer_function_symbol(std::string function_name, const std::size_t num_of_args)
Add builtin function symbol with function_name into symbol table.
contracts_wranglert(goto_modelt &goto_model, const std::string &file_name, message_handlert &message_handler)
void mangle(const loop_contracts_clauset &loop_contracts, const irep_idt &function_id)
Mangle loop_contracts in the function with function_id
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
A collection of goto functions.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Goto Programs with Functions.
std::vector< loop_contracts_clauset > loop_contracts
loop_contracts_clauset(std::string _identifier, std::string _invariants_str, std::string _assigns_str, std::string _decreases_str, unchecked_replace_symbolt _replace_symbol)
unchecked_replace_symbolt replace_symbol