From 9dcd92f862c1580f930a45419ce97104f2842dac Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Fri, 9 Feb 2024 22:13:50 +0000 Subject: [PATCH] Add power operator a^b, equivalent to pow(a,b). For parsing, operator precedence is immediatey below * and /, and ^ is right associative (a^b^c = a^(b^c)). This is implemented as another case of ExpressionBinaryOp. --- .../functionality/language/func_power.prism | 23 + .../language/func_power.prism.props | 85 + .../language/func_power.prism.props.args | 5 + .../language/func_power.prism.root.props | 32 + .../language/func_power.prism.root.props.args | 4 + .../functionality/language/power.prism | 23 + .../functionality/language/power.prism.props | 86 + .../language/power.prism.props.args | 4 + .../language/power.prism.root.props | 32 + .../language/power.prism.root.props.args | 4 + prism/src/param/BoxRegion.java | 23 + prism/src/param/CachedFunction.java | 5 + prism/src/param/CachedFunctionFactory.java | 8 +- prism/src/param/DagFunction.java | 5 + prism/src/param/Function.java | 8 + prism/src/param/FunctionFactory.java | 17 + prism/src/param/JasFunction.java | 17 +- prism/src/param/ParamModelChecker.java | 3 + prism/src/param/Region.java | 3 +- prism/src/parser/PrismParser.java | 1814 +++++++++-------- prism/src/parser/PrismParser.jj | 21 +- prism/src/parser/PrismParserConstants.java | 23 +- prism/src/parser/PrismParserTokenManager.java | 148 +- prism/src/parser/ast/Expression.java | 6 + prism/src/parser/ast/ExpressionBinaryOp.java | 11 +- prism/src/parser/ast/ExpressionFunc.java | 28 +- prism/src/parser/visitor/TypeCheck.java | 1 + prism/src/prism/StateModelChecker.java | 34 + 28 files changed, 1489 insertions(+), 984 deletions(-) create mode 100644 prism-tests/functionality/language/func_power.prism create mode 100644 prism-tests/functionality/language/func_power.prism.props create mode 100644 prism-tests/functionality/language/func_power.prism.props.args create mode 100644 prism-tests/functionality/language/func_power.prism.root.props create mode 100644 prism-tests/functionality/language/func_power.prism.root.props.args create mode 100644 prism-tests/functionality/language/power.prism create mode 100644 prism-tests/functionality/language/power.prism.props create mode 100644 prism-tests/functionality/language/power.prism.props.args create mode 100644 prism-tests/functionality/language/power.prism.root.props create mode 100644 prism-tests/functionality/language/power.prism.root.props.args diff --git a/prism-tests/functionality/language/func_power.prism b/prism-tests/functionality/language/func_power.prism new file mode 100644 index 0000000000..c0d80eae05 --- /dev/null +++ b/prism-tests/functionality/language/func_power.prism @@ -0,0 +1,23 @@ +dtmc + +module die + + // local state + s : [0..7] init 0; + // value of the die + d : [0..6] init 0; + + [] s=0 -> 0.5 : (s'=1) + 0.5 : (s'=2); + [] s=1 -> 0.5 : (s'=3) + 0.5 : (s'=4); + [] s=2 -> 0.5 : (s'=5) + 0.5 : (s'=6); + [] s=3 -> 0.5 : (s'=1) + 0.5 : (s'=7) & (d'=1); + [] s=4 -> 0.5 : (s'=7) & (d'=2) + 0.5 : (s'=7) & (d'=3); + [] s=5 -> 0.5 : (s'=7) & (d'=4) + 0.5 : (s'=7) & (d'=5); + [] s=6 -> 0.5 : (s'=2) + 0.5 : (s'=7) & (d'=6); + [] s=7 -> (s'=7); + +endmodule + +rewards "coin_flips" + [] s<7 : 1; +endrewards diff --git a/prism-tests/functionality/language/func_power.prism.props b/prism-tests/functionality/language/func_power.prism.props new file mode 100644 index 0000000000..8d110977ca --- /dev/null +++ b/prism-tests/functionality/language/func_power.prism.props @@ -0,0 +1,85 @@ +// Some tests of pow(), in each case: +// * occurring in a constant (so Expression evaluation) +// * occurring in a constant property (so probably model checking) +// * occurring in a state-dependent property (so model checking, various engines) + +// RESULT: 1 +"one": s+1; + +// RESULT: 1 +"one_s": round(1+P=?[F<=1 d=6]); + +// RESULT: 1 +"one_m": round(P=?[F true]); + +// ------------------------- + +// RESULT: 8 +cPow1; const int cPow1 = pow(2,3); + +// RESULT: 8 +pow(2,3); + +// RESULT: 8 +pow(2*"one", d+3); + +// RESULT: 8 +pow(2*"one_s", d+3); + +// RESULT: 8 +pow(2*"one_m", d+3); + +// ------------------------- + +// RESULT: 1/4 +cPow2; const double cPow2 = pow(0.5, 2); + +// RESULT: 1/4 +pow(0.5, 2); + +// RESULT: 1/4 +pow(0.5*"one", d+2); + +// RESULT: 1/4 +pow(0.5*"one_s", d+2); + +// RESULT: 1/4 +pow(0.5*"one_m", d+2); + +// ------------------------- + +// RESULT: 1/2 +cPow3; const double cPow3 = pow(2, -1.0); + +// RESULT: 1/2 +pow(2, -1.0); + +// RESULT: 1/2 +pow(2*"one", d-1.0); + +// RESULT: 1/2 +pow(2*"one_s", d-1.0); + +// RESULT: 1/2 +pow(2*"one_m", d-1.0); + +// ------------------------- + +// Don't test errors for now - not done properly for symbolic/param + +// RESULT: Error +//cPow4; const double cPow4 = pow(2,-1); + +// RESULT: Error:negative +//pow(2, -1); + +// RESULT: Error:negative +//pow(2*"one", d-1); + +// RESULT: Error:negative +//pow(2*"one_s", d-1); + +// RESULT: Error:negative +//pow(2*"one_m", d-1); + +// ------------------------- diff --git a/prism-tests/functionality/language/func_power.prism.props.args b/prism-tests/functionality/language/func_power.prism.props.args new file mode 100644 index 0000000000..87c105ee9f --- /dev/null +++ b/prism-tests/functionality/language/func_power.prism.props.args @@ -0,0 +1,5 @@ +-ex +-exact +-h +-m +-s diff --git a/prism-tests/functionality/language/func_power.prism.root.props b/prism-tests/functionality/language/func_power.prism.root.props new file mode 100644 index 0000000000..5db5401b03 --- /dev/null +++ b/prism-tests/functionality/language/func_power.prism.root.props @@ -0,0 +1,32 @@ +// Some tests of pow(), in each case: +// * occurring in a constant (so Expression evaluation) +// * occurring in a constant property (so probably model checking) +// * occurring in a state-dependent property (so model checking, various engines) + +// RESULT: 1 +"one": s+1; + +// RESULT: 1 +"one_s": round(1+P=?[F<=1 d=6]); + +// RESULT: 1 +"one_m": round(P=?[F true]); + +// ------------------------- + +// RESULT: 1/2 +cPow4; const double cPow4 = pow(1/4, 1/2); + +// RESULT: 1/2 +pow(1/4, 1/2); + +// RESULT: 1/2 +pow(1/4*"one", d+1/2); + +// RESULT: 1/2 +pow(1/4*"one_s", d+1/2); + +// RESULT: 1/2 +pow(1/4*"one_m", d+1/2); + +// ------------------------- diff --git a/prism-tests/functionality/language/func_power.prism.root.props.args b/prism-tests/functionality/language/func_power.prism.root.props.args new file mode 100644 index 0000000000..a96e60d9b9 --- /dev/null +++ b/prism-tests/functionality/language/func_power.prism.root.props.args @@ -0,0 +1,4 @@ +-ex +# -exact # no evaluation of roots as rationals +-h +-m diff --git a/prism-tests/functionality/language/power.prism b/prism-tests/functionality/language/power.prism new file mode 100644 index 0000000000..c0d80eae05 --- /dev/null +++ b/prism-tests/functionality/language/power.prism @@ -0,0 +1,23 @@ +dtmc + +module die + + // local state + s : [0..7] init 0; + // value of the die + d : [0..6] init 0; + + [] s=0 -> 0.5 : (s'=1) + 0.5 : (s'=2); + [] s=1 -> 0.5 : (s'=3) + 0.5 : (s'=4); + [] s=2 -> 0.5 : (s'=5) + 0.5 : (s'=6); + [] s=3 -> 0.5 : (s'=1) + 0.5 : (s'=7) & (d'=1); + [] s=4 -> 0.5 : (s'=7) & (d'=2) + 0.5 : (s'=7) & (d'=3); + [] s=5 -> 0.5 : (s'=7) & (d'=4) + 0.5 : (s'=7) & (d'=5); + [] s=6 -> 0.5 : (s'=2) + 0.5 : (s'=7) & (d'=6); + [] s=7 -> (s'=7); + +endmodule + +rewards "coin_flips" + [] s<7 : 1; +endrewards diff --git a/prism-tests/functionality/language/power.prism.props b/prism-tests/functionality/language/power.prism.props new file mode 100644 index 0000000000..7299a798cf --- /dev/null +++ b/prism-tests/functionality/language/power.prism.props @@ -0,0 +1,86 @@ +// Some tests of power operator, in each case: +// * occurring in a constant (so Expression evaluation) +// * occurring in a constant property (so probably model checking) +// * occurring in a state-dependent property (so model checking, various engines) + +// RESULT: 1 +"one": s+1; + +// RESULT: 1 +"one_s": round(1+P=?[F<=1 d=6]); + +// RESULT: 1 +"one_m": round(P=?[F true]); + +// ------------------------- + +// RESULT: 8 +cPow1; const int cPow1 = 2^3; + +// RESULT: 8 +2^3; + +// RESULT: 8 +(2*"one")^(d+3); + +// RESULT: 8 +(2*"one_s")^(d+3); + +// RESULT: 8 +(2*"one_m")^(d+3); + +// ------------------------- + +// RESULT: 1/4 +cPow2; const double cPow2 = 0.5^2; + +// RESULT: 1/4 +0.5^2; + +// RESULT: 1/4 +(0.5*"one")^(d+2); + +// RESULT: 1/4 +(0.5*"one_s")^(d+2); + +// RESULT: 1/4 +(0.5*"one_m")^(d+2); + +// ------------------------- + +// RESULT: 1/2 +cPow3; const double cPow3 = 2^-1.0; + +// RESULT: 1/2 +2^-1.0; + +// RESULT: 1/2 +(2*"one")^(d-1.0); + +// RESULT: 1/2 +(2*"one_s")^(d-1.0); + +// RESULT: 1/2 +(2*"one_m")^(d-1.0); + +// ------------------------- + +// Don't test errors for now - not done properly for symbolic/param + +// RESULT: Error +//cPow4; const double cPow4 = 2^-1; +//cPow4; const double cPow4 = pow(2,-1); + +// RESULT: Error:negative +//2^-1; + +// RESULT: Error:negative +//(2*"one")^(d-1); + +// RESULT: Error:negative +//(2*"one_s")^(d-1); + +// RESULT: Error:negative +//(2*"one_m")^(d-1); + +// ------------------------- diff --git a/prism-tests/functionality/language/power.prism.props.args b/prism-tests/functionality/language/power.prism.props.args new file mode 100644 index 0000000000..b54d718898 --- /dev/null +++ b/prism-tests/functionality/language/power.prism.props.args @@ -0,0 +1,4 @@ +-ex +-exact +-h +-m diff --git a/prism-tests/functionality/language/power.prism.root.props b/prism-tests/functionality/language/power.prism.root.props new file mode 100644 index 0000000000..343e761ec5 --- /dev/null +++ b/prism-tests/functionality/language/power.prism.root.props @@ -0,0 +1,32 @@ +// Some tests of power operator, in each case: +// * occurring in a constant (so Expression evaluation) +// * occurring in a constant property (so probably model checking) +// * occurring in a state-dependent property (so model checking, various engines) + +// RESULT: 1 +"one": s+1; + +// RESULT: 1 +"one_s": round(1+P=?[F<=1 d=6]); + +// RESULT: 1 +"one_m": round(P=?[F true]); + +// ------------------------- + +// RESULT: 1/2 +cPow4; const double cPow4 = (1/4)^(1/2); + +// RESULT: 1/2 +(1/4)^(1/2); + +// RESULT: 1/2 +(1/4*"one")^(d+1/2); + +// RESULT: 1/2 +(1/4*"one_s")^(d+1/2); + +// RESULT: 1/2 +(1/4*"one_m")^(d+1/2); + +// ------------------------- diff --git a/prism-tests/functionality/language/power.prism.root.props.args b/prism-tests/functionality/language/power.prism.root.props.args new file mode 100644 index 0000000000..a96e60d9b9 --- /dev/null +++ b/prism-tests/functionality/language/power.prism.root.props.args @@ -0,0 +1,4 @@ +-ex +# -exact # no evaluation of roots as rationals +-h +-m diff --git a/prism/src/param/BoxRegion.java b/prism/src/param/BoxRegion.java index f219cb4277..ecddf885a6 100644 --- a/prism/src/param/BoxRegion.java +++ b/prism/src/param/BoxRegion.java @@ -276,6 +276,9 @@ RegionValues binaryOp(int op, StateValues values1, StateValues values2) { } else if (op == Region.PLUS || op == Region.MINUS || op == Region.TIMES || op == Region.DIVIDE) { Function stateVal = arithOp(op, values1.getStateValueAsFunction(state), values2.getStateValueAsFunction(state)); values.setStateValue(state, stateVal); + } else if (op == Region.POW) { + Function stateVal = powOp(values1.getStateValueAsFunction(state), values2.getStateValueAsFunction(state)); + values.setStateValue(state, stateVal); } else { throw new UnsupportedOperationException("operator not yet implemented for parametric analyses"); } @@ -386,6 +389,26 @@ private Function arithOp(int op, Function op1, Function op2) { return result; } + /** + * Performs a power operation on two rational functions. + * + * @param op1 first operand + * @param op2 second operand + * @return value of operation + */ + private Function powOp(Function op1, Function op2) + { + if (!op2.isConstant()) { + throw new IllegalArgumentException("unsupported pow operation"); + } + BigRational exp = op2.asBigRational(); + if (!exp.isInteger()) { + throw new IllegalArgumentException("unsupported pow operation"); + } + int expInt = exp.getNum().intValue(); + return op1.pow(expInt); + } + /** * Performs given operation on two booleans. * diff --git a/prism/src/param/CachedFunction.java b/prism/src/param/CachedFunction.java index f54e22c17f..aafb126be1 100644 --- a/prism/src/param/CachedFunction.java +++ b/prism/src/param/CachedFunction.java @@ -101,6 +101,11 @@ public Function divide(Function other) { return factory.divide(this, other); } + @Override + public Function pow(int exp) { + return factory.pow(this, exp); + } + @Override public Function star() { return factory.star(this); diff --git a/prism/src/param/CachedFunctionFactory.java b/prism/src/param/CachedFunctionFactory.java index d78bd8adeb..c2146b5e18 100644 --- a/prism/src/param/CachedFunctionFactory.java +++ b/prism/src/param/CachedFunctionFactory.java @@ -243,7 +243,13 @@ Function divide(Function cached1, Function cached2) Function function2 = getFunctionFromCache(cached2); return makeUnique(function1.divide(function2)); } - + + Function pow(Function cached1, int exp) + { + Function function1 = getFunctionFromCache(cached1); + return makeUnique(function1.pow(exp)); + } + Function star(Function cached) { Function result; if (useOpCache) { diff --git a/prism/src/param/DagFunction.java b/prism/src/param/DagFunction.java index 64ed411a33..5c1bb3bc81 100644 --- a/prism/src/param/DagFunction.java +++ b/prism/src/param/DagFunction.java @@ -116,6 +116,11 @@ public Function divide(Function other) { return dagFactory.divide(this, (DagFunction) other); } + @Override + public Function pow(int exp) { + throw new RuntimeException("DagFunction does not support powers"); + } + @Override public Function star() { return dagFactory.star(this); diff --git a/prism/src/param/Function.java b/prism/src/param/Function.java index 6ddd5ab814..dd6371fdab 100644 --- a/prism/src/param/Function.java +++ b/prism/src/param/Function.java @@ -99,6 +99,14 @@ protected Function(FunctionFactory factory) */ public abstract Function divide(Function other); + /** + * Raises this function to the power {@code exp}. + * + * @param exp integer exponent + * @return {@code this} to the power {@code exp} + */ + public abstract Function pow(int exp); + /** * Performs the {@code star} operation with this function. * The value of the result is equal to 1/(1-{@code this}). diff --git a/prism/src/param/FunctionFactory.java b/prism/src/param/FunctionFactory.java index 6845873248..6d7fbd6914 100644 --- a/prism/src/param/FunctionFactory.java +++ b/prism/src/param/FunctionFactory.java @@ -231,6 +231,23 @@ public Function expr2function(Expression expr, Values constantValues) throws Pri } } else if (expr instanceof ExpressionBinaryOp) { ExpressionBinaryOp binExpr = ((ExpressionBinaryOp) expr); + // power is handled differently due to some constraints + if (binExpr.getOperator() == ExpressionBinaryOp.POW) { + // power is supported if the exponent doesn't refer to + // parametric constants and can be exactly evaluated + try { + // non-parametric constants and state variable values have + // been already partially expanded, so if this evaluation + // succeeds there are no parametric constants involved + int exp = binExpr.getOperand2().evaluateInt(); + Function f1 = expr2function(binExpr.getOperand1()); + return f1.pow(exp); + } catch (PrismException e) { + // Most likely, a parametric constant occurred. + throw new PrismLangException("Cannot create rational function for expression " + expr, expr); + } + } + // other arithmetic binary operators: Function f1 = expr2function(binExpr.getOperand1()); Function f2 = expr2function(binExpr.getOperand2()); switch (binExpr.getOperator()) { diff --git a/prism/src/param/JasFunction.java b/prism/src/param/JasFunction.java index 4bdf5f2eb3..a6be30e4d3 100644 --- a/prism/src/param/JasFunction.java +++ b/prism/src/param/JasFunction.java @@ -200,7 +200,22 @@ public Function divide(Function other) } return new JasFunction((JasFunctionFactory) factory, jas.divide(((JasFunction) other).jas), NORMAL); } - + + @Override + public Function pow(int exp) + { + if (this.isNaN()) { + return factory.getNaN(); + } + if (this.isInf()) { + return factory.getMInf(); + } + if (this.isMInf()) { + return factory.getMInf(); + } + return new JasFunction((JasFunctionFactory) factory, jas.power(exp), NORMAL); + } + @Override public Function star() { diff --git a/prism/src/param/ParamModelChecker.java b/prism/src/param/ParamModelChecker.java index bea6b2a6cb..a0da12fceb 100644 --- a/prism/src/param/ParamModelChecker.java +++ b/prism/src/param/ParamModelChecker.java @@ -327,6 +327,9 @@ private int parserBinaryOpToRegionOp(int parserOp) throws PrismException case ExpressionBinaryOp.DIVIDE: regionOp = Region.DIVIDE; break; + case ExpressionBinaryOp.POW: + regionOp = Region.POW; + break; default: throw new PrismNotSupportedException("operator \"" + ExpressionBinaryOp.opSymbols[parserOp] + "\" not currently supported for " + mode + " analyses"); diff --git a/prism/src/param/Region.java b/prism/src/param/Region.java index 302dc21488..3cc0599dbe 100644 --- a/prism/src/param/Region.java +++ b/prism/src/param/Region.java @@ -59,7 +59,8 @@ abstract class Region { static final int PARENTH = 20; static final int FORALL = 21; static final int EXISTS = 22; - static final String opSymbols[] = { "", "=>", "<=>", "|", "&", "=", "!=", ">", ">=", "<", "<=", "+", "-", "*", "/", "1st", "avg", "-", "!", "()", "forall", "exists"}; + static final int POW = 23; + static final String opSymbols[] = { "", "=>", "<=>", "|", "&", "=", "!=", ">", ">=", "<", "<=", "+", "-", "*", "/", "1st", "avg", "-", "!", "()", "forall", "exists", "^" }; /** region factory to which this region belongs */ protected RegionFactory factory; diff --git a/prism/src/parser/PrismParser.java b/prism/src/parser/PrismParser.java index 37612dff21..85735651b8 100644 --- a/prism/src/parser/PrismParser.java +++ b/prism/src/parser/PrismParser.java @@ -2505,7 +2505,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression int op; Token begin = null; begin = getToken(1); - ret = ExpressionUnaryMinus(prop, pathprop); + ret = ExpressionPower(prop, pathprop); label_25: while (true) { switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { @@ -2534,13 +2534,35 @@ static class ExpressionPair { public Expression expr1 = null; public Expression jj_consume_token(-1); throw new ParseException(); } - expr = ExpressionUnaryMinus(prop, pathprop); + expr = ExpressionPower(prop, pathprop); ret = new ExpressionBinaryOp(op, ret, expr); ret.setPosition(begin, getToken(0)); } {if ("" != null) return ret;} throw new Error("Missing return statement in function"); } +// Expression: power (^) + static final public +Expression ExpressionPower(boolean prop, boolean pathprop) throws ParseException {Expression ret, expr; + int op; + Token begin = null; +begin = getToken(1); + ret = ExpressionUnaryMinus(prop, pathprop); + switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { + case POWER:{ + jj_consume_token(POWER); + expr = ExpressionPower(prop, pathprop); +ret = new ExpressionBinaryOp(ExpressionBinaryOp.POW, ret, expr); ret.setPosition(begin, getToken(0)); + break; + } + default: + jj_la1[63] = jj_gen; + ; + } +{if ("" != null) return ret;} + throw new Error("Missing return statement in function"); +} + // Expression: unary minus static final public Expression ExpressionUnaryMinus(boolean prop, boolean pathprop) throws ParseException {Expression ret, expr; @@ -2586,7 +2608,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[63] = jj_gen; + jj_la1[64] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2669,7 +2691,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[64] = jj_gen; + jj_la1[65] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2701,7 +2723,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[65] = jj_gen; + jj_la1[66] = jj_gen; ; } ret.setPosition(begin, getToken(0)); {if ("" != null) return ret;} @@ -2725,7 +2747,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[66] = jj_gen; + jj_la1[67] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2760,7 +2782,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[67] = jj_gen; + jj_la1[68] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2785,7 +2807,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[68] = jj_gen; + jj_la1[69] = jj_gen; break label_26; } jj_consume_token(COMMA); @@ -2837,7 +2859,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[69] = jj_gen; + jj_la1[70] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2897,7 +2919,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[70] = jj_gen; + jj_la1[71] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { @@ -2940,7 +2962,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[71] = jj_gen; + jj_la1[72] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2970,7 +2992,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[72] = jj_gen; + jj_la1[73] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3005,7 +3027,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[73] = jj_gen; + jj_la1[74] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3054,7 +3076,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[74] = jj_gen; + jj_la1[75] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3066,7 +3088,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[75] = jj_gen; + jj_la1[76] = jj_gen; ; } jj_consume_token(RBRACKET); @@ -3105,7 +3127,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[76] = jj_gen; + jj_la1[77] = jj_gen; break label_27; } jj_consume_token(LBRACE); @@ -3121,7 +3143,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[77] = jj_gen; + jj_la1[78] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3159,7 +3181,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[78] = jj_gen; + jj_la1[79] = jj_gen; ; } r = LtGt(); @@ -3174,7 +3196,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[79] = jj_gen; + jj_la1[80] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3186,7 +3208,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[80] = jj_gen; + jj_la1[81] = jj_gen; ; } jj_consume_token(RBRACKET); @@ -3231,7 +3253,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[81] = jj_gen; + jj_la1[82] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { @@ -3240,7 +3262,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[82] = jj_gen; + jj_la1[83] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { @@ -3283,7 +3305,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[83] = jj_gen; + jj_la1[84] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3313,7 +3335,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[84] = jj_gen; + jj_la1[85] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3348,7 +3370,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[85] = jj_gen; + jj_la1[86] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3397,7 +3419,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[86] = jj_gen; + jj_la1[87] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3409,7 +3431,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[87] = jj_gen; + jj_la1[88] = jj_gen; ; } jj_consume_token(RBRACKET); @@ -3481,7 +3503,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[88] = jj_gen; + jj_la1[89] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3536,7 +3558,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[89] = jj_gen; + jj_la1[90] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3545,7 +3567,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[90] = jj_gen; + jj_la1[91] = jj_gen; ; } exprRew.setRewardStructIndex(index); @@ -3576,7 +3598,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[91] = jj_gen; + jj_la1[92] = jj_gen; if (jj_2_18(2147483647)) { begin = jj_consume_token(C); jj_consume_token(LE); @@ -3636,7 +3658,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[92] = jj_gen; + jj_la1[93] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3701,7 +3723,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[93] = jj_gen; + jj_la1[94] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3742,7 +3764,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[94] = jj_gen; + jj_la1[95] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3755,7 +3777,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[95] = jj_gen; + jj_la1[96] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3775,7 +3797,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[98] = jj_gen; + jj_la1[99] = jj_gen; switch ((jj_ntk==-1)?jj_ntk_f():jj_ntk) { case REG_INT: case REG_IDENT:{ @@ -3789,7 +3811,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[96] = jj_gen; + jj_la1[97] = jj_gen; break label_28; } jj_consume_token(COMMA); @@ -3799,7 +3821,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[97] = jj_gen; + jj_la1[98] = jj_gen; ; } exprStrat.setCoalition(coalition); @@ -3819,7 +3841,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[99] = jj_gen; + jj_la1[100] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3846,7 +3868,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[100] = jj_gen; + jj_la1[101] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3897,7 +3919,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[101] = jj_gen; + jj_la1[102] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3910,7 +3932,7 @@ static class ExpressionPair { public Expression expr1 = null; public Expression break; } default: - jj_la1[102] = jj_gen; + jj_la1[103] = jj_gen; ; } jj_consume_token(RPARENTH); @@ -3959,7 +3981,7 @@ String Identifier() throws ParseException { break; } default: - jj_la1[103] = jj_gen; + jj_la1[104] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -3996,7 +4018,7 @@ int EqNeq() throws ParseException { break; } default: - jj_la1[104] = jj_gen; + jj_la1[105] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4028,7 +4050,7 @@ int LtGt() throws ParseException { break; } default: - jj_la1[105] = jj_gen; + jj_la1[106] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -4054,7 +4076,7 @@ int LtGt() throws ParseException { break; } default: - jj_la1[106] = jj_gen; + jj_la1[107] = jj_gen; ; } jj_consume_token(0); @@ -4211,97 +4233,75 @@ static private boolean jj_2_18(int xla) finally { jj_save(17, xla); } } - static private boolean jj_3R_ExpressionStrategy_1897_11_185() - { - if (jj_3R_ExpressionParenth_1577_9_146()) return true; - return false; - } - - static private boolean jj_3R_SystemHideRename_1130_11_81() + static private boolean jj_3R_ExpressionStrategy_1905_9_153() { - if (jj_scan_token(LBRACE)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; - if (jj_scan_token(RENAME)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_SystemHideRename_1133_19_91()) { jj_scanpos = xsp; break; } + xsp = jj_scanpos; + if (jj_3R_ExpressionStrategy_1908_10_184()) { + jj_scanpos = xsp; + if (jj_3R_ExpressionStrategy_1909_11_185()) return true; + } + xsp = jj_scanpos; + if (jj_3R_ExpressionStrategy_1912_9_186()) { + jj_scanpos = xsp; + if (jj_3R_ExpressionStrategy_1914_11_187()) return true; } - if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_SystemInterleaved_1071_70_50() + static private boolean jj_3R_ExpressionFuncMinMax_1518_11_161() { - if (jj_scan_token(OR)) return true; - if (jj_scan_token(OR)) return true; - if (jj_scan_token(OR)) return true; - if (jj_3R_SystemFullParallel_1046_9_35()) return true; + if (jj_scan_token(MIN)) return true; return false; } - static private boolean jj_3R_ExpressionFuncOldStyle_1515_9_145() + static private boolean jj_3R_ExpressionFuncMinMax_1518_9_146() { - if (jj_scan_token(FUNC)) return true; - if (jj_scan_token(LPARENTH)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionFuncOldStyle_1515_37_162()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionFuncOldStyle_1515_60_163()) { + if (jj_3R_ExpressionFuncMinMax_1518_11_161()) { jj_scanpos = xsp; - if (jj_3R_ExpressionFuncOldStyle_1515_83_164()) return true; + if (jj_3R_ExpressionFuncMinMax_1518_42_162()) return true; } - } - if (jj_scan_token(COMMA)) return true; - if (jj_3R_ExpressionFuncArgs_1527_9_161()) return true; + if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_ExpressionFuncArgs_1544_9_163()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_ExpressionStrategy_1895_11_222() - { - if (jj_3R_ExpressionProb_1618_9_147()) return true; - return false; - } - - static private boolean jj_3_4() - { - if (jj_scan_token(LABEL)) return true; - return false; - } - - static private boolean jj_3R_ExpressionStrategy_1895_9_184() + static private boolean jj_3R_SystemHideRename_1131_11_81() { + if (jj_scan_token(LBRACE)) return true; + if (jj_3R_Identifier_2004_9_29()) return true; + if (jj_scan_token(RENAME)) return true; + if (jj_3R_Identifier_2004_9_29()) return true; Token xsp; - xsp = jj_scanpos; - if (jj_3R_ExpressionStrategy_1895_11_222()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionStrategy_1895_51_223()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_SystemHideRename_1134_19_91()) { jj_scanpos = xsp; break; } } + if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_ExpressionStrategy_1892_11_183() + static private boolean jj_3R_SystemInterleaved_1072_70_50() { - if (jj_scan_token(DLBRACKET)) return true; - if (jj_3R_ExpressionStrategyCoalition_1914_9_221()) return true; - if (jj_scan_token(DRBRACKET)) return true; + if (jj_scan_token(OR)) return true; + if (jj_scan_token(OR)) return true; + if (jj_scan_token(OR)) return true; + if (jj_3R_SystemFullParallel_1047_9_35()) return true; return false; } - static private boolean jj_3R_RewardIndex_1800_101_244() + static private boolean jj_3_4() { - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_scan_token(LABEL)) return true; return false; } - static private boolean jj_3R_ExpressionStrategy_1891_10_182() + static private boolean jj_3R_RewardIndex_1815_87_242() { - if (jj_scan_token(DLT)) return true; - if (jj_3R_ExpressionStrategyCoalition_1914_9_221()) return true; - if (jj_scan_token(DGT)) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } @@ -4312,64 +4312,50 @@ static private boolean jj_3_3() return false; } - static private boolean jj_3R_SystemHideRename_1124_9_80() + static private boolean jj_3R_SystemHideRename_1125_9_80() { if (jj_scan_token(DIVIDE)) return true; if (jj_scan_token(LBRACE)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_3R_Identifier_2004_9_29()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_SystemHideRename_1126_81_90()) { jj_scanpos = xsp; break; } + if (jj_3R_SystemHideRename_1127_81_90()) { jj_scanpos = xsp; break; } } if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_SystemHideRename_1124_9_69() + static private boolean jj_3R_SystemHideRename_1125_9_69() { Token xsp; xsp = jj_scanpos; - if (jj_3R_SystemHideRename_1124_9_80()) { + if (jj_3R_SystemHideRename_1125_9_80()) { jj_scanpos = xsp; - if (jj_3R_SystemHideRename_1130_11_81()) return true; + if (jj_3R_SystemHideRename_1131_11_81()) return true; } return false; } - static private boolean jj_3R_ExpressionStrategy_1888_9_151() + static private boolean jj_3R_ExpressionFuncOrIdent_1505_11_160() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_ExpressionStrategy_1891_10_182()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionStrategy_1892_11_183()) return true; - } - xsp = jj_scanpos; - if (jj_3R_ExpressionStrategy_1895_9_184()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionStrategy_1897_11_185()) return true; - } + if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_ExpressionFuncArgs_1544_9_163()) return true; + if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_SystemHideRename_1121_9_58() + static private boolean jj_3R_SystemHideRename_1122_9_58() { - if (jj_3R_SystemAtomic_1149_9_68()) return true; + if (jj_3R_SystemAtomic_1150_9_68()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_SystemHideRename_1124_9_69()) { jj_scanpos = xsp; break; } + if (jj_3R_SystemHideRename_1125_9_69()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_ExpressionFuncMinMax_1501_11_159() - { - if (jj_scan_token(MIN)) return true; - return false; - } - static private boolean jj_3_8() { if (jj_scan_token(OR)) return true; @@ -4377,39 +4363,29 @@ static private boolean jj_3_8() return false; } - static private boolean jj_3R_ExpressionFuncMinMax_1501_9_144() + static private boolean jj_3R_ExpressionFuncOrIdent_1503_9_145() { + if (jj_3R_Identifier_2004_9_29()) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionFuncMinMax_1501_11_159()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionFuncMinMax_1501_42_160()) return true; - } - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_ExpressionFuncArgs_1527_9_161()) return true; - if (jj_scan_token(RPARENTH)) return true; + if (jj_3R_ExpressionFuncOrIdent_1505_11_160()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_RewardIndex_1798_87_240() + static private boolean jj_3R_ExpressionForAll_1886_9_152() { - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_scan_token(A)) return true; + if (jj_scan_token(LBRACKET)) return true; + if (jj_3R_Expression_1177_9_38()) return true; + if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_SystemFullParallel_1048_71_43() + static private boolean jj_3R_SystemFullParallel_1049_71_43() { if (jj_scan_token(OR)) return true; if (jj_scan_token(OR)) return true; - if (jj_3R_SystemParallel_1093_9_49()) return true; - return false; - } - - static private boolean jj_3R_ExpressionFuncOrIdent_1488_11_158() - { - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_ExpressionFuncArgs_1527_9_161()) return true; - if (jj_scan_token(RPARENTH)) return true; + if (jj_3R_SystemParallel_1094_9_49()) return true; return false; } @@ -4420,103 +4396,79 @@ static private boolean jj_3_10() return false; } - static private boolean jj_3R_ExpressionFuncOrIdent_1486_9_143() - { - if (jj_3R_Identifier_1987_9_29()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_ExpressionFuncOrIdent_1488_11_158()) jj_scanpos = xsp; - return false; - } - - static private boolean jj_3R_ExpressionForAll_1869_9_150() - { - if (jj_scan_token(A)) return true; - if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_Expression_1176_9_38()) return true; - if (jj_scan_token(RBRACKET)) return true; - return false; - } - - static private boolean jj_3R_SystemParallel_1095_11_59() + static private boolean jj_3R_ExpressionBasic_1481_17_143() { - if (jj_scan_token(OR)) return true; - if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_SystemParallel_1096_65_70()) { jj_scanpos = xsp; break; } - } - if (jj_scan_token(RBRACKET)) return true; - if (jj_scan_token(OR)) return true; - if (jj_3R_SystemHideRename_1121_9_58()) return true; + if (jj_3R_ExpressionFilter_1977_9_155()) return true; return false; } - static private boolean jj_3R_SystemParallel_1093_9_49() + static private boolean jj_3R_ExpressionBasic_1479_17_142() { - if (jj_3R_SystemHideRename_1121_9_58()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_SystemParallel_1095_11_59()) jj_scanpos = xsp; + if (jj_3R_ExpressionLabel_1959_9_154()) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1464_17_141() + static private boolean jj_3R_ExpressionBasic_1477_17_141() { - if (jj_3R_ExpressionFilter_1960_9_153()) return true; + if (jj_3R_ExpressionStrategy_1905_9_153()) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1462_17_140() + static private boolean jj_3R_ExpressionExists_1867_9_151() { - if (jj_3R_ExpressionLabel_1942_9_152()) return true; + if (jj_scan_token(E)) return true; + if (jj_scan_token(LBRACKET)) return true; + if (jj_3R_Expression_1177_9_38()) return true; + if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1460_17_139() + static private boolean jj_3R_ExpressionBasic_1475_17_140() { - if (jj_3R_ExpressionStrategy_1888_9_151()) return true; + if (jj_3R_ExpressionForAll_1886_9_152()) return true; return false; } - static private boolean jj_3R_ExpressionExists_1850_9_149() + static private boolean jj_3R_SystemParallel_1096_11_59() { - if (jj_scan_token(E)) return true; + if (jj_scan_token(OR)) return true; if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Identifier_2004_9_29()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_SystemParallel_1097_65_70()) { jj_scanpos = xsp; break; } + } if (jj_scan_token(RBRACKET)) return true; + if (jj_scan_token(OR)) return true; + if (jj_3R_SystemHideRename_1122_9_58()) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1458_17_138() - { - if (jj_3R_ExpressionForAll_1869_9_150()) return true; - return false; - } - - static private boolean jj_3R_ExpressionBasic_1456_17_137() + static private boolean jj_3R_ExpressionBasic_1473_17_139() { - if (jj_3R_ExpressionExists_1850_9_149()) return true; + if (jj_3R_ExpressionExists_1867_9_151()) return true; return false; } - static private boolean jj_3R_ExpressionTimesDivide_1408_64_127() + static private boolean jj_3R_ExpressionBasic_1471_17_138() { - if (jj_scan_token(DIVIDE)) return true; + if (jj_3R_ExpressionReward_1758_9_150()) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1454_17_136() + static private boolean jj_3R_SystemParallel_1094_9_49() { - if (jj_3R_ExpressionReward_1741_9_148()) return true; + if (jj_3R_SystemHideRename_1122_9_58()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_SystemParallel_1096_11_59()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_ExpressionBasic_1452_17_135() + static private boolean jj_3R_ExpressionBasic_1469_17_137() { - if (jj_3R_ExpressionSS_1697_9_33()) return true; + if (jj_3R_ExpressionSS_1714_9_33()) return true; return false; } @@ -4527,58 +4479,47 @@ static private boolean jj_3_18() return false; } - static private boolean jj_3R_ExpressionBasic_1450_17_134() + static private boolean jj_3R_ExpressionBasic_1467_17_136() { - if (jj_3R_ExpressionProb_1618_9_147()) return true; + if (jj_3R_ExpressionProb_1635_9_149()) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1447_17_133() + static private boolean jj_3R_ExpressionBasic_1464_17_135() { - if (jj_3R_ExpressionParenth_1577_9_146()) return true; + if (jj_3R_ExpressionParenth_1594_9_148()) return true; return false; } - static private boolean jj_3R_ExpressionRewardContents_1835_11_220() + static private boolean jj_3R_ExpressionRewardContents_1852_11_222() { - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1445_17_132() + static private boolean jj_3R_ExpressionBasic_1462_17_134() { - if (jj_3R_ExpressionFuncOldStyle_1515_9_145()) return true; + if (jj_3R_ExpressionFuncOldStyle_1532_9_147()) return true; return false; } static private boolean jj_3_17() { - if (jj_3R_ExpressionSS_1697_9_33()) return true; + if (jj_3R_ExpressionSS_1714_9_33()) return true; return false; } - static private boolean jj_3R_SystemInterleaved_1069_9_42() - { - if (jj_3R_SystemParallel_1093_9_49()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_SystemInterleaved_1071_70_50()) { jj_scanpos = xsp; break; } - } - return false; - } - - static private boolean jj_3R_ExpressionRewardContents_1832_11_219() + static private boolean jj_3R_ExpressionRewardContents_1849_11_221() { if (jj_scan_token(I)) return true; if (jj_scan_token(EQ)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1443_17_131() + static private boolean jj_3R_ExpressionBasic_1460_17_133() { - if (jj_3R_ExpressionFuncMinMax_1501_9_144()) return true; + if (jj_3R_ExpressionFuncMinMax_1518_9_146()) return true; return false; } @@ -4588,88 +4529,79 @@ static private boolean jj_3_16() return false; } - static private boolean jj_3R_ExpressionRewardContents_1831_11_218() + static private boolean jj_3R_ExpressionRewardContents_1848_11_220() { if (jj_scan_token(C)) return true; return false; } - static private boolean jj_3R_ExpressionRewardContents_1830_11_217() + static private boolean jj_3R_ExpressionRewardContents_1847_11_219() { if (jj_scan_token(C)) return true; if (jj_scan_token(LE)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1441_17_130() + static private boolean jj_3R_ExpressionBasic_1458_17_132() { - if (jj_3R_ExpressionFuncOrIdent_1486_9_143()) return true; + if (jj_3R_ExpressionFuncOrIdent_1503_9_145()) return true; return false; } - static private boolean jj_3R_ExpressionBasic_1439_17_129() + static private boolean jj_3R_ExpressionTimesDivide_1409_64_127() { - if (jj_3R_ExpressionLiteral_1537_9_142()) return true; - return false; - } - - static private boolean jj_3R_ExpressionRewardContents_1827_11_216() - { - if (jj_scan_token(S)) return true; + if (jj_scan_token(DIVIDE)) return true; return false; } - static private boolean jj_3R_ExpressionReward_1769_69_181() + static private boolean jj_3R_ExpressionBasic_1456_17_131() { - if (jj_3R_Filter_1673_9_47()) return true; + if (jj_3R_ExpressionLiteral_1554_9_144()) return true; return false; } - static private boolean jj_3R_ExpressionPlusMinus_1391_62_123() + static private boolean jj_3R_ExpressionRewardContents_1844_11_218() { - if (jj_scan_token(MINUS)) return true; + if (jj_scan_token(S)) return true; return false; } - static private boolean jj_3R_ExpressionRewardContents_1826_9_215() + static private boolean jj_3R_ExpressionReward_1786_69_183() { - if (jj_3R_ExpressionSS_1697_9_33()) return true; + if (jj_3R_Filter_1690_9_47()) return true; return false; } - static private boolean jj_3_2() + static private boolean jj_3R_ExpressionRewardContents_1843_9_217() { - if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; - if (jj_scan_token(DQUOTE)) return true; - if (jj_scan_token(COLON)) return true; + if (jj_3R_ExpressionSS_1714_9_33()) return true; return false; } - static private boolean jj_3R_RewardIndex_1800_33_243() + static private boolean jj_3R_RewardIndex_1817_33_245() { if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_3R_Identifier_2004_9_29()) return true; if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_ExpressionRewardContents_1823_9_180() + static private boolean jj_3R_ExpressionRewardContents_1840_9_182() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionRewardContents_1826_9_215()) { + if (jj_3R_ExpressionRewardContents_1843_9_217()) { jj_scanpos = xsp; - if (jj_3R_ExpressionRewardContents_1827_11_216()) { + if (jj_3R_ExpressionRewardContents_1844_11_218()) { jj_scanpos = xsp; - if (jj_3R_ExpressionRewardContents_1830_11_217()) { + if (jj_3R_ExpressionRewardContents_1847_11_219()) { jj_scanpos = xsp; - if (jj_3R_ExpressionRewardContents_1831_11_218()) { + if (jj_3R_ExpressionRewardContents_1848_11_220()) { jj_scanpos = xsp; - if (jj_3R_ExpressionRewardContents_1832_11_219()) { + if (jj_3R_ExpressionRewardContents_1849_11_221()) { jj_scanpos = xsp; - if (jj_3R_ExpressionRewardContents_1835_11_220()) return true; + if (jj_3R_ExpressionRewardContents_1852_11_222()) return true; } } } @@ -4678,35 +4610,35 @@ static private boolean jj_3R_ExpressionRewardContents_1823_9_180() return false; } - static private boolean jj_3R_ExpressionBasic_1438_9_128() + static private boolean jj_3R_ExpressionBasic_1455_9_130() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionBasic_1439_17_129()) { + if (jj_3R_ExpressionBasic_1456_17_131()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1441_17_130()) { + if (jj_3R_ExpressionBasic_1458_17_132()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1443_17_131()) { + if (jj_3R_ExpressionBasic_1460_17_133()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1445_17_132()) { + if (jj_3R_ExpressionBasic_1462_17_134()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1447_17_133()) { + if (jj_3R_ExpressionBasic_1464_17_135()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1450_17_134()) { + if (jj_3R_ExpressionBasic_1467_17_136()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1452_17_135()) { + if (jj_3R_ExpressionBasic_1469_17_137()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1454_17_136()) { + if (jj_3R_ExpressionBasic_1471_17_138()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1456_17_137()) { + if (jj_3R_ExpressionBasic_1473_17_139()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1458_17_138()) { + if (jj_3R_ExpressionBasic_1475_17_140()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1460_17_139()) { + if (jj_3R_ExpressionBasic_1477_17_141()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1462_17_140()) { + if (jj_3R_ExpressionBasic_1479_17_142()) { jj_scanpos = xsp; - if (jj_3R_ExpressionBasic_1464_17_141()) return true; + if (jj_3R_ExpressionBasic_1481_17_143()) return true; } } } @@ -4728,152 +4660,165 @@ static private boolean jj_3_15() return false; } - static private boolean jj_3R_ExpressionUnaryMinus_1426_17_125() + static private boolean jj_3R_SystemInterleaved_1070_9_42() + { + if (jj_3R_SystemParallel_1094_9_49()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_SystemInterleaved_1072_70_50()) { jj_scanpos = xsp; break; } + } + return false; + } + + static private boolean jj_3R_ExpressionUnaryMinus_1443_17_129() { - if (jj_3R_ExpressionBasic_1438_9_128()) return true; + if (jj_3R_ExpressionBasic_1455_9_130()) return true; return false; } - static private boolean jj_3R_ExpressionUnaryMinus_1423_17_124() + static private boolean jj_3R_ExpressionUnaryMinus_1440_17_128() { if (jj_scan_token(MINUS)) return true; - if (jj_3R_ExpressionUnaryMinus_1422_9_120()) return true; + if (jj_3R_ExpressionUnaryMinus_1439_9_124()) return true; return false; } - static private boolean jj_3R_SystemFullParallel_1046_9_35() + static private boolean jj_3R_RewardIndex_1815_22_241() { - if (jj_3R_SystemInterleaved_1069_9_42()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_SystemFullParallel_1048_71_43()) { jj_scanpos = xsp; break; } - } + if (jj_scan_token(DQUOTE)) return true; + if (jj_3R_Identifier_2004_9_29()) return true; + if (jj_scan_token(DQUOTE)) return true; + return false; + } + + static private boolean jj_3R_ExpressionPlusMinus_1392_62_123() + { + if (jj_scan_token(MINUS)) return true; return false; } - static private boolean jj_3R_RewardIndex_1798_22_239() + static private boolean jj_3_2() { if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_3R_Identifier_2004_9_29()) return true; if (jj_scan_token(DQUOTE)) return true; + if (jj_scan_token(COLON)) return true; return false; } - static private boolean jj_3R_ExpressionUnaryMinus_1422_9_120() + static private boolean jj_3R_ExpressionUnaryMinus_1439_9_124() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionUnaryMinus_1423_17_124()) { + if (jj_3R_ExpressionUnaryMinus_1440_17_128()) { jj_scanpos = xsp; - if (jj_3R_ExpressionUnaryMinus_1426_17_125()) return true; + if (jj_3R_ExpressionUnaryMinus_1443_17_129()) return true; } return false; } - static private boolean jj_3R_RewardIndex_1800_11_241() + static private boolean jj_3R_RewardIndex_1817_11_243() { if (jj_scan_token(DIVIDE)) return true; if (jj_scan_token(LBRACE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_RewardIndex_1800_33_243()) { + if (jj_3R_RewardIndex_1817_33_245()) { jj_scanpos = xsp; - if (jj_3R_RewardIndex_1800_101_244()) return true; + if (jj_3R_RewardIndex_1817_101_246()) return true; } if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_ExpressionTimesDivide_1408_19_126() - { - if (jj_scan_token(TIMES)) return true; - return false; - } - - static private boolean jj_3R_SystemDefn_1033_9_31() + static private boolean jj_3R_ExpressionPower_1426_17_125() { - if (jj_3R_SystemFullParallel_1046_9_35()) return true; + if (jj_scan_token(POWER)) return true; + if (jj_3R_ExpressionPower_1424_9_120()) return true; return false; } - static private boolean jj_3R_ExpressionTimesDivide_1408_17_121() + static private boolean jj_3R_RewardIndex_1815_9_232() { + if (jj_scan_token(LBRACE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionTimesDivide_1408_19_126()) { + if (jj_3R_RewardIndex_1815_22_241()) { jj_scanpos = xsp; - if (jj_3R_ExpressionTimesDivide_1408_64_127()) return true; + if (jj_3R_RewardIndex_1815_87_242()) return true; } - if (jj_3R_ExpressionUnaryMinus_1422_9_120()) return true; + if (jj_scan_token(RBRACE)) return true; + xsp = jj_scanpos; + if (jj_3R_RewardIndex_1817_11_243()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_RewardIndex_1798_9_230() + static private boolean jj_3R_SystemFullParallel_1047_9_35() { - if (jj_scan_token(LBRACE)) return true; + if (jj_3R_SystemInterleaved_1070_9_42()) return true; Token xsp; - xsp = jj_scanpos; - if (jj_3R_RewardIndex_1798_22_239()) { - jj_scanpos = xsp; - if (jj_3R_RewardIndex_1798_87_240()) return true; + while (true) { + xsp = jj_scanpos; + if (jj_3R_SystemFullParallel_1049_71_43()) { jj_scanpos = xsp; break; } } - if (jj_scan_token(RBRACE)) return true; - xsp = jj_scanpos; - if (jj_3R_RewardIndex_1800_11_241()) jj_scanpos = xsp; return false; } - static private boolean jj_3_7() + static private boolean jj_3R_ExpressionPower_1424_9_120() { - if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; - if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_SystemDefn_1033_9_31()) return true; + if (jj_3R_ExpressionUnaryMinus_1439_9_124()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_ExpressionPower_1426_17_125()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_ExpressionTimesDivide_1406_9_116() + static private boolean jj_3R_ExpressionTimesDivide_1409_19_126() { - if (jj_3R_ExpressionUnaryMinus_1422_9_120()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_ExpressionTimesDivide_1408_17_121()) { jj_scanpos = xsp; break; } - } + if (jj_scan_token(TIMES)) return true; return false; } - static private boolean jj_3R_ExpressionPlusMinus_1391_19_122() + static private boolean jj_3R_SystemDefn_1034_9_31() { - if (jj_scan_token(PLUS)) return true; + if (jj_3R_SystemFullParallel_1047_9_35()) return true; return false; } - static private boolean jj_3R_ExpressionPlusMinus_1391_17_117() + static private boolean jj_3R_ExpressionTimesDivide_1409_17_121() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionPlusMinus_1391_19_122()) { + if (jj_3R_ExpressionTimesDivide_1409_19_126()) { jj_scanpos = xsp; - if (jj_3R_ExpressionPlusMinus_1391_62_123()) return true; + if (jj_3R_ExpressionTimesDivide_1409_64_127()) return true; } - if (jj_3R_ExpressionTimesDivide_1406_9_116()) return true; + if (jj_3R_ExpressionPower_1424_9_120()) return true; + return false; + } + + static private boolean jj_3_7() + { + if (jj_scan_token(DQUOTE)) return true; + if (jj_3R_Identifier_2004_9_29()) return true; + if (jj_scan_token(DQUOTE)) return true; + if (jj_3R_SystemDefn_1034_9_31()) return true; return false; } - static private boolean jj_3R_ExpressionPlusMinus_1389_9_113() + static private boolean jj_3R_ExpressionTimesDivide_1407_9_116() { - if (jj_3R_ExpressionTimesDivide_1406_9_116()) return true; + if (jj_3R_ExpressionPower_1424_9_120()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_ExpressionPlusMinus_1391_17_117()) { jj_scanpos = xsp; break; } + if (jj_3R_ExpressionTimesDivide_1409_17_121()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_ExpressionReward_1754_26_236() + static private boolean jj_3R_ExpressionReward_1771_26_238() { if (jj_scan_token(MAX)) return true; if (jj_scan_token(EQ)) return true; @@ -4881,7 +4826,7 @@ static private boolean jj_3R_ExpressionReward_1754_26_236() return false; } - static private boolean jj_3R_ExpressionReward_1753_26_235() + static private boolean jj_3R_ExpressionReward_1770_26_237() { if (jj_scan_token(MIN)) return true; if (jj_scan_token(EQ)) return true; @@ -4889,14 +4834,14 @@ static private boolean jj_3R_ExpressionReward_1753_26_235() return false; } - static private boolean jj_3R_ExpressionReward_1752_26_234() + static private boolean jj_3R_ExpressionReward_1769_26_236() { if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_ExpressionReward_1767_10_179() + static private boolean jj_3R_ExpressionReward_1784_10_181() { if (jj_scan_token(RMAXMAX)) return true; if (jj_scan_token(EQ)) return true; @@ -4904,7 +4849,13 @@ static private boolean jj_3R_ExpressionReward_1767_10_179() return false; } - static private boolean jj_3R_ExpressionReward_1750_26_233() + static private boolean jj_3R_ExpressionPlusMinus_1392_19_122() + { + if (jj_scan_token(PLUS)) return true; + return false; + } + + static private boolean jj_3R_ExpressionReward_1767_26_235() { if (jj_scan_token(MAX)) return true; if (jj_scan_token(EQ)) return true; @@ -4912,7 +4863,7 @@ static private boolean jj_3R_ExpressionReward_1750_26_233() return false; } - static private boolean jj_3R_ExpressionReward_1759_17_214() + static private boolean jj_3R_ExpressionReward_1776_17_216() { if (jj_scan_token(MAXMAX)) return true; if (jj_scan_token(EQ)) return true; @@ -4920,7 +4871,7 @@ static private boolean jj_3R_ExpressionReward_1759_17_214() return false; } - static private boolean jj_3R_ExpressionReward_1766_10_178() + static private boolean jj_3R_ExpressionReward_1783_10_180() { if (jj_scan_token(RMAXMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -4928,7 +4879,7 @@ static private boolean jj_3R_ExpressionReward_1766_10_178() return false; } - static private boolean jj_3R_ExpressionReward_1749_26_232() + static private boolean jj_3R_ExpressionReward_1766_26_234() { if (jj_scan_token(MIN)) return true; if (jj_scan_token(EQ)) return true; @@ -4936,7 +4887,7 @@ static private boolean jj_3R_ExpressionReward_1749_26_232() return false; } - static private boolean jj_3R_ExpressionReward_1758_17_213() + static private boolean jj_3R_ExpressionReward_1775_17_215() { if (jj_scan_token(MAXMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -4944,7 +4895,7 @@ static private boolean jj_3R_ExpressionReward_1758_17_213() return false; } - static private boolean jj_3R_ExpressionReward_1765_10_177() + static private boolean jj_3R_ExpressionReward_1782_10_179() { if (jj_scan_token(RMINMAX)) return true; if (jj_scan_token(EQ)) return true; @@ -4952,14 +4903,26 @@ static private boolean jj_3R_ExpressionReward_1765_10_177() return false; } - static private boolean jj_3R_ExpressionReward_1748_26_231() + static private boolean jj_3R_ExpressionPlusMinus_1392_17_117() { - if (jj_scan_token(EQ)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_ExpressionPlusMinus_1392_19_122()) { + jj_scanpos = xsp; + if (jj_3R_ExpressionPlusMinus_1392_62_123()) return true; + } + if (jj_3R_ExpressionTimesDivide_1407_9_116()) return true; + return false; + } + + static private boolean jj_3R_ExpressionReward_1765_26_233() + { + if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_ExpressionReward_1757_17_212() + static private boolean jj_3R_ExpressionReward_1774_17_214() { if (jj_scan_token(MINMAX)) return true; if (jj_scan_token(EQ)) return true; @@ -4967,7 +4930,7 @@ static private boolean jj_3R_ExpressionReward_1757_17_212() return false; } - static private boolean jj_3R_ExpressionReward_1764_10_176() + static private boolean jj_3R_ExpressionReward_1781_10_178() { if (jj_scan_token(RMINMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -4975,7 +4938,7 @@ static private boolean jj_3R_ExpressionReward_1764_10_176() return false; } - static private boolean jj_3R_ExpressionReward_1756_17_211() + static private boolean jj_3R_ExpressionReward_1773_17_213() { if (jj_scan_token(MINMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -4983,7 +4946,7 @@ static private boolean jj_3R_ExpressionReward_1756_17_211() return false; } - static private boolean jj_3R_ExpressionReward_1763_10_175() + static private boolean jj_3R_ExpressionReward_1780_10_177() { if (jj_scan_token(RMAX)) return true; if (jj_scan_token(EQ)) return true; @@ -4991,7 +4954,7 @@ static private boolean jj_3R_ExpressionReward_1763_10_175() return false; } - static private boolean jj_3R_ExpressionReward_1762_10_174() + static private boolean jj_3R_ExpressionReward_1779_10_176() { if (jj_scan_token(RMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -4999,112 +4962,105 @@ static private boolean jj_3R_ExpressionReward_1762_10_174() return false; } - static private boolean jj_3R_ExpressionReward_1752_17_210() + static private boolean jj_3R_ExpressionReward_1769_17_212() { if (jj_scan_token(MAX)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionReward_1752_26_234()) { + if (jj_3R_ExpressionReward_1769_26_236()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1753_26_235()) { + if (jj_3R_ExpressionReward_1770_26_237()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1754_26_236()) return true; + if (jj_3R_ExpressionReward_1771_26_238()) return true; } } return false; } - static private boolean jj_3R_ExpressionReward_1748_17_209() + static private boolean jj_3R_ExpressionReward_1765_17_211() { if (jj_scan_token(MIN)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionReward_1748_26_231()) { + if (jj_3R_ExpressionReward_1765_26_233()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1749_26_232()) { + if (jj_3R_ExpressionReward_1766_26_234()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1750_26_233()) return true; + if (jj_3R_ExpressionReward_1767_26_235()) return true; } } return false; } - static private boolean jj_3R_ExpressionReward_1747_17_208() + static private boolean jj_3R_ExpressionPlusMinus_1390_9_113() { - if (jj_scan_token(EQ)) return true; - if (jj_scan_token(QMARK)) return true; - return false; - } - - static private boolean jj_3R_ExpressionReward_1746_18_207() - { - if (jj_3R_LtGt_2048_9_45()) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_ExpressionTimesDivide_1407_9_116()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_ExpressionPlusMinus_1392_17_117()) { jj_scanpos = xsp; break; } + } return false; } - static private boolean jj_3R_ExpressionReward_1745_18_206() + static private boolean jj_3R_ExpressionReward_1764_17_210() { - if (jj_3R_RewardIndex_1798_9_230()) return true; + if (jj_scan_token(EQ)) return true; + if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_ExpressionReward_1744_19_205() + static private boolean jj_3R_ExpressionReward_1763_18_209() { - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_IdentifierExpression_1998_9_32()) return true; - if (jj_scan_token(RPARENTH)) return true; + if (jj_3R_LtGt_2065_9_45()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionRelop_1369_11_114() + static private boolean jj_3R_ExpressionReward_1762_18_208() { - if (jj_3R_LtGt_2048_9_45()) return true; - if (jj_3R_ExpressionPlusMinus_1389_9_113()) return true; + if (jj_3R_RewardIndex_1815_9_232()) return true; return false; } - static private boolean jj_3R_ExpressionRelop_1368_9_111() + static private boolean jj_3R_ExpressionReward_1761_19_207() { - if (jj_3R_ExpressionPlusMinus_1389_9_113()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_ExpressionRelop_1369_11_114()) { jj_scanpos = xsp; break; } - } + if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_IdentifierExpression_2015_9_32()) return true; + if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_ExpressionSS_1705_55_39() + static private boolean jj_3R_ExpressionSS_1722_55_39() { - if (jj_3R_Filter_1673_9_47()) return true; + if (jj_3R_Filter_1690_9_47()) return true; return false; } - static private boolean jj_3R_ExpressionReward_1743_10_173() + static private boolean jj_3R_ExpressionReward_1760_10_175() { if (jj_scan_token(R)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionReward_1744_19_205()) jj_scanpos = xsp; + if (jj_3R_ExpressionReward_1761_19_207()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionReward_1745_18_206()) jj_scanpos = xsp; + if (jj_3R_ExpressionReward_1762_18_208()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionReward_1746_18_207()) { + if (jj_3R_ExpressionReward_1763_18_209()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1747_17_208()) { + if (jj_3R_ExpressionReward_1764_17_210()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1748_17_209()) { + if (jj_3R_ExpressionReward_1765_17_211()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1752_17_210()) { + if (jj_3R_ExpressionReward_1769_17_212()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1756_17_211()) { + if (jj_3R_ExpressionReward_1773_17_213()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1757_17_212()) { + if (jj_3R_ExpressionReward_1774_17_214()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1758_17_213()) { + if (jj_3R_ExpressionReward_1775_17_215()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1759_17_214()) return true; + if (jj_3R_ExpressionReward_1776_17_216()) return true; } } } @@ -5115,23 +5071,23 @@ static private boolean jj_3R_ExpressionReward_1743_10_173() return false; } - static private boolean jj_3R_ExpressionReward_1741_9_148() + static private boolean jj_3R_ExpressionReward_1758_9_150() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionReward_1743_10_173()) { + if (jj_3R_ExpressionReward_1760_10_175()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1762_10_174()) { + if (jj_3R_ExpressionReward_1779_10_176()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1763_10_175()) { + if (jj_3R_ExpressionReward_1780_10_177()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1764_10_176()) { + if (jj_3R_ExpressionReward_1781_10_178()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1765_10_177()) { + if (jj_3R_ExpressionReward_1782_10_179()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1766_10_178()) { + if (jj_3R_ExpressionReward_1783_10_180()) { jj_scanpos = xsp; - if (jj_3R_ExpressionReward_1767_10_179()) return true; + if (jj_3R_ExpressionReward_1784_10_181()) return true; } } } @@ -5139,460 +5095,418 @@ static private boolean jj_3R_ExpressionReward_1741_9_148() } } if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_ExpressionRewardContents_1823_9_180()) return true; + if (jj_3R_ExpressionRewardContents_1840_9_182()) return true; xsp = jj_scanpos; - if (jj_3R_ExpressionReward_1769_69_181()) jj_scanpos = xsp; + if (jj_3R_ExpressionReward_1786_69_183()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_ExpressionEquality_1355_11_112() + static private boolean jj_3R_ExpressionRelop_1370_11_114() { - if (jj_3R_EqNeq_2038_9_115()) return true; - if (jj_3R_ExpressionRelop_1368_9_111()) return true; + if (jj_3R_LtGt_2065_9_45()) return true; + if (jj_3R_ExpressionPlusMinus_1390_9_113()) return true; return false; } - static private boolean jj_3R_ExpressionEquality_1354_9_110() + static private boolean jj_3R_ExpressionRelop_1369_9_111() { - if (jj_3R_ExpressionRelop_1368_9_111()) return true; + if (jj_3R_ExpressionPlusMinus_1390_9_113()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_ExpressionEquality_1355_11_112()) { jj_scanpos = xsp; break; } + if (jj_3R_ExpressionRelop_1370_11_114()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3_1() + static private boolean jj_3R_ExpressionEquality_1356_11_112() { - if (jj_scan_token(MODULE)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; - if (jj_scan_token(EQ)) return true; + if (jj_3R_EqNeq_2055_9_115()) return true; + if (jj_3R_ExpressionRelop_1369_9_111()) return true; return false; } - static private boolean jj_3_6() + static private boolean jj_3R_ExpressionEquality_1355_9_110() { - if (jj_scan_token(DQUOTE)) return true; + if (jj_3R_ExpressionRelop_1369_9_111()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_ExpressionEquality_1356_11_112()) { jj_scanpos = xsp; break; } + } return false; } - static private boolean jj_3R_ExpressionNot_1340_17_109() + static private boolean jj_3_1() { - if (jj_3R_ExpressionEquality_1354_9_110()) return true; + if (jj_scan_token(MODULE)) return true; + if (jj_3R_Identifier_2004_9_29()) return true; + if (jj_scan_token(EQ)) return true; return false; } - static private boolean jj_3R_ExpressionNot_1338_17_108() + static private boolean jj_3_6() { - if (jj_scan_token(NOT)) return true; - if (jj_3R_ExpressionNot_1337_9_106()) return true; + if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_TimeBound_1255_99_101() + static private boolean jj_3R_ExpressionNot_1341_17_109() { - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_ExpressionEquality_1355_9_110()) return true; return false; } - static private boolean jj_3R_TimeBound_1254_99_99() + static private boolean jj_3R_ExpressionNot_1339_17_108() { - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_scan_token(NOT)) return true; + if (jj_3R_ExpressionNot_1338_9_106()) return true; return false; } - static private boolean jj_3R_TimeBound_1253_99_97() + static private boolean jj_3R_TimeBound_1256_99_101() { - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_TimeBound_1252_99_95() + static private boolean jj_3R_TimeBound_1255_99_99() { - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionNot_1337_9_106() + static private boolean jj_3R_TimeBound_1254_99_97() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_ExpressionNot_1338_17_108()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionNot_1340_17_109()) return true; - } + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionSS_1702_17_37() + static private boolean jj_3R_ExpressionSS_1719_17_37() { if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_ExpressionSS_1700_19_44() + static private boolean jj_3R_ExpressionSS_1717_19_44() { if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_IdentifierExpression_1998_9_32()) return true; + if (jj_3R_IdentifierExpression_2015_9_32()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_ExpressionAnd_1325_11_107() + static private boolean jj_3R_TimeBound_1253_99_95() { - if (jj_scan_token(AND)) return true; - if (jj_3R_ExpressionNot_1337_9_106()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionSS_1700_17_36() + static private boolean jj_3R_ExpressionSS_1717_17_36() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionSS_1700_19_44()) jj_scanpos = xsp; - if (jj_3R_LtGt_2048_9_45()) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_ExpressionSS_1717_19_44()) jj_scanpos = xsp; + if (jj_3R_LtGt_2065_9_45()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionAnd_1324_9_104() + static private boolean jj_3R_ExpressionNot_1338_9_106() { - if (jj_3R_ExpressionNot_1337_9_106()) return true; Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_ExpressionAnd_1325_11_107()) { jj_scanpos = xsp; break; } + xsp = jj_scanpos; + if (jj_3R_ExpressionNot_1339_17_108()) { + jj_scanpos = xsp; + if (jj_3R_ExpressionNot_1341_17_109()) return true; } return false; } - static private boolean jj_3R_ExpressionOr_1312_11_105() - { - if (jj_scan_token(OR)) return true; - if (jj_3R_ExpressionAnd_1324_9_104()) return true; - return false; - } - - static private boolean jj_3R_ExpressionSS_1697_9_33() + static private boolean jj_3R_ExpressionSS_1714_9_33() { if (jj_scan_token(S)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionSS_1700_17_36()) { + if (jj_3R_ExpressionSS_1717_17_36()) { jj_scanpos = xsp; - if (jj_3R_ExpressionSS_1702_17_37()) return true; + if (jj_3R_ExpressionSS_1719_17_37()) return true; } if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; xsp = jj_scanpos; - if (jj_3R_ExpressionSS_1705_55_39()) jj_scanpos = xsp; + if (jj_3R_ExpressionSS_1722_55_39()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_ExpressionOr_1311_9_102() + static private boolean jj_3R_ExpressionAnd_1326_11_107() { - if (jj_3R_ExpressionAnd_1324_9_104()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_ExpressionOr_1312_11_105()) { jj_scanpos = xsp; break; } - } + if (jj_scan_token(AND)) return true; + if (jj_3R_ExpressionNot_1338_9_106()) return true; return false; } - static private boolean jj_3R_Update_896_36_41() + static private boolean jj_3R_ExpressionAnd_1325_9_104() { - if (jj_scan_token(AND)) return true; - if (jj_3R_UpdateElement_909_9_40()) return true; + if (jj_3R_ExpressionNot_1338_9_106()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_ExpressionAnd_1326_11_107()) { jj_scanpos = xsp; break; } + } return false; } - static private boolean jj_3R_ExpressionProb_1644_51_172() + static private boolean jj_3R_ExpressionProb_1661_51_174() { - if (jj_3R_Filter_1673_9_47()) return true; + if (jj_3R_Filter_1690_9_47()) return true; return false; } - static private boolean jj_3R_Filter_1676_19_67() + static private boolean jj_3R_Filter_1693_19_67() { if (jj_scan_token(MAX)) return true; return false; } - static private boolean jj_3R_Filter_1675_19_66() + static private boolean jj_3R_Filter_1692_19_66() { if (jj_scan_token(MIN)) return true; return false; } - static private boolean jj_3R_ExpressionIff_1299_11_103() + static private boolean jj_3R_ExpressionOr_1313_11_105() { - if (jj_scan_token(IFF)) return true; - if (jj_3R_ExpressionOr_1311_9_102()) return true; + if (jj_scan_token(OR)) return true; + if (jj_3R_ExpressionAnd_1325_9_104()) return true; return false; } - static private boolean jj_3R_ExpressionIff_1298_9_92() + static private boolean jj_3R_ExpressionOr_1312_9_102() { - if (jj_3R_ExpressionOr_1311_9_102()) return true; + if (jj_3R_ExpressionAnd_1325_9_104()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_ExpressionIff_1299_11_103()) { jj_scanpos = xsp; break; } + if (jj_3R_ExpressionOr_1313_11_105()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_Filter_1674_11_57() + static private boolean jj_3R_Filter_1691_11_57() { if (jj_scan_token(LBRACE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_Filter_1675_19_66()) { + if (jj_3R_Filter_1692_19_66()) { jj_scanpos = xsp; - if (jj_3R_Filter_1676_19_67()) return true; + if (jj_3R_Filter_1693_19_67()) return true; } if (jj_scan_token(RBRACE)) return true; return false; } - static private boolean jj_3R_UpdateElement_909_9_40() + static private boolean jj_3R_Update_897_36_41() { - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_IdentifierPrime_2020_9_48()) return true; - if (jj_scan_token(EQ)) return true; - if (jj_3R_Expression_1176_9_38()) return true; - if (jj_scan_token(RPARENTH)) return true; + if (jj_scan_token(AND)) return true; + if (jj_3R_UpdateElement_910_9_40()) return true; return false; } - static private boolean jj_3R_Filter_1673_9_47() + static private boolean jj_3R_Filter_1690_9_47() { if (jj_scan_token(LBRACE)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; if (jj_scan_token(RBRACE)) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_Filter_1674_11_57()) { jj_scanpos = xsp; break; } + if (jj_3R_Filter_1691_11_57()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_ExpressionImplies_1286_11_93() - { - if (jj_scan_token(IMPLIES)) return true; - if (jj_3R_ExpressionImplies_1285_9_82()) return true; - return false; - } - - static private boolean jj_3R_ExpressionImplies_1285_9_82() + static private boolean jj_3R_ExpressionIff_1300_11_103() { - if (jj_3R_ExpressionIff_1298_9_92()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_ExpressionImplies_1286_11_93()) jj_scanpos = xsp; + if (jj_scan_token(IFF)) return true; + if (jj_3R_ExpressionOr_1312_9_102()) return true; return false; } - static private boolean jj_3R_LtGt_2051_9_54() + static private boolean jj_3R_LtGt_2068_9_54() { if (jj_scan_token(LE)) return true; return false; } - static private boolean jj_3R_LtGt_2050_9_53() + static private boolean jj_3R_LtGt_2067_9_53() { if (jj_scan_token(GE)) return true; return false; } - static private boolean jj_3R_LtGt_2049_9_52() + static private boolean jj_3R_LtGt_2066_9_52() { if (jj_scan_token(LT)) return true; return false; } - static private boolean jj_3R_LtGt_2048_9_51() - { - if (jj_scan_token(GT)) return true; - return false; - } - - static private boolean jj_3R_LtGt_2048_9_45() - { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_LtGt_2048_9_51()) { - jj_scanpos = xsp; - if (jj_3R_LtGt_2049_9_52()) { - jj_scanpos = xsp; - if (jj_3R_LtGt_2050_9_53()) { - jj_scanpos = xsp; - if (jj_3R_LtGt_2051_9_54()) return true; - } - } - } - return false; - } - - static private boolean jj_3R_Update_896_10_34() + static private boolean jj_3R_ExpressionIff_1299_9_92() { - if (jj_3R_UpdateElement_909_9_40()) return true; + if (jj_3R_ExpressionOr_1312_9_102()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_Update_896_36_41()) { jj_scanpos = xsp; break; } + if (jj_3R_ExpressionIff_1300_11_103()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_ExpressionITE_1271_17_83() + static private boolean jj_3R_LtGt_2065_9_51() { - if (jj_scan_token(QMARK)) return true; - if (jj_3R_ExpressionImplies_1285_9_82()) return true; - if (jj_scan_token(COLON)) return true; - if (jj_3R_ExpressionITE_1269_9_75()) return true; + if (jj_scan_token(GT)) return true; return false; } - static private boolean jj_3R_Update_894_9_30() + static private boolean jj_3R_LtGt_2065_9_45() { Token xsp; xsp = jj_scanpos; - if (jj_3R_Update_896_10_34()) { + if (jj_3R_LtGt_2065_9_51()) { jj_scanpos = xsp; - if (jj_scan_token(66)) return true; + if (jj_3R_LtGt_2066_9_52()) { + jj_scanpos = xsp; + if (jj_3R_LtGt_2067_9_53()) { + jj_scanpos = xsp; + if (jj_3R_LtGt_2068_9_54()) return true; + } + } } return false; } - static private boolean jj_3_14() - { - if (jj_3R_IdentifierExpression_1998_9_32()) return true; - if (jj_scan_token(LPARENTH)) return true; - return false; - } - - static private boolean jj_3_13() - { - if (jj_3R_IdentifierExpression_1998_9_32()) return true; - if (jj_scan_token(LPARENTH)) return true; - return false; - } - - static private boolean jj_3_12() + static private boolean jj_3R_UpdateElement_910_9_40() { - if (jj_3R_IdentifierExpression_1998_9_32()) return true; if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_IdentifierPrime_2037_9_48()) return true; + if (jj_scan_token(EQ)) return true; + if (jj_3R_Expression_1177_9_38()) return true; + if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3_11() + static private boolean jj_3R_EqNeq_2056_9_119() { - if (jj_3R_IdentifierExpression_1998_9_32()) return true; - if (jj_scan_token(LPARENTH)) return true; + if (jj_scan_token(NE)) return true; return false; } - static private boolean jj_3R_EqNeq_2039_9_119() + static private boolean jj_3R_ExpressionImplies_1287_11_93() { - if (jj_scan_token(NE)) return true; + if (jj_scan_token(IMPLIES)) return true; + if (jj_3R_ExpressionImplies_1286_9_82()) return true; return false; } - static private boolean jj_3R_EqNeq_2038_9_115() + static private boolean jj_3R_EqNeq_2055_9_115() { Token xsp; xsp = jj_scanpos; - if (jj_3R_EqNeq_2038_9_118()) { + if (jj_3R_EqNeq_2055_9_118()) { jj_scanpos = xsp; - if (jj_3R_EqNeq_2039_9_119()) return true; + if (jj_3R_EqNeq_2056_9_119()) return true; } return false; } - static private boolean jj_3R_EqNeq_2038_9_118() + static private boolean jj_3R_EqNeq_2055_9_118() { if (jj_scan_token(EQ)) return true; return false; } - static private boolean jj_3_5() - { - if (jj_3R_Update_894_9_30()) return true; - return false; - } - - static private boolean jj_3R_ExpressionITE_1269_9_75() + static private boolean jj_3R_ExpressionImplies_1286_9_82() { - if (jj_3R_ExpressionImplies_1285_9_82()) return true; + if (jj_3R_ExpressionIff_1299_9_92()) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionITE_1271_17_83()) jj_scanpos = xsp; + if (jj_3R_ExpressionImplies_1287_11_93()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_TimeBound_1255_20_100() + static private boolean jj_3R_Update_897_10_34() { - if (jj_3R_IdentifierExpression_1998_9_32()) return true; + if (jj_3R_UpdateElement_910_9_40()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_Update_897_36_41()) { jj_scanpos = xsp; break; } + } return false; } - static private boolean jj_3R_TimeBound_1254_20_98() + static private boolean jj_3R_ExpressionProb_1646_26_231() { - if (jj_3R_IdentifierExpression_1998_9_32()) return true; + 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_TimeBound_1253_20_96() + static private boolean jj_3R_ExpressionITE_1272_17_83() { - if (jj_3R_IdentifierExpression_1998_9_32()) return true; + if (jj_scan_token(QMARK)) return true; + if (jj_3R_ExpressionImplies_1286_9_82()) return true; + if (jj_scan_token(COLON)) return true; + if (jj_3R_ExpressionITE_1270_9_75()) return true; return false; } - static private boolean jj_3R_ExpressionProb_1629_26_229() + static private boolean jj_3R_ExpressionProb_1645_26_230() { - if (jj_scan_token(MAX)) return true; + 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_TimeBound_1252_20_94() + static private boolean jj_3R_ExpressionProb_1644_26_229() { - if (jj_3R_IdentifierExpression_1998_9_32()) return true; + if (jj_scan_token(EQ)) return true; + if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_ExpressionProb_1628_26_228() + static private boolean jj_3R_Update_895_9_30() { - if (jj_scan_token(MIN)) return true; - if (jj_scan_token(EQ)) return true; - if (jj_scan_token(QMARK)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_Update_897_10_34()) { + jj_scanpos = xsp; + if (jj_scan_token(66)) return true; + } return false; } - static private boolean jj_3R_ExpressionProb_1627_26_227() + static private boolean jj_3R_ExpressionProb_1659_10_173() { + if (jj_scan_token(PMAXMAX)) return true; if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_ExpressionProb_1642_10_171() + static private boolean jj_3_14() { - if (jj_scan_token(PMAXMAX)) return true; - if (jj_scan_token(EQ)) return true; - if (jj_scan_token(QMARK)) return true; + if (jj_3R_IdentifierExpression_2015_9_32()) return true; + if (jj_scan_token(LPARENTH)) return true; return false; } - static private boolean jj_3R_ExpressionProb_1625_26_226() + static private boolean jj_3R_ExpressionProb_1642_26_228() { if (jj_scan_token(MAX)) return true; if (jj_scan_token(EQ)) return true; @@ -5600,7 +5514,7 @@ static private boolean jj_3R_ExpressionProb_1625_26_226() return false; } - static private boolean jj_3R_ExpressionProb_1634_17_204() + static private boolean jj_3R_ExpressionProb_1651_17_206() { if (jj_scan_token(MAXMAX)) return true; if (jj_scan_token(EQ)) return true; @@ -5608,7 +5522,7 @@ static private boolean jj_3R_ExpressionProb_1634_17_204() return false; } - static private boolean jj_3R_ExpressionProb_1641_10_170() + static private boolean jj_3R_ExpressionProb_1658_10_172() { if (jj_scan_token(PMAXMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -5616,14 +5530,14 @@ static private boolean jj_3R_ExpressionProb_1641_10_170() return false; } - static private boolean jj_3R_TimeBound_1257_11_89() + static private boolean jj_3_13() { - if (jj_scan_token(EQ)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_IdentifierExpression_2015_9_32()) return true; + if (jj_scan_token(LPARENTH)) return true; return false; } - static private boolean jj_3R_ExpressionProb_1624_26_225() + static private boolean jj_3R_ExpressionProb_1641_26_227() { if (jj_scan_token(MIN)) return true; if (jj_scan_token(EQ)) return true; @@ -5631,7 +5545,7 @@ static private boolean jj_3R_ExpressionProb_1624_26_225() return false; } - static private boolean jj_3R_ExpressionProb_1633_17_203() + static private boolean jj_3R_ExpressionProb_1650_17_205() { if (jj_scan_token(MAXMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -5639,7 +5553,7 @@ static private boolean jj_3R_ExpressionProb_1633_17_203() return false; } - static private boolean jj_3R_ExpressionProb_1640_10_169() + static private boolean jj_3R_ExpressionProb_1657_10_171() { if (jj_scan_token(PMINMAX)) return true; if (jj_scan_token(EQ)) return true; @@ -5647,24 +5561,21 @@ static private boolean jj_3R_ExpressionProb_1640_10_169() return false; } - static private boolean jj_3R_TimeBound_1256_11_88() + static private boolean jj_3_12() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_Expression_1176_9_38()) return true; - if (jj_scan_token(COMMA)) return true; - if (jj_3R_Expression_1176_9_38()) return true; - if (jj_scan_token(RBRACKET)) return true; + if (jj_3R_IdentifierExpression_2015_9_32()) return true; + if (jj_scan_token(LPARENTH)) return true; return false; } - static private boolean jj_3R_ExpressionProb_1623_26_224() + static private boolean jj_3R_ExpressionProb_1640_26_226() { if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_ExpressionProb_1632_17_202() + static private boolean jj_3R_ExpressionProb_1649_17_204() { if (jj_scan_token(MINMAX)) return true; if (jj_scan_token(EQ)) return true; @@ -5672,7 +5583,7 @@ static private boolean jj_3R_ExpressionProb_1632_17_202() return false; } - static private boolean jj_3R_ExpressionProb_1639_10_168() + static private boolean jj_3R_ExpressionProb_1656_10_170() { if (jj_scan_token(PMINMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -5680,19 +5591,14 @@ static private boolean jj_3R_ExpressionProb_1639_10_168() return false; } - static private boolean jj_3R_TimeBound_1255_11_87() + static private boolean jj_3_11() { - if (jj_scan_token(GT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_TimeBound_1255_20_100()) { - jj_scanpos = xsp; - if (jj_3R_TimeBound_1255_99_101()) return true; - } + if (jj_3R_IdentifierExpression_2015_9_32()) return true; + if (jj_scan_token(LPARENTH)) return true; return false; } - static private boolean jj_3R_ExpressionProb_1631_17_201() + static private boolean jj_3R_ExpressionProb_1648_17_203() { if (jj_scan_token(MINMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -5700,7 +5606,7 @@ static private boolean jj_3R_ExpressionProb_1631_17_201() return false; } - static private boolean jj_3R_ExpressionProb_1638_10_167() + static private boolean jj_3R_ExpressionProb_1655_10_169() { if (jj_scan_token(PMAX)) return true; if (jj_scan_token(EQ)) return true; @@ -5708,19 +5614,7 @@ static private boolean jj_3R_ExpressionProb_1638_10_167() return false; } - static private boolean jj_3R_TimeBound_1254_11_86() - { - if (jj_scan_token(GE)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_TimeBound_1254_20_98()) { - jj_scanpos = xsp; - if (jj_3R_TimeBound_1254_99_99()) return true; - } - return false; - } - - static private boolean jj_3R_ExpressionProb_1637_10_166() + static private boolean jj_3R_ExpressionProb_1654_10_168() { if (jj_scan_token(PMIN)) return true; if (jj_scan_token(EQ)) return true; @@ -5728,169 +5622,184 @@ static private boolean jj_3R_ExpressionProb_1637_10_166() return false; } - static private boolean jj_3R_TimeBound_1253_11_85() + static private boolean jj_3R_ExpressionProb_1638_25_199() { - if (jj_scan_token(LT)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_TimeBound_1253_20_96()) { - jj_scanpos = xsp; - if (jj_3R_TimeBound_1253_99_97()) return true; - } + if (jj_3R_LtGt_2065_9_45()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionProb_1621_25_197() - { - if (jj_3R_LtGt_2048_9_45()) return true; - if (jj_3R_Expression_1176_9_38()) return true; - return false; - } - - static private boolean jj_3R_ExpressionProb_1620_26_196() + static private boolean jj_3R_ExpressionProb_1637_26_198() { if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_IdentifierExpression_1998_9_32()) return true; + if (jj_3R_IdentifierExpression_2015_9_32()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_TimeBound_1252_11_84() + static private boolean jj_3_5() { - if (jj_scan_token(LE)) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_TimeBound_1252_20_94()) { - jj_scanpos = xsp; - if (jj_3R_TimeBound_1252_99_95()) return true; - } + if (jj_3R_Update_895_9_30()) return true; return false; } - static private boolean jj_3R_IdentifierPrime_2020_9_48() + static private boolean jj_3R_IdentifierPrime_2037_9_48() { if (jj_scan_token(REG_IDENTPRIME)) return true; return false; } - static private boolean jj_3R_ExpressionProb_1627_17_200() + static private boolean jj_3R_ExpressionITE_1270_9_75() { - if (jj_scan_token(MAX)) return true; + if (jj_3R_ExpressionImplies_1286_9_82()) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionProb_1627_26_227()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1628_26_228()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1629_26_229()) return true; - } - } + if (jj_3R_ExpressionITE_1272_17_83()) jj_scanpos = xsp; return false; } - static private boolean jj_3R_TimeBound_1252_9_76() + static private boolean jj_3R_ExpressionProb_1644_17_202() { + if (jj_scan_token(MAX)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_TimeBound_1252_11_84()) { - jj_scanpos = xsp; - if (jj_3R_TimeBound_1253_11_85()) { + if (jj_3R_ExpressionProb_1644_26_229()) { jj_scanpos = xsp; - if (jj_3R_TimeBound_1254_11_86()) { + if (jj_3R_ExpressionProb_1645_26_230()) { jj_scanpos = xsp; - if (jj_3R_TimeBound_1255_11_87()) { - jj_scanpos = xsp; - if (jj_3R_TimeBound_1256_11_88()) { - jj_scanpos = xsp; - if (jj_3R_TimeBound_1257_11_89()) return true; - } - } - } + if (jj_3R_ExpressionProb_1646_26_231()) return true; } } return false; } - static private boolean jj_3R_ExpressionProb_1623_17_199() + static private boolean jj_3R_TimeBound_1256_20_100() + { + if (jj_3R_IdentifierExpression_2015_9_32()) return true; + return false; + } + + static private boolean jj_3R_TimeBound_1255_20_98() + { + if (jj_3R_IdentifierExpression_2015_9_32()) return true; + return false; + } + + static private boolean jj_3R_ExpressionProb_1640_17_201() { if (jj_scan_token(MIN)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionProb_1623_26_224()) { + if (jj_3R_ExpressionProb_1640_26_226()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1624_26_225()) { + if (jj_3R_ExpressionProb_1641_26_227()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1625_26_226()) return true; + if (jj_3R_ExpressionProb_1642_26_228()) return true; } } return false; } - static private boolean jj_3R_ExpressionProb_1622_17_198() + static private boolean jj_3R_TimeBound_1254_20_96() + { + if (jj_3R_IdentifierExpression_2015_9_32()) return true; + return false; + } + + static private boolean jj_3R_ExpressionProb_1639_17_200() { if (jj_scan_token(EQ)) return true; if (jj_scan_token(QMARK)) return true; return false; } - static private boolean jj_3R_ExpressionFilter_1966_56_192() + static private boolean jj_3R_ExpressionFilter_1983_56_194() { if (jj_scan_token(OR)) return true; return false; } - static private boolean jj_3R_ExpressionTemporalUnary_1239_17_61() + static private boolean jj_3R_TimeBound_1253_20_94() { - if (jj_3R_ExpressionITE_1269_9_75()) return true; + if (jj_3R_IdentifierExpression_2015_9_32()) return true; return false; } - static private boolean jj_3R_ExpressionTemporalUnary_1235_19_74() + static private boolean jj_3R_TimeBound_1258_11_89() { - if (jj_3R_TimeBound_1252_9_76()) return true; + if (jj_scan_token(EQ)) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionTemporalUnary_1234_19_73() + static private boolean jj_3R_TimeBound_1257_11_88() { - if (jj_scan_token(G)) return true; + if (jj_scan_token(LBRACKET)) return true; + if (jj_3R_Expression_1177_9_38()) return true; + if (jj_scan_token(COMMA)) return true; + if (jj_3R_Expression_1177_9_38()) return true; + if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_ExpressionTemporalUnary_1233_19_72() + static private boolean jj_3R_TimeBound_1256_11_87() { - if (jj_scan_token(F)) return true; + if (jj_scan_token(GT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_TimeBound_1256_20_100()) { + jj_scanpos = xsp; + if (jj_3R_TimeBound_1256_99_101()) return true; + } return false; } - static private boolean jj_3R_ExpressionTemporalUnary_1232_19_71() + static private boolean jj_3R_TimeBound_1255_11_86() { - if (jj_scan_token(X)) return true; + if (jj_scan_token(GE)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_TimeBound_1255_20_98()) { + jj_scanpos = xsp; + if (jj_3R_TimeBound_1255_99_99()) return true; + } + return false; + } + + static private boolean jj_3R_TimeBound_1254_11_85() + { + if (jj_scan_token(LT)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_TimeBound_1254_20_96()) { + jj_scanpos = xsp; + if (jj_3R_TimeBound_1254_99_97()) return true; + } return false; } - static private boolean jj_3R_ExpressionProb_1620_10_165() + static private boolean jj_3R_ExpressionProb_1637_10_167() { if (jj_scan_token(P)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionProb_1620_26_196()) jj_scanpos = xsp; + if (jj_3R_ExpressionProb_1637_26_198()) jj_scanpos = xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionProb_1621_25_197()) { + if (jj_3R_ExpressionProb_1638_25_199()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1622_17_198()) { + if (jj_3R_ExpressionProb_1639_17_200()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1623_17_199()) { + if (jj_3R_ExpressionProb_1640_17_201()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1627_17_200()) { + if (jj_3R_ExpressionProb_1644_17_202()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1631_17_201()) { + if (jj_3R_ExpressionProb_1648_17_203()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1632_17_202()) { + if (jj_3R_ExpressionProb_1649_17_204()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1633_17_203()) { + if (jj_3R_ExpressionProb_1650_17_205()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1634_17_204()) return true; + if (jj_3R_ExpressionProb_1651_17_206()) return true; } } } @@ -5901,40 +5810,58 @@ static private boolean jj_3R_ExpressionProb_1620_10_165() return false; } - static private boolean jj_3R_ExpressionTemporalUnary_1230_17_60() + static private boolean jj_3R_TimeBound_1253_11_84() { + if (jj_scan_token(LE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionTemporalUnary_1232_19_71()) { + if (jj_3R_TimeBound_1253_20_94()) { + jj_scanpos = xsp; + if (jj_3R_TimeBound_1253_99_95()) return true; + } + return false; + } + + static private boolean jj_3R_TimeBound_1253_9_76() + { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_TimeBound_1253_11_84()) { + jj_scanpos = xsp; + if (jj_3R_TimeBound_1254_11_85()) { + jj_scanpos = xsp; + if (jj_3R_TimeBound_1255_11_86()) { + jj_scanpos = xsp; + if (jj_3R_TimeBound_1256_11_87()) { jj_scanpos = xsp; - if (jj_3R_ExpressionTemporalUnary_1233_19_72()) { + if (jj_3R_TimeBound_1257_11_88()) { jj_scanpos = xsp; - if (jj_3R_ExpressionTemporalUnary_1234_19_73()) return true; + if (jj_3R_TimeBound_1258_11_89()) return true; + } + } + } } } - xsp = jj_scanpos; - if (jj_3R_ExpressionTemporalUnary_1235_19_74()) jj_scanpos = xsp; - if (jj_3R_ExpressionTemporalUnary_1228_9_55()) return true; return false; } - static private boolean jj_3R_ExpressionProb_1618_9_147() + static private boolean jj_3R_ExpressionProb_1635_9_149() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionProb_1620_10_165()) { + if (jj_3R_ExpressionProb_1637_10_167()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1637_10_166()) { + if (jj_3R_ExpressionProb_1654_10_168()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1638_10_167()) { + if (jj_3R_ExpressionProb_1655_10_169()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1639_10_168()) { + if (jj_3R_ExpressionProb_1656_10_170()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1640_10_169()) { + if (jj_3R_ExpressionProb_1657_10_171()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1641_10_170()) { + if (jj_3R_ExpressionProb_1658_10_172()) { jj_scanpos = xsp; - if (jj_3R_ExpressionProb_1642_10_171()) return true; + if (jj_3R_ExpressionProb_1659_10_173()) return true; } } } @@ -5942,391 +5869,502 @@ static private boolean jj_3R_ExpressionProb_1618_9_147() } } if (jj_scan_token(LBRACKET)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; xsp = jj_scanpos; - if (jj_3R_ExpressionProb_1644_51_172()) jj_scanpos = xsp; + if (jj_3R_ExpressionProb_1661_51_174()) jj_scanpos = xsp; if (jj_scan_token(RBRACKET)) return true; return false; } - static private boolean jj_3R_IdentifierExpression_1998_9_32() + static private boolean jj_3R_IdentifierExpression_2015_9_32() { - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_3R_Identifier_2004_9_29()) return true; return false; } - static private boolean jj_3R_ExpressionTemporalUnary_1228_9_55() + static private boolean jj_3R_ExpressionTemporalUnary_1240_17_61() { - Token xsp; - xsp = jj_scanpos; - if (jj_3R_ExpressionTemporalUnary_1230_17_60()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionTemporalUnary_1239_17_61()) return true; - } + if (jj_3R_ExpressionITE_1270_9_75()) return true; return false; } - static private boolean jj_3R_ExpressionFilter_1966_34_191() + static private boolean jj_3R_ExpressionTemporalUnary_1236_19_74() { - if (jj_scan_token(AND)) return true; + if (jj_3R_TimeBound_1253_9_76()) return true; return false; } - static private boolean jj_3R_ExpressionFilter_1965_35_189() + static private boolean jj_3R_ExpressionTemporalUnary_1235_19_73() { - if (jj_scan_token(MAX)) return true; + if (jj_scan_token(G)) return true; return false; } - static private boolean jj_3R_ExpressionTemporalBinary_1214_19_65() + static private boolean jj_3R_ExpressionTemporalUnary_1234_19_72() { - if (jj_3R_TimeBound_1252_9_76()) return true; + if (jj_scan_token(F)) return true; return false; } - static private boolean jj_3R_ExpressionTemporalBinary_1213_19_64() + static private boolean jj_3R_ExpressionTemporalUnary_1233_19_71() { - if (jj_scan_token(R)) return true; + if (jj_scan_token(X)) return true; return false; } - static private boolean jj_3R_ExpressionTemporalBinary_1212_19_63() + static private boolean jj_3R_ExpressionFilter_1983_34_193() { - if (jj_scan_token(W)) return true; + if (jj_scan_token(AND)) return true; return false; } - static private boolean jj_3R_ExpressionTemporalBinary_1211_19_62() + static private boolean jj_3R_ExpressionFilter_1982_35_191() { - if (jj_scan_token(U)) return true; + if (jj_scan_token(MAX)) return true; + return false; + } + + static private boolean jj_3R_ExpressionTemporalUnary_1231_17_60() + { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_ExpressionTemporalUnary_1233_19_71()) { + jj_scanpos = xsp; + if (jj_3R_ExpressionTemporalUnary_1234_19_72()) { + jj_scanpos = xsp; + if (jj_3R_ExpressionTemporalUnary_1235_19_73()) return true; + } + } + xsp = jj_scanpos; + if (jj_3R_ExpressionTemporalUnary_1236_19_74()) jj_scanpos = xsp; + if (jj_3R_ExpressionTemporalUnary_1229_9_55()) return true; return false; } - static private boolean jj_3R_Identifier_1987_9_29() + static private boolean jj_3R_Identifier_2004_9_29() { if (jj_scan_token(REG_IDENT)) return true; return false; } - static private boolean jj_3R_ExpressionTemporalBinary_1209_17_56() + static private boolean jj_3R_ExpressionLabel_1961_47_189() + { + if (jj_scan_token(INIT)) return true; + return false; + } + + static private boolean jj_3R_ExpressionTemporalUnary_1229_9_55() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionTemporalBinary_1211_19_62()) { - jj_scanpos = xsp; - if (jj_3R_ExpressionTemporalBinary_1212_19_63()) { + if (jj_3R_ExpressionTemporalUnary_1231_17_60()) { jj_scanpos = xsp; - if (jj_3R_ExpressionTemporalBinary_1213_19_64()) return true; - } + if (jj_3R_ExpressionTemporalUnary_1240_17_61()) return true; } - xsp = jj_scanpos; - if (jj_3R_ExpressionTemporalBinary_1214_19_65()) jj_scanpos = xsp; - if (jj_3R_ExpressionTemporalUnary_1228_9_55()) return true; return false; } - static private boolean jj_3R_ExpressionLabel_1944_47_187() + static private boolean jj_3R_ExpressionTemporalBinary_1215_19_65() { - if (jj_scan_token(INIT)) return true; + if (jj_3R_TimeBound_1253_9_76()) return true; return false; } - static private boolean jj_3R_ExpressionFuncArgs_1527_72_195() + static private boolean jj_3R_ExpressionFuncArgs_1544_72_197() { if (jj_scan_token(COMMA)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionFilter_1971_11_194() + static private boolean jj_3R_ExpressionFilter_1988_11_196() { if (jj_scan_token(COMMA)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; return false; } - static private boolean jj_3R_ExpressionFuncOldStyle_1515_83_164() + static private boolean jj_3R_ExpressionTemporalBinary_1214_19_64() { - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_scan_token(R)) return true; return false; } - static private boolean jj_3R_ExpressionTemporalBinary_1206_9_46() + static private boolean jj_3R_ExpressionFuncOldStyle_1532_83_166() { - if (jj_3R_ExpressionTemporalUnary_1228_9_55()) return true; - Token xsp; - xsp = jj_scanpos; - if (jj_3R_ExpressionTemporalBinary_1209_17_56()) jj_scanpos = xsp; + if (jj_3R_Identifier_2004_9_29()) return true; return false; } - static private boolean jj_3R_ExpressionFilter_1967_11_193() + static private boolean jj_3R_ExpressionTemporalBinary_1213_19_63() { - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_scan_token(W)) return true; return false; } - static private boolean jj_3R_ExpressionFilter_1966_11_190() + static private boolean jj_3R_ExpressionTemporalBinary_1212_19_62() { - if (jj_scan_token(PLUS)) return true; + if (jj_scan_token(U)) return true; return false; } - static private boolean jj_3R_ExpressionFilter_1965_11_188() + static private boolean jj_3R_ExpressionFilter_1984_11_195() { - if (jj_scan_token(MIN)) return true; + if (jj_3R_Identifier_2004_9_29()) return true; return false; } - static private boolean jj_3R_ExpressionLabel_1944_30_186() + static private boolean jj_3R_ExpressionFilter_1983_11_192() { - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_scan_token(PLUS)) return true; return false; } - static private boolean jj_3R_SystemHideRename_1126_81_90() + static private boolean jj_3R_ExpressionFilter_1982_11_190() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_scan_token(MIN)) return true; return false; } - static private boolean jj_3R_ExpressionParenth_1577_9_146() + static private boolean jj_3R_ExpressionTemporalBinary_1210_17_56() { - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_Expression_1176_9_38()) return true; - if (jj_scan_token(RPARENTH)) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_ExpressionTemporalBinary_1212_19_62()) { + jj_scanpos = xsp; + if (jj_3R_ExpressionTemporalBinary_1213_19_63()) { + jj_scanpos = xsp; + if (jj_3R_ExpressionTemporalBinary_1214_19_64()) return true; + } + } + xsp = jj_scanpos; + if (jj_3R_ExpressionTemporalBinary_1215_19_65()) jj_scanpos = xsp; + if (jj_3R_ExpressionTemporalUnary_1229_9_55()) return true; return false; } - static private boolean jj_3R_ExpressionFilter_1960_9_153() + static private boolean jj_3R_ExpressionLabel_1961_30_188() + { + if (jj_3R_Identifier_2004_9_29()) return true; + return false; + } + + static private boolean jj_3R_ExpressionFilter_1977_9_155() { if (jj_scan_token(FILTER)) return true; if (jj_scan_token(LPARENTH)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionFilter_1965_11_188()) { + if (jj_3R_ExpressionFilter_1982_11_190()) { jj_scanpos = xsp; - if (jj_3R_ExpressionFilter_1965_35_189()) { + if (jj_3R_ExpressionFilter_1982_35_191()) { jj_scanpos = xsp; - if (jj_3R_ExpressionFilter_1966_11_190()) { + if (jj_3R_ExpressionFilter_1983_11_192()) { jj_scanpos = xsp; - if (jj_3R_ExpressionFilter_1966_34_191()) { + if (jj_3R_ExpressionFilter_1983_34_193()) { jj_scanpos = xsp; - if (jj_3R_ExpressionFilter_1966_56_192()) { + if (jj_3R_ExpressionFilter_1983_56_194()) { jj_scanpos = xsp; - if (jj_3R_ExpressionFilter_1967_11_193()) return true; + if (jj_3R_ExpressionFilter_1984_11_195()) return true; } } } } } if (jj_scan_token(COMMA)) return true; - if (jj_3R_Expression_1176_9_38()) return true; + if (jj_3R_Expression_1177_9_38()) return true; xsp = jj_scanpos; - if (jj_3R_ExpressionFilter_1971_11_194()) jj_scanpos = xsp; + if (jj_3R_ExpressionFilter_1988_11_196()) jj_scanpos = xsp; + if (jj_scan_token(RPARENTH)) return true; + return false; + } + + static private boolean jj_3R_ExpressionParenth_1594_9_148() + { + if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_Expression_1177_9_38()) return true; if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_ExpressionFuncOldStyle_1515_60_163() + static private boolean jj_3R_ExpressionTemporalBinary_1207_9_46() + { + if (jj_3R_ExpressionTemporalUnary_1229_9_55()) return true; + Token xsp; + xsp = jj_scanpos; + if (jj_3R_ExpressionTemporalBinary_1210_17_56()) jj_scanpos = xsp; + return false; + } + + static private boolean jj_3R_ExpressionFuncOldStyle_1532_60_165() { if (jj_scan_token(MAX)) return true; return false; } - static private boolean jj_3R_ExpressionLiteral_1564_9_157() + static private boolean jj_3R_SystemHideRename_1127_81_90() { - if (jj_scan_token(FALSE)) return true; + if (jj_scan_token(COMMA)) return true; + if (jj_3R_Identifier_2004_9_29()) return true; return false; } - static private boolean jj_3R_ExpressionLiteral_1562_9_156() + static private boolean jj_3R_ExpressionLiteral_1581_9_159() { - if (jj_scan_token(TRUE)) return true; + if (jj_scan_token(FALSE)) return true; return false; } - static private boolean jj_3R_Expression_1176_9_38() + static private boolean jj_3R_ExpressionLiteral_1579_9_158() { - if (jj_3R_ExpressionTemporalBinary_1206_9_46()) return true; + if (jj_scan_token(TRUE)) return true; return false; } - static private boolean jj_3R_ExpressionLabel_1942_9_152() + static private boolean jj_3R_ExpressionLabel_1959_9_154() { if (jj_scan_token(DQUOTE)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionLabel_1944_30_186()) { + if (jj_3R_ExpressionLabel_1961_30_188()) { jj_scanpos = xsp; - if (jj_3R_ExpressionLabel_1944_47_187()) return true; + if (jj_3R_ExpressionLabel_1961_47_189()) return true; } if (jj_scan_token(DQUOTE)) return true; return false; } - static private boolean jj_3R_ExpressionStrategy_1895_51_223() + static private boolean jj_3R_ExpressionStrategy_1912_51_225() { - if (jj_3R_ExpressionReward_1741_9_148()) return true; + if (jj_3R_ExpressionReward_1758_9_150()) return true; return false; } - static private boolean jj_3R_ExpressionLiteral_1551_9_155() + static private boolean jj_3R_ExpressionLiteral_1568_9_157() { if (jj_scan_token(REG_DOUBLE)) return true; return false; } - static private boolean jj_3R_ExpressionStrategyCoalitionPlayer_1928_9_245() + static private boolean jj_3R_ExpressionStrategyCoalitionPlayer_1945_9_247() { Token xsp; xsp = jj_scanpos; - if (jj_scan_token(103)) { + if (jj_scan_token(104)) { jj_scanpos = xsp; - if (jj_scan_token(106)) return true; + if (jj_scan_token(107)) return true; } return false; } - static private boolean jj_3R_ExpressionFuncOldStyle_1515_37_162() + static private boolean jj_3R_ExpressionFuncOldStyle_1532_37_164() { if (jj_scan_token(MIN)) return true; return false; } - static private boolean jj_3R_SystemAtomic_1156_10_79() + static private boolean jj_3R_Expression_1177_9_38() { - if (jj_scan_token(LPARENTH)) return true; - if (jj_3R_SystemDefn_1033_9_31()) return true; - if (jj_scan_token(RPARENTH)) return true; + if (jj_3R_ExpressionTemporalBinary_1207_9_46()) return true; return false; } - static private boolean jj_3R_ExpressionLiteral_1538_9_154() + static private boolean jj_3R_ExpressionLiteral_1555_9_156() { if (jj_scan_token(REG_INT)) return true; return false; } - static private boolean jj_3R_SystemAtomic_1154_10_78() - { - if (jj_scan_token(DQUOTE)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; - if (jj_scan_token(DQUOTE)) return true; - return false; - } - - static private boolean jj_3R_ExpressionLiteral_1537_9_142() + static private boolean jj_3R_ExpressionLiteral_1554_9_144() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionLiteral_1538_9_154()) { + if (jj_3R_ExpressionLiteral_1555_9_156()) { jj_scanpos = xsp; - if (jj_3R_ExpressionLiteral_1551_9_155()) { + if (jj_3R_ExpressionLiteral_1568_9_157()) { jj_scanpos = xsp; - if (jj_3R_ExpressionLiteral_1562_9_156()) { + if (jj_3R_ExpressionLiteral_1579_9_158()) { jj_scanpos = xsp; - if (jj_3R_ExpressionLiteral_1564_9_157()) return true; + if (jj_3R_ExpressionLiteral_1581_9_159()) return true; } } } return false; } - static private boolean jj_3R_ExpressionStrategyCoalition_1917_11_246() + static private boolean jj_3R_ExpressionStrategyCoalition_1934_11_248() { if (jj_scan_token(COMMA)) return true; - if (jj_3R_ExpressionStrategyCoalitionPlayer_1928_9_245()) return true; + if (jj_3R_ExpressionStrategyCoalitionPlayer_1945_9_247()) return true; + return false; + } + + static private boolean jj_3R_ExpressionStrategyCoalition_1933_11_244() + { + if (jj_3R_ExpressionStrategyCoalitionPlayer_1945_9_247()) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3R_ExpressionStrategyCoalition_1934_11_248()) { jj_scanpos = xsp; break; } + } + return false; + } + + static private boolean jj_3R_ExpressionFuncMinMax_1518_42_162() + { + if (jj_scan_token(MAX)) return true; + return false; + } + + static private boolean jj_3R_ExpressionStrategyCoalition_1933_9_240() + { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_ExpressionStrategyCoalition_1933_11_244()) jj_scanpos = xsp; + return false; + } + + static private boolean jj_3R_ExpressionStrategyCoalition_1931_9_239() + { + if (jj_scan_token(TIMES)) return true; + return false; + } + + static private boolean jj_3R_ExpressionStrategyCoalition_1931_9_223() + { + Token xsp; + xsp = jj_scanpos; + if (jj_3R_ExpressionStrategyCoalition_1931_9_239()) { + jj_scanpos = xsp; + if (jj_3R_ExpressionStrategyCoalition_1933_9_240()) return true; + } return false; } - static private boolean jj_3R_ExpressionStrategyCoalition_1916_11_242() + static private boolean jj_3R_ExpressionFuncArgs_1544_9_163() { - if (jj_3R_ExpressionStrategyCoalitionPlayer_1928_9_245()) return true; + if (jj_3R_Expression_1177_9_38()) return true; Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_ExpressionStrategyCoalition_1917_11_246()) { jj_scanpos = xsp; break; } + if (jj_3R_ExpressionFuncArgs_1544_72_197()) { jj_scanpos = xsp; break; } } return false; } - static private boolean jj_3R_SystemAtomic_1152_9_77() + static private boolean jj_3R_SystemAtomic_1157_10_79() + { + if (jj_scan_token(LPARENTH)) return true; + if (jj_3R_SystemDefn_1034_9_31()) return true; + if (jj_scan_token(RPARENTH)) return true; + return false; + } + + static private boolean jj_3R_SystemAtomic_1155_10_78() + { + if (jj_scan_token(DQUOTE)) return true; + if (jj_3R_Identifier_2004_9_29()) return true; + if (jj_scan_token(DQUOTE)) return true; + return false; + } + + static private boolean jj_3R_SystemAtomic_1153_9_77() { - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_3R_Identifier_2004_9_29()) return true; return false; } - static private boolean jj_3R_SystemParallel_1096_65_70() + static private boolean jj_3R_SystemParallel_1097_65_70() { if (jj_scan_token(COMMA)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_3R_Identifier_2004_9_29()) return true; return false; } - static private boolean jj_3R_ExpressionFuncMinMax_1501_42_160() + static private boolean jj_3R_ExpressionStrategy_1914_11_187() { - if (jj_scan_token(MAX)) return true; + if (jj_3R_ExpressionParenth_1594_9_148()) return true; return false; } - static private boolean jj_3R_ExpressionStrategyCoalition_1916_9_238() + static private boolean jj_3R_SystemAtomic_1150_9_68() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionStrategyCoalition_1916_11_242()) jj_scanpos = xsp; + if (jj_3R_SystemAtomic_1153_9_77()) { + jj_scanpos = xsp; + if (jj_3R_SystemAtomic_1155_10_78()) { + jj_scanpos = xsp; + if (jj_3R_SystemAtomic_1157_10_79()) return true; + } + } return false; } - static private boolean jj_3R_SystemAtomic_1149_9_68() + static private boolean jj_3R_ExpressionFuncOldStyle_1532_9_147() { + if (jj_scan_token(FUNC)) return true; + if (jj_scan_token(LPARENTH)) return true; Token xsp; xsp = jj_scanpos; - if (jj_3R_SystemAtomic_1152_9_77()) { + if (jj_3R_ExpressionFuncOldStyle_1532_37_164()) { jj_scanpos = xsp; - if (jj_3R_SystemAtomic_1154_10_78()) { + if (jj_3R_ExpressionFuncOldStyle_1532_60_165()) { jj_scanpos = xsp; - if (jj_3R_SystemAtomic_1156_10_79()) return true; + if (jj_3R_ExpressionFuncOldStyle_1532_83_166()) return true; } } + if (jj_scan_token(COMMA)) return true; + if (jj_3R_ExpressionFuncArgs_1544_9_163()) return true; + if (jj_scan_token(RPARENTH)) return true; return false; } - static private boolean jj_3R_ExpressionStrategyCoalition_1914_9_237() + static private boolean jj_3R_ExpressionStrategy_1912_11_224() { - if (jj_scan_token(TIMES)) return true; + if (jj_3R_ExpressionProb_1635_9_149()) return true; return false; } - static private boolean jj_3R_ExpressionStrategyCoalition_1914_9_221() + static private boolean jj_3R_ExpressionStrategy_1912_9_186() { Token xsp; xsp = jj_scanpos; - if (jj_3R_ExpressionStrategyCoalition_1914_9_237()) { + if (jj_3R_ExpressionStrategy_1912_11_224()) { jj_scanpos = xsp; - if (jj_3R_ExpressionStrategyCoalition_1916_9_238()) return true; + if (jj_3R_ExpressionStrategy_1912_51_225()) return true; } return false; } - static private boolean jj_3R_ExpressionFuncArgs_1527_9_161() + static private boolean jj_3R_ExpressionStrategy_1909_11_185() { - if (jj_3R_Expression_1176_9_38()) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3R_ExpressionFuncArgs_1527_72_195()) { jj_scanpos = xsp; break; } - } + if (jj_scan_token(DLBRACKET)) return true; + if (jj_3R_ExpressionStrategyCoalition_1931_9_223()) return true; + if (jj_scan_token(DRBRACKET)) return true; return false; } - static private boolean jj_3R_SystemHideRename_1133_19_91() + static private boolean jj_3R_SystemHideRename_1134_19_91() { if (jj_scan_token(COMMA)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_3R_Identifier_2004_9_29()) return true; if (jj_scan_token(RENAME)) return true; - if (jj_3R_Identifier_1987_9_29()) return true; + if (jj_3R_Identifier_2004_9_29()) return true; + return false; + } + + static private boolean jj_3R_RewardIndex_1817_101_246() + { + if (jj_3R_Expression_1177_9_38()) return true; + return false; + } + + static private boolean jj_3R_ExpressionStrategy_1908_10_184() + { + if (jj_scan_token(DLT)) return true; + if (jj_3R_ExpressionStrategyCoalition_1931_9_223()) return true; + if (jj_scan_token(DGT)) return true; return false; } @@ -6350,7 +6388,7 @@ static private boolean jj_3_9() 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[107]; + static final private int[] jj_la1 = new int[108]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -6362,16 +6400,16 @@ static private boolean jj_3_9() jj_la1_init_3(); } private static void jj_la1_init_0() { - jj_la1_0 = new int[] {0x228804c0,0x208804c0,0x2000000,0x20340848,0x0,0x20340848,0x20340848,0x0,0x20340848,0x400,0x0,0x80,0x480,0x10000210,0x10000210,0x0,0x40,0x0,0x2000000,0x10000030,0x0,0x4000000,0x0,0x0,0x0,0x1740808,0x1740808,0x0,0x0,0x0,0x1740808,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1400000,0x0,0x1740808,0x1740808,0x1740808,0x1740808,0x1740808,0x0,0x0,0x0,0x0,0x0,0x0,0x340808,0x0,0x0,0x0,0x0,0x0,0x0,0x340808,0x340808,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0xc0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0000000,0x0,0x0,0x1740808,0x1740808,0x0,0x0,0x9740908,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,}; + jj_la1_0 = new int[] {0x228804c0,0x208804c0,0x2000000,0x20340848,0x0,0x20340848,0x20340848,0x0,0x20340848,0x400,0x0,0x80,0x480,0x10000210,0x10000210,0x0,0x40,0x0,0x2000000,0x10000030,0x0,0x4000000,0x0,0x0,0x0,0x1740808,0x1740808,0x0,0x0,0x0,0x1740808,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1400000,0x0,0x1740808,0x1740808,0x1740808,0x1740808,0x1740808,0x0,0x0,0x0,0x0,0x0,0x0,0x340808,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x340808,0x340808,0x0,0x0,0x0,0x0,0x40000,0x0,0x0,0x0,0xc0000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc0000000,0x0,0x0,0x1740808,0x1740808,0x0,0x0,0x9740908,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2000000,0x0,0x0,0x0,0x0,0x0,0x0,}; } private static void jj_la1_init_1() { - jj_la1_1 = new int[] {0xfe03a2,0x7e0082,0x800320,0xff51fc11,0x0,0xff51fc11,0xff51fc11,0x0,0xff51fc11,0x80000,0x82,0x0,0x2e0082,0x0,0x0,0x500000,0x500000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff01fc51,0xff01fc51,0x0,0x0,0x0,0xff01fc51,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x40000000,0x40,0x0,0xff01fc51,0xff01fc51,0xff01fc51,0xff01fc51,0xff01fc51,0x0,0x0,0x0,0x0,0x0,0x0,0xff01fc11,0x0,0x0,0x0,0x0,0x0,0x0,0xff01fc11,0xff01fc11,0x0,0x11,0x11,0x0,0x0,0x0,0x11,0x11,0x1d,0x1fc00,0x0,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x11,0x11,0x1d,0x7f000000,0x0,0xff01fc51,0xff01fc51,0x0,0x80000000,0xff01fc51,0x0,0x7f01fc00,0x7f01fc00,0x0,0x0,0x0,0x0,0x0,0x11,0x0,0x11,0x0,0x0,0x0,}; + jj_la1_1 = new int[] {0xfe03a2,0x7e0082,0x800320,0xff51fc11,0x0,0xff51fc11,0xff51fc11,0x0,0xff51fc11,0x80000,0x82,0x0,0x2e0082,0x0,0x0,0x500000,0x500000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff01fc51,0xff01fc51,0x0,0x0,0x0,0xff01fc51,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x40000000,0x0,0x40000000,0x40,0x0,0xff01fc51,0xff01fc51,0xff01fc51,0xff01fc51,0xff01fc51,0x0,0x0,0x0,0x0,0x0,0x0,0xff01fc11,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff01fc11,0xff01fc11,0x0,0x11,0x11,0x0,0x0,0x0,0x11,0x11,0x1d,0x1fc00,0x0,0x0,0x11,0x0,0x0,0x0,0x0,0x0,0x11,0x11,0x1d,0x7f000000,0x0,0xff01fc51,0xff01fc51,0x0,0x80000000,0xff01fc51,0x0,0x7f01fc00,0x7f01fc00,0x0,0x0,0x0,0x0,0x0,0x11,0x0,0x11,0x0,0x0,0x0,}; } private static void jj_la1_init_2() { - jj_la1_2 = new int[] {0x3,0x1,0x2,0x8088024,0x1000,0x8088024,0x8088024,0x1000,0x8088024,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x0,0x800000,0x0,0x20000,0x0,0x0,0x20000,0x0,0x80000000,0x80a8024,0x80a8024,0x40,0x8004,0x2000,0x80a8024,0x0,0x20000,0x2000,0x2000,0x200000,0x2000,0x2000,0x200000,0x8000,0x18,0x66820000,0x18,0x0,0x66820000,0x8088024,0x8088024,0x8088024,0x8088024,0x8088024,0x66820000,0x0,0x100,0x200,0x80,0x40,0x8088024,0x1800000,0x66000000,0x80000000,0x80000000,0x0,0x0,0x8088004,0x8088004,0x8000,0x0,0x0,0x2000,0x4,0x8000,0x800000,0x800000,0x66800000,0x0,0x200000,0x200000,0x0,0x8000,0x66808000,0x200000,0x8000,0x200000,0x800000,0x800000,0x66800000,0x0,0x200000,0x8088024,0x8088024,0x0,0x0,0x8088024,0x8080000,0x0,0x8000,0x2000,0x0,0x0,0x0,0x0,0x800000c0,0x2000,0x0,0x1800000,0x66000000,0x800,}; + jj_la1_2 = new int[] {0x3,0x1,0x2,0x8088024,0x1000,0x8088024,0x8088024,0x1000,0x8088024,0x0,0x0,0x1,0x1,0x0,0x0,0x0,0x0,0x800000,0x0,0x20000,0x0,0x0,0x20000,0x0,0x80000000,0x80a8024,0x80a8024,0x40,0x8004,0x2000,0x80a8024,0x0,0x20000,0x2000,0x2000,0x200000,0x2000,0x2000,0x200000,0x8000,0x18,0x66820000,0x18,0x0,0x66820000,0x8088024,0x8088024,0x8088024,0x8088024,0x8088024,0x66820000,0x0,0x100,0x200,0x80,0x40,0x8088024,0x1800000,0x66000000,0x80000000,0x80000000,0x0,0x0,0x0,0x8088004,0x8088004,0x8000,0x0,0x0,0x2000,0x4,0x8000,0x800000,0x800000,0x66800000,0x0,0x200000,0x200000,0x0,0x8000,0x66808000,0x200000,0x8000,0x200000,0x800000,0x800000,0x66800000,0x0,0x200000,0x8088024,0x8088024,0x0,0x0,0x8088024,0x8080000,0x0,0x8000,0x2000,0x0,0x0,0x0,0x0,0x800000c0,0x2000,0x0,0x1800000,0x66000000,0x800,}; } private static void jj_la1_init_3() { - jj_la1_3 = new int[] {0x0,0x0,0x0,0x5c1,0x0,0x5c1,0x5c1,0x0,0x5c1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x400,0x0,0x0,0x400,0x0,0x5c1,0x5c1,0x0,0x0,0x0,0x5c1,0x400,0x0,0x0,0x0,0x4,0x0,0x0,0x4,0x440,0x0,0x0,0x0,0x0,0x0,0x5c1,0x5c1,0x5c1,0x5c1,0x5c1,0x0,0x20,0x0,0x0,0x0,0x0,0x5c1,0x0,0x0,0x1,0x1,0x6,0x6,0x5c1,0x5c0,0x0,0x0,0x400,0x0,0x180,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x5c1,0x5c1,0x4,0x0,0x5c1,0x0,0x0,0x0,0x0,0x480,0x2,0x480,0x400,0x400,0x0,0x400,0x0,0x0,0x0,}; + jj_la1_3 = new int[] {0x0,0x0,0x0,0xb81,0x0,0xb81,0xb81,0x0,0xb81,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x800,0x0,0x0,0x800,0x0,0xb81,0xb81,0x0,0x0,0x0,0xb81,0x800,0x0,0x0,0x0,0x4,0x0,0x0,0x4,0x880,0x0,0x0,0x0,0x0,0x0,0xb81,0xb81,0xb81,0xb81,0xb81,0x0,0x40,0x0,0x0,0x0,0x0,0xb81,0x0,0x0,0x1,0x1,0x6,0x6,0x8,0xb81,0xb80,0x0,0x0,0x800,0x0,0x300,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xb81,0xb81,0x4,0x0,0xb81,0x0,0x0,0x0,0x0,0x900,0x2,0x900,0x800,0x800,0x0,0x800,0x0,0x0,0x0,}; } static final private JJCalls[] jj_2_rtns = new JJCalls[18]; static private boolean jj_rescan = false; @@ -6395,7 +6433,7 @@ public PrismParser(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 107; i++) jj_la1[i] = -1; + for (int i = 0; i < 108; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -6410,7 +6448,7 @@ static public void ReInit(java.io.InputStream stream, String encoding) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 107; i++) jj_la1[i] = -1; + for (int i = 0; i < 108; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -6428,7 +6466,7 @@ public PrismParser(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 107; i++) jj_la1[i] = -1; + for (int i = 0; i < 108; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -6447,7 +6485,7 @@ static public void ReInit(java.io.Reader stream) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 107; i++) jj_la1[i] = -1; + for (int i = 0; i < 108; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -6464,7 +6502,7 @@ public PrismParser(PrismParserTokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 107; i++) jj_la1[i] = -1; + for (int i = 0; i < 108; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -6474,7 +6512,7 @@ public void ReInit(PrismParserTokenManager tm) { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 107; i++) jj_la1[i] = -1; + for (int i = 0; i < 108; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -6605,12 +6643,12 @@ static private void jj_add_error_token(int kind, int pos) { /** Generate ParseException. */ static public ParseException generateParseException() { jj_expentries.clear(); - boolean[] la1tokens = new boolean[109]; + boolean[] la1tokens = new boolean[110]; if (jj_kind >= 0) { la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 107; i++) { + for (int i = 0; i < 108; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1< | < TIMES: "*" > | < DIVIDE: "/" > +| < POWER: "^" > | < PRIME: "'" > | < RENAME: "<-" > | < QMARK: "?" > @@ -1403,14 +1404,30 @@ Expression ExpressionTimesDivide(boolean prop, boolean pathprop) : Token begin = null; } { - { begin = getToken(1); } ret = ExpressionUnaryMinus(prop, pathprop) + { begin = getToken(1); } ret = ExpressionPower(prop, pathprop) ( ( { op = ExpressionBinaryOp.TIMES; } | { op = ExpressionBinaryOp.DIVIDE; } ) - expr = ExpressionUnaryMinus(prop, pathprop) { ret = new ExpressionBinaryOp(op, ret, expr); ret.setPosition(begin, getToken(0)); } + expr = ExpressionPower(prop, pathprop) { ret = new ExpressionBinaryOp(op, ret, expr); ret.setPosition(begin, getToken(0)); } )* { return ret; } } +// Expression: power (^) + +Expression ExpressionPower(boolean prop, boolean pathprop) : +{ + Expression ret, expr; + int op; + Token begin = null; +} +{ + { begin = getToken(1); } ret = ExpressionUnaryMinus(prop, pathprop) + ( + expr = ExpressionPower(prop, pathprop) { ret = new ExpressionBinaryOp(ExpressionBinaryOp.POW, ret, expr); ret.setPosition(begin, getToken(0)); } + )? + { return ret; } +} + // Expression: unary minus Expression ExpressionUnaryMinus(boolean prop, boolean pathprop) : diff --git a/prism/src/parser/PrismParserConstants.java b/prism/src/parser/PrismParserConstants.java index 3a791ab404..6883b5b8ca 100644 --- a/prism/src/parser/PrismParserConstants.java +++ b/prism/src/parser/PrismParserConstants.java @@ -207,25 +207,27 @@ public interface PrismParserConstants { /** RegularExpression Id. */ int DIVIDE = 98; /** RegularExpression Id. */ - int PRIME = 99; + int POWER = 99; /** RegularExpression Id. */ - int RENAME = 100; + int PRIME = 100; /** RegularExpression Id. */ - int QMARK = 101; + int RENAME = 101; /** RegularExpression Id. */ - int DQUOTE = 102; + int QMARK = 102; /** RegularExpression Id. */ - int REG_INT = 103; + int DQUOTE = 103; /** RegularExpression Id. */ - int REG_DOUBLE = 104; + int REG_INT = 104; /** RegularExpression Id. */ - int REG_IDENTPRIME = 105; + int REG_DOUBLE = 105; /** RegularExpression Id. */ - int REG_IDENT = 106; + int REG_IDENTPRIME = 106; /** RegularExpression Id. */ - int PREPROC = 107; + int REG_IDENT = 107; /** RegularExpression Id. */ - int LEXICAL_ERROR = 108; + int PREPROC = 108; + /** RegularExpression Id. */ + int LEXICAL_ERROR = 109; /** Lexical state. */ int DEFAULT = 0; @@ -331,6 +333,7 @@ public interface PrismParserConstants { "\"-\"", "\"*\"", "\"/\"", + "\"^\"", "\"\\\'\"", "\"<-\"", "\"?\"", diff --git a/prism/src/parser/PrismParserTokenManager.java b/prism/src/parser/PrismParserTokenManager.java index ba8f9c59d3..e45d569cea 100644 --- a/prism/src/parser/PrismParserTokenManager.java +++ b/prism/src/parser/PrismParserTokenManager.java @@ -27,22 +27,22 @@ private static final int jjStopStringLiteralDfa_0(int pos, long active0, long ac case 0: if ((active0 & 0xff01fc4009400908L) != 0L || (active1 & 0x18L) != 0L) return 23; - if ((active1 & 0x400000000L) != 0L) - return 1; - if ((active1 & 0x4000L) != 0L) - return 11; if ((active0 & 0xfe03bff6bff6f0L) != 0L || (active1 & 0x7L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; return 23; } + if ((active1 & 0x400000000L) != 0L) + return 1; + if ((active1 & 0x4000L) != 0L) + return 11; return -1; case 1: if ((active0 & 0x3ffeffbff6bff6f0L) != 0L || (active1 & 0x7L) != 0L) { if (jjmatchedPos != 1) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 1; } return 23; @@ -55,59 +55,59 @@ private static final int jjStopStringLiteralDfa_0(int pos, long active0, long ac { if (jjmatchedPos != 2) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 2; } return 23; } return -1; case 3: + if ((active0 & 0x3f58fc0002200490L) != 0L || (active1 & 0x4L) != 0L) + return 23; if ((active0 & 0x8603ace49ff260L) != 0L || (active1 & 0x3L) != 0L) { if (jjmatchedPos != 3) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 3; } return 23; } - if ((active0 & 0x3f58fc0002200490L) != 0L || (active1 & 0x4L) != 0L) - return 23; return -1; case 4: + if ((active0 & 0x6000020040060L) != 0L) + return 23; if ((active0 & 0x1b886facc49bf200L) != 0L || (active1 & 0x3L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 4; return 23; } - if ((active0 & 0x6000020040060L) != 0L) - return 23; return -1; case 5: + if ((active0 & 0x2cc0900200L) != 0L || (active1 & 0x2L) != 0L) + return 23; if ((active0 & 0x1b886f80040bf000L) != 0L || (active1 & 0x1L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 5; return 23; } - if ((active0 & 0x2cc0900200L) != 0L || (active1 & 0x2L) != 0L) - return 23; return -1; case 6: + if ((active0 & 0x1b806c0000081000L) != 0L) + return 23; if ((active0 & 0x803800403e000L) != 0L || (active1 & 0x1L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 6; return 23; } - if ((active0 & 0x1b806c0000081000L) != 0L) - return 23; return -1; case 7: if ((active0 & 0x803800403e000L) != 0L || (active1 & 0x1L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 7; return 23; } @@ -117,7 +117,7 @@ private static final int jjStopStringLiteralDfa_0(int pos, long active0, long ac return 23; if ((active0 & 0x803800001a000L) != 0L || (active1 & 0x1L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 8; return 23; } @@ -129,7 +129,7 @@ private static final int jjStopStringLiteralDfa_0(int pos, long active0, long ac { if (jjmatchedPos != 9) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 9; } return 23; @@ -140,7 +140,7 @@ private static final int jjStopStringLiteralDfa_0(int pos, long active0, long ac return 23; if ((active0 & 0x800800000a000L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 10; return 23; } @@ -150,7 +150,7 @@ private static final int jjStopStringLiteralDfa_0(int pos, long active0, long ac return 23; if ((active0 & 0x8008000008000L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 11; return 23; } @@ -160,7 +160,7 @@ private static final int jjStopStringLiteralDfa_0(int pos, long active0, long ac return 23; if ((active0 & 0x8000008000L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 12; return 23; } @@ -170,7 +170,7 @@ private static final int jjStopStringLiteralDfa_0(int pos, long active0, long ac return 23; if ((active0 & 0x8000000000L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 13; return 23; } @@ -178,7 +178,7 @@ private static final int jjStopStringLiteralDfa_0(int pos, long active0, long ac case 14: if ((active0 & 0x8000000000L) != 0L) { - jjmatchedKind = 106; + jjmatchedKind = 107; jjmatchedPos = 14; return 23; } @@ -203,11 +203,11 @@ static private int jjMoveStringLiteralDfa0_0(){ jjmatchedKind = 69; return jjMoveStringLiteralDfa1_0(0x0L, 0x1000000L); case 34: - return jjStopAtPos(0, 102); + return jjStopAtPos(0, 103); case 38: return jjStopAtPos(0, 70); case 39: - return jjStopAtPos(0, 99); + return jjStopAtPos(0, 100); case 40: return jjStopAtPos(0, 79); case 41: @@ -231,7 +231,7 @@ static private int jjMoveStringLiteralDfa0_0(){ return jjStopAtPos(0, 76); case 60: jjmatchedKind = 89; - return jjMoveStringLiteralDfa1_0(0x0L, 0x1028000200L); + return jjMoveStringLiteralDfa1_0(0x0L, 0x2028000200L); case 61: jjmatchedKind = 87; return jjMoveStringLiteralDfa1_0(0x0L, 0x100L); @@ -239,7 +239,7 @@ static private int jjMoveStringLiteralDfa0_0(){ jjmatchedKind = 90; return jjMoveStringLiteralDfa1_0(0x0L, 0x50000000L); case 63: - return jjStopAtPos(0, 101); + return jjStopAtPos(0, 102); case 65: return jjStartNfaWithStates_0(0, 3, 23); case 67: @@ -272,6 +272,8 @@ static private int jjMoveStringLiteralDfa0_0(){ case 93: jjmatchedKind = 82; return jjMoveStringLiteralDfa1_0(0x0L, 0x100000L); + case 94: + return jjStopAtPos(0, 99); case 98: return jjMoveStringLiteralDfa1_0(0x10L, 0x0L); case 99: @@ -321,8 +323,8 @@ static private int jjMoveStringLiteralDfa1_0(long active0, long active1){ switch(curChar) { case 45: - if ((active1 & 0x1000000000L) != 0L) - return jjStopAtPos(1, 100); + if ((active1 & 0x2000000000L) != 0L) + return jjStopAtPos(1, 101); break; case 46: if ((active1 & 0x4000L) != 0L) @@ -971,14 +973,14 @@ static private int jjMoveNfa_0(int startState, int curPos) case 23: if ((0x3ff000000000000L & l) != 0L) { - if (kind > 106) - kind = 106; + if (kind > 107) + kind = 107; { jjCheckNAdd(22); } } else if (curChar == 39) { - if (kind > 105) - kind = 105; + if (kind > 106) + kind = 106; } if ((0x3ff000000000000L & l) != 0L) { jjCheckNAddTwoStates(20, 21); } @@ -986,8 +988,8 @@ else if (curChar == 39) case 0: if ((0x3ff000000000000L & l) != 0L) { - if (kind > 104) - kind = 104; + if (kind > 105) + kind = 105; { jjCheckNAddStates(0, 3); } } else if ((0x100002600L & l) != 0L) @@ -1003,14 +1005,14 @@ else if (curChar == 47) jjstateSet[jjnewStateCnt++] = 1; if ((0x3fe000000000000L & l) != 0L) { - if (kind > 103) - kind = 103; + if (kind > 104) + kind = 104; { jjCheckNAdd(8); } } else if (curChar == 48) { - if (kind > 103) - kind = 103; + if (kind > 104) + kind = 104; } break; case 1: @@ -1046,20 +1048,20 @@ else if (curChar == 48) case 7: if ((0x3fe000000000000L & l) == 0L) break; - if (kind > 103) - kind = 103; + if (kind > 104) + kind = 104; { jjCheckNAdd(8); } break; case 8: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 103) - kind = 103; + if (kind > 104) + kind = 104; { jjCheckNAdd(8); } break; case 9: - if (curChar == 48 && kind > 103) - kind = 103; + if (curChar == 48 && kind > 104) + kind = 104; break; case 10: if (curChar == 46) @@ -1068,8 +1070,8 @@ else if (curChar == 48) case 11: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 104) - kind = 104; + if (kind > 105) + kind = 105; { jjCheckNAddTwoStates(11, 12); } break; case 13: @@ -1079,8 +1081,8 @@ else if (curChar == 48) case 14: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 104) - kind = 104; + if (kind > 105) + kind = 105; { jjCheckNAdd(14); } break; case 15: @@ -1092,14 +1094,14 @@ else if (curChar == 48) { jjCheckNAddTwoStates(16, 17); } break; case 17: - if (curChar == 35 && kind > 107) - kind = 107; + if (curChar == 35 && kind > 108) + kind = 108; break; case 18: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 104) - kind = 104; + if (kind > 105) + kind = 105; { jjCheckNAddStates(0, 3); } break; case 20: @@ -1107,14 +1109,14 @@ else if (curChar == 48) { jjCheckNAddTwoStates(20, 21); } break; case 21: - if (curChar == 39 && kind > 105) - kind = 105; + if (curChar == 39 && kind > 106) + kind = 106; break; case 22: if ((0x3ff000000000000L & l) == 0L) break; - if (kind > 106) - kind = 106; + if (kind > 107) + kind = 107; { jjCheckNAdd(22); } break; default : break; @@ -1131,8 +1133,8 @@ else if (curChar < 128) case 23: if ((0x7fffffe87fffffeL & l) != 0L) { - if (kind > 106) - kind = 106; + if (kind > 107) + kind = 107; { jjCheckNAdd(22); } } if ((0x7fffffe87fffffeL & l) != 0L) @@ -1141,8 +1143,8 @@ else if (curChar < 128) case 0: if ((0x7fffffe87fffffeL & l) == 0L) break; - if (kind > 106) - kind = 106; + if (kind > 107) + kind = 107; { jjCheckNAddStates(7, 9); } break; case 2: @@ -1164,8 +1166,8 @@ else if (curChar < 128) case 22: if ((0x7fffffe87fffffeL & l) == 0L) break; - if (kind > 106) - kind = 106; + if (kind > 107) + kind = 107; { jjCheckNAdd(22); } break; default : break; @@ -1236,8 +1238,8 @@ else if (curChar < 128) "\163\171\163\164\145\155", "\164\162\165\145", "\125", "\127", "\41", "\46", "\174", "\75\76", "\74\75\76", "\55\76", "\72", "\73", "\54", "\56\56", "\50", "\51", "\133", "\135", "\133\133", "\135\135", "\173", "\175", "\75", "\41\75", "\74", "\76", "\74\74", "\76\76", -"\74\75", "\76\75", "\53", "\55", "\52", "\57", "\47", "\74\55", "\77", "\42", null, -null, null, null, null, null, }; +"\74\75", "\76\75", "\53", "\55", "\52", "\57", "\136", "\47", "\74\55", "\77", "\42", +null, null, null, null, null, null, }; static protected Token jjFillToken() { final Token t; @@ -1310,9 +1312,9 @@ public static Token getNextToken() jjmatchedKind = 0x7fffffff; jjmatchedPos = 0; curPos = jjMoveStringLiteralDfa0_0(); - if (jjmatchedPos == 0 && jjmatchedKind > 108) + if (jjmatchedPos == 0 && jjmatchedKind > 109) { - jjmatchedKind = 108; + jjmatchedKind = 109; } if (jjmatchedKind != 0x7fffffff) { @@ -1481,10 +1483,10 @@ public static void SwitchTo(int lexState) -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; static final long[] jjtoToken = { - 0xfffffffffffffff9L, 0x1fffffffffffL, + 0xfffffffffffffff9L, 0x3fffffffffffL, }; static final long[] jjtoSkip = { 0x6L, 0x0L, diff --git a/prism/src/parser/ast/Expression.java b/prism/src/parser/ast/Expression.java index 8e057b5a7d..7cd1c5f7d9 100644 --- a/prism/src/parser/ast/Expression.java +++ b/prism/src/parser/ast/Expression.java @@ -137,6 +137,7 @@ enum Precedence { RELOP, PLUS_MINUS, TIMES_DIVIDE, + POW, UNARY_MINUS, BASIC } @@ -820,6 +821,11 @@ public static ExpressionBinaryOp Divide(Expression expr1, Expression expr2) return new ExpressionBinaryOp(ExpressionBinaryOp.DIVIDE, expr1, expr2); } + public static ExpressionBinaryOp Pow(Expression expr1, Expression expr2) + { + return new ExpressionBinaryOp(ExpressionBinaryOp.POW, expr1, expr2); + } + public static ExpressionUnaryOp Parenth(Expression expr) { return new ExpressionUnaryOp(ExpressionUnaryOp.PARENTH, expr); diff --git a/prism/src/parser/ast/ExpressionBinaryOp.java b/prism/src/parser/ast/ExpressionBinaryOp.java index 9ff3abedc5..d0742977a7 100644 --- a/prism/src/parser/ast/ExpressionBinaryOp.java +++ b/prism/src/parser/ast/ExpressionBinaryOp.java @@ -54,12 +54,13 @@ public class ExpressionBinaryOp extends Expression public static final int MINUS = 12; public static final int TIMES = 13; public static final int DIVIDE = 14; + public static final int POW = 15; // Operator symbols - public static final String opSymbols[] = { "", "=>", "<=>", "|", "&", "=", "!=", ">", ">=", "<", "<=", "+", "-", "*", "/" }; + public static final String opSymbols[] = { "", "=>", "<=>", "|", "&", "=", "!=", ">", ">=", "<", "<=", "+", "-", "*", "/", "^" }; // Operator type testers public static boolean isLogical(int op) { return op==IMPLIES || op==IFF || op==OR || op==AND; } public static boolean isRelOp(int op) { return op==EQ || op==NE || op==GT || op==GE || op==LT || op==LE; } - public static boolean isArithmetic(int op) { return op==PLUS || op==MINUS || op==TIMES || op==DIVIDE; } + public static boolean isArithmetic(int op) { return op==PLUS || op==MINUS || op==TIMES || op==DIVIDE || op== POW; } // Operator protected int op = 0; @@ -215,6 +216,10 @@ public Object apply(Object eval1, Object eval2, EvalMode evalMode) throws PrismL throw new PrismLangException("Unknown evaluation mode " + evalMode); } + // Division (reuse code for pow()) + case POW: + return ExpressionFunc.applyPow(getType(), eval1, eval2, evalMode); + // Other numerical (relations/arithmetic) - mix of doubles/ints default: try { @@ -352,6 +357,8 @@ public Precedence getPrecedence() case TIMES: case DIVIDE: return Precedence.TIMES_DIVIDE; + case POW: + return Precedence.POW; default: return null; } diff --git a/prism/src/parser/ast/ExpressionFunc.java b/prism/src/parser/ast/ExpressionFunc.java index 23a42d63ca..17cf41bd1d 100644 --- a/prism/src/parser/ast/ExpressionFunc.java +++ b/prism/src/parser/ast/ExpressionFunc.java @@ -30,6 +30,7 @@ import param.BigRational; import parser.EvaluateContext; import parser.EvaluateContext.EvalMode; +import parser.type.Type; import parser.type.TypeDouble; import parser.type.TypeInt; import parser.visitor.ASTVisitor; @@ -496,31 +497,46 @@ private Object applyRound(Object eval, EvalMode evalMode) throws PrismLangExcept * (as returned by {@link Type#castValueTo(Object, EvalMode)}). */ private Object applyPow(Object eval1, Object eval2, EvalMode evalMode) throws PrismLangException + { + try { + // The apply code is in a separate static method for re-use elsewhere + return applyPow(getType(), eval1, eval2, evalMode); + } catch (PrismLangException e) { + throw new PrismLangException(e.getMessage(), this); + } + } + + /** + * Apply a (pow) function instance of the specified type to the arguments provided + * The arguments are assumed to be the correct kinds of Objects for their type + * (as returned by {@link Type#castValueTo(Object, EvalMode)}). + */ + public static Object applyPow(Type type, Object eval1, Object eval2, EvalMode evalMode) throws PrismLangException { // All arguments ints - if (getType() instanceof TypeInt) { + if (type instanceof TypeInt) { switch (evalMode) { case FP: int iBase = (int) eval1; int iExp = (int) eval2; // Not allowed to do e.g. pow(2,-2) because of typing (should be pow(2.0,-2) instead) if (iExp < 0) - throw new PrismLangException("Negative exponent not allowed for integer power", this); + throw new PrismLangException("Negative exponent not allowed for integer power"); try { return SafeCast.toIntExact(Math.pow(iBase, iExp)); } catch (ArithmeticException e) { - throw new PrismLangException("Overflow evaluating integer power: " + e.getMessage(), this); + throw new PrismLangException("Overflow evaluating integer power: " + e.getMessage()); } case EXACT: BigInteger biBase = (BigInteger) eval1; BigInteger biExp = (BigInteger) eval2; // Not allowed to do e.g. pow(2,-2) because of typing (should be pow(2.0,-2) instead) if (biExp.compareTo(BigInteger.ZERO) < 0) - throw new PrismLangException("Negative exponent not allowed for integer power", this); + throw new PrismLangException("Negative exponent not allowed for integer power"); try { return biBase.pow(biExp.intValue()); } catch (ArithmeticException e) { - throw new PrismLangException("Cannot compute pow exactly, as there is a problem with the exponent: " + e.getMessage(), this); + throw new PrismLangException("Cannot compute pow exactly, as there is a problem with the exponent: " + e.getMessage()); } default: throw new PrismLangException("Unknown evaluation mode " + evalMode); @@ -537,7 +553,7 @@ private Object applyPow(Object eval1, Object eval2, EvalMode evalMode) throws Pr if (((BigRational) exp).isInteger()) { return ((BigRational) base).pow(((BigRational) exp).toInt()); } else { - throw new PrismLangException("Cannot compute fractional powers exactly", this); + throw new PrismLangException("Cannot compute fractional powers exactly"); } default: throw new PrismLangException("Unknown evaluation mode " + evalMode); diff --git a/prism/src/parser/visitor/TypeCheck.java b/prism/src/parser/visitor/TypeCheck.java index bfade7b6e7..a01d2b134b 100644 --- a/prism/src/parser/visitor/TypeCheck.java +++ b/prism/src/parser/visitor/TypeCheck.java @@ -296,6 +296,7 @@ else if ((t1 instanceof TypeInt || t1 instanceof TypeClock) && (t2 instanceof Ty case ExpressionBinaryOp.PLUS: case ExpressionBinaryOp.MINUS: case ExpressionBinaryOp.TIMES: + case ExpressionBinaryOp.POW: if (!(t1 instanceof TypeInt || t1 instanceof TypeDouble)) { throw new PrismLangException("Type error: " + e.getOperatorSymbol() + " can only be applied to ints or doubles", e.getOperand1()); } diff --git a/prism/src/prism/StateModelChecker.java b/prism/src/prism/StateModelChecker.java index 531615a8b3..dd8817ecb6 100644 --- a/prism/src/prism/StateModelChecker.java +++ b/prism/src/prism/StateModelChecker.java @@ -477,6 +477,25 @@ protected StateValues checkExpressionBinaryOp(ExpressionBinaryOp expr, JDDNode s case ExpressionBinaryOp.DIVIDE: dd = JDD.Apply(JDD.DIVIDE, dd1, dd2); break; + case ExpressionBinaryOp.POW: + // Deref dd1/dd2 because may still need below + JDD.Ref(dd1); + JDD.Ref(dd2); + dd = JDD.Apply(JDD.POW, dd1, dd2); + // Check for some possible problems in case of integer power + // (denote error with NaN for states with problems) + if (expr.getType() instanceof TypeInt) { + // Negative exponent not allowed for integer power + JDD.Ref(dd2); + dd = JDD.ITE(JDD.LessThan(dd2, 0), JDD.Constant(0.0 / 0.0), dd); + // Check for integer overflow + JDD.Ref(dd); + dd = JDD.ITE(JDD.GreaterThan(dd, Integer.MAX_VALUE), JDD.Constant(0.0 / 0.0), dd); + } + // Late deref of dd1/dd2 because needed above + JDD.Deref(dd1); + JDD.Deref(dd2); + break; default: throw new PrismException("Unknown binary operator"); } @@ -512,6 +531,21 @@ protected StateValues checkExpressionBinaryOp(ExpressionBinaryOp expr, JDDNode s for (i = 0; i < n; i++) dv1.setElement(i, dv1.getElement(i) / dv2.getElement(i)); break; + case ExpressionBinaryOp.POW: + // For integer power, have to check for errors and flag as NaN + if (expr.getType() instanceof TypeInt) { + double base, exp, pow; + for (i = 0; i < n; i++) { + base = dv1.getElement(i); + exp = dv2.getElement(i); + pow = Math.pow(base, exp); + dv1.setElement(i, (exp < 0 || pow > Integer.MAX_VALUE) ? 0.0 / 0.0 : pow); + } + } else { + for (i = 0; i < n; i++) + dv1.setElement(i, Math.pow(dv1.getElement(i), dv2.getElement(i))); + } + break; default: throw new PrismException("Unknown binary operator"); }