Index   Main   Namespaces   Classes   Hierarchy   Annotated   Files   Compound   Global   Pages  
Public Member Functions | Private Member Functions | Private Attributes

SgNodeIterator Class Reference

Iterator for iterating through all nodes in subtree. More...

#include <SgNode.h>

List of all members.

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

Detailed Description

Iterator for iterating through all nodes in subtree.

Definition at line 464 of file SgNode.h.


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 773 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 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.


Member Data Documentation

Definition at line 505 of file SgNode.h.

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

Definition at line 501 of file SgNode.h.

Referenced by Next(), and SgNodeIterator().

Definition at line 503 of file SgNode.h.

Referenced by Next(), and SgNodeIterator().


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


Sun Mar 13 2011 Doxygen 1.7.1