diff --git a/prism/src/parser/PrismParser.java b/prism/src/parser/PrismParser.java index 416da385..30be8a49 100644 --- a/prism/src/parser/PrismParser.java +++ b/prism/src/parser/PrismParser.java @@ -2863,6 +2863,17 @@ public class PrismParser implements PrismParserConstants { } // Contents of an R operator + +// JavaCC warns about lookahead for this function. This is because there is a +// conflict between R [ S ], where "S" is the long-run reward operator, and +// R [ S [ ] ] where "S [ ]" is a treated as an LTL formula comprising a single +// atomic proposition which is a nested S operator. Both are technically valid. + +// (bounded temporal operators and semicolon-less properties files) +// (see the relevant productions for details) +// we allow two or more successive expressions resulting in potential ambiguities +// e.g. "-a-b" = "(-a)-b" = "-a" "-b" +// Ignoring the warning results in the largest match being taken. static final public Expression ExpressionRewardContents(boolean prop, boolean pathprop) throws ParseException { Expression expr = null; ExpressionTemporal exprTemp = null; @@ -2870,10 +2881,13 @@ public class PrismParser implements PrismParserConstants { Token begin; begin = getToken(1); if (jj_2_17(2147483647)) { + expr = Expression(prop, true); + ret = expr; + } else if (jj_2_18(2147483647)) { begin = jj_consume_token(C); jj_consume_token(LE); expr = Expression(false, false); - exprTemp = new ExpressionTemporal(ExpressionTemporal.R_C, null, null); exprTemp.setUpperBound(expr); ret = exprTemp; + exprTemp = new ExpressionTemporal(ExpressionTemporal.R_C, null, null); exprTemp.setUpperBound(expr); ret = exprTemp; } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case C: @@ -2890,35 +2904,6 @@ public class PrismParser implements PrismParserConstants { jj_consume_token(S); ret = new ExpressionTemporal(ExpressionTemporal.R_S, null, null); break; - case A: - case E: - case FALSE: - case FILTER: - case FUNC: - case F: - case G: - case MAX: - case MIN: - case X: - case PMAX: - case PMIN: - case P: - case RMAX: - case RMIN: - case R: - case TRUE: - case NOT: - case LPARENTH: - case DLBRACKET: - case DLT: - case MINUS: - case DQUOTE: - case REG_INT: - case REG_DOUBLE: - case REG_IDENT: - expr = Expression(prop, true); - ret = expr; - break; default: jj_la1[85] = jj_gen; jj_consume_token(-1); @@ -3346,146 +3331,153 @@ public class PrismParser implements PrismParserConstants { finally { jj_save(16, xla); } } - static private boolean jj_3R_205() { - if (jj_scan_token(MAX)) return true; + static private boolean jj_2_18(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_18(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(17, xla); } + } + + static private boolean jj_3R_167() { + if (jj_3R_46()) return true; return false; } - static private boolean jj_3R_159() { - if (jj_3R_189()) return true; + static private boolean jj_3R_66() { + if (jj_scan_token(MAX)) return true; return false; } - static private boolean jj_3R_204() { + static private boolean jj_3R_65() { if (jj_scan_token(MIN)) return true; return false; } - static private boolean jj_3R_65() { - if (jj_3R_69()) return true; + static private boolean jj_3R_74() { + if (jj_3R_81()) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_70()) jj_scanpos = xsp; + if (jj_3R_82()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_85() { + static private boolean jj_3R_99() { if (jj_3R_31()) return true; return false; } - static private boolean jj_3R_83() { + static private boolean jj_3R_97() { if (jj_3R_31()) return true; return false; } - static private boolean jj_3R_81() { + static private boolean jj_3R_95() { if (jj_3R_31()) return true; return false; } - static private boolean jj_3R_79() { + static private boolean jj_3R_93() { if (jj_3R_31()) return true; return false; } - static private boolean jj_3R_202() { + static private boolean jj_3R_56() { if (jj_scan_token(LBRACE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_204()) { + if (jj_3R_65()) { jj_scanpos = xsp; - if (jj_3R_205()) return true; + if (jj_3R_66()) return true; } if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_76() { + static private boolean jj_3R_88() { if (jj_scan_token(EQ)) return true; - if (jj_3R_39()) return true; + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_189() { + static private boolean jj_3R_87() { + if (jj_scan_token(LBRACKET)) return true; + if (jj_3R_37()) return true; + if (jj_scan_token(COMMA)) return true; + if (jj_3R_37()) return true; + if (jj_scan_token(RBRACKET)) return true; + return false; + } + + static private boolean jj_3R_46() { if (jj_scan_token(LBRACE)) return true; - if (jj_3R_39()) return true; + if (jj_3R_37()) return true; if (jj_scan_token(RBRACE)) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_202()) { jj_scanpos = xsp; break; } + if (jj_3R_56()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_75() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_39()) return true; - if (jj_scan_token(COMMA)) return true; - if (jj_3R_39()) return true; - if (jj_scan_token(RBRACKET)) return true; - return false; - } - - static private boolean jj_3R_74() { + static private boolean jj_3R_86() { if (jj_scan_token(GT)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_85()) { + if (jj_3R_99()) { jj_scanpos = xsp; - if (jj_3R_86()) return true; + if (jj_3R_100()) return true; } return false; } - static private boolean jj_3R_73() { + static private boolean jj_3R_85() { if (jj_scan_token(GE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_83()) { + if (jj_3R_97()) { jj_scanpos = xsp; - if (jj_3R_84()) return true; + if (jj_3R_98()) return true; } return false; } - static private boolean jj_3R_72() { + static private boolean jj_3R_84() { if (jj_scan_token(LT)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_81()) { + if (jj_3R_95()) { jj_scanpos = xsp; - if (jj_3R_82()) return true; + if (jj_3R_96()) return true; } return false; } - static private boolean jj_3R_71() { + static private boolean jj_3R_83() { if (jj_scan_token(LE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_79()) { + if (jj_3R_93()) { jj_scanpos = xsp; - if (jj_3R_80()) return true; + if (jj_3R_94()) return true; } return false; } - static private boolean jj_3R_66() { + static private boolean jj_3R_75() { Token xsp; xsp = jj_scanpos; - if (jj_3R_71()) { + if (jj_3R_83()) { jj_scanpos = xsp; - if (jj_3R_72()) { + if (jj_3R_84()) { jj_scanpos = xsp; - if (jj_3R_73()) { + if (jj_3R_85()) { jj_scanpos = xsp; - if (jj_3R_74()) { + if (jj_3R_86()) { jj_scanpos = xsp; - if (jj_3R_75()) { + if (jj_3R_87()) { jj_scanpos = xsp; - if (jj_3R_76()) return true; + if (jj_3R_88()) return true; } } } @@ -3494,396 +3486,416 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_51() { - if (jj_3R_65()) return true; + static private boolean jj_3R_60() { + if (jj_3R_74()) return true; return false; } - static private boolean jj_3R_64() { - if (jj_3R_66()) return true; + static private boolean jj_3R_73() { + if (jj_3R_75()) return true; return false; } - static private boolean jj_3R_63() { + static private boolean jj_3R_72() { if (jj_scan_token(G)) return true; return false; } - static private boolean jj_3R_62() { + static private boolean jj_3R_71() { if (jj_scan_token(F)) return true; return false; } - static private boolean jj_3R_61() { + static private boolean jj_3R_70() { if (jj_scan_token(X)) return true; return false; } - static private boolean jj_3R_50() { + static private boolean jj_3R_59() { Token xsp; xsp = jj_scanpos; - if (jj_3R_61()) { + if (jj_3R_70()) { jj_scanpos = xsp; - if (jj_3R_62()) { + if (jj_3R_71()) { jj_scanpos = xsp; - if (jj_3R_63()) return true; + if (jj_3R_72()) return true; } } xsp = jj_scanpos; - if (jj_3R_64()) jj_scanpos = xsp; - if (jj_3R_45()) return true; + if (jj_3R_73()) jj_scanpos = xsp; + if (jj_3R_54()) return true; return false; } - static private boolean jj_3R_185() { - if (jj_3R_103()) return true; - if (jj_3R_39()) return true; + static private boolean jj_3R_190() { + if (jj_3R_44()) return true; + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_184() { + static private boolean jj_3R_189() { if (jj_scan_token(LPARENTH)) return true; if (jj_3R_31()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_188() { + static private boolean jj_3R_193() { if (jj_scan_token(MAX)) return true; if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_187() { + static private boolean jj_3R_192() { if (jj_scan_token(MIN)) return true; if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_186() { + static private boolean jj_3R_191() { if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_158() { + static private boolean jj_3R_166() { if (jj_scan_token(PMAX)) return true; if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_45() { + static private boolean jj_3R_54() { Token xsp; xsp = jj_scanpos; - if (jj_3R_50()) { + if (jj_3R_59()) { jj_scanpos = xsp; - if (jj_3R_51()) return true; + if (jj_3R_60()) return true; } return false; } - static private boolean jj_3R_157() { + static private boolean jj_3R_165() { if (jj_scan_token(PMIN)) return true; if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_55() { - if (jj_3R_66()) return true; + static private boolean jj_3R_64() { + if (jj_3R_75()) return true; return false; } - static private boolean jj_3R_54() { + static private boolean jj_3R_63() { if (jj_scan_token(R)) return true; return false; } - static private boolean jj_3R_53() { + static private boolean jj_3R_62() { if (jj_scan_token(W)) return true; return false; } - static private boolean jj_3R_156() { + static private boolean jj_3R_164() { if (jj_scan_token(P)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_184()) jj_scanpos = xsp; + if (jj_3R_189()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_185()) { + if (jj_3R_190()) { jj_scanpos = xsp; - if (jj_3R_186()) { + if (jj_3R_191()) { jj_scanpos = xsp; - if (jj_3R_187()) { + if (jj_3R_192()) { jj_scanpos = xsp; - if (jj_3R_188()) return true; + if (jj_3R_193()) return true; } } } return false; } - static private boolean jj_3R_52() { + static private boolean jj_3R_61() { if (jj_scan_token(U)) return true; return false; } - static private boolean jj_3R_137() { + static private boolean jj_3R_146() { Token xsp; xsp = jj_scanpos; - if (jj_3R_156()) { + if (jj_3R_164()) { jj_scanpos = xsp; - if (jj_3R_157()) { + if (jj_3R_165()) { jj_scanpos = xsp; - if (jj_3R_158()) return true; + if (jj_3R_166()) return true; } } if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_39()) return true; + if (jj_3R_37()) return true; xsp = jj_scanpos; - if (jj_3R_159()) jj_scanpos = xsp; + if (jj_3R_167()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_46() { + static private boolean jj_3R_55() { Token xsp; xsp = jj_scanpos; - if (jj_3R_52()) { + if (jj_3R_61()) { jj_scanpos = xsp; - if (jj_3R_53()) { + if (jj_3R_62()) { jj_scanpos = xsp; - if (jj_3R_54()) return true; + if (jj_3R_63()) return true; } } xsp = jj_scanpos; - if (jj_3R_55()) jj_scanpos = xsp; - if (jj_3R_45()) return true; - return false; - } - - static private boolean jj_3R_183() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_39()) return true; - return false; - } - - static private boolean jj_3R_155() { - if (jj_3R_28()) return true; - return false; - } - - static private boolean jj_3R_42() { - if (jj_3R_45()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_46()) jj_scanpos = xsp; + if (jj_3R_64()) jj_scanpos = xsp; + if (jj_3R_54()) return true; return false; } - static private boolean jj_3R_113() { + static private boolean jj_3R_53() { if (jj_scan_token(LE)) return true; return false; } - static private boolean jj_3R_112() { + static private boolean jj_3R_52() { if (jj_scan_token(GE)) return true; return false; } - static private boolean jj_3R_111() { + static private boolean jj_3R_51() { if (jj_scan_token(LT)) return true; return false; } - static private boolean jj_3R_103() { + static private boolean jj_3R_50() { + if (jj_scan_token(GT)) return true; + return false; + } + + static private boolean jj_3R_44() { Token xsp; xsp = jj_scanpos; - if (jj_3R_110()) { + if (jj_3R_50()) { jj_scanpos = xsp; - if (jj_3R_111()) { + if (jj_3R_51()) { jj_scanpos = xsp; - if (jj_3R_112()) { + if (jj_3R_52()) { jj_scanpos = xsp; - if (jj_3R_113()) return true; + if (jj_3R_53()) return true; } } } return false; } - static private boolean jj_3R_110() { - if (jj_scan_token(GT)) return true; + static private boolean jj_3R_188() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_67() { - if (jj_scan_token(COMMA)) return true; + static private boolean jj_3R_163() { if (jj_3R_28()) return true; return false; } - static private boolean jj_3R_136() { - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_39()) return true; - if (jj_scan_token(RPARENTH)) return true; + static private boolean jj_3R_45() { + if (jj_3R_54()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_55()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_105() { + static private boolean jj_3R_118() { if (jj_scan_token(NE)) return true; return false; } - static private boolean jj_3R_100() { + static private boolean jj_3R_114() { Token xsp; xsp = jj_scanpos; - if (jj_3R_104()) { + if (jj_3R_117()) { jj_scanpos = xsp; - if (jj_3R_105()) return true; + if (jj_3R_118()) return true; } return false; } - static private boolean jj_3R_104() { + static private boolean jj_3R_117() { if (jj_scan_token(EQ)) return true; return false; } - static private boolean jj_3R_154() { - if (jj_scan_token(MAX)) return true; + static private boolean jj_3R_89() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_28()) return true; return false; } - static private boolean jj_3R_148() { - if (jj_scan_token(FALSE)) return true; + static private boolean jj_3R_145() { + if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_37()) return true; + if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_147() { - if (jj_scan_token(TRUE)) return true; + static private boolean jj_3R_162() { + if (jj_scan_token(MAX)) return true; return false; } - static private boolean jj_3R_39() { - if (jj_3R_42()) return true; + static private boolean jj_3R_47() { + if (jj_scan_token(REG_IDENTPRIME)) return true; return false; } - static private boolean jj_3_4() { - if (jj_scan_token(LABEL)) return true; + static private boolean jj_3R_156() { + if (jj_scan_token(FALSE)) return true; return false; } - static private boolean jj_3R_38() { - if (jj_scan_token(REG_IDENTPRIME)) return true; + static private boolean jj_3R_155() { + if (jj_scan_token(TRUE)) return true; return false; } - static private boolean jj_3_3() { + static private boolean jj_3R_37() { + if (jj_3R_45()) return true; + return false; + } + + static private boolean jj_3R_185() { + if (jj_scan_token(OR)) return true; + return false; + } + + static private boolean jj_3_4() { if (jj_scan_token(LABEL)) return true; - if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_146() { + static private boolean jj_3R_154() { if (jj_scan_token(REG_DOUBLE)) return true; return false; } - static private boolean jj_3R_180() { - if (jj_scan_token(OR)) return true; + static private boolean jj_3_3() { + if (jj_scan_token(LABEL)) return true; + if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_153() { + static private boolean jj_3R_161() { if (jj_scan_token(MIN)) return true; return false; } - static private boolean jj_3R_58() { + static private boolean jj_3R_31() { + if (jj_3R_28()) return true; + return false; + } + + static private boolean jj_3R_78() { if (jj_scan_token(LPARENTH)) return true; if (jj_3R_30()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_57() { - if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_28()) return true; - if (jj_scan_token(DQUOTE)) return true; + static private boolean jj_3R_153() { + if (jj_scan_token(REG_INT)) return true; return false; } - static private boolean jj_3R_145() { - if (jj_scan_token(REG_INT)) return true; + static private boolean jj_3R_77() { + if (jj_scan_token(DQUOTE)) return true; + if (jj_3R_28()) return true; + if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_132() { + static private boolean jj_3R_141() { Token xsp; xsp = jj_scanpos; - if (jj_3R_145()) { + if (jj_3R_153()) { jj_scanpos = xsp; - if (jj_3R_146()) { + if (jj_3R_154()) { jj_scanpos = xsp; - if (jj_3R_147()) { + if (jj_3R_155()) { jj_scanpos = xsp; - if (jj_3R_148()) return true; + if (jj_3R_156()) return true; } } } return false; } - static private boolean jj_3R_56() { + static private boolean jj_3R_184() { + if (jj_scan_token(AND)) return true; + return false; + } + + static private boolean jj_3R_182() { + if (jj_scan_token(MAX)) return true; + return false; + } + + static private boolean jj_3R_76() { if (jj_3R_28()) return true; return false; } - static private boolean jj_3R_49() { + static private boolean jj_3R_69() { if (jj_scan_token(COMMA)) return true; if (jj_3R_28()) return true; return false; } - static private boolean jj_3R_151() { + static private boolean jj_3R_159() { if (jj_scan_token(MAX)) return true; return false; } - static private boolean jj_3R_47() { + static private boolean jj_3R_67() { Token xsp; xsp = jj_scanpos; - if (jj_3R_56()) { + if (jj_3R_76()) { jj_scanpos = xsp; - if (jj_3R_57()) { + if (jj_3R_77()) { jj_scanpos = xsp; - if (jj_3R_58()) return true; + if (jj_3R_78()) return true; } } return false; } - static private boolean jj_3R_31() { - if (jj_3R_28()) return true; + static private boolean jj_3R_28() { + if (jj_scan_token(REG_IDENT)) return true; return false; } - static private boolean jj_3R_152() { - if (jj_3R_39()) return true; + static private boolean jj_3R_180() { + if (jj_scan_token(INIT)) return true; + return false; + } + + static private boolean jj_3R_160() { + if (jj_3R_37()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_183()) { jj_scanpos = xsp; break; } + if (jj_3R_188()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_68() { + static private boolean jj_3R_90() { if (jj_scan_token(COMMA)) return true; if (jj_3R_28()) return true; if (jj_scan_token(RENAME)) return true; @@ -3891,16 +3903,6 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_179() { - if (jj_scan_token(AND)) return true; - return false; - } - - static private boolean jj_3R_177() { - if (jj_scan_token(MAX)) return true; - return false; - } - static private boolean jj_3_9() { if (jj_scan_token(OR)) return true; if (jj_scan_token(OR)) return true; @@ -3908,17 +3910,13 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_28() { - if (jj_scan_token(REG_IDENT)) return true; - return false; - } - - static private boolean jj_3R_175() { - if (jj_scan_token(INIT)) return true; + static private boolean jj_3R_187() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_60() { + static private boolean jj_3R_80() { if (jj_scan_token(LBRACE)) return true; if (jj_3R_28()) return true; if (jj_scan_token(RENAME)) return true; @@ -3926,79 +3924,132 @@ public class PrismParser implements PrismParserConstants { Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_68()) { jj_scanpos = xsp; break; } + if (jj_3R_90()) { jj_scanpos = xsp; break; } } if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_41() { + static private boolean jj_3R_49() { if (jj_scan_token(OR)) return true; if (jj_scan_token(OR)) return true; if (jj_scan_token(OR)) return true; - if (jj_3R_33()) return true; + if (jj_3R_34()) return true; return false; } - static private boolean jj_3R_135() { + static private boolean jj_3R_144() { if (jj_scan_token(FUNC)) return true; if (jj_scan_token(LPARENTH)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_153()) { + if (jj_3R_161()) { jj_scanpos = xsp; - if (jj_3R_154()) { + if (jj_3R_162()) { jj_scanpos = xsp; - if (jj_3R_155()) return true; + if (jj_3R_163()) return true; } } if (jj_scan_token(COMMA)) return true; - if (jj_3R_152()) return true; + if (jj_3R_160()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_182() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_39()) return true; + static private boolean jj_3R_186() { + if (jj_3R_28()) return true; return false; } - static private boolean jj_3R_59() { + static private boolean jj_3R_183() { + if (jj_scan_token(PLUS)) return true; + return false; + } + + static private boolean jj_3R_178() { + if (jj_3R_142()) return true; + return false; + } + + static private boolean jj_3R_181() { + if (jj_scan_token(MIN)) return true; + return false; + } + + static private boolean jj_3R_179() { + if (jj_3R_28()) return true; + return false; + } + + static private boolean jj_3R_176() { + if (jj_3R_147()) return true; + return false; + } + + static private boolean jj_3R_79() { if (jj_scan_token(DIVIDE)) return true; if (jj_scan_token(LBRACE)) return true; if (jj_3R_28()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_67()) { jj_scanpos = xsp; break; } + if (jj_3R_89()) { jj_scanpos = xsp; break; } } if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_48() { + static private boolean jj_3R_68() { Token xsp; xsp = jj_scanpos; - if (jj_3R_59()) { + if (jj_3R_79()) { jj_scanpos = xsp; - if (jj_3R_60()) return true; + if (jj_3R_80()) return true; } return false; } - static private boolean jj_3R_43() { - if (jj_3R_47()) return true; + static private boolean jj_3R_152() { + if (jj_scan_token(FILTER)) return true; + if (jj_scan_token(LPARENTH)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_181()) { + jj_scanpos = xsp; + if (jj_3R_182()) { + jj_scanpos = xsp; + if (jj_3R_183()) { + jj_scanpos = xsp; + if (jj_3R_184()) { + jj_scanpos = xsp; + if (jj_3R_185()) { + jj_scanpos = xsp; + if (jj_3R_186()) return true; + } + } + } + } + } + if (jj_scan_token(COMMA)) return true; + if (jj_3R_37()) return true; + xsp = jj_scanpos; + if (jj_3R_187()) jj_scanpos = xsp; + if (jj_scan_token(RPARENTH)) return true; + return false; + } + + static private boolean jj_3R_57() { + if (jj_3R_67()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_48()) { jj_scanpos = xsp; break; } + if (jj_3R_68()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_181() { - if (jj_3R_28()) return true; + static private boolean jj_3R_158() { + if (jj_scan_token(MIN)) return true; return false; } @@ -4008,49 +4059,19 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_150() { - if (jj_scan_token(MIN)) return true; - return false; - } - - static private boolean jj_3R_178() { - if (jj_scan_token(PLUS)) return true; - return false; - } - - static private boolean jj_3R_173() { - if (jj_3R_133()) return true; - return false; - } - - static private boolean jj_3R_176() { - if (jj_scan_token(MIN)) return true; - return false; - } - - static private boolean jj_3R_134() { + static private boolean jj_3R_143() { Token xsp; xsp = jj_scanpos; - if (jj_3R_150()) { + if (jj_3R_158()) { jj_scanpos = xsp; - if (jj_3R_151()) return true; + if (jj_3R_159()) return true; } if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_152()) return true; + if (jj_3R_160()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_174() { - if (jj_3R_28()) return true; - return false; - } - - static private boolean jj_3R_171() { - if (jj_3R_139()) return true; - return false; - } - static private boolean jj_3_2() { if (jj_scan_token(DQUOTE)) return true; if (jj_3R_28()) return true; @@ -4059,39 +4080,17 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_144() { - if (jj_scan_token(FILTER)) return true; - if (jj_scan_token(LPARENTH)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_176()) { - jj_scanpos = xsp; - if (jj_3R_177()) { - jj_scanpos = xsp; - if (jj_3R_178()) { - jj_scanpos = xsp; - if (jj_3R_179()) { - jj_scanpos = xsp; - if (jj_3R_180()) { - jj_scanpos = xsp; - if (jj_3R_181()) return true; - } - } - } - } - } - if (jj_scan_token(COMMA)) return true; - if (jj_3R_39()) return true; - xsp = jj_scanpos; - if (jj_3R_182()) jj_scanpos = xsp; - if (jj_scan_token(RPARENTH)) return true; + static private boolean jj_3R_42() { + if (jj_scan_token(OR)) return true; + if (jj_scan_token(OR)) return true; + if (jj_3R_48()) return true; return false; } - static private boolean jj_3R_37() { - if (jj_scan_token(OR)) return true; - if (jj_scan_token(OR)) return true; - if (jj_3R_40()) return true; + static private boolean jj_3R_157() { + if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_160()) return true; + if (jj_scan_token(RPARENTH)) return true; return false; } @@ -4101,222 +4100,223 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_149() { - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_152()) return true; - if (jj_scan_token(RPARENTH)) return true; + static private boolean jj_3R_151() { + if (jj_scan_token(DQUOTE)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_179()) { + jj_scanpos = xsp; + if (jj_3R_180()) return true; + } + if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_133() { + static private boolean jj_3R_142() { if (jj_3R_28()) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_149()) jj_scanpos = xsp; + if (jj_3R_157()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_44() { + static private boolean jj_3R_58() { if (jj_scan_token(OR)) return true; if (jj_scan_token(LBRACKET)) return true; if (jj_3R_28()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_49()) { jj_scanpos = xsp; break; } + if (jj_3R_69()) { jj_scanpos = xsp; break; } } if (jj_scan_token(RBRACKET)) return true; if (jj_scan_token(OR)) return true; - if (jj_3R_43()) return true; + if (jj_3R_57()) return true; return false; } - static private boolean jj_3R_40() { - if (jj_3R_43()) return true; + static private boolean jj_3R_48() { + if (jj_3R_57()) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_44()) jj_scanpos = xsp; + if (jj_3R_58()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_143() { - if (jj_scan_token(DQUOTE)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_174()) { - jj_scanpos = xsp; - if (jj_3R_175()) return true; - } - if (jj_scan_token(DQUOTE)) return true; + static private boolean jj_3R_140() { + if (jj_3R_152()) return true; return false; } - static private boolean jj_3R_131() { - if (jj_3R_144()) return true; + static private boolean jj_3R_177() { + if (jj_3R_145()) return true; return false; } - static private boolean jj_3R_130() { - if (jj_3R_143()) return true; + static private boolean jj_3R_139() { + if (jj_3R_151()) return true; return false; } - static private boolean jj_3R_129() { - if (jj_3R_142()) return true; + static private boolean jj_3R_175() { + if (jj_3R_146()) return true; return false; } - static private boolean jj_3R_128() { - if (jj_3R_141()) return true; + static private boolean jj_3R_138() { + if (jj_3R_150()) return true; return false; } - static private boolean jj_3R_127() { - if (jj_3R_140()) return true; + static private boolean jj_3R_174() { + if (jj_scan_token(DLBRACKET)) return true; + if (jj_scan_token(DRBRACKET)) return true; return false; } - static private boolean jj_3R_117() { - if (jj_scan_token(DIVIDE)) return true; + static private boolean jj_3R_137() { + if (jj_3R_149()) return true; return false; } - static private boolean jj_3R_210() { - if (jj_3R_39()) return true; + static private boolean jj_3R_173() { + if (jj_scan_token(DLT)) return true; + if (jj_scan_token(DGT)) return true; return false; } - static private boolean jj_3R_126() { - if (jj_3R_139()) return true; + static private boolean jj_3R_136() { + if (jj_3R_148()) return true; return false; } - static private boolean jj_3R_125() { - if (jj_3R_138()) return true; + static private boolean jj_3R_126() { + if (jj_scan_token(DIVIDE)) return true; return false; } - static private boolean jj_3R_172() { - if (jj_3R_136()) return true; + static private boolean jj_3R_210() { + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_170() { - if (jj_3R_137()) return true; + static private boolean jj_3R_135() { + if (jj_3R_147()) return true; return false; } - static private boolean jj_3R_124() { - if (jj_3R_137()) return true; + static private boolean jj_3R_150() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_173()) { + jj_scanpos = xsp; + if (jj_3R_174()) return true; + } + xsp = jj_scanpos; + if (jj_3R_175()) { + jj_scanpos = xsp; + if (jj_3R_176()) { + jj_scanpos = xsp; + if (jj_3R_177()) { + jj_scanpos = xsp; + if (jj_3R_178()) return true; + } + } + } return false; } - static private boolean jj_3R_169() { - if (jj_scan_token(DLBRACKET)) return true; - if (jj_scan_token(DRBRACKET)) return true; + static private boolean jj_3R_134() { + if (jj_3R_32()) return true; return false; } - static private boolean jj_3R_123() { - if (jj_3R_136()) return true; + static private boolean jj_3R_133() { + if (jj_3R_146()) return true; return false; } - static private boolean jj_3R_168() { - if (jj_scan_token(DLT)) return true; - if (jj_scan_token(DGT)) return true; + static private boolean jj_3R_132() { + if (jj_3R_145()) return true; return false; } - static private boolean jj_3R_122() { - if (jj_3R_135()) return true; + static private boolean jj_3R_131() { + if (jj_3R_144()) return true; return false; } - static private boolean jj_3R_36() { - if (jj_3R_40()) return true; + static private boolean jj_3R_41() { + if (jj_3R_48()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_41()) { jj_scanpos = xsp; break; } + if (jj_3R_49()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_121() { - if (jj_3R_134()) return true; + static private boolean jj_3R_130() { + if (jj_3R_143()) return true; return false; } - static private boolean jj_3R_142() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_168()) { - jj_scanpos = xsp; - if (jj_3R_169()) return true; - } - xsp = jj_scanpos; - if (jj_3R_170()) { - jj_scanpos = xsp; - if (jj_3R_171()) { - jj_scanpos = xsp; - if (jj_3R_172()) { - jj_scanpos = xsp; - if (jj_3R_173()) return true; - } - } - } + static private boolean jj_3R_129() { + if (jj_3R_142()) return true; return false; } - static private boolean jj_3R_120() { - if (jj_3R_133()) return true; + static private boolean jj_3R_128() { + if (jj_3R_141()) return true; return false; } - static private boolean jj_3R_119() { - if (jj_3R_132()) return true; + static private boolean jj_3R_207() { + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_207() { - if (jj_3R_39()) return true; + static private boolean jj_3R_122() { + if (jj_scan_token(MINUS)) return true; return false; } - static private boolean jj_3R_109() { - if (jj_scan_token(MINUS)) return true; + static private boolean jj_3R_149() { + if (jj_scan_token(A)) return true; + if (jj_scan_token(LBRACKET)) return true; + if (jj_3R_37()) return true; + if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_118() { + static private boolean jj_3R_127() { Token xsp; xsp = jj_scanpos; - if (jj_3R_119()) { + if (jj_3R_128()) { jj_scanpos = xsp; - if (jj_3R_120()) { + if (jj_3R_129()) { jj_scanpos = xsp; - if (jj_3R_121()) { + if (jj_3R_130()) { jj_scanpos = xsp; - if (jj_3R_122()) { + if (jj_3R_131()) { jj_scanpos = xsp; - if (jj_3R_123()) { + if (jj_3R_132()) { jj_scanpos = xsp; - if (jj_3R_124()) { + if (jj_3R_133()) { jj_scanpos = xsp; - if (jj_3R_125()) { + if (jj_3R_134()) { jj_scanpos = xsp; - if (jj_3R_126()) { + if (jj_3R_135()) { jj_scanpos = xsp; - if (jj_3R_127()) { + if (jj_3R_136()) { jj_scanpos = xsp; - if (jj_3R_128()) { + if (jj_3R_137()) { jj_scanpos = xsp; - if (jj_3R_129()) { + if (jj_3R_138()) { jj_scanpos = xsp; - if (jj_3R_130()) { + if (jj_3R_139()) { jj_scanpos = xsp; - if (jj_3R_131()) return true; + if (jj_3R_140()) return true; } } } @@ -4332,63 +4332,74 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_115() { - if (jj_3R_118()) return true; + static private boolean jj_3R_124() { + if (jj_3R_127()) return true; return false; } - static private boolean jj_3R_114() { + static private boolean jj_3R_123() { if (jj_scan_token(MINUS)) return true; - if (jj_3R_106()) return true; + if (jj_3R_119()) return true; return false; } - static private boolean jj_3R_141() { - if (jj_scan_token(A)) return true; - if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_39()) return true; - if (jj_scan_token(RBRACKET)) return true; - return false; - } - - static private boolean jj_3R_33() { - if (jj_3R_36()) return true; + static private boolean jj_3R_34() { + if (jj_3R_41()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_37()) { jj_scanpos = xsp; break; } + if (jj_3R_42()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_106() { + static private boolean jj_3R_148() { + if (jj_scan_token(E)) return true; + if (jj_scan_token(LBRACKET)) return true; + if (jj_3R_37()) return true; + if (jj_scan_token(RBRACKET)) return true; + return false; + } + + static private boolean jj_3R_119() { Token xsp; xsp = jj_scanpos; - if (jj_3R_114()) { + if (jj_3R_123()) { jj_scanpos = xsp; - if (jj_3R_115()) return true; + if (jj_3R_124()) return true; } return false; } - static private boolean jj_3R_116() { + static private boolean jj_3R_125() { if (jj_scan_token(TIMES)) return true; return false; } + static private boolean jj_3_18() { + if (jj_scan_token(C)) return true; + if (jj_scan_token(LE)) return true; + return false; + } + static private boolean jj_3R_30() { - if (jj_3R_33()) return true; + if (jj_3R_34()) return true; return false; } - static private boolean jj_3R_107() { + static private boolean jj_3R_120() { Token xsp; xsp = jj_scanpos; - if (jj_3R_116()) { + if (jj_3R_125()) { jj_scanpos = xsp; - if (jj_3R_117()) return true; + if (jj_3R_126()) return true; } - if (jj_3R_106()) return true; + if (jj_3R_119()) return true; + return false; + } + + static private boolean jj_3_17() { + if (jj_3R_32()) return true; return false; } @@ -4400,11 +4411,15 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_140() { - if (jj_scan_token(E)) return true; - if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_39()) return true; - if (jj_scan_token(RBRACKET)) return true; + static private boolean jj_3R_204() { + if (jj_scan_token(S)) return true; + return false; + } + + static private boolean jj_3R_203() { + if (jj_scan_token(I)) return true; + if (jj_scan_token(EQ)) return true; + if (jj_3R_37()) return true; return false; } @@ -4415,12 +4430,24 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_101() { - if (jj_3R_106()) return true; + static private boolean jj_3R_202() { + if (jj_scan_token(C)) return true; + return false; + } + + static private boolean jj_3R_201() { + if (jj_scan_token(C)) return true; + if (jj_scan_token(LE)) return true; + if (jj_3R_37()) return true; + return false; + } + + static private boolean jj_3R_115() { + if (jj_3R_119()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_107()) { jj_scanpos = xsp; break; } + if (jj_3R_120()) { jj_scanpos = xsp; break; } } return false; } @@ -4430,52 +4457,48 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3_17() { - if (jj_scan_token(C)) return true; - if (jj_scan_token(LE)) return true; + static private boolean jj_3R_200() { + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_108() { + static private boolean jj_3R_121() { if (jj_scan_token(PLUS)) return true; return false; } - static private boolean jj_3R_201() { - if (jj_3R_39()) return true; - return false; - } - - static private boolean jj_3R_167() { - if (jj_3R_189()) return true; - return false; - } - - static private boolean jj_3R_102() { + static private boolean jj_3R_171() { Token xsp; xsp = jj_scanpos; - if (jj_3R_108()) { + if (jj_3R_200()) { jj_scanpos = xsp; - if (jj_3R_109()) return true; + if (jj_3R_201()) { + jj_scanpos = xsp; + if (jj_3R_202()) { + jj_scanpos = xsp; + if (jj_3R_203()) { + jj_scanpos = xsp; + if (jj_3R_204()) return true; + } + } + } } - if (jj_3R_101()) return true; - return false; - } - - static private boolean jj_3R_200() { - if (jj_scan_token(S)) return true; return false; } - static private boolean jj_3R_199() { - if (jj_scan_token(I)) return true; - if (jj_scan_token(EQ)) return true; - if (jj_3R_39()) return true; + static private boolean jj_3R_172() { + if (jj_3R_46()) return true; return false; } - static private boolean jj_3R_198() { - if (jj_scan_token(C)) return true; + static private boolean jj_3R_116() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_121()) { + jj_scanpos = xsp; + if (jj_3R_122()) return true; + } + if (jj_3R_115()) return true; return false; } @@ -4486,43 +4509,17 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_197() { - if (jj_scan_token(C)) return true; - if (jj_scan_token(LE)) return true; - if (jj_3R_39()) return true; - return false; - } - static private boolean jj_3_15() { if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_166() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_197()) { - jj_scanpos = xsp; - if (jj_3R_198()) { - jj_scanpos = xsp; - if (jj_3R_199()) { - jj_scanpos = xsp; - if (jj_3R_200()) { - jj_scanpos = xsp; - if (jj_3R_201()) return true; - } - } - } - } - return false; - } - - static private boolean jj_3R_98() { - if (jj_3R_101()) return true; + static private boolean jj_3R_112() { + if (jj_3R_115()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_102()) { jj_scanpos = xsp; break; } + if (jj_3R_116()) { jj_scanpos = xsp; break; } } return false; } @@ -4552,13 +4549,13 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_99() { - if (jj_3R_103()) return true; - if (jj_3R_98()) return true; + static private boolean jj_3R_113() { + if (jj_3R_44()) return true; + if (jj_3R_112()) return true; return false; } - static private boolean jj_3R_203() { + static private boolean jj_3R_205() { if (jj_scan_token(LBRACE)) return true; Token xsp; xsp = jj_scanpos; @@ -4572,212 +4569,212 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_96() { - if (jj_3R_98()) return true; + static private boolean jj_3R_110() { + if (jj_3R_112()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_99()) { jj_scanpos = xsp; break; } + if (jj_3R_113()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_97() { - if (jj_3R_100()) return true; - if (jj_3R_96()) return true; + static private boolean jj_3R_111() { + if (jj_3R_114()) return true; + if (jj_3R_110()) return true; return false; } - static private boolean jj_3R_95() { - if (jj_3R_96()) return true; + static private boolean jj_3R_109() { + if (jj_3R_110()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_97()) { jj_scanpos = xsp; break; } + if (jj_3R_111()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_94() { - if (jj_3R_95()) return true; + static private boolean jj_3R_108() { + if (jj_3R_109()) return true; return false; } - static private boolean jj_3R_93() { + static private boolean jj_3R_107() { if (jj_scan_token(NOT)) return true; - if (jj_3R_91()) return true; + if (jj_3R_105()) return true; return false; } - static private boolean jj_3R_86() { - if (jj_3R_39()) return true; + static private boolean jj_3R_100() { + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_84() { - if (jj_3R_39()) return true; + static private boolean jj_3R_98() { + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_82() { - if (jj_3R_39()) return true; + static private boolean jj_3R_96() { + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_80() { - if (jj_3R_39()) return true; + static private boolean jj_3R_94() { + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_193() { - if (jj_3R_103()) return true; - if (jj_3R_39()) return true; + static private boolean jj_3R_196() { + if (jj_3R_44()) return true; + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_192() { - if (jj_3R_203()) return true; + static private boolean jj_3R_195() { + if (jj_3R_205()) return true; return false; } - static private boolean jj_3R_191() { + static private boolean jj_3R_194() { if (jj_scan_token(LPARENTH)) return true; if (jj_3R_31()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_35() { + static private boolean jj_3R_40() { if (jj_scan_token(AND)) return true; - if (jj_3R_34()) return true; + if (jj_3R_39()) return true; return false; } - static private boolean jj_3R_196() { + static private boolean jj_3R_199() { if (jj_scan_token(MAX)) return true; if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_165() { + static private boolean jj_3R_170() { if (jj_scan_token(RMAX)) return true; if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_195() { + static private boolean jj_3R_198() { if (jj_scan_token(MIN)) return true; if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_164() { + static private boolean jj_3R_169() { if (jj_scan_token(RMIN)) return true; if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_91() { + static private boolean jj_3R_105() { Token xsp; xsp = jj_scanpos; - if (jj_3R_93()) { + if (jj_3R_107()) { jj_scanpos = xsp; - if (jj_3R_94()) return true; + if (jj_3R_108()) return true; } return false; } - static private boolean jj_3R_194() { + static private boolean jj_3R_197() { if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_162() { - if (jj_3R_189()) return true; + static private boolean jj_3R_38() { + if (jj_3R_46()) return true; return false; } - static private boolean jj_3R_163() { + static private boolean jj_3R_168() { if (jj_scan_token(R)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_191()) jj_scanpos = xsp; + if (jj_3R_194()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_192()) jj_scanpos = xsp; + if (jj_3R_195()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_193()) { + if (jj_3R_196()) { jj_scanpos = xsp; - if (jj_3R_194()) { + if (jj_3R_197()) { jj_scanpos = xsp; - if (jj_3R_195()) { + if (jj_3R_198()) { jj_scanpos = xsp; - if (jj_3R_196()) return true; + if (jj_3R_199()) return true; } } } return false; } - static private boolean jj_3R_92() { + static private boolean jj_3R_106() { if (jj_scan_token(AND)) return true; - if (jj_3R_91()) return true; + if (jj_3R_105()) return true; return false; } - static private boolean jj_3R_139() { + static private boolean jj_3R_147() { Token xsp; xsp = jj_scanpos; - if (jj_3R_163()) { + if (jj_3R_168()) { jj_scanpos = xsp; - if (jj_3R_164()) { + if (jj_3R_169()) { jj_scanpos = xsp; - if (jj_3R_165()) return true; + if (jj_3R_170()) return true; } } if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_166()) return true; + if (jj_3R_171()) return true; xsp = jj_scanpos; - if (jj_3R_167()) jj_scanpos = xsp; + if (jj_3R_172()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_34() { + static private boolean jj_3R_39() { if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_38()) return true; + if (jj_3R_47()) return true; if (jj_scan_token(EQ)) return true; - if (jj_3R_39()) return true; + if (jj_3R_37()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_89() { - if (jj_3R_91()) return true; + static private boolean jj_3R_103() { + if (jj_3R_105()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_92()) { jj_scanpos = xsp; break; } + if (jj_3R_106()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_90() { + static private boolean jj_3R_104() { if (jj_scan_token(OR)) return true; - if (jj_3R_89()) return true; + if (jj_3R_103()) return true; return false; } - static private boolean jj_3R_32() { - if (jj_3R_34()) return true; + static private boolean jj_3R_33() { + if (jj_3R_39()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_35()) { jj_scanpos = xsp; break; } + if (jj_3R_40()) { jj_scanpos = xsp; break; } } return false; } @@ -4787,12 +4784,12 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_87() { - if (jj_3R_89()) return true; + static private boolean jj_3R_101() { + if (jj_3R_103()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_90()) { jj_scanpos = xsp; break; } + if (jj_3R_104()) { jj_scanpos = xsp; break; } } return false; } @@ -4800,88 +4797,88 @@ public class PrismParser implements PrismParserConstants { static private boolean jj_3R_29() { Token xsp; xsp = jj_scanpos; - if (jj_3R_32()) { + if (jj_3R_33()) { jj_scanpos = xsp; if (jj_scan_token(49)) return true; } return false; } - static private boolean jj_3R_88() { + static private boolean jj_3R_102() { if (jj_scan_token(IFF)) return true; - if (jj_3R_87()) return true; + if (jj_3R_101()) return true; return false; } - static private boolean jj_3R_77() { - if (jj_3R_87()) return true; + static private boolean jj_3R_91() { + if (jj_3R_101()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_88()) { jj_scanpos = xsp; break; } + if (jj_3R_102()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_190() { - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_31()) return true; - if (jj_scan_token(RPARENTH)) return true; + static private boolean jj_3R_36() { + if (jj_scan_token(EQ)) return true; + if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_161() { - if (jj_scan_token(EQ)) return true; - if (jj_scan_token(QMARK)) return true; + static private boolean jj_3R_43() { + if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_31()) return true; + if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_160() { + static private boolean jj_3R_35() { Token xsp; xsp = jj_scanpos; - if (jj_3R_190()) jj_scanpos = xsp; - if (jj_3R_103()) return true; - if (jj_3R_39()) return true; + if (jj_3R_43()) jj_scanpos = xsp; + if (jj_3R_44()) return true; + if (jj_3R_37()) return true; return false; } - static private boolean jj_3R_78() { + static private boolean jj_3R_92() { if (jj_scan_token(IMPLIES)) return true; - if (jj_3R_77()) return true; + if (jj_3R_91()) return true; return false; } - static private boolean jj_3R_69() { - if (jj_3R_77()) return true; + static private boolean jj_3R_81() { + if (jj_3R_91()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_78()) { jj_scanpos = xsp; break; } + if (jj_3R_92()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_138() { + static private boolean jj_3R_32() { if (jj_scan_token(S)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_160()) { + if (jj_3R_35()) { jj_scanpos = xsp; - if (jj_3R_161()) return true; + if (jj_3R_36()) return true; } if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_39()) return true; + if (jj_3R_37()) return true; xsp = jj_scanpos; - if (jj_3R_162()) jj_scanpos = xsp; + if (jj_3R_38()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_70() { + static private boolean jj_3R_82() { if (jj_scan_token(QMARK)) return true; - if (jj_3R_69()) return true; + if (jj_3R_81()) return true; if (jj_scan_token(COLON)) return true; - if (jj_3R_65()) return true; + if (jj_3R_74()) return true; return false; } @@ -4931,15 +4928,15 @@ public class PrismParser implements PrismParserConstants { jj_la1_init_2(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x514404c0,0x504404c0,0x1000000,0xb01a0848,0x0,0xb01a0848,0xb01a0848,0x0,0xb01a0848,0x400,0x40000000,0x80,0x40000480,0x8000210,0x8000210,0x0,0x40,0x0,0x1000000,0x8000030,0x0,0x2000000,0x0,0x0,0x0,0xa0ba0808,0x0,0x0,0x0,0xa0ba0808,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa00000,0x0,0xa0ba0808,0xa0ba0808,0xa0ba0808,0xa0ba0808,0xa0ba0808,0x0,0x0,0x0,0x0,0x0,0x0,0xa01a0808,0x0,0x0,0x0,0x0,0x0,0x0,0xa01a0808,0xa01a0808,0x0,0xa0000000,0xa0000000,0x0,0x20000,0x0,0xa0000000,0x0,0x0,0x0,0xa0000000,0x0,0x0,0x0,0x0,0x0,0xa0000000,0x0,0x0,0xa0ba0808,0xa0ba0808,0x0,0xa4ba0908,0x0,0x0,0x1000000,0xa0000000,0x0,0xa0000000,0x0,0x0,0x0,}; + jj_la1_0 = new int[] {0x514404c0,0x504404c0,0x1000000,0xb01a0848,0x0,0xb01a0848,0xb01a0848,0x0,0xb01a0848,0x400,0x40000000,0x80,0x40000480,0x8000210,0x8000210,0x0,0x40,0x0,0x1000000,0x8000030,0x0,0x2000000,0x0,0x0,0x0,0xa0ba0808,0x0,0x0,0x0,0xa0ba0808,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa00000,0x0,0xa0ba0808,0xa0ba0808,0xa0ba0808,0xa0ba0808,0xa0ba0808,0x0,0x0,0x0,0x0,0x0,0x0,0xa01a0808,0x0,0x0,0x0,0x0,0x0,0x0,0xa01a0808,0xa01a0808,0x0,0xa0000000,0xa0000000,0x0,0x20000,0x0,0xa0000000,0x0,0x0,0x0,0xa0000000,0x0,0x0,0x0,0x0,0x0,0xa0000000,0x0,0x0,0xa0ba0808,0xa0ba0808,0x0,0x4000100,0x0,0x0,0x1000000,0xa0000000,0x0,0xa0000000,0x0,0x0,0x0,}; } private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0x187c5,0x83c4,0x10401,0x40127ab8,0x8000000,0x40127ab8,0x40127ab8,0x8000000,0x40127ab8,0x40,0x4,0x8000,0x8144,0x0,0x0,0x280,0x280,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4012783a,0x200000,0x40020000,0x10000000,0x4012783a,0x0,0x0,0x10000000,0x0,0x10000000,0x10000000,0x0,0x40000000,0xc2000,0x0,0xc2000,0x2,0x0,0x4012783a,0x4012783a,0x4012783a,0x4012783a,0x4012783a,0x0,0x0,0x800000,0x1000000,0x400000,0x200000,0x40127838,0x0,0x0,0x0,0x0,0x0,0x0,0x40027838,0x40027838,0x40000000,0x0,0x0,0x10000000,0x20000,0x40000000,0x0,0x38,0x0,0x0,0x0,0x40000000,0x40000000,0x0,0x40000000,0x0,0x0,0x3800,0x0,0x4012783a,0x4012783a,0x0,0x4012783a,0x0,0x40003838,0x0,0x600000,0x10000000,0x0,0x0,0x0,0x4000000,}; + jj_la1_1 = new int[] {0x187c5,0x83c4,0x10401,0x40127ab8,0x8000000,0x40127ab8,0x40127ab8,0x8000000,0x40127ab8,0x40,0x4,0x8000,0x8144,0x0,0x0,0x280,0x280,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x4012783a,0x200000,0x40020000,0x10000000,0x4012783a,0x0,0x0,0x10000000,0x0,0x10000000,0x10000000,0x0,0x40000000,0xc2000,0x0,0xc2000,0x2,0x0,0x4012783a,0x4012783a,0x4012783a,0x4012783a,0x4012783a,0x0,0x0,0x800000,0x1000000,0x400000,0x200000,0x40127838,0x0,0x0,0x0,0x0,0x0,0x0,0x40027838,0x40027838,0x40000000,0x0,0x0,0x10000000,0x20000,0x40000000,0x0,0x38,0x0,0x0,0x0,0x40000000,0x40000000,0x0,0x40000000,0x0,0x0,0x3800,0x0,0x4012783a,0x4012783a,0x0,0x4000,0x0,0x40003838,0x0,0x600000,0x10000000,0x0,0x0,0x0,0x4000000,}; } private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x0,0x0,0x0,0x2e08404,0x0,0x2e08404,0x2e08404,0x0,0x2e08404,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x1,0x2000000,0x0,0x1,0x2000000,0x4000,0x2e08404,0x0,0x0,0x0,0x2e08405,0x2000000,0x1,0x0,0x20010,0x0,0x0,0x20010,0x2200000,0x0,0x3341,0x0,0x0,0x3341,0x2e08404,0x2e08404,0x2e08404,0x2e08404,0x2e08404,0x3341,0x100000,0x0,0x0,0x0,0x0,0x2e08404,0xc0,0x3300,0xc000,0xc000,0x30000,0x30000,0x2e08404,0x2e00404,0x0,0x0,0x2000000,0x0,0xc00000,0x0,0x3340,0x0,0x10,0x10,0x0,0x0,0x3340,0x10,0x0,0x10,0x3340,0x0,0x10,0x2e08404,0x2e08404,0x20000,0x2e08404,0x404,0x2000000,0x2000000,0x2004000,0x0,0x2000000,0xc0,0x3300,0x0,}; + jj_la1_2 = new int[] {0x0,0x0,0x0,0x2e08404,0x0,0x2e08404,0x2e08404,0x0,0x2e08404,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40,0x0,0x1,0x2000000,0x0,0x1,0x2000000,0x4000,0x2e08404,0x0,0x0,0x0,0x2e08405,0x2000000,0x1,0x0,0x20010,0x0,0x0,0x20010,0x2200000,0x0,0x3341,0x0,0x0,0x3341,0x2e08404,0x2e08404,0x2e08404,0x2e08404,0x2e08404,0x3341,0x100000,0x0,0x0,0x0,0x0,0x2e08404,0xc0,0x3300,0xc000,0xc000,0x30000,0x30000,0x2e08404,0x2e00404,0x0,0x0,0x2000000,0x0,0xc00000,0x0,0x3340,0x0,0x10,0x10,0x0,0x0,0x3340,0x10,0x0,0x10,0x3340,0x0,0x10,0x2e08404,0x2e08404,0x20000,0x0,0x404,0x2000000,0x2000000,0x2004000,0x0,0x2000000,0xc0,0x3300,0x0,}; } - static final private JJCalls[] jj_2_rtns = new JJCalls[17]; + static final private JJCalls[] jj_2_rtns = new JJCalls[18]; static private boolean jj_rescan = false; static private int jj_gc = 0; @@ -5191,7 +5188,7 @@ public class PrismParser implements PrismParserConstants { static private void jj_rescan_token() { jj_rescan = true; - for (int i = 0; i < 17; i++) { + for (int i = 0; i < 18; i++) { try { JJCalls p = jj_2_rtns[i]; do { @@ -5215,6 +5212,7 @@ public class PrismParser implements PrismParserConstants { case 14: jj_3_15(); break; case 15: jj_3_16(); break; case 16: jj_3_17(); break; + case 17: jj_3_18(); break; } } p = p.next; diff --git a/prism/src/parser/PrismParser.jj b/prism/src/parser/PrismParser.jj index 7bacb948..4046e5ab 100644 --- a/prism/src/parser/PrismParser.jj +++ b/prism/src/parser/PrismParser.jj @@ -1629,6 +1629,13 @@ void RewardIndex(ExpressionReward exprRew) : // Contents of an R operator + +// (bounded temporal operators and semicolon-less properties files) +// (see the relevant productions for details) +// we allow two or more successive expressions resulting in potential ambiguities +// e.g. "-a-b" = "(-a)-b" = "-a" "-b" +// Ignoring the warning results in the largest match being taken. + Expression ExpressionRewardContents(boolean prop, boolean pathprop) : { Expression expr = null; @@ -1639,13 +1646,15 @@ Expression ExpressionRewardContents(boolean prop, boolean pathprop) : { { begin = getToken(1); } ( + // Path formula (including F "target") + // NB: Lookahead used to avoid conflict between R [ S ], where "S" is the long-run reward operator, + // and R [ S [ ] ] where "S [ ]" is a treated as an LTL formula comprising a single atomic proposition + LOOKAHEAD(ExpressionSS(prop, pathprop)) expr = Expression(prop, true) { ret = expr; } // Normal reward operators - LOOKAHEAD( ) begin = expr = Expression(false, false) { exprTemp = new ExpressionTemporal(ExpressionTemporal.R_C, null, null); exprTemp.setUpperBound(expr); ret = exprTemp; } + | LOOKAHEAD( ) begin = expr = Expression(false, false) { exprTemp = new ExpressionTemporal(ExpressionTemporal.R_C, null, null); exprTemp.setUpperBound(expr); ret = exprTemp; } | { ret = new ExpressionTemporal(ExpressionTemporal.R_C, null, null); } | expr = Expression(false, false) { exprTemp = new ExpressionTemporal(ExpressionTemporal.R_I, null, null); exprTemp.setUpperBound(expr); ret = exprTemp; } | { ret = new ExpressionTemporal(ExpressionTemporal.R_S, null, null); } - // Path formula (including F "target") - | expr = Expression(prop, true) { ret = expr; } ) { ret.setPosition(begin, getToken(0)); return ret; } }