⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 replvisitor.java

📁 JGAP是一种遗传算法和遗传规划的组成部分提供了一个Java框架。它提供了基本的遗传机制
💻 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());
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -