diff --git a/prism/src/explicit/AccumulationTransformation.java b/prism/src/explicit/AccumulationTransformation.java index 456ed6b0..34dddb86 100644 --- a/prism/src/explicit/AccumulationTransformation.java +++ b/prism/src/explicit/AccumulationTransformation.java @@ -186,7 +186,7 @@ public class AccumulationTransformation implements Mode if(ctx.simpleMethod) { replace = new ReplaceAccumulationExpressionSimple(ctx.accexp, goalLabels.get(0), product.getNumberOfTracks()-1); } else { - replace = new ReplaceAccumulationExpressionComplex(ctx.accexp, initLabels, runLabels, goalLabels, product.getNumberOfTracks()-1); + replace = new ReplaceAccumulationExpressionComplex(ctx.accexp, initLabels, runLabels, goalLabels, product.getNumberOfTracks()-1, ctx.singleTrack); } transformedExpression = (Expression)transformedExpression.accept(replace); clock.stop("got " + transformedExpression); diff --git a/prism/src/parser/visitor/ReplaceAccumulationBox.java b/prism/src/parser/visitor/ReplaceAccumulationBox.java index a67709d9..df585cc5 100644 --- a/prism/src/parser/visitor/ReplaceAccumulationBox.java +++ b/prism/src/parser/visitor/ReplaceAccumulationBox.java @@ -40,7 +40,7 @@ public class ReplaceAccumulationBox extends ASTTraverseModify { throw new PrismLangException("Error: Accsymbol is a box and not a box."); } - // Make a copy and set constraint an symbol + // Make a copy and set constraint and symbol ExpressionAccumulation newAccexp = (ExpressionAccumulation)accexp.deepCopy(); newAccexp.setSymbol(newSym); newAccexp.setConstraint(newConstr); diff --git a/prism/src/parser/visitor/ReplaceAccumulationExpressionComplex.java b/prism/src/parser/visitor/ReplaceAccumulationExpressionComplex.java index 6d242619..ff3b1925 100644 --- a/prism/src/parser/visitor/ReplaceAccumulationExpressionComplex.java +++ b/prism/src/parser/visitor/ReplaceAccumulationExpressionComplex.java @@ -18,13 +18,16 @@ public class ReplaceAccumulationExpressionComplex extends ASTTraverseModify { private ArrayList goalLabels; private int accLength; - public ReplaceAccumulationExpressionComplex(ExpressionAccumulation accexp, ArrayList initLabels, ArrayList runLabels, ArrayList goalLabels, int accLength) { + private boolean singleTrack; + + public ReplaceAccumulationExpressionComplex(ExpressionAccumulation accexp, ArrayList initLabels, ArrayList runLabels, ArrayList goalLabels, int accLength, boolean singleTrack) { super(); this.accexp = accexp; this.initLabels = initLabels; this.runLabels = runLabels; this.goalLabels = goalLabels; this.accLength = accLength; + this.singleTrack = singleTrack; } private Object replaceWithUntil(ExpressionAccumulation accexp) throws PrismLangException { @@ -35,6 +38,9 @@ public class ReplaceAccumulationExpressionComplex extends ASTTraverseModify { Expression result = null; for(int i=0; i0) { break; } + Expression init = new ExpressionLabel(initLabels.get(i)); Expression run = new ExpressionLabel(runLabels.get(i)); Expression goal = new ExpressionLabel(goalLabels.get(i));