6#ifndef CPROVER_UTIL_SYMBOL_TABLE_BUILDER_H
7#define CPROVER_UTIL_SYMBOL_TABLE_BUILDER_H
52 void erase(
const symbolst::const_iterator &entry)
override
112 std::size_t free_suffix =
114 suffix_iter->second = free_suffix + 1;
const symbol_base_mapt & symbol_base_map
Read-only field, used to look up symbol names given their base names.
symbol_table_baset(const symbolst &symbols, const symbol_base_mapt &symbol_base_map, const symbol_module_mapt &symbol_module_map)
const symbol_module_mapt & symbol_module_map
Read-only field, used to look up symbol names given their modules.
virtual iteratort begin()=0
const symbolst & symbols
Read-only field, used to look up symbols given their names.
virtual iteratort end()=0
symbol_table_buildert(symbol_table_baset &base_symbol_table)
symbol_table_buildert(const symbol_table_buildert &)=delete
symbol_table_baset & base_symbol_table
const symbol_tablet & get_symbol_table() const override
symbol_table_buildert & operator=(const symbol_table_buildert &)=delete
std::map< std::string, std::size_t > next_free_suffix_for_prefix
bool move(symbolt &symbol, symbolt *&new_symbol) override
void validate(const validation_modet vm=validation_modet::INVARIANT) const override
std::pair< symbolt &, bool > insert(symbolt symbol) override
Move or copy a new symbol to the symbol table.
std::size_t next_unused_suffix(const std::string &prefix) const override
Try to find the next free identity for the passed-in prefix in this symbol table.
symbolt * get_writeable(const irep_idt &identifier) override
Find a symbol in the symbol table for read-write access.
static symbol_table_buildert wrap(symbol_table_baset &base_symbol_table)
iteratort begin() override
symbol_table_buildert(symbol_table_buildert &&other)
symbol_table_buildert & operator=(symbol_table_buildert &&)=delete
void erase(const symbolst::const_iterator &entry) override
Remove a symbol from the symbol table.