Iterator for iterating through all nodes in subtree. More...
#include <SgNode.h>
Public Member Functions | |
SgNodeIterator (SgNode *rootOfSubtree, bool postOrder=false) | |
Create an iterator for iterating through all nodes in the subtree of 'rootOfSubtree', including the node itself. | |
void | Abort () |
Abort the iteration. | |
void | operator++ () |
SgNode * | operator* () const |
operator bool () const | |
Private Member Functions | |
bool | Next () |
Find next node in the tree. | |
SgNodeIterator (const SgNodeIterator &) | |
Not implemented. | |
SgNodeIterator & | operator= (const SgNodeIterator &) |
Not implemented. | |
Private Attributes | |
bool | m_postOrder |
SgNode *const | m_rootOfSubtree |
SgNode * | m_nextNode |
Iterator for iterating through all nodes in subtree.
Definition at line 464 of file SgNode.h.
SgNodeIterator::SgNodeIterator | ( | SgNode * | rootOfSubtree, | |
bool | postOrder = false | |||
) |
Create an iterator for iterating through all nodes in the subtree of 'rootOfSubtree', including the node itself.
If 'preOrder' (default), return internal nodes before their sons; if 'postOrder', then return the leaves before the internal nodes.
Definition at line 773 of file SgNode.cpp.
References SgNode::HasSon(), SgNode::LeftMostSon(), m_nextNode, m_postOrder, and m_rootOfSubtree.
SgNodeIterator::SgNodeIterator | ( | const SgNodeIterator & | ) | [private] |
Not implemented.
void SgNodeIterator::Abort | ( | ) |
Abort the iteration.
The next call to operator bool will return false.
Definition at line 475 of file SgNode.h.
References m_nextNode.
bool SgNodeIterator::Next | ( | ) | [private] |
Find next node in the tree.
Return false when done with all nodes.
Definition at line 798 of file SgNode.cpp.
References SgNode::Father(), SgNode::HasFather(), SgNode::HasRightBrother(), SgNode::HasSon(), SgNode::LeftMostSon(), m_nextNode, m_postOrder, m_rootOfSubtree, SgNode::NextDepthFirst(), SgNode::RightBrother(), and SG_ASSERT.
Referenced by operator++().
SgNodeIterator::operator bool | ( | ) | const |
Definition at line 492 of file SgNode.h.
References m_nextNode.
SgNode* SgNodeIterator::operator* | ( | ) | const |
Definition at line 486 of file SgNode.h.
References m_nextNode, and SG_ASSERT.
void SgNodeIterator::operator++ | ( | ) |
Definition at line 480 of file SgNode.h.
References m_nextNode, Next(), and SG_ASSERT.
SgNodeIterator& SgNodeIterator::operator= | ( | const SgNodeIterator & | ) | [private] |
Not implemented.
SgNode* SgNodeIterator::m_nextNode [private] |
Definition at line 505 of file SgNode.h.
Referenced by Abort(), Next(), operator bool(), operator*(), operator++(), and SgNodeIterator().
bool SgNodeIterator::m_postOrder [private] |
Definition at line 501 of file SgNode.h.
Referenced by Next(), and SgNodeIterator().
SgNode* const SgNodeIterator::m_rootOfSubtree [private] |
Definition at line 503 of file SgNode.h.
Referenced by Next(), and SgNodeIterator().