|
|
@ -12,6 +12,7 @@ import parser.ast.ExpressionReward; |
|
|
import parser.ast.RewardStruct; |
|
|
import parser.ast.RewardStruct; |
|
|
import parser.visitor.ReplaceAccumulationExpressionComplex; |
|
|
import parser.visitor.ReplaceAccumulationExpressionComplex; |
|
|
import parser.visitor.ReplaceAccumulationExpressionSimple; |
|
|
import parser.visitor.ReplaceAccumulationExpressionSimple; |
|
|
|
|
|
import parser.visitor.ReplaceAccumulationBox; |
|
|
import prism.PrismException; |
|
|
import prism.PrismException; |
|
|
import prism.PrismSettings; |
|
|
import prism.PrismSettings; |
|
|
|
|
|
|
|
|
@ -72,6 +73,14 @@ public class AccumulationTransformation<M extends Model> implements ModelExpress |
|
|
// Get the first ExpressionAccumulation |
|
|
// Get the first ExpressionAccumulation |
|
|
ExpressionAccumulation accexp = transformedExpression.getFirstAccumulationExpression(); |
|
|
ExpressionAccumulation accexp = transformedExpression.getFirstAccumulationExpression(); |
|
|
mc.getLog().println(" [AT] for " + accexp); |
|
|
mc.getLog().println(" [AT] for " + accexp); |
|
|
|
|
|
|
|
|
|
|
|
// Rewrite it, if it is a BOX |
|
|
|
|
|
if (accexp.getSymbol().isBox()) { |
|
|
|
|
|
ReplaceAccumulationBox replace = new ReplaceAccumulationBox(accexp); |
|
|
|
|
|
transformedExpression = (Expression)transformedExpression.accept(replace); |
|
|
|
|
|
accexp = transformedExpression.getFirstAccumulationExpression(); |
|
|
|
|
|
mc.getLog().println(" ... after unboxing: " + accexp + " (in " + transformedExpression + ")"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// Get the rewards |
|
|
// Get the rewards |
|
|
Vector<Rewards> rewards = new Vector<Rewards>(); |
|
|
Vector<Rewards> rewards = new Vector<Rewards>(); |
|
|
|