31 #include "IteratorUtils.tpp"
The interface that an iterator should follow.
Definition: IteratorImpl.h:9
SyntaxTree const & tree
Definition: IteratorImpl.h:31
An iterator implementation for a depth-first, pre-order, transversal.
Definition: PreOrderIterator.h:8
PreOrderIterator(SyntaxTree const &tree, bool end)
Definition: PreOrderIterator.cpp:4
SyntaxTree * operator->() override
Definition: PreOrderIterator.cpp:15
~PreOrderIterator() override
SyntaxTree operator*() override
Definition: PreOrderIterator.cpp:13
bool operator!=(const IteratorImpl &rhs) const override
Definition: PreOrderIterator.cpp:21
void operator++() override
Definition: PreOrderIterator.cpp:25
IteratorImpl * clone() override
Definition: PreOrderIterator.cpp:43
bool operator==(const IteratorImpl &rhs) const override
Definition: PreOrderIterator.cpp:17
std::stack< SyntaxTree > stack
Definition: PreOrderIterator.h:28
A convenient interface to the AST nodes.
Definition: SyntaxTree.h:16