25 const std::string &prefix,
28 std::size_t max_nr = 0;
30 while(symbols.find(prefix +
std::to_string(max_nr)) != symbols.end())
57 if(src.
id()!=ID_symbol)
67 if(symbol->
type.
id() == ID_symbol)
78 assert(symbol.
type.
id()==ID_union || symbol.
type.
id()==ID_incomplete_union);
86 assert(symbol.
type.
id()==ID_struct || symbol.
type.
id()==ID_incomplete_struct);
94 assert(symbol.
type.
id()==ID_c_enum || symbol.
type.
id()==ID_incomplete_c_enum);
100 if(expr.
id()==ID_symbol)
134 symbol_tablet::symbolst::const_iterator it;
142 symbol=&(it->second);
153 symbol=&(it->second);
176 symbol_tablet::symbolst::const_iterator s_it;
178 for(symbol_table_listt::const_iterator
183 s_it=(*c_it)->symbols.find(name);
185 if(s_it!=(*c_it)->symbols.end())
187 symbol=&(s_it->second);
The type of an expression.
A generic tag-based type.
const irep_idt & get_identifier() const
symbol_table_listt symbol_table_list
const irep_idt & get_identifier() const
const symbol_typet & to_symbol_type(const typet &type)
Cast a generic typet to a symbol_typet.
exprt value
Initial value of symbol.
Symbol table entry.This is a symbol in the symbol table, stored in an object of type symbol_tablet...
const typet & follow_tag(const union_tag_typet &) const
static std::size_t smallest_unused_suffix(const std::string &prefix, const symbol_tablet::symbolst &symbols)
const symbolt & lookup(const irep_idt &name) const
virtual ~namespace_baset()
void follow_macros(exprt &) const
const irep_idt & id() const
A reference into the symbol table.
std::size_t smallest_unused_suffix(const std::string &prefix) const override
See documentation for namespace_baset::smallest_unused_suffix().
const symbol_tablet * symbol_table1
std::unordered_map< irep_idt, symbolt > symbolst
API to expression classes.
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast a generic exprt to a symbol_exprt.
const typet & follow(const typet &) const
typet type
Type of symbol.
bool lookup(const irep_idt &name, const symbolt *&symbol) const override
See namespace_baset::lookup().
Base class for all expressions.
std::size_t smallest_unused_suffix(const std::string &prefix) const override
See documentation for namespace_baset::smallest_unused_suffix().
std::string to_string(const string_constraintt &expr)
Used for debug printing.
const symbol_tablet * symbol_table2
#define Forall_operands(it, expr)
Expression to hold a symbol (variable)
#define DATA_INVARIANT(CONDITION, REASON)
bool lookup(const irep_idt &name, const symbolt *&symbol) const override
See namespace_baset::lookup().
const irep_idt & get_identifier() const