Browse Source

Fix AccumulationType

accumulation
Sascha Wunderlich 6 years ago
parent
commit
8ebd334363
  1. 6
      prism/src/parser/PrismParser.jj
  2. 10
      prism/src/parser/ast/AccumulationFunction.java
  3. 5
      prism/src/parser/ast/AccumulationType.java

6
prism/src/parser/PrismParser.jj

@ -1350,16 +1350,16 @@ AccumulationFunction ExpressionAccumulationFunction() :
} }
{ {
( (LOOKAHEAD({ getToken(1).kind==REG_IDENT && getToken(1).image.equals("time") }) ( (LOOKAHEAD({ getToken(1).kind==REG_IDENT && getToken(1).image.equals("time") })
Identifier() {func = AccumulationFunction.ACC_TIME;})
Identifier() {func = new AccumulationFunction(AccumulationType.ACC_TIME);})
| (LOOKAHEAD({ getToken(1).kind==REG_IDENT && getToken(1).image.equals("steps") }) | (LOOKAHEAD({ getToken(1).kind==REG_IDENT && getToken(1).image.equals("steps") })
Identifier() {func = AccumulationFunction.ACC_STEPS;})
Identifier() {func = new AccumulationFunction(AccumulationType.ACC_STEPS);})
// SWDO: We also want "weight" here // SWDO: We also want "weight" here
| (LOOKAHEAD({ getToken(1).kind==REG_IDENT && getToken(1).image.equals("reward") }) | (LOOKAHEAD({ getToken(1).kind==REG_IDENT && getToken(1).image.equals("reward") })
Identifier() Identifier()
(rewardIndex = RewardIndex())? (rewardIndex = RewardIndex())?
{ {
func = AccumulationFunction.ACC_REWARD;
func = new AccumulationFunction(AccumulationType.ACC_REWARD);
func.setRewardIndex(rewardIndex); func.setRewardIndex(rewardIndex);
}) })
) )

10
prism/src/parser/ast/AccumulationFunction.java

@ -1,7 +1,11 @@
package parser.ast; package parser.ast;
public enum AccumulationFunction {
ACC_TIME, ACC_STEPS, ACC_REWARD;
public class AccumulationFunction {
public AccumulationFunction(AccumulationType type) {
this.type = type;
}
public AccumulationType type;
private Object rewardIndex = null; private Object rewardIndex = null;
@ -14,7 +18,7 @@ public enum AccumulationFunction {
} }
public String toString() { public String toString() {
switch(this) {
switch(this.type) {
case ACC_REWARD: case ACC_REWARD:
return "reward" + indexString(); return "reward" + indexString();
case ACC_STEPS: case ACC_STEPS:

5
prism/src/parser/ast/AccumulationType.java

@ -0,0 +1,5 @@
package parser.ast;
public enum AccumulationType {
ACC_TIME, ACC_STEPS, ACC_REWARD;
}
Loading…
Cancel
Save