com.singularsys.aa.manipulation
Class Expander

java.lang.Object
  extended by com.singularsys.aa.manipulation.Expander
All Implemented Interfaces:
org.nfunk.jep.ParserVisitor

public class Expander
extends java.lang.Object
implements org.nfunk.jep.ParserVisitor

This class preforms expression expansion.

    a*(b + c) -> (a*b) + (a*c)
 


Constructor Summary
Expander()
          Creates new Expander
 
Method Summary
 org.nfunk.jep.Node expand(org.nfunk.jep.Node topNode)
          Expands the tree under topNode.
 java.lang.Object visit(org.nfunk.jep.ASTConstant node, java.lang.Object data)
           
 java.lang.Object visit(org.nfunk.jep.ASTFunNode node, java.lang.Object data)
          Expansion of a function node.
 java.lang.Object visit(org.nfunk.jep.ASTStart node, java.lang.Object data)
           
 java.lang.Object visit(org.nfunk.jep.ASTVarNode node, java.lang.Object data)
           
 java.lang.Object visit(org.nfunk.jep.SimpleNode node, java.lang.Object data)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Expander

public Expander()
Creates new Expander

Method Detail

expand

public org.nfunk.jep.Node expand(org.nfunk.jep.Node topNode)
Expands the tree under topNode.


visit

public java.lang.Object visit(org.nfunk.jep.ASTFunNode node,
                              java.lang.Object data)
Expansion of a function node.
       a*(c + d)*b   ->  a*c*b + a*d*b

          (*)                 (+)
          /|\                 / \
        /  |  \             /     \
       a  (+)  b     ->   (*)     (*)
          / \             /|\     /|\
         c   d           a c b   a d b

Specified by:
visit in interface org.nfunk.jep.ParserVisitor

visit

public java.lang.Object visit(org.nfunk.jep.ASTConstant node,
                              java.lang.Object data)
Specified by:
visit in interface org.nfunk.jep.ParserVisitor

visit

public java.lang.Object visit(org.nfunk.jep.ASTVarNode node,
                              java.lang.Object data)
Specified by:
visit in interface org.nfunk.jep.ParserVisitor

visit

public java.lang.Object visit(org.nfunk.jep.ASTStart node,
                              java.lang.Object data)
Specified by:
visit in interface org.nfunk.jep.ParserVisitor

visit

public java.lang.Object visit(org.nfunk.jep.SimpleNode node,
                              java.lang.Object data)
Specified by:
visit in interface org.nfunk.jep.ParserVisitor