Go to the documentation of this file.
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);
45 else if(e.
id() == ID_next_symbol)
54 if(dest.insert(identifier).second)
55 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.
std::unordered_set< irep_idt > find_macros_sett
void find_macros(const exprt &src, const namespacet &ns, find_macros_sett &dest)
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().
#define forall_operands(it, expr)
const irep_idt & get_identifier() const
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast an exprt to a symbol_exprt.
const irep_idt & id() const
exprt value
Initial value of symbol.
const irep_idt & get(const irep_namet &name) const
API to expression classes.