|
CBMC
|
Post-order depth-first-search iterator. More...
#include <expr_iterator.h>
Collaboration diagram for const_post_depth_iteratort:Public Types | |
| typedef void | difference_type |
| typedef exprt | value_type |
| typedef const exprt * | pointer |
| typedef const exprt & | reference |
| typedef std::forward_iterator_tag | iterator_category |
Public Member Functions | |
| const_post_depth_iteratort (const exprt &expr) | |
| Create iterator starting at the supplied node (root). | |
| const_post_depth_iteratort ()=default | |
| Create an end iterator. | |
| bool | operator== (const const_post_depth_iteratort &other) const |
| bool | operator!= (const const_post_depth_iteratort &other) const |
| const_post_depth_iteratort & | operator++ () |
| Preincrement operator Do not call on the end() iterator. | |
| const_post_depth_iteratort | operator++ (int) |
| Post-increment operator Expensive copy. | |
| const exprt & | operator* () const |
| Dereference operator Dereferencing end() iterator is undefined behaviour. | |
| const exprt * | operator-> () const |
| Dereference operator (member access) Dereferencing end() iterator is undefined behaviour. | |
Private Member Functions | |
| void | descend_to_leftmost_leaf (const exprt &expr) |
| Descend from the given expression to its leftmost leaf, pushing all nodes along the path onto the stack. | |
Private Attributes | |
| std::deque< depth_iterator_expr_statet > | m_stack |
Post-order depth-first-search iterator.
Visits all children before visiting the parent node. For expression (a + (b * c)), visits: a, b, c, *, +
Definition at line 342 of file expr_iterator.h.
Definition at line 345 of file expr_iterator.h.
| typedef std::forward_iterator_tag const_post_depth_iteratort::iterator_category |
Definition at line 349 of file expr_iterator.h.
Definition at line 347 of file expr_iterator.h.
Definition at line 348 of file expr_iterator.h.
Definition at line 346 of file expr_iterator.h.
Create iterator starting at the supplied node (root).
Immediately descends to the leftmost leaf.
Definition at line 353 of file expr_iterator.h.
|
default |
Create an end iterator.
Descend from the given expression to its leftmost leaf, pushing all nodes along the path onto the stack.
Definition at line 424 of file expr_iterator.h.
|
inline |
Definition at line 366 of file expr_iterator.h.
Dereference operator Dereferencing end() iterator is undefined behaviour.
Definition at line 408 of file expr_iterator.h.
|
inline |
Preincrement operator Do not call on the end() iterator.
Definition at line 373 of file expr_iterator.h.
|
inline |
Post-increment operator Expensive copy.
Avoid if possible
Definition at line 399 of file expr_iterator.h.
Dereference operator (member access) Dereferencing end() iterator is undefined behaviour.
Definition at line 416 of file expr_iterator.h.
|
inline |
Definition at line 361 of file expr_iterator.h.
|
private |
Definition at line 436 of file expr_iterator.h.