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") })
Identifier() {func = AccumulationFunction.ACC_TIME;})
Identifier() {func = new AccumulationFunction(AccumulationType.ACC_TIME);})
| (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
| (LOOKAHEAD({ getToken(1).kind==REG_IDENT && getToken(1).image.equals("reward") })
Identifier()
(rewardIndex = RewardIndex())?
{
func = AccumulationFunction.ACC_REWARD;
func = new AccumulationFunction(AccumulationType.ACC_REWARD);
func.setRewardIndex(rewardIndex);
})
)

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

@ -1,7 +1,11 @@
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;
@ -14,7 +18,7 @@ public enum AccumulationFunction {
}
public String toString() {
switch(this) {
switch(this.type) {
case ACC_REWARD:
return "reward" + indexString();
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