Browse Source

Bugfix: type errors in toSimulator.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@788 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 18 years ago
parent
commit
141e3f8b4f
  1. 8
      prism/src/parser/visitor/ToSimulator.java

8
prism/src/parser/visitor/ToSimulator.java

@ -104,7 +104,9 @@ public class ToSimulator extends ASTTraverseModify
long ret = -1;
long ptr1 = getPtr(e.getOperand1());
long ptr2 = getPtr(e.getOperand2());
boolean dbl = e.getType() == Expression.DOUBLE;
// See if one of the operands is a double (need to know for choosing a sim createXXX method below).
// Note: can't just look at type of e since that may be always Boolean for some ops
boolean dbl = (e.getOperand1().getType() == Expression.DOUBLE || e.getOperand2().getType() == Expression.DOUBLE);
switch (e.getOperator()) {
case ExpressionBinaryOp.IMPLIES:
ret = SimulatorEngine.createOr(new long[] { SimulatorEngine.createNot(ptr1), ptr2 });
@ -158,7 +160,7 @@ public class ToSimulator extends ASTTraverseModify
{
long ret = -1;
long ptr = getPtr(e.getOperand());
boolean dbl = e.getType() == Expression.DOUBLE;
boolean dbl = (e.getOperand().getType() == Expression.DOUBLE);
switch (e.getOperator()) {
case ExpressionUnaryOp.NOT:
ret = SimulatorEngine.createNot(ptr);
@ -185,7 +187,7 @@ public class ToSimulator extends ASTTraverseModify
for (i = 0; i < n; i++) {
ptr[i] = getPtr(e.getOperand(i));
}
boolean dbl = e.getType() == Expression.DOUBLE;
boolean dbl = (e.getType() == Expression.DOUBLE);
switch (e.getNameCode()) {
case ExpressionFunc.MIN:
ret = dbl ? SimulatorEngine.createRealMin(ptr) : SimulatorEngine.createNormalMin(ptr);

Loading…
Cancel
Save