diff --git a/prism/src/parser/PrismParser.java b/prism/src/parser/PrismParser.java index e6d5f1e0..6818abee 100644 --- a/prism/src/parser/PrismParser.java +++ b/prism/src/parser/PrismParser.java @@ -1150,11 +1150,11 @@ public class PrismParser implements PrismParserConstants { jj_la1[26] = jj_gen; break label_11; } - begin2 = getToken(1); + begin2 = getToken(1); s = null; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: jj_consume_token(LBRACKET); - s = ""; + s = ""; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case REG_IDENT: s = Identifier(); diff --git a/prism/src/parser/PrismParser.jj b/prism/src/parser/PrismParser.jj index 486d846a..f9e2a382 100644 --- a/prism/src/parser/PrismParser.jj +++ b/prism/src/parser/PrismParser.jj @@ -835,7 +835,7 @@ RewardStruct RewardStruct() : // (which would not be allowed to appear here anyway) ( LOOKAHEAD() name = Identifier() { rs.setName(name); } )? // Reward structure items - ( { begin2 = getToken(1); } ( { s = ""; } ( s=Identifier() )? )? + ( { begin2 = getToken(1); s = null; } ( { s = ""; } ( s=Identifier() )? )? guard = Expression(false, false) value = Expression(false, false) { rsi = new RewardStructItem(s, guard, value); rsi.setPosition(begin2, getToken(0)); rs.addItem(rsi); } )* diff --git a/prism/src/parser/ast/RewardStructItem.java b/prism/src/parser/ast/RewardStructItem.java index 6aaf2b00..3e3dbada 100644 --- a/prism/src/parser/ast/RewardStructItem.java +++ b/prism/src/parser/ast/RewardStructItem.java @@ -31,8 +31,14 @@ import prism.PrismLangException; public class RewardStructItem extends ASTElement { + // Synchronising action: + // * null = none (i.e. state reward) + // * "" = empty/tau/asynchronous action (i.e. transition reward) + // * "act" = "act"-labelled action (i.e. transition reward) private String synch; + // Guard expression private Expression states; + // Reward expression private Expression reward; // constructor