|
|
|
@ -18,13 +18,16 @@ public class ReplaceAccumulationExpressionComplex extends ASTTraverseModify { |
|
|
|
private ArrayList<String> goalLabels; |
|
|
|
private int accLength; |
|
|
|
|
|
|
|
public ReplaceAccumulationExpressionComplex(ExpressionAccumulation accexp, ArrayList<String> initLabels, ArrayList<String> runLabels, ArrayList<String> goalLabels, int accLength) { |
|
|
|
private boolean singleTrack; |
|
|
|
|
|
|
|
public ReplaceAccumulationExpressionComplex(ExpressionAccumulation accexp, ArrayList<String> initLabels, ArrayList<String> runLabels, ArrayList<String> 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; i<accLength; i++) { |
|
|
|
// if this is singleTrack: break after the first loop |
|
|
|
if(singleTrack && i>0) { break; } |
|
|
|
|
|
|
|
Expression init = new ExpressionLabel(initLabels.get(i)); |
|
|
|
Expression run = new ExpressionLabel(runLabels.get(i)); |
|
|
|
Expression goal = new ExpressionLabel(goalLabels.get(i)); |
|
|
|
|