From fa9b601fafc4492fd410370c2824909036896252 Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Mon, 27 Jul 2015 07:07:05 +0000 Subject: [PATCH] Update parser to allow proper <<>> or [[]] syntax. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10418 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/parser/PrismParser.java | 1177 ++++++++++++++++------------- prism/src/parser/PrismParser.jj | 30 +- 2 files changed, 672 insertions(+), 535 deletions(-) diff --git a/prism/src/parser/PrismParser.java b/prism/src/parser/PrismParser.java index 7de84f1a..febefe5c 100644 --- a/prism/src/parser/PrismParser.java +++ b/prism/src/parser/PrismParser.java @@ -2985,11 +2985,13 @@ public class PrismParser implements PrismParserConstants { case DLT: begin = jj_consume_token(DLT); ret = new ExpressionStrategy(true); + ExpressionStrategyCoalition(ret); jj_consume_token(DGT); break; case DLBRACKET: begin = jj_consume_token(DLBRACKET); ret = new ExpressionStrategy(false); + ExpressionStrategyCoalition(ret); jj_consume_token(DRBRACKET); break; default: @@ -3025,6 +3027,65 @@ public class PrismParser implements PrismParserConstants { throw new Error("Missing return statement in function"); } +// Coalition (player list) for a strategy (<<>> or [[]]) operator + static final public void ExpressionStrategyCoalition(ExpressionStrategy exprStrat) throws ParseException { + List coalition = new ArrayList(); + String s; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case TIMES: + jj_consume_token(TIMES); + exprStrat.setCoalitionAllPlayers(); + break; + default: + jj_la1[91] = jj_gen; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case REG_INT: + case REG_IDENT: + s = ExpressionStrategyCoalitionPlayer(); + coalition.add(s); + label_28: + while (true) { + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case COMMA: + ; + break; + default: + jj_la1[89] = jj_gen; + break label_28; + } + jj_consume_token(COMMA); + s = ExpressionStrategyCoalitionPlayer(); + coalition.add(s); + } + break; + default: + jj_la1[90] = jj_gen; + ; + } + exprStrat.setCoalition(coalition); + } + } + +// Single player in a coalition for a strategy (<<>> or [[]]) operator + static final public String ExpressionStrategyCoalitionPlayer() throws ParseException { + String s; + switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { + case REG_INT: + jj_consume_token(REG_INT); + break; + case REG_IDENT: + jj_consume_token(REG_IDENT); + break; + default: + jj_la1[92] = jj_gen; + jj_consume_token(-1); + throw new ParseException(); + } + s = getToken(0).image; + {if (true) return s;} + throw new Error("Missing return statement in function"); + } + // (Property) expression: label (including "init") static final public Expression ExpressionLabel(boolean prop, boolean pathprop) throws ParseException { String s; @@ -3041,7 +3102,7 @@ public class PrismParser implements PrismParserConstants { s = "init"; break; default: - jj_la1[89] = jj_gen; + jj_la1[93] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3086,7 +3147,7 @@ public class PrismParser implements PrismParserConstants { op = Identifier(); break; default: - jj_la1[90] = jj_gen; + jj_la1[94] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3098,7 +3159,7 @@ public class PrismParser implements PrismParserConstants { filter = Expression(prop, pathprop); break; default: - jj_la1[91] = jj_gen; + jj_la1[95] = jj_gen; ; } jj_consume_token(RPARENTH); @@ -3143,7 +3204,7 @@ public class PrismParser implements PrismParserConstants { ident="max"; break; default: - jj_la1[92] = jj_gen; + jj_la1[96] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3176,7 +3237,7 @@ public class PrismParser implements PrismParserConstants { {if (true) return ExpressionBinaryOp.NE;} break; default: - jj_la1[93] = jj_gen; + jj_la1[97] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3203,7 +3264,7 @@ public class PrismParser implements PrismParserConstants { {if (true) return ExpressionBinaryOp.LE;} break; default: - jj_la1[94] = jj_gen; + jj_la1[98] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3228,7 +3289,7 @@ public class PrismParser implements PrismParserConstants { step = Expression(false, false); break; default: - jj_la1[95] = jj_gen; + jj_la1[99] = jj_gen; ; } jj_consume_token(0); @@ -3367,137 +3428,135 @@ public class PrismParser implements PrismParserConstants { finally { jj_save(17, xla); } } - static private boolean jj_3R_167() { - if (jj_3R_46()) return true; + static private boolean jj_3R_168() { + if (jj_3R_47()) return true; return false; } - static private boolean jj_3R_66() { + static private boolean jj_3R_67() { if (jj_scan_token(MAX)) return true; return false; } - static private boolean jj_3R_65() { + static private boolean jj_3R_66() { if (jj_scan_token(MIN)) return true; return false; } - static private boolean jj_3R_74() { - if (jj_3R_81()) return true; + static private boolean jj_3R_75() { + if (jj_3R_82()) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_82()) jj_scanpos = xsp; + if (jj_3R_83()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_99() { - if (jj_3R_31()) return true; + static private boolean jj_3R_100() { + if (jj_3R_32()) return true; return false; } - static private boolean jj_3R_97() { - if (jj_3R_31()) return true; + static private boolean jj_3R_98() { + if (jj_3R_32()) return true; return false; } - static private boolean jj_3R_95() { - if (jj_3R_31()) return true; + static private boolean jj_3R_96() { + if (jj_3R_32()) return true; return false; } - static private boolean jj_3R_93() { - if (jj_3R_31()) return true; + static private boolean jj_3R_94() { + if (jj_3R_32()) return true; return false; } - static private boolean jj_3R_56() { + static private boolean jj_3R_57() { if (jj_scan_token(LBRACE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_65()) { + if (jj_3R_66()) { jj_scanpos = xsp; - if (jj_3R_66()) return true; + if (jj_3R_67()) return true; } if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_88() { + static private boolean jj_3R_89() { if (jj_scan_token(EQ)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_87() { + static private boolean jj_3R_88() { if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; if (jj_scan_token(COMMA)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_46() { + static private boolean jj_3R_47() { if (jj_scan_token(LBRACE)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; if (jj_scan_token(RBRACE)) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_56()) { jj_scanpos = xsp; break; } + if (jj_3R_57()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_86() { + static private boolean jj_3R_87() { if (jj_scan_token(GT)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_99()) { + if (jj_3R_100()) { jj_scanpos = xsp; - if (jj_3R_100()) return true; + if (jj_3R_101()) return true; } return false; } - static private boolean jj_3R_85() { + static private boolean jj_3R_86() { if (jj_scan_token(GE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_97()) { + if (jj_3R_98()) { jj_scanpos = xsp; - if (jj_3R_98()) return true; + if (jj_3R_99()) return true; } return false; } - static private boolean jj_3R_84() { + static private boolean jj_3R_85() { if (jj_scan_token(LT)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_95()) { + if (jj_3R_96()) { jj_scanpos = xsp; - if (jj_3R_96()) return true; + if (jj_3R_97()) return true; } return false; } - static private boolean jj_3R_83() { + static private boolean jj_3R_84() { if (jj_scan_token(LE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_93()) { + if (jj_3R_94()) { jj_scanpos = xsp; - if (jj_3R_94()) return true; + if (jj_3R_95()) return true; } return false; } - static private boolean jj_3R_75() { + static private boolean jj_3R_76() { Token xsp; xsp = jj_scanpos; - if (jj_3R_83()) { - jj_scanpos = xsp; if (jj_3R_84()) { jj_scanpos = xsp; if (jj_3R_85()) { @@ -3506,7 +3565,9 @@ public class PrismParser implements PrismParserConstants { jj_scanpos = xsp; if (jj_3R_87()) { jj_scanpos = xsp; - if (jj_3R_88()) return true; + if (jj_3R_88()) { + jj_scanpos = xsp; + if (jj_3R_89()) return true; } } } @@ -3515,287 +3576,307 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_60() { - if (jj_3R_74()) return true; + static private boolean jj_3R_61() { + if (jj_3R_75()) return true; return false; } - static private boolean jj_3R_73() { - if (jj_3R_75()) return true; + static private boolean jj_3R_74() { + if (jj_3R_76()) return true; return false; } - static private boolean jj_3R_72() { + static private boolean jj_3R_73() { if (jj_scan_token(G)) return true; return false; } - static private boolean jj_3R_71() { + static private boolean jj_3R_72() { if (jj_scan_token(F)) return true; return false; } - static private boolean jj_3R_70() { + static private boolean jj_3R_71() { if (jj_scan_token(X)) return true; return false; } - static private boolean jj_3R_59() { + static private boolean jj_3R_60() { Token xsp; xsp = jj_scanpos; - if (jj_3R_70()) { - jj_scanpos = xsp; if (jj_3R_71()) { jj_scanpos = xsp; - if (jj_3R_72()) return true; + if (jj_3R_72()) { + jj_scanpos = xsp; + if (jj_3R_73()) return true; } } xsp = jj_scanpos; - if (jj_3R_73()) jj_scanpos = xsp; - if (jj_3R_54()) return true; + if (jj_3R_74()) jj_scanpos = xsp; + if (jj_3R_55()) return true; return false; } - static private boolean jj_3R_190() { - if (jj_3R_44()) return true; - if (jj_3R_37()) return true; + static private boolean jj_3R_191() { + if (jj_3R_45()) return true; + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_189() { + static private boolean jj_3R_190() { if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_31()) return true; + if (jj_3R_32()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_193() { + static private boolean jj_3R_54() { + if (jj_scan_token(LE)) return true; + return false; + } + + static private boolean jj_3R_53() { + if (jj_scan_token(GE)) return true; + return false; + } + + static private boolean jj_3R_52() { + if (jj_scan_token(LT)) return true; + return false; + } + + static private boolean jj_3R_51() { + if (jj_scan_token(GT)) return true; + return false; + } + + static private boolean jj_3R_45() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_51()) { + jj_scanpos = xsp; + if (jj_3R_52()) { + jj_scanpos = xsp; + if (jj_3R_53()) { + jj_scanpos = xsp; + if (jj_3R_54()) return true; + } + } + } + return false; + } + + static private boolean jj_3R_194() { 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_192() { + static private boolean jj_3R_193() { 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_191() { + static private boolean jj_3R_192() { if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_166() { + static private boolean jj_3R_167() { 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_54() { + static private boolean jj_3R_55() { Token xsp; xsp = jj_scanpos; - if (jj_3R_59()) { + if (jj_3R_60()) { jj_scanpos = xsp; - if (jj_3R_60()) return true; + if (jj_3R_61()) return true; } return false; } - static private boolean jj_3R_165() { + static private boolean jj_3R_166() { 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_64() { - if (jj_3R_75()) return true; + static private boolean jj_3R_65() { + if (jj_3R_76()) return true; return false; } - static private boolean jj_3R_63() { + static private boolean jj_3R_119() { + if (jj_scan_token(NE)) return true; + return false; + } + + static private boolean jj_3R_64() { if (jj_scan_token(R)) return true; return false; } - static private boolean jj_3R_62() { + static private boolean jj_3R_115() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_118()) { + jj_scanpos = xsp; + if (jj_3R_119()) return true; + } + return false; + } + + static private boolean jj_3R_118() { + if (jj_scan_token(EQ)) return true; + return false; + } + + static private boolean jj_3R_63() { if (jj_scan_token(W)) return true; return false; } - static private boolean jj_3R_164() { + static private boolean jj_3R_165() { if (jj_scan_token(P)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_189()) jj_scanpos = xsp; + if (jj_3R_190()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_190()) { - jj_scanpos = xsp; if (jj_3R_191()) { jj_scanpos = xsp; if (jj_3R_192()) { jj_scanpos = xsp; - if (jj_3R_193()) return true; + if (jj_3R_193()) { + jj_scanpos = xsp; + if (jj_3R_194()) return true; } } } return false; } - static private boolean jj_3R_61() { + static private boolean jj_3R_62() { if (jj_scan_token(U)) return true; return false; } - static private boolean jj_3R_146() { + static private boolean jj_3R_147() { Token xsp; xsp = jj_scanpos; - if (jj_3R_164()) { - jj_scanpos = xsp; if (jj_3R_165()) { jj_scanpos = xsp; - if (jj_3R_166()) return true; + if (jj_3R_166()) { + jj_scanpos = xsp; + if (jj_3R_167()) return true; } } if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; xsp = jj_scanpos; - if (jj_3R_167()) jj_scanpos = xsp; + if (jj_3R_168()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_55() { + static private boolean jj_3R_56() { Token xsp; xsp = jj_scanpos; - if (jj_3R_61()) { - jj_scanpos = xsp; if (jj_3R_62()) { jj_scanpos = xsp; - if (jj_3R_63()) return true; + if (jj_3R_63()) { + jj_scanpos = xsp; + if (jj_3R_64()) return true; } } xsp = jj_scanpos; - if (jj_3R_64()) jj_scanpos = xsp; - if (jj_3R_54()) return true; + if (jj_3R_65()) jj_scanpos = xsp; + if (jj_3R_55()) return true; return false; } - static private boolean jj_3R_53() { - if (jj_scan_token(LE)) return true; + static private boolean jj_3R_189() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_52() { - if (jj_scan_token(GE)) return true; + static private boolean jj_3R_164() { + if (jj_3R_29()) return true; return false; } - static private boolean jj_3R_51() { - if (jj_scan_token(LT)) return true; + static private boolean jj_3R_46() { + if (jj_3R_55()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_56()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_188() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_37()) return true; + static private boolean jj_3R_48() { + if (jj_scan_token(REG_IDENTPRIME)) return true; return false; } - static private boolean jj_3R_50() { - if (jj_scan_token(GT)) return true; + static private boolean jj_3R_186() { + if (jj_scan_token(OR)) return true; return false; } - static private boolean jj_3R_44() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_50()) { - jj_scanpos = xsp; - if (jj_3R_51()) { - jj_scanpos = xsp; - if (jj_3R_52()) { - jj_scanpos = xsp; - if (jj_3R_53()) return true; - } - } - } + static private boolean jj_3R_90() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_29()) return true; return false; } - static private boolean jj_3R_163() { - if (jj_3R_28()) return true; + static private boolean jj_3R_146() { + if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_38()) return true; + if (jj_scan_token(RPARENTH)) return true; return false; } - 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_89() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_28()) return true; - return false; - } - - static private boolean jj_3R_118() { - if (jj_scan_token(NE)) return true; - return false; - } - - static private boolean jj_3R_114() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_117()) { - jj_scanpos = xsp; - if (jj_3R_118()) return true; - } - return false; - } - - static private boolean jj_3R_117() { - if (jj_scan_token(EQ)) return true; + static private boolean jj_3R_163() { + if (jj_scan_token(MAX)) return true; return false; } - 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; + static private boolean jj_3R_32() { + if (jj_3R_29()) return true; return false; } - static private boolean jj_3R_162() { - if (jj_scan_token(MAX)) return true; + static private boolean jj_3R_157() { + if (jj_scan_token(FALSE)) return true; return false; } static private boolean jj_3R_156() { - if (jj_scan_token(FALSE)) return true; + if (jj_scan_token(TRUE)) return true; return false; } - static private boolean jj_3R_155() { - if (jj_scan_token(TRUE)) return true; + static private boolean jj_3R_185() { + if (jj_scan_token(AND)) return true; return false; } - static private boolean jj_3R_47() { - if (jj_scan_token(REG_IDENTPRIME)) return true; + static private boolean jj_3R_183() { + if (jj_scan_token(MAX)) return true; return false; } - static private boolean jj_3R_37() { - if (jj_3R_45()) return true; + static private boolean jj_3R_38() { + if (jj_3R_46()) return true; return false; } @@ -3804,12 +3885,12 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_185() { - if (jj_scan_token(OR)) return true; + static private boolean jj_3R_29() { + if (jj_scan_token(REG_IDENT)) return true; return false; } - static private boolean jj_3R_154() { + static private boolean jj_3R_155() { if (jj_scan_token(REG_DOUBLE)) return true; return false; } @@ -3820,110 +3901,150 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_161() { + static private boolean jj_3R_181() { + if (jj_scan_token(INIT)) return true; + return false; + } + + static private boolean jj_3R_162() { if (jj_scan_token(MIN)) 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; + static private boolean jj_3R_188() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_31() { - if (jj_3R_28()) return true; + static private boolean jj_3R_79() { + 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_153() { + static private boolean jj_3R_154() { if (jj_scan_token(REG_INT)) return true; return false; } - static private boolean jj_3R_77() { + static private boolean jj_3R_78() { if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_141() { + static private boolean jj_3R_187() { + if (jj_3R_29()) return true; + return false; + } + + static private boolean jj_3R_142() { Token xsp; xsp = jj_scanpos; - if (jj_3R_153()) { - jj_scanpos = xsp; if (jj_3R_154()) { jj_scanpos = xsp; if (jj_3R_155()) { jj_scanpos = xsp; - if (jj_3R_156()) return true; + if (jj_3R_156()) { + jj_scanpos = xsp; + if (jj_3R_157()) return true; } } } return false; } - static private boolean jj_3R_76() { - if (jj_3R_28()) return true; + static private boolean jj_3R_184() { + if (jj_scan_token(PLUS)) return true; return false; } - static private boolean jj_3R_69() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_28()) return true; + static private boolean jj_3R_182() { + if (jj_scan_token(MIN)) return true; return false; } - static private boolean jj_3R_159() { - if (jj_scan_token(MAX)) return true; + static private boolean jj_3R_77() { + if (jj_3R_29()) return true; return false; } - static private boolean jj_3R_184() { - if (jj_scan_token(AND)) return true; + static private boolean jj_3R_70() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_29()) return true; return false; } - static private boolean jj_3R_182() { + static private boolean jj_3R_160() { if (jj_scan_token(MAX)) return true; return false; } - static private boolean jj_3R_67() { + static private boolean jj_3R_180() { + if (jj_3R_29()) return true; + return false; + } + + static private boolean jj_3R_68() { Token xsp; xsp = jj_scanpos; - if (jj_3R_76()) { - jj_scanpos = xsp; if (jj_3R_77()) { jj_scanpos = xsp; - if (jj_3R_78()) return true; + if (jj_3R_78()) { + jj_scanpos = xsp; + if (jj_3R_79()) return true; } } return false; } - static private boolean jj_3R_28() { - if (jj_scan_token(REG_IDENT)) return true; + static private boolean jj_3R_153() { + if (jj_scan_token(FILTER)) return true; + if (jj_scan_token(LPARENTH)) return true; + Token xsp; + xsp = jj_scanpos; + 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()) { + jj_scanpos = xsp; + if (jj_3R_187()) return true; + } + } + } + } + } + if (jj_scan_token(COMMA)) return true; + if (jj_3R_38()) return true; + xsp = jj_scanpos; + if (jj_3R_188()) jj_scanpos = xsp; + if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_160() { - if (jj_3R_37()) return true; + static private boolean jj_3R_161() { + if (jj_3R_38()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_188()) { jj_scanpos = xsp; break; } + if (jj_3R_189()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_90() { + static private boolean jj_3R_91() { if (jj_scan_token(COMMA)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; if (jj_scan_token(RENAME)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; return false; } @@ -3934,121 +4055,102 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_180() { - if (jj_scan_token(INIT)) return true; - return false; - } - - 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_80() { + static private boolean jj_3R_81() { if (jj_scan_token(LBRACE)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; if (jj_scan_token(RENAME)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_90()) { jj_scanpos = xsp; break; } + if (jj_3R_91()) { jj_scanpos = xsp; break; } } if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_49() { + static private boolean jj_3R_50() { if (jj_scan_token(OR)) return true; if (jj_scan_token(OR)) return true; if (jj_scan_token(OR)) return true; - if (jj_3R_34()) return true; + if (jj_3R_35()) return true; return false; } - static private boolean jj_3R_144() { + static private boolean jj_3R_145() { if (jj_scan_token(FUNC)) return true; if (jj_scan_token(LPARENTH)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_161()) { - jj_scanpos = xsp; if (jj_3R_162()) { jj_scanpos = xsp; - if (jj_3R_163()) return true; + if (jj_3R_163()) { + jj_scanpos = xsp; + if (jj_3R_164()) return true; } } if (jj_scan_token(COMMA)) return true; - if (jj_3R_160()) return true; + if (jj_3R_161()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_186() { - if (jj_3R_28()) return true; - return false; - } - - 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; + static private boolean jj_3R_179() { + if (jj_3R_143()) return true; return false; } - static private boolean jj_3R_179() { - if (jj_3R_28()) return true; + static private boolean jj_3R_152() { + if (jj_scan_token(DQUOTE)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_180()) { + jj_scanpos = xsp; + if (jj_3R_181()) return true; + } + if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_79() { + static private boolean jj_3R_80() { if (jj_scan_token(DIVIDE)) return true; if (jj_scan_token(LBRACE)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_89()) { 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_68() { + static private boolean jj_3R_69() { Token xsp; xsp = jj_scanpos; - if (jj_3R_79()) { + if (jj_3R_80()) { jj_scanpos = xsp; - if (jj_3R_80()) return true; + if (jj_3R_81()) return true; } return false; } - static private boolean jj_3R_176() { - if (jj_3R_147()) return true; + static private boolean jj_3R_177() { + if (jj_3R_148()) return true; return false; } - static private boolean jj_3R_57() { - if (jj_3R_67()) return true; + static private boolean jj_3R_58() { + if (jj_3R_68()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_68()) { jj_scanpos = xsp; break; } + if (jj_3R_69()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_158() { + static private boolean jj_3R_159() { if (jj_scan_token(MIN)) return true; return false; } @@ -4059,66 +4161,47 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_152() { - if (jj_scan_token(FILTER)) return true; - if (jj_scan_token(LPARENTH)) return true; + static private boolean jj_3R_144() { Token xsp; xsp = jj_scanpos; - if (jj_3R_181()) { - jj_scanpos = xsp; - if (jj_3R_182()) { - jj_scanpos = xsp; - if (jj_3R_183()) { + if (jj_3R_159()) { 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_3R_160()) 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(LPARENTH)) return true; + if (jj_3R_161()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_143() { + static private boolean jj_3R_217() { Token xsp; xsp = jj_scanpos; - if (jj_3R_158()) { + if (jj_scan_token(86)) { jj_scanpos = xsp; - if (jj_3R_159()) return true; + if (jj_scan_token(89)) return true; } - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_160()) return true; - if (jj_scan_token(RPARENTH)) return true; return false; } static private boolean jj_3_2() { if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; if (jj_scan_token(DQUOTE)) return true; if (jj_scan_token(COLON)) return true; return false; } - static private boolean jj_3R_42() { + static private boolean jj_3R_43() { if (jj_scan_token(OR)) return true; if (jj_scan_token(OR)) return true; - if (jj_3R_48()) return true; + if (jj_3R_49()) return true; return false; } - static private boolean jj_3R_157() { + static private boolean jj_3R_158() { if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_160()) return true; + if (jj_3R_161()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } @@ -4129,46 +4212,77 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_142() { - if (jj_3R_28()) return true; + static private boolean jj_3R_218() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_217()) return true; + return false; + } + + static private boolean jj_3R_214() { + if (jj_3R_217()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_218()) { jj_scanpos = xsp; break; } + } + return false; + } + + static private boolean jj_3R_143() { + if (jj_3R_29()) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_157()) jj_scanpos = xsp; + if (jj_3R_158()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_151() { - if (jj_scan_token(DQUOTE)) return true; + static private boolean jj_3R_210() { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_214()) jj_scanpos = xsp; + return false; + } + + static private boolean jj_3R_209() { + if (jj_scan_token(TIMES)) return true; + return false; + } + + static private boolean jj_3R_207() { Token xsp; xsp = jj_scanpos; - if (jj_3R_179()) { + if (jj_3R_209()) { jj_scanpos = xsp; - if (jj_3R_180()) return true; + if (jj_3R_210()) return true; } - if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_58() { + static private boolean jj_3R_59() { if (jj_scan_token(OR)) return true; if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_69()) { jj_scanpos = xsp; break; } + if (jj_3R_70()) { jj_scanpos = xsp; break; } } if (jj_scan_token(RBRACKET)) return true; if (jj_scan_token(OR)) return true; - if (jj_3R_57()) return true; + if (jj_3R_58()) return true; return false; } - static private boolean jj_3R_48() { - if (jj_3R_57()) return true; + static private boolean jj_3R_49() { + if (jj_3R_58()) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_58()) jj_scanpos = xsp; + if (jj_3R_59()) jj_scanpos = xsp; + return false; + } + + static private boolean jj_3R_141() { + if (jj_3R_153()) return true; return false; } @@ -4182,109 +4296,111 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_138() { - if (jj_3R_150()) return true; - return false; - } - - static private boolean jj_3R_177() { - if (jj_3R_145()) return true; + static private boolean jj_3R_178() { + if (jj_3R_146()) return true; return false; } - static private boolean jj_3R_175() { - if (jj_3R_146()) return true; + static private boolean jj_3R_176() { + if (jj_3R_147()) return true; return false; } - static private boolean jj_3R_137() { - if (jj_3R_149()) return true; + static private boolean jj_3R_138() { + if (jj_3R_150()) return true; return false; } - static private boolean jj_3R_174() { + static private boolean jj_3R_175() { if (jj_scan_token(DLBRACKET)) return true; + if (jj_3R_207()) return true; if (jj_scan_token(DRBRACKET)) return true; return false; } - - static private boolean jj_3R_136() { - if (jj_3R_148()) return true; + + static private boolean jj_3R_137() { + if (jj_3R_149()) return true; return false; } - static private boolean jj_3R_126() { + static private boolean jj_3R_127() { if (jj_scan_token(DIVIDE)) return true; return false; } - static private boolean jj_3R_211() { - if (jj_3R_37()) return true; + static private boolean jj_3R_216() { + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_173() { + static private boolean jj_3R_174() { if (jj_scan_token(DLT)) return true; + if (jj_3R_207()) return true; if (jj_scan_token(DGT)) return true; return false; } - static private boolean jj_3R_135() { - if (jj_3R_147()) return true; + static private boolean jj_3R_136() { + if (jj_3R_148()) return true; return false; } - static private boolean jj_3R_134() { - if (jj_3R_32()) return true; + static private boolean jj_3R_135() { + if (jj_3R_33()) return true; return false; } - static private boolean jj_3R_133() { - if (jj_3R_146()) return true; + static private boolean jj_3R_134() { + if (jj_3R_147()) return true; return false; } - static private boolean jj_3R_150() { + static private boolean jj_3R_151() { Token xsp; xsp = jj_scanpos; - if (jj_3R_173()) { + if (jj_3R_174()) { jj_scanpos = xsp; - if (jj_3R_174()) return true; + if (jj_3R_175()) 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; + if (jj_3R_178()) { + jj_scanpos = xsp; + if (jj_3R_179()) return true; } } } return false; } - static private boolean jj_3R_132() { - if (jj_3R_145()) return true; + static private boolean jj_3R_133() { + if (jj_3R_146()) return true; return false; } - static private boolean jj_3R_131() { - if (jj_3R_144()) return true; + static private boolean jj_3R_132() { + if (jj_3R_145()) return true; return false; } - static private boolean jj_3R_41() { - if (jj_3R_48()) return true; + static private boolean jj_3R_42() { + if (jj_3R_49()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_49()) { jj_scanpos = xsp; break; } + if (jj_3R_50()) { jj_scanpos = xsp; break; } } return false; } + static private boolean jj_3R_131() { + if (jj_3R_144()) return true; + return false; + } + static private boolean jj_3R_130() { if (jj_3R_143()) return true; return false; @@ -4295,34 +4411,27 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_128() { - if (jj_3R_141()) return true; - return false; - } - - static private boolean jj_3R_208() { - if (jj_3R_37()) return true; + static private boolean jj_3R_212() { + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_122() { + static private boolean jj_3R_123() { if (jj_scan_token(MINUS)) return true; return false; } - static private boolean jj_3R_149() { + static private boolean jj_3R_150() { if (jj_scan_token(A)) return true; if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_127() { + static private boolean jj_3R_128() { Token xsp; xsp = jj_scanpos; - if (jj_3R_128()) { - jj_scanpos = xsp; if (jj_3R_129()) { jj_scanpos = xsp; if (jj_3R_130()) { @@ -4345,7 +4454,9 @@ public class PrismParser implements PrismParserConstants { jj_scanpos = xsp; if (jj_3R_139()) { jj_scanpos = xsp; - if (jj_3R_140()) return true; + if (jj_3R_140()) { + jj_scanpos = xsp; + if (jj_3R_141()) return true; } } } @@ -4361,71 +4472,71 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_124() { - if (jj_3R_127()) return true; + static private boolean jj_3R_125() { + if (jj_3R_128()) return true; return false; } - static private boolean jj_3R_123() { + static private boolean jj_3R_124() { if (jj_scan_token(MINUS)) return true; - if (jj_3R_119()) return true; + if (jj_3R_120()) return true; return false; } - static private boolean jj_3R_34() { - if (jj_3R_41()) return true; + static private boolean jj_3R_35() { + if (jj_3R_42()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_42()) { jj_scanpos = xsp; break; } + if (jj_3R_43()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_119() { + static private boolean jj_3R_120() { Token xsp; xsp = jj_scanpos; - if (jj_3R_123()) { + if (jj_3R_124()) { jj_scanpos = xsp; - if (jj_3R_124()) return true; + if (jj_3R_125()) return true; } return false; } - static private boolean jj_3R_148() { + static private boolean jj_3R_149() { if (jj_scan_token(E)) return true; if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_125() { + static private boolean jj_3R_126() { if (jj_scan_token(TIMES)) return true; return false; } - static private boolean jj_3R_30() { - if (jj_3R_34()) return true; + static private boolean jj_3R_31() { + if (jj_3R_35()) return true; return false; } - static private boolean jj_3R_120() { + static private boolean jj_3R_121() { Token xsp; xsp = jj_scanpos; - if (jj_3R_125()) { + if (jj_3R_126()) { jj_scanpos = xsp; - if (jj_3R_126()) return true; + if (jj_3R_127()) return true; } - if (jj_3R_119()) return true; + if (jj_3R_120()) return true; return false; } static private boolean jj_3_7() { if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_30()) return true; + if (jj_3R_31()) return true; return false; } @@ -4437,35 +4548,35 @@ public class PrismParser implements PrismParserConstants { static private boolean jj_3_1() { if (jj_scan_token(MODULE)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; if (jj_scan_token(EQ)) return true; return false; } - static private boolean jj_3R_205() { - if (jj_3R_37()) return true; + static private boolean jj_3R_206() { + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_115() { - if (jj_3R_119()) return true; + static private boolean jj_3R_116() { + if (jj_3R_120()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_120()) { jj_scanpos = xsp; break; } + if (jj_3R_121()) { jj_scanpos = xsp; break; } } return false; } static private boolean jj_3_17() { - if (jj_3R_32()) return true; + if (jj_3R_33()) return true; return false; } - static private boolean jj_3R_204() { + static private boolean jj_3R_205() { if (jj_scan_token(I)) return true; if (jj_scan_token(EQ)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; return false; } @@ -4474,61 +4585,59 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_203() { + static private boolean jj_3R_204() { if (jj_scan_token(C)) return true; return false; } - static private boolean jj_3R_202() { + static private boolean jj_3R_203() { if (jj_scan_token(C)) return true; if (jj_scan_token(LE)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_121() { + static private boolean jj_3R_122() { if (jj_scan_token(PLUS)) return true; return false; } - static private boolean jj_3R_201() { + static private boolean jj_3R_202() { if (jj_scan_token(S)) return true; return false; } - static private boolean jj_3R_172() { - if (jj_3R_46()) return true; + static private boolean jj_3R_173() { + if (jj_3R_47()) return true; return false; } - static private boolean jj_3R_116() { + static private boolean jj_3R_117() { Token xsp; xsp = jj_scanpos; - if (jj_3R_121()) { + if (jj_3R_122()) { jj_scanpos = xsp; - if (jj_3R_122()) return true; + if (jj_3R_123()) return true; } - if (jj_3R_115()) return true; + if (jj_3R_116()) return true; return false; } - static private boolean jj_3R_200() { - if (jj_3R_32()) return true; + static private boolean jj_3R_201() { + if (jj_3R_33()) return true; return false; } - static private boolean jj_3R_210() { + static private boolean jj_3R_215() { if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_171() { + static private boolean jj_3R_172() { Token xsp; xsp = jj_scanpos; - if (jj_3R_200()) { - jj_scanpos = xsp; if (jj_3R_201()) { jj_scanpos = xsp; if (jj_3R_202()) { @@ -4537,7 +4646,9 @@ public class PrismParser implements PrismParserConstants { jj_scanpos = xsp; if (jj_3R_204()) { jj_scanpos = xsp; - if (jj_3R_205()) return true; + if (jj_3R_205()) { + jj_scanpos = xsp; + if (jj_3R_206()) return true; } } } @@ -4551,12 +4662,12 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_112() { - if (jj_3R_115()) return true; + static private boolean jj_3R_113() { + if (jj_3R_116()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_116()) { jj_scanpos = xsp; break; } + if (jj_3R_117()) { jj_scanpos = xsp; break; } } return false; } @@ -4566,379 +4677,379 @@ public class PrismParser implements PrismParserConstants { return false; } - static private boolean jj_3R_207() { + static private boolean jj_3R_211() { if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_28()) return true; + if (jj_3R_29()) return true; if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_209() { + static private boolean jj_3R_213() { if (jj_scan_token(DIVIDE)) return true; if (jj_scan_token(LBRACE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_210()) { + if (jj_3R_215()) { jj_scanpos = xsp; - if (jj_3R_211()) return true; + if (jj_3R_216()) return true; } if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_113() { - if (jj_3R_44()) return true; - if (jj_3R_112()) return true; + static private boolean jj_3R_114() { + if (jj_3R_45()) return true; + if (jj_3R_113()) return true; return false; } - static private boolean jj_3R_206() { + static private boolean jj_3R_208() { if (jj_scan_token(LBRACE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_207()) { + if (jj_3R_211()) { jj_scanpos = xsp; - if (jj_3R_208()) return true; + if (jj_3R_212()) return true; } if (jj_scan_token(RBRACE)) return true; xsp = jj_scanpos; - if (jj_3R_209()) jj_scanpos = xsp; + if (jj_3R_213()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_110() { - if (jj_3R_112()) return true; + static private boolean jj_3R_111() { + if (jj_3R_113()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_113()) { jj_scanpos = xsp; break; } + if (jj_3R_114()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_111() { - if (jj_3R_114()) return true; - if (jj_3R_110()) return true; + static private boolean jj_3R_112() { + if (jj_3R_115()) return true; + if (jj_3R_111()) return true; return false; } - static private boolean jj_3R_109() { - if (jj_3R_110()) return true; + static private boolean jj_3R_110() { + if (jj_3R_111()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_111()) { jj_scanpos = xsp; break; } + if (jj_3R_112()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_108() { - if (jj_3R_109()) return true; + static private boolean jj_3R_109() { + if (jj_3R_110()) return true; return false; } - static private boolean jj_3R_107() { + static private boolean jj_3R_108() { if (jj_scan_token(NOT)) return true; - if (jj_3R_105()) return true; + if (jj_3R_106()) return true; return false; } - static private boolean jj_3R_100() { - if (jj_3R_37()) return true; + static private boolean jj_3R_101() { + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_98() { - if (jj_3R_37()) return true; + static private boolean jj_3R_99() { + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_96() { - if (jj_3R_37()) return true; + static private boolean jj_3R_97() { + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_94() { - if (jj_3R_37()) return true; + static private boolean jj_3R_95() { + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_196() { - if (jj_3R_44()) return true; - if (jj_3R_37()) return true; + static private boolean jj_3R_197() { + if (jj_3R_45()) return true; + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_195() { - if (jj_3R_206()) return true; + static private boolean jj_3R_196() { + if (jj_3R_208()) return true; return false; } - static private boolean jj_3R_194() { + static private boolean jj_3R_195() { if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_31()) return true; + if (jj_3R_32()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_40() { + static private boolean jj_3R_41() { if (jj_scan_token(AND)) return true; - if (jj_3R_39()) return true; + if (jj_3R_40()) return true; return false; } - static private boolean jj_3R_199() { + static private boolean jj_3R_200() { 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_170() { + static private boolean jj_3R_171() { 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_198() { + static private boolean jj_3R_199() { 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_169() { + static private boolean jj_3R_170() { 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_105() { + static private boolean jj_3R_106() { Token xsp; xsp = jj_scanpos; - if (jj_3R_107()) { + if (jj_3R_108()) { jj_scanpos = xsp; - if (jj_3R_108()) return true; + if (jj_3R_109()) return true; } return false; } - static private boolean jj_3R_197() { + static private boolean jj_3R_198() { if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_38() { - if (jj_3R_46()) return true; + static private boolean jj_3R_39() { + if (jj_3R_47()) return true; return false; } - static private boolean jj_3R_168() { + static private boolean jj_3R_169() { if (jj_scan_token(R)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_194()) jj_scanpos = xsp; - xsp = jj_scanpos; if (jj_3R_195()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_196()) { - jj_scanpos = xsp; + if (jj_3R_196()) jj_scanpos = xsp; + xsp = jj_scanpos; if (jj_3R_197()) { jj_scanpos = xsp; if (jj_3R_198()) { jj_scanpos = xsp; - if (jj_3R_199()) return true; + if (jj_3R_199()) { + jj_scanpos = xsp; + if (jj_3R_200()) return true; } } } return false; } - static private boolean jj_3R_106() { + static private boolean jj_3R_107() { if (jj_scan_token(AND)) return true; - if (jj_3R_105()) return true; + if (jj_3R_106()) return true; return false; } - static private boolean jj_3R_147() { + static private boolean jj_3R_148() { Token xsp; xsp = jj_scanpos; - if (jj_3R_168()) { - jj_scanpos = xsp; if (jj_3R_169()) { jj_scanpos = xsp; - if (jj_3R_170()) return true; + if (jj_3R_170()) { + jj_scanpos = xsp; + if (jj_3R_171()) return true; } } if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_171()) return true; + if (jj_3R_172()) return true; xsp = jj_scanpos; - if (jj_3R_172()) jj_scanpos = xsp; + if (jj_3R_173()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_39() { + static private boolean jj_3R_40() { if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_47()) return true; + if (jj_3R_48()) return true; if (jj_scan_token(EQ)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_103() { - if (jj_3R_105()) return true; + static private boolean jj_3R_104() { + if (jj_3R_106()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_106()) { jj_scanpos = xsp; break; } + if (jj_3R_107()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_104() { + static private boolean jj_3R_105() { if (jj_scan_token(OR)) return true; - if (jj_3R_103()) return true; + if (jj_3R_104()) return true; return false; } - static private boolean jj_3R_33() { - if (jj_3R_39()) return true; + static private boolean jj_3R_34() { + if (jj_3R_40()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_40()) { jj_scanpos = xsp; break; } + if (jj_3R_41()) { jj_scanpos = xsp; break; } } return false; } static private boolean jj_3_5() { - if (jj_3R_29()) return true; + if (jj_3R_30()) return true; return false; } - static private boolean jj_3R_101() { - if (jj_3R_103()) return true; + static private boolean jj_3R_102() { + if (jj_3R_104()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_104()) { jj_scanpos = xsp; break; } + if (jj_3R_105()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_29() { + static private boolean jj_3R_30() { Token xsp; xsp = jj_scanpos; - if (jj_3R_33()) { + if (jj_3R_34()) { jj_scanpos = xsp; if (jj_scan_token(49)) return true; } return false; } - static private boolean jj_3R_102() { + static private boolean jj_3R_103() { if (jj_scan_token(IFF)) return true; - if (jj_3R_101()) return true; + if (jj_3R_102()) return true; return false; } - static private boolean jj_3R_91() { - if (jj_3R_101()) return true; + static private boolean jj_3R_92() { + if (jj_3R_102()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_102()) { jj_scanpos = xsp; break; } + if (jj_3R_103()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_36() { + static private boolean jj_3R_37() { if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_43() { + static private boolean jj_3R_44() { if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_31()) return true; + if (jj_3R_32()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_35() { + static private boolean jj_3R_36() { Token xsp; xsp = jj_scanpos; - if (jj_3R_43()) jj_scanpos = xsp; - if (jj_3R_44()) return true; - if (jj_3R_37()) return true; + if (jj_3R_44()) jj_scanpos = xsp; + if (jj_3R_45()) return true; + if (jj_3R_38()) return true; return false; } - static private boolean jj_3R_92() { + static private boolean jj_3R_93() { if (jj_scan_token(IMPLIES)) return true; - if (jj_3R_91()) return true; + if (jj_3R_92()) return true; return false; } - static private boolean jj_3R_81() { - if (jj_3R_91()) return true; + static private boolean jj_3R_82() { + if (jj_3R_92()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_92()) { jj_scanpos = xsp; break; } + if (jj_3R_93()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_32() { + static private boolean jj_3R_33() { if (jj_scan_token(S)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_35()) { + if (jj_3R_36()) { jj_scanpos = xsp; - if (jj_3R_36()) return true; + if (jj_3R_37()) return true; } if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_37()) return true; + if (jj_3R_38()) return true; xsp = jj_scanpos; - if (jj_3R_38()) jj_scanpos = xsp; + if (jj_3R_39()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_82() { + static private boolean jj_3R_83() { if (jj_scan_token(QMARK)) return true; - if (jj_3R_81()) return true; + if (jj_3R_82()) return true; if (jj_scan_token(COLON)) return true; - if (jj_3R_74()) return true; + if (jj_3R_75()) return true; return false; } static private boolean jj_3_14() { - if (jj_3R_31()) return true; + if (jj_3R_32()) return true; if (jj_scan_token(LPARENTH)) return true; return false; } static private boolean jj_3_13() { - if (jj_3R_31()) return true; + if (jj_3R_32()) return true; if (jj_scan_token(LPARENTH)) return true; return false; } static private boolean jj_3_12() { - if (jj_3R_31()) return true; + if (jj_3R_32()) return true; if (jj_scan_token(LPARENTH)) return true; return false; } static private boolean jj_3_11() { - if (jj_3R_31()) return true; + if (jj_3R_32()) return true; if (jj_scan_token(LPARENTH)) return true; return false; } @@ -4955,7 +5066,7 @@ public class PrismParser implements PrismParserConstants { static private Token jj_scanpos, jj_lastpos; static private int jj_la; static private int jj_gen; - static final private int[] jj_la1 = new int[96]; + static final private int[] jj_la1 = new int[100]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -4965,13 +5076,13 @@ 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,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,0x0,0xa4ba0908,0x0,0x0,0x0,0x0,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,0x4000,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,0x4012783a,0x0,0x40003838,0x10000000,0x0,0x0,0x0,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,0x0,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,0x2e08404,0x404,0x2000000,0x0,0x2400000,0x10000,0x2400000,0x2000000,0x2004000,0x0,0x2000000,0xc0,0x3300,0x0,}; } static final private JJCalls[] jj_2_rtns = new JJCalls[18]; static private boolean jj_rescan = false; @@ -4995,7 +5106,7 @@ public class PrismParser implements PrismParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 96; i++) jj_la1[i] = -1; + for (int i = 0; i < 100; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5010,7 +5121,7 @@ public class PrismParser implements PrismParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 96; i++) jj_la1[i] = -1; + for (int i = 0; i < 100; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5028,7 +5139,7 @@ public class PrismParser implements PrismParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 96; i++) jj_la1[i] = -1; + for (int i = 0; i < 100; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5039,7 +5150,7 @@ public class PrismParser implements PrismParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 96; i++) jj_la1[i] = -1; + for (int i = 0; i < 100; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5056,7 +5167,7 @@ public class PrismParser implements PrismParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 96; i++) jj_la1[i] = -1; + for (int i = 0; i < 100; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5066,7 +5177,7 @@ public class PrismParser implements PrismParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 96; i++) jj_la1[i] = -1; + for (int i = 0; i < 100; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -5183,7 +5294,7 @@ public class PrismParser implements PrismParserConstants { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 96; i++) { + for (int i = 0; i < 100; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<> or [[...]] - (( begin = { ret = new ExpressionStrategy(true); } ) - | (begin = { ret = new ExpressionStrategy(false); } )) + (( begin = { ret = new ExpressionStrategy(true); } ExpressionStrategyCoalition(ret) ) + | (begin = { ret = new ExpressionStrategy(false); } ExpressionStrategyCoalition(ret) )) // Child expression ( expr = ExpressionProb(prop, pathprop) | expr = ExpressionReward(prop, pathprop) | expr = ExpressionParenth(prop, pathprop) | expr = ExpressionFuncOrIdent(prop, pathprop) ) @@ -1722,6 +1722,32 @@ Expression ExpressionStrategy(boolean prop, boolean pathprop) : } } +// Coalition (player list) for a strategy (<<>> or [[]]) operator + +void ExpressionStrategyCoalition(ExpressionStrategy exprStrat) : +{ + List coalition = new ArrayList(); + String s; +} +{ + ( ) { exprStrat.setCoalitionAllPlayers();} + | + ( s = ExpressionStrategyCoalitionPlayer() { coalition.add(s); } + ( s = ExpressionStrategyCoalitionPlayer() { coalition.add(s); } )* )? + { exprStrat.setCoalition(coalition); } +} + +// Single player in a coalition for a strategy (<<>> or [[]]) operator + +String ExpressionStrategyCoalitionPlayer() : +{ + String s; +} +{ + ( | ) { s = getToken(0).image; } + { return s; } +} + // (Property) expression: label (including "init") Expression ExpressionLabel(boolean prop, boolean pathprop) :