|
Math Type Library (libmath++) 0.0.3
|
#include <nodes.h>
Public Types | |
| enum | TNodeType { NUMBER_NODE , SYMBOL_NODE , PARAM_NODE , PLUS_NODE , NEG_NODE , MUL_NODE , DIV_NODE , MOD_NODE , POW_NODE , EQU_NODE , UNEQU_NODE , LESS_EQU_NODE , GREATER_EQU_NODE , LESS_NODE , GREATER_NODE , FUNC_NODE , SQRT_NODE , SIN_NODE , COS_NODE , TAN_NODE , LN_NODE , IF_NODE } |
| typedef TNodeIterator< T > | iterator |
| typedef const TNodeIterator< T > | const_iterator |
| typedef TOperandIter< TNode< T > > | operand_iterator |
| typedef TOperandIter< const TNode< T > > | const_operand_iterator |
Public Member Functions | |
| virtual | ~TNode () |
| each virtual class needs a virtual destructor (this one does nothing) | |
| TNodeType | nodeType () const |
| returns the type of this node | |
| short | priority () const |
| returns the node priority | |
| TNode< T > * | parent () const |
| returns the parent node (returns 0 if this node is the root node) | |
| virtual TNode< T > * | left () const |
| returns the left child node (returns 0 if this node doesn't support one) More... | |
| virtual TNode< T > * | right () const |
| returns the right child node (returns 0 if this node doesn't support one) More... | |
| virtual void | accept (TNodeVisitor< T > &)=0 |
| calls the visit method in TNodeVisitor<> More... | |
| virtual TNode< T > * | clone () const =0 |
| clones that node More... | |
| iterator | begin () |
| iterator access to the first value node in this operator level More... | |
| iterator | end () |
| iterator access to the end More... | |
| virtual bool | equals (const TNode< T > *ANode) const =0 |
| returns true, if given node equals to this one More... | |
Protected Member Functions | |
| TNode (TNodeType ANodeType, short APriority, TNode< T > *AParentNode=0) | |
| initializes this node for given node type. | |
| TNode (const TNode< T > &n) | |
| void | parent (TNode< T > *AParent) |
| initializes the parent node with the given one | |
Friends | |
| class | TUnaryNodeOp< T > |
| class | TBinaryNodeOp< T > |
TNode<T> represents the abstract node base.
| typedef const TNodeIterator<T> math::TNode< T >::const_iterator |
| typedef TOperandIter<const TNode<T> > math::TNode< T >::const_operand_iterator |
| typedef TNodeIterator<T> math::TNode< T >::iterator |
| typedef TOperandIter<TNode<T> > math::TNode< T >::operand_iterator |
| enum math::TNode::TNodeType |
This enumeration, TNodeType, is implemented for node type access. This makes it also faster because it replaces the dynamic_cast<> operator.
Definition at line 240 of file nodes.h.
|
pure virtual |
calls the visit method in TNodeVisitor<>
Implemented in math::TNumberNode< T >, math::TSymbolNode< T >, math::TParamNode< T >, math::TPlusNode< T >, math::TNegNode< T >, math::TMulNode< T >, math::TDivNode< T >, math::TPowNode< T >, math::TSqrtNode< T >, math::TSinNode< T >, math::TCosNode< T >, math::TTanNode< T >, math::TLnNode< T >, math::TFuncNode< T >, math::TIfNode< T >, math::TEquNode< T >, math::TUnEquNode< T >, math::TGreaterNode< T >, math::TLessNode< T >, math::TGreaterEquNode< T >, and math::TLessEquNode< T >.
|
inline |
|
pure virtual |
clones that node
Implemented in math::TNumberNode< T >, math::TSymbolNode< T >, math::TParamNode< T >, math::TPlusNode< T >, math::TNegNode< T >, math::TMulNode< T >, math::TDivNode< T >, math::TPowNode< T >, math::TSqrtNode< T >, math::TSinNode< T >, math::TCosNode< T >, math::TTanNode< T >, math::TLnNode< T >, math::TFuncNode< T >, math::TIfNode< T >, math::TEquNode< T >, math::TUnEquNode< T >, math::TGreaterNode< T >, math::TLessNode< T >, math::TGreaterEquNode< T >, and math::TLessEquNode< T >.
|
inline |
|
pure virtual |
returns true, if given node equals to this one
Implemented in math::TNumberNode< T >, math::TSymbolNode< T >, math::TParamNode< T >, math::TUnaryNodeOp< T >, and math::TBinaryNodeOp< T >.
|
virtual |
returns the left child node (returns 0 if this node doesn't support one)
Reimplemented in math::TBinaryNodeOp< T >.
|
virtual |
returns the right child node (returns 0 if this node doesn't support one)
Reimplemented in math::TUnaryNodeOp< T >, and math::TBinaryNodeOp< T >.
|
friend |
|
friend |