25 assert(!symbol.
empty());
27 std::string full_identifier=
30 std::pair<id_mapt::iterator, bool> result;
32 result=
id_map.insert(std::pair<irep_idt, var_infot>(
37 result.first->second.full_identifier=full_identifier;
38 result.first->second.symbol=symbol;
39 result.first->second.suffix=suffix;
40 result.first->second.type=type;
41 init(result.first->second);
44 return result.first->second;
50 out <<
"symbol: " <<
symbol <<
"\n";
51 out <<
"suffix: " <<
suffix <<
"\n";
59 case SHARED: out <<
"SHARED";
break;
64 out <<
"number: " <<
number <<
"\n";
81 if(found != std::string::npos)
89 throw "var_mapt::init identifier \"" 91 +
"\" lookup in ns failed";
114 "#"+std::to_string(ssa_counter);
119 for(id_mapt::const_iterator
124 out << it->first <<
":\n";
125 it->second.output(out);
The type of an expression.
virtual bool lookup(const irep_idt &name, const symbolt *&symbol) const
const std::string & id2string(const irep_idt &d)
irep_idt ssa_identifier() const
std::string pretty(unsigned indent=0, unsigned max_indent=0) const
void output(std::ostream &out) const
void init(var_infot &var_info)
Symbol table entry.This is a symbol in the symbol table, stored in an object of type symbol_tablet...
API to expression classes.
enum var_mapt::var_infot::@18 kind
var_infot & operator()(const irep_idt &symbol, const irep_idt &suffix, const typet &type)
bool has_prefix(const std::string &s, const std::string &prefix)
void output(std::ostream &) const