BTreeNode Class Reference

#include <btreenode.h>

Collaboration diagram for BTreeNode:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 BTreeNode ()
 BTreeNode (BTreeNode *p, BTreeNode *l, BTreeNode *r)
 ~BTreeNode ()
void deleteChildren ()
BTreeNodeparent () const
BTreeNodeleft () const
BTreeNoderight () const
void setParent (BTreeNode *parent)
void setLeft (BTreeNode *left)
void setRight (BTreeNode *right)
bool hasChildren () const
ExprType type () const
void setType (ExprType type)
QString value () const
void setValue (const QString &value)
Expression::Operation childOp () const
void setChildOp (Expression::Operation op)
void setReg (const QString &r)
QString reg () const
bool needsEvaluating () const

Protected Attributes

BTreeNodem_parent
BTreeNodem_left
BTreeNodem_right
QString m_reg
ExprType m_type
QString m_value
Expression::Operation m_childOp

Detailed Description

A node points to the two child nodes (left and right), and contains the binary operation used to combine them.

Author:
Daniel Clarke

David Saxton

Definition at line 37 of file btreenode.h.


Member Function Documentation

void BTreeNode::deleteChildren (  ) 

Recursively delete all children of a node.

Definition at line 44 of file btreenode.cpp.

References deleteChildren(), m_left, and m_right.

Referenced by deleteChildren(), BTreeBase::deleteTree(), and BTreeBase::pruneTree().

BTreeNode* BTreeNode::parent (  )  const [inline]

Returns:
the parent node.

Definition at line 55 of file btreenode.h.

References m_parent.

Referenced by Traverser::moveToParent(), Traverser::next(), Traverser::onLeftBranch(), Traverser::oppositeNode(), BTreeBase::pruneTree(), BTreeBase::replaceNode(), and setParent().

BTreeNode* BTreeNode::left (  )  const [inline]

Returns:
the left child node.

Definition at line 59 of file btreenode.h.

References m_left.

Referenced by Traverser::descendLeftwardToTerminal(), Traverser::onLeftBranch(), Traverser::oppositeNode(), BTreeBase::pruneTree(), BTreeBase::replaceNode(), setLeft(), and Traverser::start().

BTreeNode* BTreeNode::right (  )  const [inline]

Returns:
the right child node.

Definition at line 63 of file btreenode.h.

References m_right.

Referenced by Traverser::oppositeNode(), BTreeBase::pruneTree(), BTreeBase::replaceNode(), setRight(), and Traverser::start().

void BTreeNode::setLeft ( BTreeNode left  )  [inline]

Set the child node on the left to the one give, and reparents it to this node.

Definition at line 69 of file btreenode.h.

References left(), m_left, and setParent().

Referenced by BTreeBase::addNode(), and BTreeBase::replaceNode().

void BTreeNode::setRight ( BTreeNode right  )  [inline]

Set the child node on the right to the one give, and reparents it to this node.

Definition at line 74 of file btreenode.h.

References m_right, right(), and setParent().

Referenced by BTreeBase::addNode(), and BTreeBase::replaceNode().

bool BTreeNode::hasChildren (  )  const [inline]

Returns:
true if have a left or a right child node.

Definition at line 78 of file btreenode.h.

References m_left, and m_right.

Referenced by needsEvaluating(), BTreeBase::pruneTree(), and Traverser::start().


Member Data Documentation

QString BTreeNode::m_reg [protected]

This is used to remember what working register contains the value of the node during assembly.

Definition at line 99 of file btreenode.h.

Referenced by reg(), and setReg().


The documentation for this class was generated from the following files:
Generated on Tue May 8 17:05:34 2007 for KTechLab by  doxygen 1.5.1