Browse Source

imported patch copyBoundsFrom-use-for-toUntil.patch

tud-infrastructure-2018-10-12
Joachim Klein 7 years ago
parent
commit
6ac61690b1
  1. 8
      prism/src/parser/ast/ExpressionTemporal.java

8
prism/src/parser/ast/ExpressionTemporal.java

@ -298,28 +298,28 @@ public class ExpressionTemporal extends Expression
// F a == true U a // F a == true U a
op1 = Expression.True(); op1 = Expression.True();
exprTemp = new ExpressionTemporal(P_U, op1, operand2); exprTemp = new ExpressionTemporal(P_U, op1, operand2);
exprTemp.setBoundsFrom(this);
exprTemp.copyBoundsFrom(this);
return exprTemp; return exprTemp;
case P_G: case P_G:
// G a == !(true U !a) // G a == !(true U !a)
op1 = Expression.True(); op1 = Expression.True();
op2 = Expression.Not(operand2); op2 = Expression.Not(operand2);
exprTemp = new ExpressionTemporal(P_U, op1, op2); exprTemp = new ExpressionTemporal(P_U, op1, op2);
exprTemp.setBoundsFrom(this);
exprTemp.copyBoundsFrom(this);
return Expression.Not(exprTemp); return Expression.Not(exprTemp);
case P_W: case P_W:
// a W b == !(a&!b U !a&!b) // a W b == !(a&!b U !a&!b)
op1 = Expression.And(operand1, Expression.Not(operand2)); op1 = Expression.And(operand1, Expression.Not(operand2));
op2 = Expression.And(Expression.Not(operand1), Expression.Not(operand2)); op2 = Expression.And(Expression.Not(operand1), Expression.Not(operand2));
exprTemp = new ExpressionTemporal(P_U, op1, op2); exprTemp = new ExpressionTemporal(P_U, op1, op2);
exprTemp.setBoundsFrom(this);
exprTemp.copyBoundsFrom(this);
return Expression.Not(exprTemp); return Expression.Not(exprTemp);
case P_R: case P_R:
// a R b == !(!a U !b) // a R b == !(!a U !b)
op1 = Expression.Not(operand1); op1 = Expression.Not(operand1);
op2 = Expression.Not(operand2); op2 = Expression.Not(operand2);
exprTemp = new ExpressionTemporal(P_U, op1, op2); exprTemp = new ExpressionTemporal(P_U, op1, op2);
exprTemp.setBoundsFrom(this);
exprTemp.copyBoundsFrom(this);
return Expression.Not(exprTemp); return Expression.Not(exprTemp);
} }
throw new PrismLangException("Cannot convert " + getOperatorSymbol() + " to until form"); throw new PrismLangException("Cannot convert " + getOperatorSymbol() + " to until form");

Loading…
Cancel
Save