ReplVisitor.java :  » Development » jgap-3.4.4 » examples » math » Java Open Source

Java Open Source » Development » jgap 3.4.4 
jgap 3.4.4 » examples » math » ReplVisitor.java
/*
 * This file is part of JGAP.
 *
 * JGAP offers a dual license model containing the LGPL as well as the MPL.
 *
 * For licensing information please see the file license.txt included with JGAP
 * or have a look at the top of class org.jgap.Chromosome which representatively
 * includes the JGAP license policy applicable for any file delivered with JGAP.
 */
package examples.math;

import examples.math.cmd.*;

/**
 * Only used in MathGene.toString().
 *
 * @author Michael Grove
 * @since 3.4.2
 */
@Deprecated
public class ReplVisitor
    implements MathVisitor {
  /** String containing the CVS revision. Read out via reflection!*/
  private final static String CVS_REVISION = "$Revision: 1.1 $";

  private StringBuffer mBuffer = new StringBuffer();

  public void reset() {
    mBuffer = new StringBuffer();
  }

  public String render(Operand theOp) {
    if (theOp != null) {
      theOp.accept(this);
    }
    return mBuffer.toString();
  }

  public void visit(ValueOperand theOp) {
    mBuffer.append(" ").append(theOp.value()).append(" ");
  }

  public void visit(AddOperator theOp) {
    mBuffer.append("(");
    theOp.getLeftOperand().accept(this);
    mBuffer.append(" + ");
    theOp.getRightOperand().accept(this);
    mBuffer.append(")");
  }

  public void visit(MinusOperator theOp) {
    mBuffer.append("(");
    theOp.getLeftOperand().accept(this);
    mBuffer.append(" - ");
    theOp.getRightOperand().accept(this);
    mBuffer.append(")");
  }

  public void visit(DivideOperator theOp) {
    mBuffer.append("(");
    theOp.getLeftOperand().accept(this);
    mBuffer.append(" / ");
    theOp.getRightOperand().accept(this);
    mBuffer.append(")");
  }

  public void visit(MultiplyOperator theOp) {
    mBuffer.append("(");
    theOp.getLeftOperand().accept(this);
    mBuffer.append(" * ");
    theOp.getRightOperand().accept(this);
    mBuffer.append(")");
  }

  public static void main(String[] args) {
    Operand aExpr1 = new AddOperator(new ValueOperand(4), new ValueOperand(20));
    Operand aExpr2 = new DivideOperator(new MinusOperator(new ValueOperand(34.3),
        new MultiplyOperator(new ValueOperand(2), new ValueOperand(37))),
                                        aExpr1);
    System.err.println(new ReplVisitor().render(aExpr1) + " = " + aExpr1.value());
    System.err.println(new ReplVisitor().render(aExpr2) + " = " + aExpr2.value());
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.