24 const std::string &prefix,
33 id2string(it->first).substr(prefix.size())),
45 while(irep.
id()==ID_symbol)
68 if(src.
id()!=ID_symbol)
77 if(symbol->
type.
id()!=ID_symbol)
87 assert(symbol.
type.
id()==ID_union || symbol.
type.
id()==ID_incomplete_union);
95 assert(symbol.
type.
id()==ID_struct || symbol.
type.
id()==ID_incomplete_struct);
103 assert(symbol.
type.
id()==ID_c_enum || symbol.
type.
id()==ID_incomplete_c_enum);
109 if(expr.
id()==ID_symbol)
143 symbol_tablet::symbolst::const_iterator it;
151 symbol=&(it->second);
162 symbol=&(it->second);
174 for(symbol_table_listt::const_iterator
178 m=std::max(m, ::
get_max(prefix, (*it)->symbols));
187 symbol_tablet::symbolst::const_iterator s_it;
189 for(symbol_table_listt::const_iterator
194 s_it=(*c_it)->symbols.find(name);
196 if(s_it!=(*c_it)->symbols.end())
198 symbol=&(s_it->second);
The type of an expression.
const typet & follow(const typet &src) const
virtual bool lookup(const irep_idt &name, const symbolt *&symbol) const
const irep_idt & get_identifier() const
const std::string & id2string(const irep_idt &d)
#define forall_symbols(it, expr)
symbol_table_listt symbol_table_list
unsigned unsafe_string2unsigned(const std::string &str, int base)
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...
virtual unsigned get_max(const std::string &prefix) const
const symbolt & lookup(const irep_idt &name) const
virtual ~namespace_baset()
const typet & follow_tag(const union_tag_typet &src) const
void follow_macros(exprt &expr) const
const irep_idt & id() const
const symbol_tablet * symbol_table1
std::unordered_map< irep_idt, symbolt, irep_id_hash > symbolst
unsigned get_max(const std::string &prefix, const symbol_tablet::symbolst &symbols)
Base class for tree-like data structures with sharing.
bool has_prefix(const std::string &s, const std::string &prefix)
typet type
Type of symbol.
virtual bool lookup(const irep_idt &name, const symbolt *&symbol) const
void follow_symbol(irept &irep) const
Base class for all expressions.
const symbol_tablet * symbol_table2
#define Forall_operands(it, expr)
virtual unsigned get_max(const std::string &prefix) const