CBMC: depth_iteratort Class Reference
#include <expr_iterator.h>
Public Member Functions | |
| depth_iteratort ()=default | |
| Create an end iterator. | |
| depth_iteratort (exprt &expr) | |
| Create iterator starting at the supplied node (root) All mutations of the child nodes will be reflected on this node. | |
| depth_iteratort (const exprt &expr, std::function< exprt &()> mutate_root) | |
| Create iterator starting at the supplied node (root) If mutations of the child nodes are required then the passed mutate_root function will be called to get a non-const copy of the same root on which the mutations will be done. | |
| exprt & | mutate () |
| Obtain non-const reference to the exprt instance currently pointed to by the iterator. | |
Public Member Functions inherited from depth_iterator_baset< depth_iteratort > | |
| bool | operator== (const depth_iterator_baset< other_depth_iterator_t > &other) const |
| bool | operator!= (const depth_iterator_baset< other_depth_iterator_t > &other) const |
| depth_iteratort & | operator++ () |
| Preincrement operator Do not call on the end() iterator. | |
| depth_iteratort | operator++ (int) |
| Post-increment operator Expensive copy. | |
| depth_iteratort & | next_sibling_or_parent () |
| 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 Attributes | |
| std::function< exprt &()> | mutate_root |
| If this is non-empty then the root is currently const and this function must be called before any mutations occur. | |
Definition at line 230 of file expr_iterator.h.
|
default |
Create an end iterator.
◆ depth_iteratort() [2/3]
|
inlineexplicit |
Create iterator starting at the supplied node (root) All mutations of the child nodes will be reflected on this node.
- Parameters
-
expr The root node to begin iteration at
Definition at line 245 of file expr_iterator.h.
◆ depth_iteratort() [3/3]
|
inlineexplicit |
Create iterator starting at the supplied node (root) If mutations of the child nodes are required then the passed mutate_root function will be called to get a non-const copy of the same root on which the mutations will be done.
- Parameters
-
expr The root node to begin iteration at mutate_root The function to call to get a non-const copy of the same root expression passed in the expr parameter
Definition at line 256 of file expr_iterator.h.
◆ mutate()
|
inline |
Obtain non-const reference to the exprt instance currently pointed to by the iterator.
If the iterator is currently using a const root exprt then calls mutate_root to get a non-const root and copies it if it is shared
- Returns
- A non-const reference to the element this iterator is currently pointing to
Definition at line 272 of file expr_iterator.h.
◆ mutate_root
|
std::function<exprt &()> depth_iteratort::mutate_root |
private |
If this is non-empty then the root is currently const and this function must be called before any mutations occur.
Definition at line 236 of file expr_iterator.h.
The documentation for this class was generated from the following file:
- /home/runner/work/cbmc/cbmc/src/util/expr_iterator.h
Public Member Functions inherited from