diff --git a/prism/src/parser/ast/ExpressionBinaryOp.java b/prism/src/parser/ast/ExpressionBinaryOp.java index 9e78cf62..27131c13 100644 --- a/prism/src/parser/ast/ExpressionBinaryOp.java +++ b/prism/src/parser/ast/ExpressionBinaryOp.java @@ -147,69 +147,69 @@ public class ExpressionBinaryOp extends Expression { switch (op) { case IMPLIES: - return new Boolean(!operand1.evaluateBoolean(ec) || operand2.evaluateBoolean(ec)); + return !operand1.evaluateBoolean(ec) || operand2.evaluateBoolean(ec); case IFF: - return new Boolean(operand1.evaluateBoolean(ec) == operand2.evaluateBoolean(ec)); + return operand1.evaluateBoolean(ec) == operand2.evaluateBoolean(ec); case OR: - return new Boolean(operand1.evaluateBoolean(ec) || operand2.evaluateBoolean(ec)); + return operand1.evaluateBoolean(ec) || operand2.evaluateBoolean(ec); case AND: - return new Boolean(operand1.evaluateBoolean(ec) && operand2.evaluateBoolean(ec)); + return operand1.evaluateBoolean(ec) && operand2.evaluateBoolean(ec); case EQ: if (operand1.getType() == TypeInt.getInstance() && operand2.getType() == TypeInt.getInstance()) { - return new Boolean(operand1.evaluateInt(ec) == operand2.evaluateInt(ec)); + return operand1.evaluateInt(ec) == operand2.evaluateInt(ec); } else { - return new Boolean(operand1.evaluateDouble(ec) == operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) == operand2.evaluateDouble(ec); } case NE: if (operand1.getType() == TypeInt.getInstance() && operand2.getType() == TypeInt.getInstance()) { - return new Boolean(operand1.evaluateInt(ec) != operand2.evaluateInt(ec)); + return operand1.evaluateInt(ec) != operand2.evaluateInt(ec); } else { - return new Boolean(operand1.evaluateDouble(ec) != operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) != operand2.evaluateDouble(ec); } case GT: if (operand1.getType() == TypeInt.getInstance() && operand2.getType() == TypeInt.getInstance()) { - return new Boolean(operand1.evaluateInt(ec) > operand2.evaluateInt(ec)); + return operand1.evaluateInt(ec) > operand2.evaluateInt(ec); } else { - return new Boolean(operand1.evaluateDouble(ec) > operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) > operand2.evaluateDouble(ec); } case GE: if (operand1.getType() == TypeInt.getInstance() && operand2.getType() == TypeInt.getInstance()) { - return new Boolean(operand1.evaluateInt(ec) >= operand2.evaluateInt(ec)); + return operand1.evaluateInt(ec) >= operand2.evaluateInt(ec); } else { - return new Boolean(operand1.evaluateDouble(ec) >= operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) >= operand2.evaluateDouble(ec); } case LT: if (operand1.getType() == TypeInt.getInstance() && operand2.getType() == TypeInt.getInstance()) { - return new Boolean(operand1.evaluateInt(ec) < operand2.evaluateInt(ec)); + return operand1.evaluateInt(ec) < operand2.evaluateInt(ec); } else { - return new Boolean(operand1.evaluateDouble(ec) < operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) < operand2.evaluateDouble(ec); } case LE: if (operand1.getType() == TypeInt.getInstance() && operand2.getType() == TypeInt.getInstance()) { - return new Boolean(operand1.evaluateInt(ec) <= operand2.evaluateInt(ec)); + return operand1.evaluateInt(ec) <= operand2.evaluateInt(ec); } else { - return new Boolean(operand1.evaluateDouble(ec) <= operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) <= operand2.evaluateDouble(ec); } case PLUS: if (operand1.getType() == TypeInt.getInstance() && operand2.getType() == TypeInt.getInstance()) { - return new Integer(operand1.evaluateInt(ec) + operand2.evaluateInt(ec)); + return operand1.evaluateInt(ec) + operand2.evaluateInt(ec); } else { - return new Double(operand1.evaluateDouble(ec) + operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) + operand2.evaluateDouble(ec); } case MINUS: if (operand1.getType() == TypeInt.getInstance() && operand2.getType() == TypeInt.getInstance()) { - return new Integer(operand1.evaluateInt(ec) - operand2.evaluateInt(ec)); + return operand1.evaluateInt(ec) - operand2.evaluateInt(ec); } else { - return new Double(operand1.evaluateDouble(ec) - operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) - operand2.evaluateDouble(ec); } case TIMES: if (operand1.getType() == TypeInt.getInstance() && operand2.getType() == TypeInt.getInstance()) { - return new Integer(operand1.evaluateInt(ec) * operand2.evaluateInt(ec)); + return operand1.evaluateInt(ec) * operand2.evaluateInt(ec); } else { - return new Double(operand1.evaluateDouble(ec) * operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) * operand2.evaluateDouble(ec); } case DIVIDE: - return new Double(operand1.evaluateDouble(ec) / operand2.evaluateDouble(ec)); + return operand1.evaluateDouble(ec) / operand2.evaluateDouble(ec); } throw new PrismLangException("Unknown binary operator", this); } diff --git a/prism/src/parser/ast/ExpressionFunc.java b/prism/src/parser/ast/ExpressionFunc.java index a8f3be7d..0fd96ef6 100644 --- a/prism/src/parser/ast/ExpressionFunc.java +++ b/prism/src/parser/ast/ExpressionFunc.java @@ -231,7 +231,7 @@ public class ExpressionFunc extends Expression j = getOperand(i).evaluateInt(ec); iMin = (j < iMin) ? j : iMin; } - return new Integer(iMin); + return iMin; } else { dMin = getOperand(0).evaluateDouble(ec); n = getNumOperands(); @@ -239,7 +239,7 @@ public class ExpressionFunc extends Expression d = getOperand(i).evaluateDouble(ec); dMin = (d < dMin) ? d : dMin; } - return new Double(dMin); + return dMin; } } @@ -266,7 +266,7 @@ public class ExpressionFunc extends Expression j = getOperand(i).evaluateInt(ec); iMax = (j > iMax) ? j : iMax; } - return new Integer(iMax); + return iMax; } else { dMax = getOperand(0).evaluateDouble(ec); n = getNumOperands(); @@ -274,7 +274,7 @@ public class ExpressionFunc extends Expression d = getOperand(i).evaluateDouble(ec); dMax = (d > dMax) ? d : dMax; } - return new Double(dMax); + return dMax; } } @@ -362,9 +362,9 @@ public class ExpressionFunc extends Expression { try { if (type instanceof TypeInt) { - return new Integer(evaluatePowInt(getOperand(0).evaluateInt(ec), getOperand(1).evaluateInt(ec))); + return evaluatePowInt(getOperand(0).evaluateInt(ec), getOperand(1).evaluateInt(ec)); } else { - return new Double(evaluatePowDouble(getOperand(0).evaluateDouble(ec), getOperand(1).evaluateDouble(ec))); + return evaluatePowDouble(getOperand(0).evaluateDouble(ec), getOperand(1).evaluateDouble(ec)); } } catch (PrismLangException e) { e.setASTElement(this); @@ -408,7 +408,7 @@ public class ExpressionFunc extends Expression public Object evaluateMod(EvaluateContext ec) throws PrismLangException { try { - return new Integer(evaluateMod(getOperand(0).evaluateInt(ec), getOperand(1).evaluateInt(ec))); + return evaluateMod(getOperand(0).evaluateInt(ec), getOperand(1).evaluateInt(ec)); } catch (PrismLangException e) { e.setASTElement(this); throw e; @@ -439,7 +439,7 @@ public class ExpressionFunc extends Expression public Object evaluateLog(EvaluateContext ec) throws PrismLangException { try { - return new Double(evaluateLog(getOperand(0).evaluateDouble(ec), getOperand(1).evaluateDouble(ec))); + return evaluateLog(getOperand(0).evaluateDouble(ec), getOperand(1).evaluateDouble(ec)); } catch (PrismLangException e) { e.setASTElement(this); throw e; diff --git a/prism/src/parser/ast/ExpressionUnaryOp.java b/prism/src/parser/ast/ExpressionUnaryOp.java index 0c48975f..32fcb7d9 100644 --- a/prism/src/parser/ast/ExpressionUnaryOp.java +++ b/prism/src/parser/ast/ExpressionUnaryOp.java @@ -120,12 +120,12 @@ public class ExpressionUnaryOp extends Expression { switch (op) { case NOT: - return new Boolean(!operand.evaluateBoolean(ec)); + return !operand.evaluateBoolean(ec); case MINUS: if (type instanceof TypeInt) { - return new Integer(-operand.evaluateInt(ec)); + return -operand.evaluateInt(ec); } else { - return new Double(-operand.evaluateDouble(ec)); + return -operand.evaluateDouble(ec); } case PARENTH: return operand.evaluate(ec);