|
|
@ -340,8 +340,6 @@ public class StateModelChecker implements ModelChecker |
|
|
res1.clear(); |
|
|
res1.clear(); |
|
|
if (res2 != null) |
|
|
if (res2 != null) |
|
|
res2.clear(); |
|
|
res2.clear(); |
|
|
if (res3 != null) |
|
|
|
|
|
res3.clear(); |
|
|
|
|
|
throw e; |
|
|
throw e; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -391,8 +389,6 @@ public class StateModelChecker implements ModelChecker |
|
|
} catch (PrismException e) { |
|
|
} catch (PrismException e) { |
|
|
if (res1 != null) |
|
|
if (res1 != null) |
|
|
res1.clear(); |
|
|
res1.clear(); |
|
|
if (res2 != null) |
|
|
|
|
|
res2.clear(); |
|
|
|
|
|
throw e; |
|
|
throw e; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -591,8 +587,6 @@ public class StateModelChecker implements ModelChecker |
|
|
} catch (PrismException e) { |
|
|
} catch (PrismException e) { |
|
|
if (res1 != null) |
|
|
if (res1 != null) |
|
|
res1.clear(); |
|
|
res1.clear(); |
|
|
if (res2 != null) |
|
|
|
|
|
res2.clear(); |
|
|
|
|
|
throw e; |
|
|
throw e; |
|
|
} |
|
|
} |
|
|
dd1 = res1.convertToStateValuesMTBDD().getJDDNode(); |
|
|
dd1 = res1.convertToStateValuesMTBDD().getJDDNode(); |
|
|
@ -632,13 +626,7 @@ public class StateModelChecker implements ModelChecker |
|
|
int i, n, op = expr.getOperator(); |
|
|
int i, n, op = expr.getOperator(); |
|
|
|
|
|
|
|
|
// Check operand recursively |
|
|
// Check operand recursively |
|
|
try { |
|
|
|
|
|
res1 = checkExpression(expr.getOperand()); |
|
|
|
|
|
} catch (PrismException e) { |
|
|
|
|
|
if (res1 != null) |
|
|
|
|
|
res1.clear(); |
|
|
|
|
|
throw e; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
res1 = checkExpression(expr.getOperand()); |
|
|
|
|
|
|
|
|
// Parentheses are easy - nothing to do: |
|
|
// Parentheses are easy - nothing to do: |
|
|
if (op == ExpressionUnaryOp.PARENTH) |
|
|
if (op == ExpressionUnaryOp.PARENTH) |
|
|
@ -708,13 +696,7 @@ public class StateModelChecker implements ModelChecker |
|
|
int i, n, op = expr.getNameCode(); |
|
|
int i, n, op = expr.getNameCode(); |
|
|
|
|
|
|
|
|
// Check operand recursively |
|
|
// Check operand recursively |
|
|
try { |
|
|
|
|
|
res1 = checkExpression(expr.getOperand(0)); |
|
|
|
|
|
} catch (PrismException e) { |
|
|
|
|
|
if (res1 != null) |
|
|
|
|
|
res1.clear(); |
|
|
|
|
|
throw e; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
res1 = checkExpression(expr.getOperand(0)); |
|
|
// Symbolic |
|
|
// Symbolic |
|
|
if (res1 instanceof StateValuesMTBDD) { |
|
|
if (res1 instanceof StateValuesMTBDD) { |
|
|
dd1 = ((StateValuesMTBDD) res1).getJDDNode(); |
|
|
dd1 = ((StateValuesMTBDD) res1).getJDDNode(); |
|
|
@ -765,8 +747,6 @@ public class StateModelChecker implements ModelChecker |
|
|
} catch (PrismException e) { |
|
|
} catch (PrismException e) { |
|
|
if (res1 != null) |
|
|
if (res1 != null) |
|
|
res1.clear(); |
|
|
res1.clear(); |
|
|
if (res2 != null) |
|
|
|
|
|
res2.clear(); |
|
|
|
|
|
throw e; |
|
|
throw e; |
|
|
} |
|
|
} |
|
|
// If both operands are symbolic, result will be symbolic |
|
|
// If both operands are symbolic, result will be symbolic |
|
|
@ -851,13 +831,7 @@ public class StateModelChecker implements ModelChecker |
|
|
boolean symbolic; |
|
|
boolean symbolic; |
|
|
|
|
|
|
|
|
// Check first operand recursively |
|
|
// Check first operand recursively |
|
|
try { |
|
|
|
|
|
res1 = checkExpression(expr.getOperand(0)); |
|
|
|
|
|
} catch (PrismException e) { |
|
|
|
|
|
if (res1 != null) |
|
|
|
|
|
res1.clear(); |
|
|
|
|
|
throw e; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
res1 = checkExpression(expr.getOperand(0)); |
|
|
// Go through remaining operands |
|
|
// Go through remaining operands |
|
|
// Switch to explicit as soon as an operand is explicit |
|
|
// Switch to explicit as soon as an operand is explicit |
|
|
n = expr.getNumOperands(); |
|
|
n = expr.getNumOperands(); |
|
|
|