[Bprocessor-commit] bscript/src/net/sourceforge/bprocessor/model/evaluator Primitive.java, 1.1, 1.
Status: Pre-Alpha
Brought to you by:
henryml
From: Michael L. <he...@us...> - 2006-09-11 22:57:27
|
Update of /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv14460/src/net/sourceforge/bprocessor/model/evaluator Modified Files: Primitive.java Operation.java Variable.java Function.java Literal.java Log Message: basic evaluation Index: Primitive.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Primitive.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Primitive.java 6 Sep 2006 09:49:05 -0000 1.1 --- Primitive.java 11 Sep 2006 22:57:25 -0000 1.2 *************** *** 8,11 **** --- 8,13 ---- package net.sourceforge.bprocessor.model.evaluator; + import java.util.Stack; + /** * Primitive *************** *** 34,36 **** --- 36,76 ---- this.opcode = opcode; } + + /** + * @param stack Stack + */ + public void evaluate(Stack stack) { + switch(opcode) { + case ADD: { + Double op1 = (Double) stack.pop(); + Double op2 = (Double) stack.pop(); + stack.push(new Double(op1.doubleValue() + op2.doubleValue())); + break; + } + case SUB: { + Double op1 = (Double) stack.pop(); + Double op2 = (Double) stack.pop(); + stack.push(new Double(op2.doubleValue() - op1.doubleValue())); + break; + } + case MUL: { + Double op1 = (Double) stack.pop(); + Double op2 = (Double) stack.pop(); + stack.push(new Double(op1.doubleValue() * op2.doubleValue())); + break; + } + case DIV: { + Double op1 = (Double) stack.pop(); + Double op2 = (Double) stack.pop(); + stack.push(new Double(op2.doubleValue() / op1.doubleValue())); + break; + } + case NEG: { + Double op1 = (Double) stack.pop(); + stack.push(new Double(-op1.doubleValue())); + break; + } + + } + } } Index: Variable.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Variable.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Variable.java 6 Sep 2006 09:49:05 -0000 1.1 --- Variable.java 11 Sep 2006 22:57:25 -0000 1.2 *************** *** 8,11 **** --- 8,13 ---- package net.sourceforge.bprocessor.model.evaluator; + import java.util.Stack; + /** * Variable *************** *** 23,25 **** --- 25,34 ---- this.id = id; } + + /** + * @param stack Stack + */ + public void evaluate(Stack stack) { + stack.push(new Double(87)); + } } Index: Function.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Function.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Function.java 6 Sep 2006 09:49:05 -0000 1.1 --- Function.java 11 Sep 2006 22:57:25 -0000 1.2 *************** *** 8,13 **** --- 8,15 ---- package net.sourceforge.bprocessor.model.evaluator; + import java.util.Iterator; import java.util.LinkedList; import java.util.List; + import java.util.Stack; /** *************** *** 33,35 **** --- 35,51 ---- operations.add(operation); } + + /** + * + * @return result + */ + public Object evaluate() { + Iterator iter = operations.iterator(); + Stack stack = new Stack(); + while (iter.hasNext()) { + Operation current = (Operation) iter.next(); + current.evaluate(stack); + } + return stack.pop(); + } } Index: Literal.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Literal.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Literal.java 6 Sep 2006 09:49:05 -0000 1.1 --- Literal.java 11 Sep 2006 22:57:25 -0000 1.2 *************** *** 8,11 **** --- 8,13 ---- package net.sourceforge.bprocessor.model.evaluator; + import java.util.Stack; + /** * Literal *************** *** 23,25 **** --- 25,34 ---- this.value = value; } + + /** + * @param stack Stack + */ + public void evaluate(Stack stack) { + stack.push(value); + } } Index: Operation.java =================================================================== RCS file: /cvsroot/bprocessor/bscript/src/net/sourceforge/bprocessor/model/evaluator/Operation.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Operation.java 6 Sep 2006 09:49:05 -0000 1.1 --- Operation.java 11 Sep 2006 22:57:25 -0000 1.2 *************** *** 8,16 **** package net.sourceforge.bprocessor.model.evaluator; /** * Operation * */ ! public class Operation { /** * Constructor --- 8,18 ---- package net.sourceforge.bprocessor.model.evaluator; + import java.util.Stack; + /** * Operation * */ ! public abstract class Operation { /** * Constructor *************** *** 19,21 **** --- 21,29 ---- super(); } + + /** + * Evaluate + * @param stack Stack + */ + public abstract void evaluate(Stack stack); } |