22 std::stack<const exprt *> stack;
29 const exprt &e=*stack.top();
32 if(e.
id() == ID_symbol)
41 if(dest.insert(identifier).second)
42 stack.push(&symbol.
value);
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
const irep_idt & id() const
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
bool lookup(const irep_idt &name, const symbolt *&symbol) const override
See documentation for namespace_baset::lookup().
const irep_idt & get_identifier() const
exprt value
Initial value of symbol.
void find_macros(const exprt &src, const namespacet &ns, find_macros_sett &dest)
std::unordered_set< irep_idt > find_macros_sett
API to expression classes.
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast an exprt to a symbol_exprt.