Object eax = ((MathExpressionOperand) calcstack.pop()).getValue(constants);
while (!calcstack.empty()) {
Object express1 = calcstack.pop();
Object express2 = calcstack.pop();
if (express2 instanceof MathExpressionOperatorRef) {
MathExpressionOperatorRef operator = (MathExpressionOperatorRef) express2;
Object op2Value = getExpressionValue(express1, constants);
MathOperatorBinary opcode = (MathOperatorBinary) operator.getRef();
eax = opcode.getValue(eax, op2Value);
} else {
MathExpressionOperatorRef operator = (MathExpressionOperatorRef) calcstack.pop();
Object op1Value = getExpressionValue(express1, constants);
Object op2Value = getExpressionValue(express2, constants);
MathOperatorBinary opcode = (MathOperatorBinary) operator.getRef();
Object res = opcode.getValue(op1Value, op2Value);
calcstack.push(res);
}
}