first commit
This commit is contained in:
26
hrmsEjb/org/nfunk/jep/function/Assign.java
Normal file
26
hrmsEjb/org/nfunk/jep/function/Assign.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package org.nfunk.jep.function;
|
||||
|
||||
import java.util.Stack;
|
||||
import org.nfunk.jep.ASTVarNode;
|
||||
import org.nfunk.jep.Node;
|
||||
import org.nfunk.jep.ParseException;
|
||||
import org.nfunk.jep.ParserVisitor;
|
||||
import org.nfunk.jep.Variable;
|
||||
|
||||
public class Assign extends PostfixMathCommand implements SpecialEvaluationI {
|
||||
public Object evaluate(Node paramNode, Object paramObject, ParserVisitor paramParserVisitor, Stack paramStack) throws ParseException {
|
||||
if (paramNode.jjtGetNumChildren() != 2)
|
||||
throw new ParseException("Assignment opperator must have 2 operators.");
|
||||
paramNode.jjtGetChild(1).jjtAccept(paramParserVisitor, paramObject);
|
||||
checkStack(paramStack);
|
||||
Object object = paramStack.peek();
|
||||
Node node = paramNode.jjtGetChild(0);
|
||||
if (node instanceof ASTVarNode) {
|
||||
ASTVarNode aSTVarNode = (ASTVarNode)node;
|
||||
Variable variable = aSTVarNode.getVar();
|
||||
variable.setValue(object);
|
||||
return object;
|
||||
}
|
||||
throw new ParseException("Assignment should have a variable for the lhs.");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user