#include <context.h>
◆ contextt() [1/3]
◆ ~contextt()
◆ contextt() [2/3]
| contextt::contextt |
( |
const contextt & | obj | ) |
|
|
delete |
◆ contextt() [3/3]
◆ add()
◆ clear()
◆ dump()
| void contextt::dump |
( |
| ) |
const |
◆ erase_since()
| void contextt::erase_since |
( |
irep_idt | point | ) |
|
Erase every symbol added after point (in insertion order, as returned by mark()).
◆ erase_symbol()
| void contextt::erase_symbol |
( |
irep_idt | name | ) |
|
◆ find_symbol() [1/3]
| symbolt * contextt::find_symbol |
( |
const char * | name | ) |
|
|
inline |
◆ find_symbol() [2/3]
◆ find_symbol() [3/3]
◆ foreach_named_symbol_with_base()
| void contextt::foreach_named_symbol_with_base |
( |
irep_idt | base_name, |
|
|
T && | t ) const |
|
inline |
Invoke t(id) for every symbol whose base name equals base_name, in insertion order (the former forall_symbol_base_map).
t returns a bool: false stops the scan early (the lambda equivalent of break). Implemented as a linear scan: the sole caller is the once-per-run entry-point search, so a dedicated base-name index is not worth maintaining on every insert.
◆ Foreach_operand()
| void contextt::Foreach_operand |
( |
T && | t | ) |
|
|
inline |
◆ foreach_operand()
| void contextt::foreach_operand |
( |
T && | t | ) |
const |
|
inline |
◆ Foreach_operand_in_order()
| void contextt::Foreach_operand_in_order |
( |
T && | t | ) |
|
|
inline |
◆ foreach_operand_in_order()
| void contextt::foreach_operand_in_order |
( |
T && | t | ) |
const |
|
inline |
◆ mark()
Id of the most-recently-added symbol, or a nil id if the table is empty.
Pair with erase_since() to roll back a speculative batch of add() calls (e.g. a discarded IREP2-native goto_convert attempt, esbmc/esbmc#4715) in O(k) for k symbols undone, instead of an O(n) scan of the whole table.
◆ move() [1/2]
◆ move() [2/2]
◆ move_symbol_to_context()
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ reorder_symbol_to_back()
Move the symbol with id name to the end of the insertion-order view, keeping it in the table.
The C/C++ frontends need this when a symbol's definition must sort after symbols it now depends on (a completed struct after its field types; a static member in definition rather than declaration order). O(1); replaces the former erase-and-reinsert, which copied the symbol and briefly dangled any held symbolt*. Returns the (stable) symbol, or nullptr if no such id exists.
◆ size()
| unsigned int contextt::size |
( |
| ) |
const |
|
inline |
◆ swap()
The documentation for this class was generated from the following files: