Depth first search iterator base - iterates over supplied expression and all its operands recursively. More...
#include <expr_iterator.h>
Depth first search iterator base - iterates over supplied expression and all its operands recursively.
Base class using CRTP Do override .push_expr method of this class, but when doing so make this class a friend so it has access to that overridden .push_expr method in the child class
Definition at line 68 of file expr_iterator.h.
Definition at line 71 of file expr_iterator.h.
Definition at line 75 of file expr_iterator.h.
Definition at line 73 of file expr_iterator.h.
Definition at line 74 of file expr_iterator.h.
Definition at line 72 of file expr_iterator.h.
Create end iterator.
Create begin iterator, starting at the supplied node.
Definition at line 157 of file expr_iterator.h.
Destructor Protected to discourage upcasting.
Definition at line 165 of file expr_iterator.h.
Definition at line 215 of file expr_iterator.h.
Definition at line 174 of file expr_iterator.h.
Obtain non-const exprt reference.
Performs a copy-on-write on the root node as a side effect.
Definition at line 184 of file expr_iterator.h.
Definition at line 118 of file expr_iterator.h.
Definition at line 88 of file expr_iterator.h.
Dereference operator Dereferencing end() iterator is undefined behaviour.
Definition at line 141 of file expr_iterator.h.
Preincrement operator Do not call on the end() iterator.
Definition at line 96 of file expr_iterator.h.
Post-increment operator Expensive copy.
Avoid if possible
Definition at line 132 of file expr_iterator.h.
Dereference operator (member access) Dereferencing end() iterator is undefined behaviour.
Definition at line 149 of file expr_iterator.h.
Definition at line 168 of file expr_iterator.h.
Definition at line 81 of file expr_iterator.h.
Pushes expression onto the stack If overridden, this function should be called from the inheriting class by the override function.
Definition at line 206 of file expr_iterator.h.
Definition at line 78 of file expr_iterator.h.
Definition at line 213 of file expr_iterator.h.