Index   Main   Namespaces   Classes   Hierarchy   Annotated   Files   Compound   Global   Pages  

SgNodeIterator Class Reference

#include <SgNode.h>

List of all members.


Detailed Description

Iterator for iterating through all nodes in subtree.

Definition at line 491 of file 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++ ()
SgNodeoperator * () const
 operator bool () const

Private Member Functions

bool Next ()
 Find next node in the tree.
 SgNodeIterator (const SgNodeIterator &)
 Not implemented.
SgNodeIteratoroperator= (const SgNodeIterator &)
 Not implemented.

Private Attributes

bool m_postOrder
SgNode *const m_rootOfSubtree
SgNodem_nextNode


Constructor & Destructor Documentation

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 774 of file SgNode.cpp.

References SgNode::HasSon(), SgNode::LeftMostSon(), m_nextNode, m_postOrder, and m_rootOfSubtree.

SgNodeIterator::SgNodeIterator ( const SgNodeIterator  )  [private]

Not implemented.


Member Function Documentation

void SgNodeIterator::Abort (  ) 

Abort the iteration.

The next call to operator bool will return false.

Definition at line 504 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 799 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++().

SgNode* SgNodeIterator::operator * (  )  const

Definition at line 515 of file SgNode.h.

References m_nextNode, and SG_ASSERT.

SgNodeIterator::operator bool (  )  const

Definition at line 521 of file SgNode.h.

References m_nextNode.

void SgNodeIterator::operator++ (  ) 

Definition at line 509 of file SgNode.h.

References m_nextNode, Next(), and SG_ASSERT.

SgNodeIterator& SgNodeIterator::operator= ( const SgNodeIterator  )  [private]

Not implemented.


Member Data Documentation

SgNode* SgNodeIterator::m_nextNode [private]

Definition at line 534 of file SgNode.h.

Referenced by Abort(), Next(), operator *(), operator bool(), operator++(), and SgNodeIterator().

bool SgNodeIterator::m_postOrder [private]

Definition at line 530 of file SgNode.h.

Referenced by Next(), and SgNodeIterator().

SgNode* const SgNodeIterator::m_rootOfSubtree [private]

Definition at line 532 of file SgNode.h.

Referenced by Next(), and SgNodeIterator().


The documentation for this class was generated from the following files:


17 Jun 2010 Doxygen 1.4.7