diff options
Diffstat (limited to 'petascope/src/petascope/wcps/grammar')
61 files changed, 31064 insertions, 0 deletions
diff --git a/petascope/src/petascope/wcps/grammar/AxisIterator.java b/petascope/src/petascope/wcps/grammar/AxisIterator.java new file mode 100644 index 0000000..95c9f03 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/AxisIterator.java @@ -0,0 +1,50 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * AxisIterator
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class AxisIterator implements IParseTreeNode {
+
+ String axis;
+ IntervalExpr interval;
+ String var;
+
+ public AxisIterator(String var, String axis, IntervalExpr interval) {
+ this.var = var;
+ this.axis = axis;
+ this.interval = interval;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<iteratorVar>" + var + "</iteratorVar>";
+ result += "<axis>" + axis + "</axis>";
+ result += interval.toXML();
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/AxisIteratorList.java b/petascope/src/petascope/wcps/grammar/AxisIteratorList.java new file mode 100644 index 0000000..bc76560 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/AxisIteratorList.java @@ -0,0 +1,68 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * AxisIteratorList
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class AxisIteratorList implements IParseTreeNode {
+
+ private AxisIterator it;
+ private AxisIteratorList next;
+ private String tag;
+
+ public AxisIteratorList(AxisIterator it) {
+ this.it = it;
+ next = null;
+ tag = "";
+ }
+
+ public AxisIteratorList(AxisIterator it, AxisIteratorList n) {
+ this.it = it;
+ next = n;
+ tag = "";
+ }
+
+ public void setTag(String tag) {
+ this.tag = tag;
+ }
+
+ public String toXML() {
+ String result = "";
+ String tag1 = "<" + tag + ">";
+ String tag2 = "</" + tag + ">";
+
+ if (tag.equals("")) {
+ tag1 = tag2 = "";
+ }
+
+ if (next != null) {
+ next.setTag(tag);
+ result += next.toXML();
+ }
+ result += tag1 + it.toXML() + tag2;
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/BooleanExpr.java b/petascope/src/petascope/wcps/grammar/BooleanExpr.java new file mode 100644 index 0000000..ee359f7 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/BooleanExpr.java @@ -0,0 +1,57 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * BooleanExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class BooleanExpr implements IParseTreeNode {
+
+ IParseTreeNode e1, e2;
+ String op;
+
+ public BooleanExpr(String op, CoverageExpr cov) {
+ this.op = op;
+ e1 = cov;
+ }
+
+ public BooleanExpr(String op, CoverageExpr cov, IndexExpr i) {
+ this.op = op;
+ e1 = cov;
+ e2 = i;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ if (op.equalsIgnoreCase("not")) {
+ result = e1.toXML();
+ } else if (op.equalsIgnoreCase("bit")) {
+ result = e1.toXML() + e2.toXML();
+ }
+
+ result = "<" + op + ">" + result + "</" + op + ">";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/BooleanScalarExpr.java b/petascope/src/petascope/wcps/grammar/BooleanScalarExpr.java new file mode 100644 index 0000000..641659a --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/BooleanScalarExpr.java @@ -0,0 +1,105 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * BooleanScalarExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class BooleanScalarExpr implements IParseTreeNode {
+
+ String booleanConstant;
+ IParseTreeNode left, right;
+ BooleanScalarExpr leftBooleanScalarExpr, rightBooleanScalarExpr;
+ NumericScalarExpr leftNumericScalar, rightNumericScalar;
+ String node1, node2;
+ String op;
+
+ public BooleanScalarExpr(String bc) {
+ op = null;
+ booleanConstant = bc;
+ }
+
+ public BooleanScalarExpr(String op, BooleanScalarExpr be) {
+ this.op = op;
+ left = be;
+ }
+
+ public BooleanScalarExpr(String op, BooleanScalarExpr lbe, BooleanScalarExpr rbe) {
+ this.op = op;
+ left = lbe;
+ right = rbe;
+ }
+
+ public BooleanScalarExpr(String op, NumericScalarExpr left, NumericScalarExpr right) {
+ this.op = op;
+ this.left = left;
+ this.right = right;
+ }
+
+ public BooleanScalarExpr(String op, StringScalarExpr e1, StringScalarExpr e2) {
+ this.op = op;
+ left = e1;
+ right = e2;
+ }
+
+ public String toXML() {
+ if (op == null) {
+ return "<booleanConstant>" + booleanConstant + "</booleanConstant>";
+ } else if (op.equals("not")) {
+ return "<booleanNot>" + left.toXML() + "</booleanNot>";
+ } else {
+ if (this.left != null) {
+ node1 = this.left.toXML();
+ }
+
+ if (this.right != null) {
+ node2 = this.right.toXML();
+ }
+
+ if (op.equals("and")) {
+ op = "booleanAnd";
+ } else if (op.equals("or")) {
+ op = "booleanOr";
+ } else if (op.equals("xor")) {
+ op = "booleanXor";
+
+ } else if (op.equals("equals")) {
+ op = "booleanEqualNumeric";
+ } else if (op.equals("notEqual")) {
+ op = "booleanNotEqualNumeric";
+ } else if (op.equals("lessThan")) {
+ op = "booleanLessThan";
+ } else if (op.equals("greaterThan")) {
+ op = "booleanGreaterThan";
+ } else if (op.equals("lessOrEqual")) {
+ op = "booleanLessOrEqual";
+ } else if (op.equals("greaterOrEqual")) {
+ op = "booleanGreaterOrEqual";
+ }
+
+ return "<" + op + ">" + node1 + node2 + "</" + op + ">";
+ }
+
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/CastExpr.java b/petascope/src/petascope/wcps/grammar/CastExpr.java new file mode 100644 index 0000000..86bbf80 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/CastExpr.java @@ -0,0 +1,48 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * CastExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class CastExpr implements IParseTreeNode {
+
+ String castType;
+ CoverageExpr coverageExpr;
+
+ public CastExpr(CoverageExpr ce, String ct) {
+ castType = ct;
+ coverageExpr = ce;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<cast>";
+ result += coverageExpr.toXML();
+ result += "<type>" + castType + "</type>";
+ result += "</cast>";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ComplexConst.java b/petascope/src/petascope/wcps/grammar/ComplexConst.java new file mode 100644 index 0000000..306aad4 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ComplexConst.java @@ -0,0 +1,51 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ComplexConst
+ * @author: Andrei Aiordachioaie
+ */
+public class ComplexConst {
+
+ String re, im;
+
+ /**
+ * ComplexLit constructor comment.
+ */
+ public ComplexConst() {
+ super();
+ }
+
+ public ComplexConst(String val) {
+ int pos = val.indexOf("+i", 0);
+
+ if (pos != -1) {
+ re = val.substring(0, pos - 1);
+ im = val.substring(pos + 2, val.length());
+ }
+ }
+
+ public String toXML() {
+ return "<complexConstant><re>" + re + "</re><im>" + im + "</im></complexConstant";
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/CondenseExpr.java b/petascope/src/petascope/wcps/grammar/CondenseExpr.java new file mode 100644 index 0000000..1abb422 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/CondenseExpr.java @@ -0,0 +1,41 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * CondenseExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class CondenseExpr implements IParseTreeNode {
+
+ IParseTreeNode expr;
+ String fun;
+
+ public CondenseExpr(IParseTreeNode re) {
+ expr = re;
+ }
+
+ public String toXML() {
+ return expr.toXML();
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/CondenseOperation.java b/petascope/src/petascope/wcps/grammar/CondenseOperation.java new file mode 100644 index 0000000..fd3f48e --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/CondenseOperation.java @@ -0,0 +1,58 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * CondenseOperationType
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class CondenseOperation implements IParseTreeNode {
+
+ String op;
+
+ public CondenseOperation(String op) {
+ this.op = op;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ if (op.equalsIgnoreCase("+")) {
+ result = "opPlus";
+ } else if (op.equalsIgnoreCase("*")) {
+ result = "opMult";
+ } else if (op.equalsIgnoreCase("max")) {
+ result = "opMax";
+ } else if (op.equalsIgnoreCase("min")) {
+ result = "opMin";
+ } else if (op.equalsIgnoreCase("and")) {
+ result = "opAnd";
+ } else if (op.equalsIgnoreCase("or")) {
+ result = "opOr";
+ }
+
+ result = "<" + result + "/>";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ConstantList.java b/petascope/src/petascope/wcps/grammar/ConstantList.java new file mode 100644 index 0000000..5f7bad5 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ConstantList.java @@ -0,0 +1,54 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+import java.util.*;
+
+/**
+ * ConstantList
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class ConstantList implements IParseTreeNode {
+
+ LinkedList<String> list;
+
+ public ConstantList(String val) {
+ list = new LinkedList<String>();
+ list.add(val);
+ }
+
+ public void add(String val) {
+ list.add(val);
+ }
+
+ public String toXML() {
+ String result = "";
+ Iterator<String> it = list.iterator();
+
+ while (it.hasNext()) {
+ result += "<value>" + it.next() + "</value>";
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/CoverageConstantExpr.java b/petascope/src/petascope/wcps/grammar/CoverageConstantExpr.java new file mode 100644 index 0000000..0dd9f8c --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/CoverageConstantExpr.java @@ -0,0 +1,52 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * CoverageConstantExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class CoverageConstantExpr implements IParseTreeNode {
+
+ AxisIteratorList alist;
+ ConstantList clist;
+ String name;
+
+ public CoverageConstantExpr(String name, AxisIteratorList alist, ConstantList clist) {
+ this.name = name;
+ this.alist = alist;
+ alist.setTag("axisIterator");
+ this.clist = clist;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<name>" + name + "</name>";
+ result += alist.toXML();
+ result += clist.toXML();
+
+ result = "<const>" + result + "</const>";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/CoverageConstructorExpr.java b/petascope/src/petascope/wcps/grammar/CoverageConstructorExpr.java new file mode 100644 index 0000000..6d45238 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/CoverageConstructorExpr.java @@ -0,0 +1,52 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * CoverageConstructorExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class CoverageConstructorExpr implements IParseTreeNode {
+
+ AxisIteratorList alist;
+ ScalarExpr expr;
+ String name;
+
+ public CoverageConstructorExpr(String name, AxisIteratorList alist, ScalarExpr expr) {
+ this.name = name;
+ this.alist = alist;
+ alist.setTag("axisIterator");
+ this.expr = expr;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<name>" + name + "</name>";
+ result += alist.toXML();
+ result += expr.toXML();
+
+ result = "<construct>" + result + "</construct>";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/CoverageExpr.java b/petascope/src/petascope/wcps/grammar/CoverageExpr.java new file mode 100644 index 0000000..6c38675 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/CoverageExpr.java @@ -0,0 +1,121 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * CoverageExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class CoverageExpr implements IParseTreeNode {
+
+ String coverageName;
+ IParseTreeNode expr, e1, e2;
+ String function;
+ String op;
+
+ public CoverageExpr(IParseTreeNode n) {
+ expr = n;
+ function = "child";
+ }
+
+ public CoverageExpr(String n) {
+ coverageName = n;
+ function = "coverage";
+ }
+
+ /* Unary Induced Expressions */
+ public CoverageExpr(String op, CoverageExpr ce) {
+ expr = ce;
+ function = "unaryOp";
+ this.op = op;
+ }
+
+ public CoverageExpr(String op, CoverageExpr e1, CoverageExpr e2) {
+ function = "binaryOp";
+ this.op = op;
+ this.e1 = e1;
+ this.e2 = e2;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ if (function.equals("coverage")) {
+ result = "<coverage>" + coverageName + "</coverage>";
+ } else if (function.equals("binaryOp")) {
+ formatOperation();
+ result = "<" + op + ">" + e1.toXML() + e2.toXML() + "</" + op + ">";
+ } else if (function.equals("unaryOp")) {
+ formatOperation();
+ if (op.equals("plus")) {
+ op = "unaryPlus";
+ }
+ if (op.equals("minus")) {
+ op = "unaryMinus";
+ }
+ result = "<" + op + ">" + expr.toXML() + "</" + op + ">";
+ } else if (function.equals("child")) {
+ result = expr.toXML();
+ }
+
+ return result;
+ }
+
+ private void formatOperation() {
+ if (op.equals("+")) {
+ op = "plus";
+ }
+ if (op.equals("-")) {
+ op = "minus";
+ }
+ if (op.equals("*")) {
+ op = "mult";
+ }
+ if (op.equals("/")) {
+ op = "div";
+ }
+
+ // AND, OR, XOR stay the same
+
+ if (op.equals("=")) {
+ op = "equals";
+ }
+ if (op.equals("<")) {
+ op = "lessThan";
+ }
+ if (op.equals(">")) {
+ op = "greaterThan";
+ }
+ if (op.equals("<=")) {
+ op = "lessOrEqual";
+ }
+ if (op.equals(">=")) {
+ op = "greaterOrEqual";
+ }
+ if (op.equals("!=")) {
+ op = "notEqual";
+ }
+
+ // OVERLAY stays the same
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/CoverageList.java b/petascope/src/petascope/wcps/grammar/CoverageList.java new file mode 100644 index 0000000..18ae542 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/CoverageList.java @@ -0,0 +1,62 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * CoverageList class represents a CoverageList.
+ * Creation date: (3/3/2003 2:52:55 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class CoverageList implements IParseTreeNode {
+
+ private String coverageName;
+ private CoverageList next;
+
+ public CoverageList(String c) {
+ coverageName = c;
+ next = null;
+ }
+
+ public CoverageList(String c, CoverageList l) {
+ coverageName = c;
+ next = l;
+ }
+
+ public String toXML() {
+ String result = "<coverageName>" + coverageName + "</coverageName>";
+
+ if (next != null) {
+ result += next.toXML();
+ }
+
+ return result;
+ }
+
+ public String toString() {
+ String result = coverageName;
+ if (next != null) {
+ result += next.toString();
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/CrsList.java b/petascope/src/petascope/wcps/grammar/CrsList.java new file mode 100644 index 0000000..4af5903 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/CrsList.java @@ -0,0 +1,58 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+import java.util.*;
+
+/**
+ * CrsList
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class CrsList implements IParseTreeNode {
+
+ LinkedList<String> list;
+
+ public CrsList() {
+ list = new LinkedList<String>();
+ }
+
+ public CrsList(String crs) {
+ list = new LinkedList<String>();
+ list.add(crs);
+ }
+
+ public void add(String crs) {
+ list.add(crs);
+ }
+
+ public String toXML() {
+ String result = "";
+ Iterator<String> it = list.iterator();
+
+ while (it.hasNext()) {
+ result += "<crs>" + it.next() + "</crs>";
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/CrsTransformExpr.java b/petascope/src/petascope/wcps/grammar/CrsTransformExpr.java new file mode 100644 index 0000000..f77c8a7 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/CrsTransformExpr.java @@ -0,0 +1,50 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * CrsTransformExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class CrsTransformExpr implements IParseTreeNode {
+
+ IParseTreeNode e1, e2, e3;
+
+ public CrsTransformExpr(CoverageExpr expr, DimensionIntervalList list1,
+ FieldInterpolationList list2) {
+ e1 = expr;
+ e2 = list1;
+ e3 = list2;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += e1.toXML();
+ result += e2.toXML();
+ result += e3.toXML();
+
+ result = "<crsTransform>" + result + "</crsTransform>";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/DimensionIntervalElement.java b/petascope/src/petascope/wcps/grammar/DimensionIntervalElement.java new file mode 100644 index 0000000..3037dc5 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/DimensionIntervalElement.java @@ -0,0 +1,60 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * DimensionIntervalElement
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class DimensionIntervalElement implements IParseTreeNode {
+
+ String axis;
+ String crs;
+ DimensionIntervalExpr expr;
+
+ public DimensionIntervalElement(String a) {
+ axis = a;
+ }
+
+ public void setCrs(String c) {
+ crs = c;
+ }
+
+ public void setIntervalExpr(DimensionIntervalExpr e) {
+ expr = e;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<axis>" + axis + "</axis>";
+
+ if (crs != null) {
+ result += "<srsName>" + crs + "</srsName>";
+ }
+
+ result += expr.toXML();
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/DimensionIntervalExpr.java b/petascope/src/petascope/wcps/grammar/DimensionIntervalExpr.java new file mode 100644 index 0000000..2036041 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/DimensionIntervalExpr.java @@ -0,0 +1,60 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * DimensionIntervalExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class DimensionIntervalExpr implements IParseTreeNode {
+
+ IParseTreeNode e1, e2;
+ String fun;
+ String str;
+
+ public DimensionIntervalExpr(ScalarExpr exp1, ScalarExpr exp2) {
+ fun = "scalars";
+ e1 = exp1;
+ e2 = exp2;
+ }
+
+ public DimensionIntervalExpr(String cov, String axis, String crs) {
+ fun = "domain metadata";
+ str = "<coverage>" + cov + "</coverage>";
+ str += "<axis>" + axis + "</axis>";
+ str += "<crs>" + crs + "</crs>";
+ }
+
+ public String toXML() {
+ String result = "";
+
+ if (fun.equals("scalars")) {
+ result += "<lowerBound>" + e1.toXML() + "</lowerBound>";
+ result += "<upperBound>" + e2.toXML() + "</upperBound>";
+ } else if (fun.equals("domain metadata")) {
+ result = str;
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/DimensionIntervalList.java b/petascope/src/petascope/wcps/grammar/DimensionIntervalList.java new file mode 100644 index 0000000..5a98f25 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/DimensionIntervalList.java @@ -0,0 +1,54 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+import java.util.*;
+
+/**
+ * DimensionIntervalList
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class DimensionIntervalList implements IParseTreeNode {
+
+ LinkedList<DimensionIntervalElement> list;
+
+ public DimensionIntervalList(DimensionIntervalElement e) {
+ list = new LinkedList();
+ list.add(e);
+ }
+
+ public void add(DimensionIntervalElement meth) {
+ list.add(meth);
+ }
+
+ public String toXML() {
+ String result = "";
+ Iterator<DimensionIntervalElement> it = list.iterator();
+
+ while (it.hasNext()) {
+ result += it.next().toXML();
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/DimensionPointElement.java b/petascope/src/petascope/wcps/grammar/DimensionPointElement.java new file mode 100644 index 0000000..70f9c57 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/DimensionPointElement.java @@ -0,0 +1,59 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * DimensionPointElement
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class DimensionPointElement implements IParseTreeNode {
+
+ String axis;
+ String crs;
+ ScalarExpr point;
+
+ public DimensionPointElement(String a, ScalarExpr dp) {
+ axis = a;
+ point = dp;
+ }
+
+ public DimensionPointElement(String a, String c, ScalarExpr dp) {
+ axis = a;
+ crs = c;
+ point = dp;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<axis>" + axis + "</axis>";
+
+ if (crs != null) {
+ result += "<srsName>" + crs + "</srsName>";
+ }
+
+ result += "<slicingPosition>" + point.toXML() + "</slicingPosition>";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/DimensionPointList.java b/petascope/src/petascope/wcps/grammar/DimensionPointList.java new file mode 100644 index 0000000..d07a233 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/DimensionPointList.java @@ -0,0 +1,54 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+import java.util.*;
+
+/**
+ * DimensionPointList
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class DimensionPointList implements IParseTreeNode {
+
+ LinkedList<DimensionPointElement> list;
+
+ public DimensionPointList(DimensionPointElement e) {
+ list = new LinkedList();
+ list.add(e);
+ }
+
+ public void add(DimensionPointElement meth) {
+ list.add(meth);
+ }
+
+ public String toXML() {
+ String result = "";
+ Iterator<DimensionPointElement> it = list.iterator();
+
+ while (it.hasNext()) {
+ result += it.next().toXML();
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/DomainExpr.java b/petascope/src/petascope/wcps/grammar/DomainExpr.java new file mode 100644 index 0000000..f8c6e91 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/DomainExpr.java @@ -0,0 +1,47 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * DomainExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class DomainExpr implements IParseTreeNode {
+
+ String var, axis, crs;
+
+ public DomainExpr(String v, String a, String c) {
+ var = v;
+ axis = a;
+ crs = c;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<coverage>" + var + "</coverage>";
+ result += "<axis>" + axis + "</axis>";
+ result += "<crs>" + crs + "</crs>";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/EncodedCoverageExpr.java b/petascope/src/petascope/wcps/grammar/EncodedCoverageExpr.java new file mode 100644 index 0000000..7eb615f --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/EncodedCoverageExpr.java @@ -0,0 +1,77 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * EncodedCoverageExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class EncodedCoverageExpr implements IParseTreeNode {
+
+ CoverageExpr expr;
+ String extraParams;
+ String format;
+ boolean store;
+
+ public EncodedCoverageExpr(CoverageExpr ce, String fn) {
+ expr = ce;
+ // remove double quotes
+ if (fn.getBytes()[0] == '"' && fn.getBytes()[fn.length() - 1] == '"') {
+ format = fn.substring(1, fn.length() - 1);
+ } else {
+ format = fn;
+ }
+
+ extraParams = null;
+ store = false;
+ }
+
+ public void setParams(String params) {
+ extraParams = params;
+ }
+
+ public void setStoreFlag() {
+ store = true;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ if (store) {
+ result = "<encode store=\"true\">";
+ } else {
+ result = "<encode store=\"false\">";
+ }
+
+ result += expr.toXML();
+ result += "<format>" + format + "</format>";
+
+ if (extraParams != null) {
+ result += "<extraParameters>" + extraParams + "</extraParameters>";
+ }
+
+ result += "</encode>";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ExponentialExpr.java b/petascope/src/petascope/wcps/grammar/ExponentialExpr.java new file mode 100644 index 0000000..e661624 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ExponentialExpr.java @@ -0,0 +1,47 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ExponentialExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class ExponentialExpr implements IParseTreeNode {
+
+ CoverageExpr coverageExpr;
+ String expOperator;
+
+ public ExponentialExpr(String op, CoverageExpr ce) {
+ expOperator = op;
+ coverageExpr = ce;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<" + expOperator + ">";
+ result += coverageExpr.toXML();
+ result += "</" + expOperator + ">";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ExtendExpr.java b/petascope/src/petascope/wcps/grammar/ExtendExpr.java new file mode 100644 index 0000000..ec94989 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ExtendExpr.java @@ -0,0 +1,42 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ExtendExpr
+ * Creation date: (8/2/2008)
+ * @author: Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class ExtendExpr implements IParseTreeNode {
+
+ CoverageExpr coverageExpr;
+ DimensionIntervalList intervalList;
+
+ public ExtendExpr(CoverageExpr ce, DimensionIntervalList apl) {
+ coverageExpr = ce;
+ intervalList = apl;
+ }
+
+ public String toXML() {
+ return "<extend>" + coverageExpr.toXML() + intervalList.toXML() + "</extend>";
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/FieldInterpolationElement.java b/petascope/src/petascope/wcps/grammar/FieldInterpolationElement.java new file mode 100644 index 0000000..8499496 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/FieldInterpolationElement.java @@ -0,0 +1,44 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * FieldInterpolationElement
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class FieldInterpolationElement implements IParseTreeNode {
+
+ String name;
+ IParseTreeNode node;
+
+ public FieldInterpolationElement(String name, InterpolationMethod method) {
+ this.name = name;
+ node = method;
+ }
+
+ public String toXML() {
+ String result = "<name>" + name + "</name>" + node.toXML();
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/FieldInterpolationList.java b/petascope/src/petascope/wcps/grammar/FieldInterpolationList.java new file mode 100644 index 0000000..ea5f021 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/FieldInterpolationList.java @@ -0,0 +1,54 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+import java.util.*;
+
+/**
+ * FieldInterpolationList
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class FieldInterpolationList implements IParseTreeNode {
+
+ LinkedList<FieldInterpolationElement> list;
+
+ public FieldInterpolationList(FieldInterpolationElement e) {
+ list = new LinkedList();
+ list.add(e);
+ }
+
+ public void add(FieldInterpolationElement meth) {
+ list.add(meth);
+ }
+
+ public String toXML() {
+ String result = "";
+ Iterator<FieldInterpolationElement> it = list.iterator();
+
+ while (it.hasNext()) {
+ result += it.next().toXML();
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ForClause.java b/petascope/src/petascope/wcps/grammar/ForClause.java new file mode 100644 index 0000000..6cbdf8d --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ForClause.java @@ -0,0 +1,40 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ForClause
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class ForClause implements IParseTreeNode {
+
+ ForClauseElements forClauseElements;
+
+ public ForClause(ForClauseElements fce) {
+ forClauseElements = fce;
+ }
+
+ public String toXML() {
+ return forClauseElements.toXML();
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ForClauseElements.java b/petascope/src/petascope/wcps/grammar/ForClauseElements.java new file mode 100644 index 0000000..a152348 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ForClauseElements.java @@ -0,0 +1,60 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ForClauseElements
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class ForClauseElements implements IParseTreeNode {
+
+ CoverageList coverageList;
+ ForClauseElements next;
+ String var;
+
+ public ForClauseElements(String v, CoverageList c) {
+ var = v;
+ coverageList = c;
+ }
+
+ public ForClauseElements(String v, CoverageList c, ForClauseElements next) {
+ var = v;
+ coverageList = c;
+ this.next = next;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<coverageIterator>";
+ result += "<iteratorVar>" + var + "</iteratorVar>";
+ result += coverageList.toXML();
+ result += "</coverageIterator>";
+
+ if (next != null) {
+ result += next.toXML();
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/GeneralCondenseExpr.java b/petascope/src/petascope/wcps/grammar/GeneralCondenseExpr.java new file mode 100644 index 0000000..a5d8dcd --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/GeneralCondenseExpr.java @@ -0,0 +1,67 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * GeneralCondenseExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class GeneralCondenseExpr implements IParseTreeNode {
+
+ AxisIteratorList alist;
+ CondenseOperation op;
+ CoverageExpr using;
+ BooleanScalarExpr where;
+
+ public GeneralCondenseExpr(CondenseOperation op, AxisIteratorList al) {
+ this.op = op;
+ alist = al;
+ alist.setTag("iterator");
+ where = null;
+ using = null;
+ }
+
+ public void setWhere(BooleanScalarExpr bse) {
+ where = bse;
+ }
+
+ public void setUsing(CoverageExpr se) {
+ using = se;
+ }
+
+ public String toXML() {
+ String result = "<condense>";
+
+ result += op.toXML();
+ result += alist.toXML();
+
+ if (where != null) {
+ result += "<where>" + where.toXML() + "</where>";
+ }
+
+ result += using.toXML();
+ result += "</condense>";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/IParseTreeNode.java b/petascope/src/petascope/wcps/grammar/IParseTreeNode.java new file mode 100644 index 0000000..8dd44ad --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/IParseTreeNode.java @@ -0,0 +1,31 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/* Author: Sorin Stancu-Mara
+Date: 7 FEB 2007
+Interface that all nodes implement to simplify some of the complex nodes
+ */
+public interface IParseTreeNode {
+
+ public String toXML();
+}
diff --git a/petascope/src/petascope/wcps/grammar/ImageCrsDomainMetadataExpr.java b/petascope/src/petascope/wcps/grammar/ImageCrsDomainMetadataExpr.java new file mode 100644 index 0000000..9cb4e9c --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ImageCrsDomainMetadataExpr.java @@ -0,0 +1,45 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ImageCrsDomainMetadataExpr Group
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class ImageCrsDomainMetadataExpr implements IParseTreeNode {
+
+ String axis;
+ CoverageExpr cov;
+ NumericScalarExpr n1, n2;
+
+ public ImageCrsDomainMetadataExpr(String covName, String axis) {
+ this.cov = new CoverageExpr(covName);
+ this.axis = axis;
+ }
+
+ public String toXML() {
+ String result = cov.toXML() + "<axis>" + axis + "</axis>";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/IndexExpr.java b/petascope/src/petascope/wcps/grammar/IndexExpr.java new file mode 100644 index 0000000..bb95b88 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/IndexExpr.java @@ -0,0 +1,69 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * IndexExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class IndexExpr implements IParseTreeNode {
+
+ String constant;
+ IParseTreeNode e1, e2;
+ String function;
+ String op;
+
+ public IndexExpr(String constant) {
+ function = "constant";
+ this.constant = constant;
+ }
+
+ public IndexExpr(String op, NumericScalarExpr e1) {
+ this.op = op;
+ this.e1 = e1;
+ function = "op1";
+ }
+
+ public IndexExpr(String op, IndexExpr e1, IndexExpr e2) {
+ this.op = op;
+ this.e1 = e1;
+ this.e2 = e2;
+ function = "op2";
+ }
+
+ public String toXML() {
+ String result = "";
+ String tag1 = "<" + op + ">",
+ tag2 = "</" + op + ">";
+
+ if (function.equals("constant")) {
+ result = "<numericConstant>" + constant + "</numericConstant>";
+ } else if (function.equals("op1")) {
+ result = tag1 + e1.toXML() + tag2;
+ } else if (function.equals("op2")) {
+ result = tag1 + e1.toXML() + e2.toXML() + tag2;
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/InterpolationMethod.java b/petascope/src/petascope/wcps/grammar/InterpolationMethod.java new file mode 100644 index 0000000..0377ed1 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/InterpolationMethod.java @@ -0,0 +1,45 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * InterpolationMethod
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class InterpolationMethod implements IParseTreeNode {
+
+ String interp, resistance;
+
+ public InterpolationMethod(String interp, String resist) {
+ this.interp = interp;
+ this.resistance = resist;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<interpolationMethod>" + interp + "</interpolationMethod>";
+ result += "<nullResistance>" + resistance + "</nullResistance>";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/InterpolationMethodList.java b/petascope/src/petascope/wcps/grammar/InterpolationMethodList.java new file mode 100644 index 0000000..2f0d6fe --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/InterpolationMethodList.java @@ -0,0 +1,53 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+import java.util.*;
+
+/**
+ * InterpolationMethodList
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class InterpolationMethodList implements IParseTreeNode {
+
+ LinkedList<InterpolationMethod> list;
+
+ public InterpolationMethodList() {
+ list = new LinkedList();
+ }
+
+ public void add(InterpolationMethod meth) {
+ list.add(meth);
+ }
+
+ public String toXML() {
+ String result = "";
+ Iterator<InterpolationMethod> it = list.iterator();
+
+ while (it.hasNext()) {
+ result += it.next().toXML();
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/IntervalExpr.java b/petascope/src/petascope/wcps/grammar/IntervalExpr.java new file mode 100644 index 0000000..9bd251a --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/IntervalExpr.java @@ -0,0 +1,56 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * IntervalExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class IntervalExpr implements IParseTreeNode {
+
+ IParseTreeNode e1, e2;
+ String function;
+
+ public IntervalExpr(IndexExpr n1, IndexExpr n2) {
+ this.e1 = n1;
+ this.e2 = n2;
+ function = "two indexes";
+ }
+
+ public IntervalExpr(String coverage, String axis) {
+ function = "crs metadata";
+ this.e1 = new ImageCrsDomainMetadataExpr(coverage, axis);
+ }
+
+ public String toXML() {
+ String result = "";
+
+ if (function.equals("two indexes")) {
+ result = e1.toXML() + e2.toXML();
+ } else if (function.equals("crs metadata")) {
+ result = e1.toXML();
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/MetaDataExpr.java b/petascope/src/petascope/wcps/grammar/MetaDataExpr.java new file mode 100644 index 0000000..7cd39a0 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/MetaDataExpr.java @@ -0,0 +1,90 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * MetaDataExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class MetaDataExpr implements IParseTreeNode {
+
+ CoverageExpr expr;
+ String field;
+ String function;
+ IParseTreeNode param;
+
+ public MetaDataExpr(DomainExpr dom) {
+ function = "domain";
+ param = dom;
+ }
+
+ // Identifier, ImageCRS, ImageCRSDomain, CrsSet, NullSet
+ public MetaDataExpr(String op, CoverageExpr expr) {
+ function = op;
+ this.expr = expr;
+ }
+
+ // ImageCRSDomain, interpolationDefault, interpolationSet
+ public MetaDataExpr(String op, CoverageExpr expr, String str) {
+ function = op;
+ this.expr = expr;
+ this.field = str;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ if (function.equalsIgnoreCase("imageCrsDomain")) {
+ result += "<imageCrsDomain>";
+ result += expr.toXML();
+
+ if (field != null) {
+ result += "<axis>" + field + "</axis>";
+ }
+
+ result += "</imageCrsDomain>";
+ } else if (function.equalsIgnoreCase("domain")) {
+ result = "<DomainMetadata>" + param.toXML() + "</DomainMetadata>";
+ } else if (function.equalsIgnoreCase("interpolationDefault")) {
+ result += "<interpolationDefault>";
+ result += expr.toXML();
+ result += "<name>" + param + "</param>";
+ result += "</interpolationDefault>";
+ } else if (function.equalsIgnoreCase("interpolationSet")) {
+ result += "<interpolationSet>";
+ result += expr.toXML();
+ result += "<name>" + param + "</param>";
+ result += "</interpolationSet>";
+ } else if (function.equalsIgnoreCase("identifier")
+ || function.equalsIgnoreCase("imageCRS") || function.equalsIgnoreCase("crsSet")
+ || function.equalsIgnoreCase("nullSet")) {
+ result += "<" + function + ">";
+ result += expr.toXML();
+ result += "</" + function + ">";
+ } else {
+ System.err.println("Unknown MetadataExpr operation: " + function);
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/NumericScalarExpr.java b/petascope/src/petascope/wcps/grammar/NumericScalarExpr.java new file mode 100644 index 0000000..731cf2c --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/NumericScalarExpr.java @@ -0,0 +1,121 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * NumericScalarExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class NumericScalarExpr implements IParseTreeNode {
+
+ CondenseExpr condense;
+ String constValue;
+ String function;
+ NumericScalarExpr leftNumericScalarExpr, rightNumericScalarExpr;
+
+ public NumericScalarExpr(CondenseExpr c) {
+ condense = c;
+ function = "condense";
+ }
+
+ public NumericScalarExpr(String val) {
+ if (val.contains("+i")) {
+ ComplexConst cc = new ComplexConst(val);
+
+ constValue = cc.toXML();
+ function = "complexConstant";
+ } else {
+ constValue = val;
+ function = "numericConstant";
+ }
+ }
+
+ public NumericScalarExpr(String op, NumericScalarExpr expr) {
+ leftNumericScalarExpr = expr;
+
+ if (op.equals("-")) {
+ function = "numericUnaryMinus";
+ } else
+ if (op.equals("sqrt")) {
+ function = "numericSqrt";
+ } else
+ if (op.equals("abs")) {
+ function = "numericAbs";
+ } else {
+ System.err.println("Unary Operator " + op + " is not recognized!");
+ }
+ }
+
+ public NumericScalarExpr(String varOp, String varName) {
+ if (varOp.equals("var")) {
+ function = "variableRef";
+ constValue = varName;
+ } else {
+ System.err.println("Internal error: this should have been a variable name:" + varName);
+ }
+ }
+
+ public NumericScalarExpr(String op, NumericScalarExpr lbe, NumericScalarExpr rbe) {
+ leftNumericScalarExpr = lbe;
+ rightNumericScalarExpr = rbe;
+
+ if (op.equals("+")) {
+ function = "numericAdd";
+ } else if (op.equals("-")) {
+ function = "numericMinus";
+ } else if (op.equals("*")) {
+ function = "numericMult";
+ } else if (op.equals("/")) {
+ function = "numericDiv";
+ } else {
+ System.err.println("Operator " + op + " is not recognized!");
+ }
+ }
+
+ public String toXML() {
+ String result;
+
+ if (function.equals("complexConstant")) {
+ return constValue;
+ }
+ if (function.equals("condense")) {
+ return condense.toXML();
+ }
+
+ result = "<" + function + ">";
+
+ if (function.equals("numericConstant") || function.equals("variableRef")) {
+ result += constValue;
+ } else {
+ result += leftNumericScalarExpr.toXML();
+
+ if (rightNumericScalarExpr != null) {
+ result += rightNumericScalarExpr.toXML();
+ }
+ }
+
+ result += "</" + function + ">";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ProcessingExpr.java b/petascope/src/petascope/wcps/grammar/ProcessingExpr.java new file mode 100644 index 0000000..c7aacd3 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ProcessingExpr.java @@ -0,0 +1,40 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ProcessingExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class ProcessingExpr implements IParseTreeNode {
+
+ IParseTreeNode expr;
+
+ public ProcessingExpr(IParseTreeNode e) {
+ expr = e;
+ }
+
+ public String toXML() {
+ return expr.toXML();
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/RangeConstructorExpr.java b/petascope/src/petascope/wcps/grammar/RangeConstructorExpr.java new file mode 100644 index 0000000..9bd4612 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/RangeConstructorExpr.java @@ -0,0 +1,59 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+import java.util.*;
+
+/**
+ * RangeConstructorExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class RangeConstructorExpr implements IParseTreeNode {
+
+ LinkedList<RangeConstructorTerm> list;
+
+ public RangeConstructorExpr() {
+ list = new LinkedList();
+ }
+
+ public RangeConstructorExpr(String field, CoverageExpr expr) {
+ this();
+ add(field, expr);
+ }
+
+ public void add(String field, CoverageExpr expr) {
+ list.add(new RangeConstructorTerm(field, expr));
+ }
+
+ public String toXML() {
+ String result = "";
+ Iterator<RangeConstructorTerm> it = list.iterator();
+
+ while (it.hasNext()) {
+ result += it.next().toXML();
+ }
+
+ result = "<rangeConstructor>" + result + "</rangeConstructor>";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/RangeConstructorTerm.java b/petascope/src/petascope/wcps/grammar/RangeConstructorTerm.java new file mode 100644 index 0000000..3cc2a4a --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/RangeConstructorTerm.java @@ -0,0 +1,48 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * RangeConstructorTerm, part of a RangeConstructorExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class RangeConstructorTerm implements IParseTreeNode {
+
+ CoverageExpr expr;
+ String field;
+
+ public RangeConstructorTerm(String f, CoverageExpr c) {
+ field = f;
+ expr = c;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<field>" + field + "</field>";
+ result += expr.toXML();
+
+ result = "<component>" + result + "</component>";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/RangeExpr.java b/petascope/src/petascope/wcps/grammar/RangeExpr.java new file mode 100644 index 0000000..227de44 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/RangeExpr.java @@ -0,0 +1,53 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * RangeExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class RangeExpr implements IParseTreeNode {
+
+ String xml;
+
+ public RangeExpr() {
+ this.xml = "";
+ }
+
+ public RangeExpr(String field, ScalarExpr expr) {
+ this();
+ add(field, expr);
+ }
+
+ public void add(String field, ScalarExpr expr) {
+ String tmp = "";
+
+ tmp += "<field>" + field + "</field>";
+ tmp += expr.toXML();
+ xml += "<component>" + tmp + "</component>";
+ }
+
+ public String toXML() {
+ return xml;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/RangeExprList.java b/petascope/src/petascope/wcps/grammar/RangeExprList.java new file mode 100644 index 0000000..68046ca --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/RangeExprList.java @@ -0,0 +1,54 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+import java.util.*;
+
+/**
+ * RangeExprList
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class RangeExprList implements IParseTreeNode {
+
+ LinkedList<RangeExpr> list;
+
+ public RangeExprList() {
+ list = new LinkedList();
+ }
+
+ public void add(RangeExpr expr) {
+ list.add(expr);
+ }
+
+ public String toXML() {
+ String result = "";
+
+ Iterator<RangeExpr> it = list.iterator();
+
+ while (it.hasNext()) {
+ result += "<null>" + it.next().toXML() + "</null>";
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ReduceExpr.java b/petascope/src/petascope/wcps/grammar/ReduceExpr.java new file mode 100644 index 0000000..3a14b75 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ReduceExpr.java @@ -0,0 +1,44 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ReduceExpr
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class ReduceExpr implements IParseTreeNode {
+
+ CoverageExpr expr;
+ String op;
+
+ public ReduceExpr(String op, CoverageExpr e) {
+ this.op = op;
+ this.expr = e;
+ }
+
+ public String toXML() {
+ String result = "<reduce><" + op + ">" + expr.toXML() + "</" + op + "></reduce>";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ReturnClause.java b/petascope/src/petascope/wcps/grammar/ReturnClause.java new file mode 100644 index 0000000..f2c1503 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ReturnClause.java @@ -0,0 +1,40 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ReturnClause
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class ReturnClause implements IParseTreeNode {
+
+ IParseTreeNode expr;
+
+ public ReturnClause(IParseTreeNode e) {
+ expr = e;
+ }
+
+ public String toXML() {
+ return expr.toXML();
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ScalarExpr.java b/petascope/src/petascope/wcps/grammar/ScalarExpr.java new file mode 100644 index 0000000..4ed4204 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ScalarExpr.java @@ -0,0 +1,40 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ScalarExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class ScalarExpr implements IParseTreeNode {
+
+ IParseTreeNode expr;
+
+ public ScalarExpr(IParseTreeNode e) {
+ expr = e;
+ }
+
+ public String toXML() {
+ return expr.toXML();
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/ScaleExpr.java b/petascope/src/petascope/wcps/grammar/ScaleExpr.java new file mode 100644 index 0000000..ce533dc --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/ScaleExpr.java @@ -0,0 +1,57 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * ScaleExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class ScaleExpr implements IParseTreeNode {
+
+ CoverageExpr coverageExpr;
+ FieldInterpolationList interpMethods;
+ DimensionIntervalList intervalList;
+
+ public ScaleExpr(CoverageExpr ce, DimensionIntervalList ail)
+ {
+ coverageExpr = ce;
+ intervalList = ail;
+ }
+
+ public void addInterpolationList(FieldInterpolationList iml)
+ {
+ interpMethods = iml;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += coverageExpr.toXML() + intervalList.toXML();
+ if (interpMethods != null)
+ result += interpMethods.toXML();
+
+ result = "<scale>" + result + "</scale>";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/SelectExpr.java b/petascope/src/petascope/wcps/grammar/SelectExpr.java new file mode 100644 index 0000000..4322eb3 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/SelectExpr.java @@ -0,0 +1,52 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * SelectExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class SelectExpr implements IParseTreeNode {
+
+ CoverageExpr coverageExpr;
+ String field;
+
+ public SelectExpr(CoverageExpr ce, String se) {
+ coverageExpr = ce;
+ field = se;
+ }
+
+ public SelectExpr(CoverageExpr ce, int no) {
+ coverageExpr = ce;
+ field = String.valueOf(no);
+ }
+
+ public String toXML() {
+ String result = "<fieldSelect>";
+
+ result += coverageExpr.toXML();
+ result += "<field><name>" + field + "</name></field>";
+ result += "</fieldSelect>";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/SetMetaDataExpr.java b/petascope/src/petascope/wcps/grammar/SetMetaDataExpr.java new file mode 100644 index 0000000..16dccdb --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/SetMetaDataExpr.java @@ -0,0 +1,118 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * SetMetaDataExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class SetMetaDataExpr implements IParseTreeNode {
+
+ CoverageExpr expr;
+ String field;
+ String function;
+ IParseTreeNode param;
+
+ // Set Crs Set
+ public SetMetaDataExpr(String op, CoverageExpr expr, CrsList clist) {
+ function = op;
+ this.expr = expr;
+ this.param = clist;
+ }
+
+ // Set Null Set
+ public SetMetaDataExpr(String op, CoverageExpr expr, RangeExprList param) {
+ function = op;
+ this.expr = expr;
+ this.param = param;
+ }
+
+ // Set Identifier
+ public SetMetaDataExpr(String op, CoverageExpr expr, String constant) {
+ function = op;
+ this.expr = expr;
+ this.field = constant;
+ }
+
+ // Set Interpolation Default
+ public SetMetaDataExpr(String op, CoverageExpr expr, InterpolationMethod param,
+ String field) {
+ function = op;
+ this.expr = expr;
+ this.param = param;
+ this.field = field;
+ }
+
+ // Set Interpolation Set
+ public SetMetaDataExpr(String op, CoverageExpr expr, InterpolationMethodList param,
+ String field) {
+ function = op;
+ this.expr = expr;
+ this.param = param;
+ this.field = field;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ if (function.equalsIgnoreCase("setIdentifier")) {
+ result += "<identifier>" + field + "</identifier>";
+ result += expr.toXML();
+
+ result = "<setIdentifier>" + result + "</setIdentifier>";
+ } else if (function.equalsIgnoreCase("setCrsSet")) {
+ result += expr.toXML();
+
+ if (param != null) {
+ result += param.toXML();
+ }
+
+ result = "<setCrsSet>" + result + "</setCrsSet>";
+ } else if (function.equalsIgnoreCase("setNullSet")) {
+ result += expr.toXML();
+
+ if (param != null) {
+ result += param.toXML();
+ }
+
+ result = "<setNullSet>" + result + "</setNullSet>";
+ } else if (function.equalsIgnoreCase("setInterpolationDefault")) {
+ result += expr.toXML();
+ result += "<field>" + field + "</field>";
+ result += param.toXML();
+
+ result = "<setInterpolationDefault>" + result
+ + "</setInterpolationDefault>";
+ } else if (function.equalsIgnoreCase("setInterpolationSet")) {
+ result += expr.toXML();
+ result += "<field>" + field + "</field>";
+ result += param.toXML();
+
+ result = "<setInterpolationSet>" + result + "</setInterpolationSet>";
+ } else {
+ System.err.println("Unknown SetMetadataExpr operation: " + function);
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/SliceExpr.java b/petascope/src/petascope/wcps/grammar/SliceExpr.java new file mode 100644 index 0000000..72b1e08 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/SliceExpr.java @@ -0,0 +1,42 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * SliceExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class SliceExpr implements IParseTreeNode {
+
+ CoverageExpr expr;
+ DimensionPointList list;
+
+ public SliceExpr(CoverageExpr ce, DimensionPointList apl) {
+ expr = ce;
+ list = apl;
+ }
+
+ public String toXML() {
+ return "<slice>" + expr.toXML() + list.toXML() + "</slice>";
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/StoreExpr.java b/petascope/src/petascope/wcps/grammar/StoreExpr.java new file mode 100644 index 0000000..de86441 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/StoreExpr.java @@ -0,0 +1,40 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/*
+Author: Sorin Stancu-Mara, Andrei Aiordachioaie
+Date: 7 Feb 2007
+ */
+public class StoreExpr implements IParseTreeNode {
+
+ private EncodedCoverageExpr expr;
+
+ public StoreExpr(EncodedCoverageExpr e) {
+ expr = e;
+ expr.setStoreFlag();
+ }
+
+ public String toXML() {
+ return expr.toXML();
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/StringScalarExpr.java b/petascope/src/petascope/wcps/grammar/StringScalarExpr.java new file mode 100644 index 0000000..2571c12 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/StringScalarExpr.java @@ -0,0 +1,58 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * @author: Andrei Aiordachioaie
+ */
+public class StringScalarExpr implements IParseTreeNode {
+
+ CoverageExpr cov;
+ String function;
+ String op;
+ String val;
+
+ public StringScalarExpr(String val) {
+ this.val = val;
+ this.function = "stringConstant";
+ }
+
+ public StringScalarExpr(String op, CoverageExpr cov) {
+ this.cov = cov;
+ function = "stringIdentifier";
+ this.op = op;
+ }
+
+ public String toXML() {
+ String result = "<" + function + ">";
+
+ if (function.equals("stringConstant")) {
+ result += val;
+ } else if (function.equals("stringIdentifier")) {
+ result += cov.toXML();
+ }
+
+ result += "</" + function + ">";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/SubsetExpr.java b/petascope/src/petascope/wcps/grammar/SubsetExpr.java new file mode 100644 index 0000000..8cc6a24 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/SubsetExpr.java @@ -0,0 +1,40 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * SubsetExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class SubsetExpr implements IParseTreeNode {
+
+ IParseTreeNode expr;
+
+ public SubsetExpr(IParseTreeNode e) {
+ expr = e;
+ }
+
+ public String toXML() {
+ return expr.toXML();
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/TrigonometricExpr.java b/petascope/src/petascope/wcps/grammar/TrigonometricExpr.java new file mode 100644 index 0000000..5cdbb8c --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/TrigonometricExpr.java @@ -0,0 +1,47 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * TrigonometricExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara
+ */
+public class TrigonometricExpr implements IParseTreeNode {
+
+ CoverageExpr coverageExpr;
+ String trigOperator;
+
+ public TrigonometricExpr(String op, CoverageExpr ce) {
+ trigOperator = op;
+ coverageExpr = ce;
+ }
+
+ public String toXML() {
+ String result = "";
+
+ result += "<" + trigOperator + ">";
+ result += coverageExpr.toXML();
+ result += "</" + trigOperator + ">";
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/TrimExpr.java b/petascope/src/petascope/wcps/grammar/TrimExpr.java new file mode 100644 index 0000000..885f21e --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/TrimExpr.java @@ -0,0 +1,42 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * TrimExpr
+ * Creation date: (3/3/2003 2:28:43 AM)
+ * @author: mattia parigiani, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class TrimExpr implements IParseTreeNode {
+
+ CoverageExpr expr;
+ DimensionIntervalList list;
+
+ public TrimExpr(CoverageExpr ce, DimensionIntervalList al) {
+ expr = ce;
+ list = al;
+ }
+
+ public String toXML() {
+ return "<trim>" + expr.toXML() + list.toXML() + "</trim>";
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/VariableList.java b/petascope/src/petascope/wcps/grammar/VariableList.java new file mode 100644 index 0000000..dd33fda --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/VariableList.java @@ -0,0 +1,60 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/*Author: Sorin Stancu-Mara, Andrei Aiordachioaie
+ * Date: 8 Feb 2008
+ */
+public class VariableList implements IParseTreeNode {
+
+ String axisType, iteratorName;
+ String lo, hi;
+ VariableList next;
+
+ public VariableList(String type, String name, String lo, String hi) {
+ axisType = type;
+ iteratorName = name;
+ this.lo = lo;
+ this.hi = hi;
+ next = null;
+ }
+
+ public VariableList(String type, String name, String lo, String hi, VariableList next) {
+ axisType = type;
+ iteratorName = name;
+ this.lo = lo;
+ this.hi = hi;
+ this.next = next;
+ }
+
+ public String toXML() {
+ String result = "<axisIterator><axisType>" + axisType + "</axisType>"
+ + "<iteratorVar>" + iteratorName + "</iteratorVar>" + "<coord>"
+ + lo + "</coord>" + "<coord>" + hi + "</coord></axisIterator>";
+
+ if (next != null) {
+ result += next.toXML();
+ }
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/WCPSRequest.java b/petascope/src/petascope/wcps/grammar/WCPSRequest.java new file mode 100644 index 0000000..5e3fc63 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/WCPSRequest.java @@ -0,0 +1,76 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/**
+ * WCPSRequest class represents a WCPSRequest.
+ * Creation date: (3/3/2003 2:52:55 AM)
+ * @author: *, Sorin Stancu-Mara, Andrei Aiordachioaie
+ */
+public class WCPSRequest implements IParseTreeNode {
+
+ private ForClause forClause;
+ private ReturnClause returnClause;
+ private WhereClause whereClause;
+
+ public WCPSRequest() {
+ super();
+ }
+
+ public WCPSRequest(ForClauseElements f) {
+ forClause = new ForClause(f);
+ whereClause = null;
+ returnClause = null;
+ }
+
+ public void setWhere(WhereClause w) {
+ whereClause = w;
+ }
+
+ public void setReturn(ReturnClause r) {
+ returnClause = r;
+ }
+
+ public String toXML() {
+ String result = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
+
+ result +=
+ "<ProcessCoveragesRequest xmlns=\"http://www.opengis.net/wcps/1.0\" service=\"WCPS\" "
+ + "version=\"1.0.0\">\n";
+ result += "<query><xmlSyntax>";
+
+ result += forClause.toXML();
+
+ if (whereClause != null) {
+ result += whereClause.toXML();
+ }
+
+ if (returnClause != null) {
+ result += returnClause.toXML();
+ }
+
+ result += "</xmlSyntax></query>";
+ result += "</ProcessCoveragesRequest>";
+
+ return result;
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/WhereClause.java b/petascope/src/petascope/wcps/grammar/WhereClause.java new file mode 100644 index 0000000..bc4c897 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/WhereClause.java @@ -0,0 +1,38 @@ +/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcps.grammar;
+
+/* Author: Sorin Stancu-Mara, Andrei Aiordachioaie
+Date: 7 Feb 2007
+ */
+public class WhereClause implements IParseTreeNode {
+
+ private BooleanScalarExpr expr;
+
+ public WhereClause(BooleanScalarExpr e) {
+ expr = e;
+ }
+
+ public String toXML() {
+ return "<where>" + expr.toXML() + "</where>";
+ }
+}
diff --git a/petascope/src/petascope/wcps/grammar/wcps.g b/petascope/src/petascope/wcps/grammar/wcps.g new file mode 100644 index 0000000..f00d1b5 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/wcps.g @@ -0,0 +1,500 @@ +/* +Author: Sorin Stancu-Mara, Andrei Aiordachioaie +History: +07 02 2007 smsorin Updated to WCPS 1.0.0 +27 01 2009 smsorin Moved to ANTLR +11 02 2009 andreia Updated to new grammar (spec 08-068r2) +13 02 2009 andreia Fixed small bugs in grammar. Now it can fully compile. +21 04 2009 andreia Removed comments. +04 05 2009 andreia Fixed bugs in integer declaration. +19 05 2009 andreia Fixed some other weird bugs. Grammar passes all tests now. +28 05 2009 andreia Updated class actions names. +02 06 2009 andreia Removed brackets around "and" binary operator in CoverageExpr +03 06 2009 andreia Complex expressions introduced in the "using" clause of general condense operations +05 08 2009 andreia Fixed definition of integer and floating-point numbers. +31 03 2010 andreia Added "sqrt" operation for scalar expressions +*/ +grammar wcps; +options{ +backtrack=true; +memoize=true; +k=2; +language=Java; +output=AST; +} +@header +{package petascope.wcps.grammar;} +@lexer::header +{package petascope.wcps.grammar;} + +/* Parser Rules */ + +wcpsRequest returns[WCPSRequest value] + : e1=forClause { $value= new WCPSRequest($e1.value); } + (e2=whereClause { $value.setWhere($e2.value); } )? + e3=returnClause { $value.setReturn($e3.value); } + ; +forClause returns[ForClauseElements value] + : FOR v=coverageVariable IN LPAREN list=coverageList RPAREN + { $value = new ForClauseElements($v.value, $list.value); } + (COMMA v=coverageVariable IN LPAREN list=coverageList RPAREN + { $value = new ForClauseElements($v.value, $list.value, $value); })* + ; +whereClause returns[WhereClause value] + : WHERE e1=booleanScalarExpr { $value = new WhereClause($e1.value); } + ; +returnClause returns[ReturnClause value] + : RETURN e1=processingExpr { $value = new ReturnClause($e1.value); } + ; +coverageList returns[CoverageList value] + : cname=coverageName { $value = new CoverageList($cname.value); } + (COMMA next=coverageName { $value = new CoverageList($next.value, $value); })* + ; +processingExpr returns[ProcessingExpr value] + : e1=encodedCoverageExpr { $value = new ProcessingExpr($e1.value); } + | e2=storeExpr { $value = new ProcessingExpr($e2.value); } + | e3=scalarExpr { $value = new ProcessingExpr($e3.value); } + ; +encodedCoverageExpr returns[EncodedCoverageExpr value] + : ENCODE LPAREN cov=coverageExpr COMMA format=stringConstant { $value = new EncodedCoverageExpr($cov.value, $format.text); } + (COMMA params=stringConstant { $value.setParams($params.text); })? RPAREN + ; +storeExpr returns[StoreExpr value] + : STORE LPAREN e1=encodedCoverageExpr RPAREN { $value = new StoreExpr($e1.value); } + ; +coverageExpr returns[CoverageExpr value] + : e1=coverageLogicTerm { $value = $e1.value; } + (op=(OR|XOR) e2=coverageLogicTerm { $value = new CoverageExpr($op.text, $value, $e2.value); } )* + ; +coverageLogicTerm returns[CoverageExpr value] + : e1=coverageLogicFactor { $value = $e1.value; } + (op=AND e2=coverageLogicFactor { $value = new CoverageExpr($op.text, $value, $e2.value); } )* + ; +coverageLogicFactor returns[CoverageExpr value] + : e1=coverageArithmeticExpr {$value = $e1.value;} + (op=(EQUALS|NOTEQUALS|LT|GT|LTE|GTE) e2=coverageArithmeticExpr { $value = new CoverageExpr($op.text, $e1.value, $e2.value); } )? + ; +coverageArithmeticExpr returns[CoverageExpr value] + : e1=coverageArithmeticTerm {$value = $e1.value; } + (op=(PLUS|MINUS) e2=coverageArithmeticTerm { $value = new CoverageExpr($op.text, $value, $e2.value); } )* + ; +coverageArithmeticTerm returns[CoverageExpr value] + : e1=coverageArithmeticFactor {$value = $e1.value; } + (op=(MULT|DIVIDE) e2=coverageArithmeticFactor { $value = new CoverageExpr($op.text, $value, $e2.value); } )* + ; +coverageArithmeticFactor returns[CoverageExpr value] + : e1=coverageValue { $value = $e1.value; } + (op=OVERLAY e2=coverageValue { $value = new CoverageExpr($op.text, $value, $e2.value); } )* + ; +coverageValue returns[CoverageExpr value] + : e5=subsetExpr { $value = new CoverageExpr($e5.value); } + | e2=unaryInducedExpr { $value = $e2.value; } + | e4=scaleExpr { $value = new CoverageExpr($e4.value); } + | e3=crsTransformExpr { $value = new CoverageExpr($e3.value); } + | e1=coverageAtom { $value = $e1.value; } + ; +coverageAtom returns[CoverageExpr value] + : e2=scalarExpr { $value = new CoverageExpr($e2.value); } + | e1=coverageVariable { $value = new CoverageExpr($e1.value); } + | LPAREN e7=coverageExpr RPAREN { $value = new CoverageExpr($e7.value); } + | e3=coverageConstantExpr { $value = new CoverageExpr($e3.value); } + | e4=coverageConstructorExpr { $value = new CoverageExpr($e4.value); } + | e5=setMetaDataExpr { $value = new CoverageExpr($e5.value); } + | e6=rangeConstructorExpr { $value = new CoverageExpr($e6.value); } + ; +scalarExpr returns[ScalarExpr value] + : e1=metaDataExpr { $value = new ScalarExpr($e1.value); } + | e2=condenseExpr { $value = new ScalarExpr($e2.value); } + | e3=booleanScalarExpr { $value = new ScalarExpr($e3.value); } + | e4=numericScalarExpr { $value = new ScalarExpr($e4.value); } + | e5=stringScalarExpr { $value = new ScalarExpr($e5.value); } + | LPAREN e6=scalarExpr RPAREN { $value = $e6.value; } + ; +metaDataExpr returns[MetaDataExpr value] + : op=IDENTIFIER LPAREN e1=coverageExpr RPAREN { $value = new MetaDataExpr($op.text, $e1.value); } + | op=IMAGECRS LPAREN e1=coverageExpr RPAREN { $value = new MetaDataExpr($op.text, $e1.value); } + | op=IMAGECRSDOMAIN LPAREN e1=coverageExpr (COMMA e2=axisName)? RPAREN { $value = new MetaDataExpr($op.text, $e1.value, $e2.value); } + | op=CRSSET LPAREN e1=coverageExpr RPAREN { $value = new MetaDataExpr($op.text, $e1.value); } + | de=domainExpr { $value = new MetaDataExpr($de.value); } + | op=NULLSET LPAREN e1=coverageExpr RPAREN { $value = new MetaDataExpr($op.text,$e1.value); } + | op=INTERPOLATIONDEFAULT LPAREN e1=coverageExpr COMMA f1=fieldName RPAREN { $value = new MetaDataExpr($op.text, $e1.value, $f1.value); } + | op=INTERPOLATIONSET LPAREN e1=coverageExpr COMMA f1=fieldName RPAREN { $value = new MetaDataExpr($op.text, $e1.value, $f1.value); } + ; +domainExpr returns[DomainExpr value] + : DOMAIN LPAREN var=coverageVariable COMMA axis=axisName COMMA crs=crsName RPAREN { $value = new DomainExpr($var.value, $axis.value, $crs.value); } + ; +condenseExpr returns[CondenseExpr value] + : e1=reduceExpr { $value = new CondenseExpr($e1.value); } + | e2=generalCondenseExpr { $value = new CondenseExpr($e2.value); } + ; +reduceExpr returns[ReduceExpr value] + : op=(ALL|SOME|COUNT|ADD|AVG|MIN|MAX) LPAREN e1=coverageExpr RPAREN { $value = new ReduceExpr($op.text, $e1.value); } + ; +generalCondenseExpr returns[GeneralCondenseExpr value] + : CONDENSE op=condenseOpType OVER ail=axisIteratorList { $value = new GeneralCondenseExpr($op.value, $ail.value); } + (WHERE cond=booleanScalarExpr { $value.setWhere($cond.value); })? + USING ce=coverageExpr { $value.setUsing($ce.value); } + ; +axisIteratorList returns[AxisIteratorList value] + : vn=variableName an=axisName LPAREN ie=intervalExpr RPAREN + { $value = new AxisIteratorList(new AxisIterator($vn.value, $an.value, $ie.value)); } + (COMMA vn2=variableName an2=axisName LPAREN ie2=intervalExpr RPAREN + { $value = new AxisIteratorList(new AxisIterator($vn2.value, $an2.value, $ie2.value), $value); })* + ; +intervalExpr returns[IntervalExpr value] + : lo=indexExpr COLON hi=indexExpr + { $value = new IntervalExpr($lo.value, $hi.value); } + | IMAGECRSDOMAIN LPAREN e1=coverageName COMMA e2=axisName RPAREN + { $value = new IntervalExpr($e1.value, $e2.value); } + ; +coverageConstantExpr returns[CoverageConstantExpr value] + : COVERAGE aname=coverageName OVER iter=axisIteratorList VALUE LIST LT values=constantList GT + { $value = new CoverageConstantExpr($aname.value, $iter.value, $values.value); } + ; +constantList returns[ConstantList value] + : c=constant { $value = new ConstantList($c.value); } (SEMICOLON c=constant { $value.add($c.value); })* + ; +coverageConstructorExpr returns[CoverageConstructorExpr value] + : COVERAGE coverage=coverageName OVER ail=axisIteratorList VALUES se=scalarExpr + { $value = new CoverageConstructorExpr($coverage.value, $ail.value, $se.value); } + ; +setMetaDataExpr returns[SetMetaDataExpr value] + : op=SETIDENTIFIER LPAREN s=stringConstant COMMA e1=coverageExpr RPAREN + { $value = new SetMetaDataExpr($op.text, $e1.value, $s.value); } + | op=SETCRSSET LPAREN e1=coverageExpr COMMA crs=crsList RPAREN + { $value = new SetMetaDataExpr($op.text, $e1.value, $crs.value); } + | op=SETNULLSET LPAREN e1=coverageExpr COMMA rel=rangeExprList RPAREN + { $value = new SetMetaDataExpr($op.text, $e1.value, $rel.value); } + | op=SETINTERPOLATIONDEFAULT LPAREN e1=coverageExpr COMMA fn=fieldName COMMA im=interpolationMethod RPAREN + { $value = new SetMetaDataExpr($op.text, $e1.value, $im.value, $fn.value); } + | op=SETINTERPOLATIONSET LPAREN e1=coverageExpr COMMA fn=fieldName COMMA iml=interpolationMethodList RPAREN + { $value = new SetMetaDataExpr($op.text, $e1.value, $iml.value, $fn.value); } + ; +crsList returns[CrsList value] + : LBRACE {$value = new CrsList();} (crs=crsName { $value.add($crs.value); } (COMMA crs=crsName { $value.add($crs.value); })* )? RBRACE + ; +rangeExprList returns[RangeExprList value] + : LBRACE { $value = new RangeExprList(); } (re1=rangeExpr { $value.add($re1.value); } (COMMA re2=rangeExpr { $value.add($re2.value); })* )? RBRACE + ; +interpolationMethodList returns[InterpolationMethodList value] + : LBRACE {$value = new InterpolationMethodList();} (e=interpolationMethod { $value.add($e.value); } (COMMA e=interpolationMethod { $value.add($e.value); })*)? RBRACE + ; +rangeExpr returns[RangeExpr value] + : STRUCT LBRACE { $value=new RangeExpr(); } + (field=fieldName COLON expr=scalarExpr { $value.add($field.value, $expr.value); } + (COMMA field=fieldName COLON expr=scalarExpr { $value.add($field.value, $expr.value); })* + )? RBRACE + ; +rangeConstructorExpr returns[RangeConstructorExpr value] + : (STRUCT)? LBRACE field=fieldName COLON expr=coverageExpr { $value = new RangeConstructorExpr($field.value, $expr.value); } + (SEMICOLON field=fieldName COLON expr=coverageExpr { $value.add($field.value, $expr.value); })* RBRACE + ; +crsTransformExpr returns[CrsTransformExpr value] + : CRSTRANSFORM LPAREN e1=coverageExpr COMMA dcl=dimensionIntervalList COMMA fil=fieldInterpolationList RPAREN + { $value = new CrsTransformExpr($e1.value, $dcl.value, $fil.value); } + ; +fieldInterpolationList returns[FieldInterpolationList value] + : LBRACE elem=fieldInterpolationElement { $value = new FieldInterpolationList($elem.value); } + (COMMA elem=fieldInterpolationElement { $value.add($elem.value); }) * RBRACE + ; +fieldInterpolationElement returns[FieldInterpolationElement value] + : aname=fieldName method=interpolationMethod { $value = new FieldInterpolationElement($aname.value, $method.value); } + ; +unaryInducedExpr returns[CoverageExpr value] + : e6=fieldExpr { $value = new CoverageExpr($e6.value); } + | e1=unaryArithmeticExpr { $value = $e1.value; } + | e2=exponentialExpr { $value = new CoverageExpr($e2.value); } + | e3=trigonometricExpr { $value = new CoverageExpr($e3.value); } + | e4=booleanExpr { $value = new CoverageExpr($e4.value); } + | e5=castExpr { $value = new CoverageExpr($e5.value); } + | e7=rangeConstructorExpr { $value = new CoverageExpr($e7.value); } + ; +unaryArithmeticExpr returns[CoverageExpr value] + : op=(MINUS|PLUS) e1=coverageAtom { $value = new CoverageExpr($op.text, $e1.value); } + | op=(SQRT|ABS|RE|IM) LPAREN e2=coverageExpr RPAREN { $value = new CoverageExpr($op.text, $e2.value); } + ; +exponentialExpr returns[ExponentialExpr value] + : op=(EXP|LOG|LN) LPAREN e1=coverageExpr RPAREN { $value = new ExponentialExpr($op.text, $e1.value); } + ; +trigonometricExpr returns[TrigonometricExpr value] + : op=(SIN|COS|TAN|SINH|COSH|TANH|ARCSIN|ARCCOS|ARCTAN) LPAREN e1=coverageExpr RPAREN { $value = new TrigonometricExpr($op.text, $e1.value); } + ; +booleanExpr returns[BooleanExpr value] + : op=NOT e1=coverageExpr { $value = new BooleanExpr($op.text, $e1.value); } + | op=BIT LPAREN e1=coverageExpr COMMA e2=indexExpr RPAREN { $value = new BooleanExpr($op.text, $e1.value, $e2.value); } + ; +indexExpr returns[IndexExpr value] + : e1=indexTerm { $value = $e1.value; } + (op=(PLUS|MINUS) e2=indexTerm { $value = new IndexExpr($op.text, $value, $e2.value); })* + ; +indexTerm returns[IndexExpr value] + : e1=indexFactor { $value = $e1.value; } + ((op=(MULT|DIVIDE) e2=indexFactor { $value = new IndexExpr($op.text, $value, $e2.value); } ))* + ; +indexFactor returns[IndexExpr value] + : e=INTEGERCONSTANT { $value = new IndexExpr($e.text); } + | op=ROUND LPAREN e1=numericScalarExpr RPAREN { $value = new IndexExpr($op.text, $e1.value); } + | (LPAREN e2=indexExpr RPAREN { $value = $e2.value; } ) + ; +stringScalarExpr returns[StringScalarExpr value] +// The first rule should be "metaDataExpr", but currently only a variable "identifier" is allowed. + : op=IDENTIFIER LPAREN e1=coverageExpr RPAREN { $value = new StringScalarExpr($op.text, $e1.value); } + | e=STRING { $value = new StringScalarExpr($e.text); } + ; +scaleExpr returns[ScaleExpr value] + : SCALE LPAREN e1=coverageExpr COMMA dil=dimensionIntervalList { $value = new ScaleExpr($e1.value, $dil.value); } + (COMMA fil=fieldInterpolationList {$value.addInterpolationList($fil.value); } )? + RPAREN + + ; +subsetExpr returns[SubsetExpr value] + : e1=trimExpr { $value = new SubsetExpr($e1.value); } + | e2=sliceExpr { $value = new SubsetExpr($e2.value); } + | e3=extendExpr { $value = new SubsetExpr($e3.value); } + ; +trimExpr returns[TrimExpr value] + : e1=coverageAtom LBRACKET dil=dimensionIntervalList RBRACKET { $value = new TrimExpr($e1.value, $dil.value); } + | TRIM LPAREN e2=coverageExpr COMMA LBRACE dil=dimensionIntervalList RBRACE RPAREN { $value = new TrimExpr($e2.value, $dil.value); } + ; +sliceExpr returns[SliceExpr value] + : e1=coverageAtom LBRACKET dpl=dimensionPointList RBRACKET { $value = new SliceExpr($e1.value, $dpl.value); } + | SLICE LPAREN e2=coverageExpr COMMA LBRACE dpl=dimensionPointList RBRACE RPAREN { $value = new SliceExpr($e2.value, $dpl.value); } + ; +extendExpr returns[ExtendExpr value] + : EXTEND LPAREN e1=coverageExpr COMMA dil=dimensionIntervalList RPAREN { $value = new ExtendExpr($e1.value, $dil.value); } + ; +castExpr returns[CastExpr value] + : LPAREN e1=rangeType RPAREN e2=coverageExpr { $value = new CastExpr($e2.value, $e1.value); } + ; +rangeType returns[String value] + : type=(BOOLEAN|CHAR|SHORT|LONG|FLOAT|DOUBLE|COMPLEX|COMPLEX2) { $value = new String($type.text); } + | UNSIGNED type=(CHAR|SHORT|LONG) { $value = new String("unsigned " + $type.text); } + ; +fieldExpr returns[SelectExpr value] + : e1=coverageAtom DOT e2=fieldName { $value = new SelectExpr($e1.value, $e2.value); } + ; +// NOTE: The following boolean rules are equivalent to the grammar rules in document 08-068r2 +// They have been rewritten in order to prioritize the boolean operators +booleanScalarExpr returns[BooleanScalarExpr value] + : e1=booleanScalarTerm { $value = $e1.value; } + (op=(OR|XOR) e2=booleanScalarTerm { $value = new BooleanScalarExpr($op.text, $value, $e2.value);})* + ; +booleanScalarTerm returns[BooleanScalarExpr value] + : e1=booleanScalarNegation { $value = $e1.value; } + (op=AND e2=booleanScalarNegation { $value = new BooleanScalarExpr($op.text, $value, $e2.value); } )* + ; +booleanScalarNegation returns[BooleanScalarExpr value] + : e1=booleanScalarAtom { $value = $e1.value; } + | op=NOT e1=booleanScalarAtom { $value = new BooleanScalarExpr($op.text, $e1.value); } + ; +booleanScalarAtom returns[BooleanScalarExpr value] + : LPAREN e1=booleanScalarExpr RPAREN { $value = $e1.value; } + | s1=stringScalarExpr cop=compOp s2=stringScalarExpr { $value = new BooleanScalarExpr($cop.value, $s1.value, $s2.value); } + | n1=numericScalarExpr cop=compOp n2=numericScalarExpr { $value = new BooleanScalarExpr($cop.value, $n1.value, $n2.value); } + | e=BOOLEANCONSTANT { $value = new BooleanScalarExpr($e.text); } + ; +numericScalarExpr returns[NumericScalarExpr value] + : e1=numericScalarTerm {$value = $e1.value; } + (op=(PLUS|MINUS) e2=numericScalarTerm { $value = new NumericScalarExpr($op.text, $value, $e2.value); })* + ; +numericScalarTerm returns[NumericScalarExpr value] + : e1=numericScalarFactor { $value = $e1.value; } + (op=(MULT|DIVIDE) e2=numericScalarFactor { $value = new NumericScalarExpr($op.text, $value, $e2.value); })* + ; +numericScalarFactor returns[NumericScalarExpr value] + : LPAREN e1=numericScalarExpr RPAREN { $value = $e1.value; } + | op=MINUS e10=numericScalarFactor { $value = new NumericScalarExpr($op.text, $e10.value); } + | op=ABS LPAREN e12=numericScalarExpr RPAREN { $value = new NumericScalarExpr($op.text, $e12.value); } + | op=SQRT LPAREN e11=numericScalarExpr RPAREN { $value = new NumericScalarExpr($op.text, $e11.value); } + | op=ROUND LPAREN e1=numericScalarExpr RPAREN { $value = new NumericScalarExpr($op.text, $e1.value); } + | e=INTEGERCONSTANT { $value = new NumericScalarExpr($e.text); } + | e=FLOATCONSTANT { $value = new NumericScalarExpr($e.text); } + | e2=complexConstant { $value = new NumericScalarExpr($e2.value); } + | e3=condenseExpr { $value = new NumericScalarExpr($e3.value); } + | e4=variableName { $value = new NumericScalarExpr("var", $e4.value); } + ; +compOp returns[String value] + : EQUALS { $value = new String("equals"); } + | NOTEQUALS { $value = new String("notEqual"); } + | LT { $value = new String("lessThan"); } + | GT { $value = new String("greaterThan"); } + | LTE { $value = new String("lessOrEqual"); } + | GTE { $value = new String("greaterOrEqual"); } + ; +dimensionIntervalList returns[DimensionIntervalList value] + : elem=dimensionIntervalElement { $value = new DimensionIntervalList($elem.value); } + (COMMA elem=dimensionIntervalElement { $value.add($elem.value); })* + ; +dimensionIntervalElement returns[DimensionIntervalElement value] + : aname=axisName { $value = new DimensionIntervalElement($aname.value); } (COLON crs=crsName {$value.setCrs($crs.value); })? + LPAREN die=dimensionIntervalExpr RPAREN { $value.setIntervalExpr($die.value); } + ; +dimensionIntervalExpr returns[DimensionIntervalExpr value] + : e1=scalarExpr COLON e2=scalarExpr { $value = new DimensionIntervalExpr($e1.value, $e2.value); } + | DOMAIN LPAREN e3=coverageName COLON e4=axisName COLON e5=crsName RPAREN { $value = new DimensionIntervalExpr($e3.value, $e4.value, $e5.value); } + ; +dimensionPointList returns[DimensionPointList value] + : elem1=dimensionPointElement { $value = new DimensionPointList($elem1.value); } + (COMMA elem2=dimensionPointElement { $value.add($elem2.value); })* + ; +dimensionPointElement returns[DimensionPointElement value] + : aname=axisName LPAREN dpe=dimensionPoint RPAREN { $value = new DimensionPointElement($aname.value, $dpe.value); } + | aname=axisName COLON crs=crsName LPAREN dpe=dimensionPoint RPAREN { $value = new DimensionPointElement($aname.value, $crs.value, $dpe.value); } + ; +dimensionPoint returns[ScalarExpr value] + : e1=scalarExpr { $value = $e1.value; } + ; +interpolationMethod returns[InterpolationMethod value] + : LPAREN type=interpolationType COLON res=nullResistence RPAREN { $value = new InterpolationMethod($type.value, $res.value); } + ; +interpolationType returns[String value] + : type=(NEAREST|LINEAR|QUADRATIC|CUBIC) { $value = new String($type.text); } + ; +nullResistence returns[String value] + : resistance=(FULL|NONE|HALF|OTHER) { $value = new String($resistance.text); } + ; +condenseOpType returns[CondenseOperation value] + : op=(PLUS|MULT|MAX|MIN|AND|OR) { $value = new CondenseOperation($op.text); } + ; +fieldName returns[String value] + : name { $value = new String($name.value);} + ; +constant returns[String value] + : e=(STRING|BOOLEANCONSTANT|INTEGERCONSTANT|FLOATCONSTANT) { $value = $e.text; } + | e1=complexConstant { $value = $e1.value; } + ; +complexConstant returns[String value] + : LPAREN re1=FLOATCONSTANT COMMA im1=FLOATCONSTANT RPAREN { $value = new String($re1.text +"+i"+$im1.text); } + ; +stringConstant returns[String value] + : s=STRING { $value = $s.text; } + ; +name returns[String value] + : var=(NAME | STRING | INTEGERCONSTANT) { $value = $var.text; } + ; +crsName returns[String value] + : s=stringConstant { $value = $s.value; } + ; +axisName returns[String value] + : type1=name { $value = new String($type1.value); } + ; +variableName returns[String value] + : var=VARIABLE_DOLLAR { $value = new String($var.text); } + ; +coverageVariable returns[String value] + : var=NAME { $value = $var.text; } + ; +coverageName returns[String value] + : name { $value = $name.value; } + ; + + +/* Lexer rules */ +PLUS: '+'; +MINUS: '-'; +DIVIDE: '/'; +MULT: '*'; +EQUALS: '='; +NOTEQUALS: '!='; +LT: '<'; +GT: '>'; +LTE: '<='; +GTE: '>='; +DOT: '.'; +LPAREN: '('; +RPAREN: ')'; +LBRACKET: '['; +RBRACKET: ']'; +LBRACE: '{'; +RBRACE: '}'; +COMMA: ','; +COLON: ':'; +SEMICOLON: ';'; +FOR: ('f'|'F')('o'|'O')('r'|'R'); +IN: ('i'|'I')('n'|'N'); +WHERE: ('w'|'W')('h'|'H')('e'|'E')('r'|'R')('e'|'E'); +RETURN: ('r'|'R')('e'|'E')('t'|'T')('u'|'U')('r'|'R')('n'|'N'); +STORE: ('s'|'S')('t'|'T')('o'|'O')('r'|'R')('e'|'E'); +ENCODE: ('e'|'E')('n'|'N')('c'|'C')('o'|'O')('d'|'D')('e'|'E'); +SQRT: ('s'|'S')('q'|'Q')('r'|'R')('t'|'T'); +SIN: ('s'|'S')('i'|'I')('n'|'N'); +COS: ('c'|'C')('o'|'O')('s'|'S'); +TAN: ('t'|'T')('a'|'A')('n'|'N'); +SINH: ('s'|'S')('i'|'I')('n'|'N')('h'|'H'); +COSH: ('c'|'C')('o'|'O')('s'|'S')('h'|'H'); +TANH: ('t'|'T')('a'|'A')('n'|'N')('h'|'H'); +ARCSIN: ('a'|'A')('r'|'R')('c'|'C')('s'|'S')('i'|'I')('n'|'N'); +ARCCOS: ('a'|'A')('r'|'R')('c'|'C')('c'|'C')('o'|'O')('s'|'S'); +ARCTAN: ('a'|'A')('r'|'R')('c'|'C')('t'|'T')('a'|'A')('n'|'N'); +EXP: ('e'|'E')('x'|'X')('p'|'P'); +LN: ('l'|'L')('n'|'N'); +LOG: ('l'|'L')('o'|'O')('g'|'G'); +ROUND: ('r'|'R')('o'|'O')('u'|'U')('n'|'N')('d'|'D'); +ABS: ('a'|'A')('b'|'B')('s'|'S'); +OVERLAY: ('o'|'O')('v'|'V')('e'|'E')('r'|'R')('l'|'L')('a'|'A')('y'|'Y'); +STRUCT: ('s'|'S')('t'|'T')('r'|'R')('u'|'U')('c'|'C')('t'|'T'); +RE: ('r'|'R')('e'|'E'); +IM: ('i'|'I')('m'|'M'); +AND: ('a'|'A')('n'|'N')('d'|'D'); +OR: ('o'|'O')('r'|'R'); +XOR: ('x'|'X')('o'|'O')('r'|'R'); +NOT: ('n'|'N')('o'|'O')('t'|'T'); +IDENTIFIER: ('i'|'I')('d'|'D')('e'|'E')('n'|'N')('t'|'T')('i'|'I')('f'|'F')('i'|'I')('e'|'E')('r'|'R'); +IMAGECRS: ('i'|'I')('m'|'M')('a'|'A')('g'|'G')('e'|'E')('c'|'C')('r'|'R')('s'|'S'); +IMAGECRSDOMAIN: ('i'|'I')('m'|'M')('a'|'A')('g'|'G')('e'|'E')('c'|'C')('r'|'R')('s'|'S')('d'|'D')('o'|'O')('m'|'M')('a'|'A')('i'|'I')('n'|'N'); +CRSSET: ('c'|'C')('r'|'R')('s'|'S')('s'|'S')('e'|'E')('t'|'T'); +DOMAIN: ('d'|'D')('o'|'O')('m'|'M')('a'|'A')('i'|'I')('n'|'N'); +NULLSET: ('n'|'N')('u'|'U')('l'|'L')('l'|'L')('s'|'S')('e'|'E')('t'|'T'); +NULLDEFAULT: ('n'|'N')('u'|'U')('l'|'L')('l'|'L')('d'|'D')('e'|'E')('f'|'F')('a'|'A')('u'|'U')('l'|'L')('t'|'T'); +INTERPOLATIONDEFAULT: ('i'|'I')('n'|'N')('t'|'T')('e'|'E')('r'|'R')('p'|'P')('o'|'O')('l'|'L')('a'|'A')('t'|'T')('i'|'I')('o'|'O')('n'|'N')('d'|'D')('e'|'E')('f'|'F')('a'|'A')('u'|'U')('l'|'L')('t'|'T'); +INTERPOLATIONSET: ('i'|'I')('n'|'N')('t'|'T')('e'|'E')('r'|'R')('p'|'P')('o'|'O')('l'|'L')('a'|'A')('t'|'T')('i'|'I')('o'|'O')('n'|'N')('s'|'S')('e'|'E')('t'|'T'); +SETIDENTIFIER: ('s'|'S')('e'|'E')('t'|'T')('i'|'I')('d'|'D')('e'|'E')('n'|'N')('t'|'T')('i'|'I')('f'|'F')('i'|'I')('e'|'E')('r'|'R'); +SETNULLSET: ('s'|'S')('e'|'E')('t'|'T')('n'|'N')('u'|'U')('l'|'L')('l'|'L')('s'|'S')('e'|'E')('t'|'T'); +SETINTERPOLATIONDEFAULT: ('s'|'S')('e'|'E')('t'|'T')('i'|'I')('n'|'N')('t'|'T')('e'|'E')('r'|'R')('p'|'P')('o'|'O')('l'|'L')('a'|'A')('t'|'T')('i'|'I')('o'|'O')('n'|'N')('d'|'D')('e'|'E')('f'|'F')('a'|'A')('u'|'U')('l'|'L')('t'|'T'); +SETINTERPOLATIONSET:('s'|'S')('e'|'E')('t'|'T')('i'|'I')('n'|'N')('t'|'T')('e'|'E')('r'|'R')('p'|'P')('o'|'O')('l'|'L')('a'|'A')('t'|'T')('i'|'I')('o'|'O')('n'|'N')('s'|'S')('e'|'E')('t'|'T'); +SETCRSSET: ('s'|'S')('e'|'E')('t'|'T')('c'|'C')('r'|'R')('s'|'S')('s'|'S')('e'|'E')('t'|'T'); +TRIM: ('t'|'T')('r'|'R')('i'|'I')('m'|'M'); +SLICE: ('s'|'S')('l'|'L')('i'|'I')('c'|'C')('e'|'E'); +EXTEND: ('e'|'E')('x'|'X')('t'|'T')('e'|'E')('n'|'N')('d'|'D'); +SCALE: ('s'|'S')('c'|'C')('a'|'A')('l'|'L')('e'|'E'); +CRSTRANSFORM: ('c'|'C')('r'|'R')('s'|'S')('t'|'T')('r'|'R')('a'|'A')('n'|'N')('s'|'S')('f'|'F')('o'|'O')('r'|'R')('m'|'M'); +COUNT: ('c'|'C')('o'|'O')('u'|'U')('n'|'N')('t'|'T'); +ADD: ('a'|'A')('d'|'D')('d'|'D'); +AVG: ('a'|'A')('v'|'V')('g'|'G'); +MAX: ('m'|'M')('a'|'A')('x'|'X'); +MIN: ('m'|'M')('i'|'I')('n'|'N'); +SOME: ('s'|'S')('o'|'O')('m'|'M')('e'|'E'); +ALL: ('a'|'A')('l'|'L')('l'|'L'); +COVERAGE: ('c'|'C')('o'|'O')('v'|'V')('e'|'E')('r'|'R')('a'|'A')('g'|'G')('e'|'E'); +OVER: ('o'|'O')('v'|'V')('e'|'E')('r'|'R'); +VALUE: ('v'|'V')('a'|'A')('l'|'L')('u'|'U')('e'|'E'); +VALUES: ('v'|'V')('a'|'A')('l'|'L')('u'|'U')('e'|'E')('s'|'S'); +LIST: ('l'|'L')('i'|'I')('s'|'S')('t'|'T'); +CONDENSE: ('c'|'C')('o'|'O')('n'|'N')('d'|'D')('e'|'E')('n'|'N')('s'|'S')('e'|'E'); +USING: ('u'|'U')('s'|'S')('i'|'I')('n'|'N')('g'|'G'); +NEAREST: ('n'|'N')('e'|'E')('a'|'A')('r'|'R')('e'|'E')('s'|'S')('t'|'T'); +LINEAR: ('l'|'L')('i'|'I')('n'|'N')('e'|'E')('a'|'A')('r'|'R'); +QUADRATIC: ('q'|'Q')('u'|'U')('a'|'A')('d'|'D')('r'|'R')('a'|'A')('t'|'T')('i'|'I')('c'|'C'); +CUBIC: ('c'|'C')('u'|'U')('b'|'B')('i'|'I')('c'|'C'); +FULL: ('f'|'F')('u'|'U')('l'|'L')('l'|'L'); +NONE: ('n'|'N')('o'|'O')('n'|'N')('e'|'E'); +HALF: ('h'|'H')('a'|'A')('l'|'L')('f'|'F'); +OTHER: ('o'|'O')('t'|'T')('h'|'H')('e'|'E')('r'|'R'); +PHI: ('p'|'P')('h'|'H')('i'|'I'); +BIT: ('b'|'B')('i'|'I')('t'|'T'); +UNSIGNED: ('u'|'U')('n'|'N')('s'|'S')('i'|'I')('g'|'G')('n'|'N')('e'|'E')('d'|'D'); +BOOLEAN: ('b'|'B')('o'|'O')('o'|'O')('l'|'L')('e'|'E')('a'|'A')('n'|'N'); +CHAR: ('c'|'C')('h'|'H')('a'|'A')('r'|'R'); +SHORT: ('s'|'S')('h'|'H')('o'|'O')('r'|'R')('t'|'T'); +LONG: ('l'|'L')('o'|'O')('n'|'N')('g'|'G'); +FLOAT: ('f'|'F')('l'|'L')('o'|'O')('a'|'A')('t'|'T'); +DOUBLE: ('d'|'D')('o'|'O')('u'|'U')('b'|'B')('l'|'L')('e'|'E'); +COMPLEX: ('c'|'C')('o'|'O')('m'|'M')('p'|'P')('l'|'L')('e'|'E')('x'|'X'); +COMPLEX2: ('c'|'C')('o'|'O')('m'|'M')('p'|'P')('l'|'L')('e'|'E')('x'|'X')'2'; +BOOLEANCONSTANT: (('t'|'T')('r'|'R')('u'|'U')('e'|'E'))|(('f'|'F')('a'|'A')('l'|'L')('s'|'S')('e'|'E')); +INTEGERCONSTANT: (PLUS|MINUS)? ('0'..'9')+; +FLOATCONSTANT: INTEGERCONSTANT ('.')('0'..'9'+)(('e'|'E')(('-'|'+')?)('0'..'9'+))?; +STRING: '"' ( options {greedy=false;} : . )* '"' {setText(getText().substring(1, getText().length()-1));}; +NAME: ('a'..'z'|'A'..'Z'|'_')(('a'..'z'|'A'..'Z'|'0'..'9'|'_')*); +VARIABLE_DOLLAR: '$'(('a'..'z'|'A'..'Z'|'0'..'9'|'_')*) {setText(getText().substring(1, getText().length())); } ; +WHITESPACE: (' ' | '\t' | '\r' | '\n' | '\u000C')+ { skip(); } ; diff --git a/petascope/src/petascope/wcps/grammar/wcpsLexer.java b/petascope/src/petascope/wcps/grammar/wcpsLexer.java new file mode 100644 index 0000000..317089c --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/wcpsLexer.java @@ -0,0 +1,8464 @@ +// $ANTLR 3.2 Sep 23, 2009 12:02:23 src/petascope/wcps/grammar/wcps.g 2010-04-29 23:04:42 +package petascope.wcps.grammar; + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; + +public class wcpsLexer extends Lexer { + public static final int IMAGECRS=28; + public static final int LT=18; + public static final int LN=66; + public static final int LOG=65; + public static final int CHAR=88; + public static final int COMPLEX=93; + public static final int SETINTERPOLATIONDEFAULT=54; + public static final int COUNT=37; + public static final int EQUALS=16; + public static final int COSH=71; + public static final int NOT=76; + public static final int INTEGERCONSTANT=78; + public static final int EOF=-1; + public static final int SINH=70; + public static final int LBRACKET=82; + public static final int RPAREN=7; + public static final int TANH=72; + public static final int LINEAR=100; + public static final int NAME=107; + public static final int FULL=103; + public static final int SIN=67; + public static final int USING=44; + public static final int EXP=64; + public static final int COS=68; + public static final int TAN=69; + public static final int RETURN=10; + public static final int DOUBLE=92; + public static final int NULLDEFAULT=109; + public static final int STORE=12; + public static final int DIVIDE=25; + public static final int BOOLEANCONSTANT=97; + public static final int RBRACE=57; + public static final int SETNULLSET=53; + public static final int CONDENSE=42; + public static final int WHITESPACE=111; + public static final int SEMICOLON=49; + public static final int VALUE=47; + public static final int MULT=24; + public static final int LIST=48; + public static final int COMPLEX2=94; + public static final int ABS=61; + public static final int CRSSET=30; + public static final int SCALE=81; + public static final int VARIABLE_DOLLAR=108; + public static final int FLOATCONSTANT=98; + public static final int IMAGECRSDOMAIN=29; + public static final int NONE=104; + public static final int OR=13; + public static final int TRIM=84; + public static final int GT=19; + public static final int ROUND=79; + public static final int QUADRATIC=101; + public static final int ENCODE=11; + public static final int PHI=110; + public static final int OVER=43; + public static final int COVERAGE=46; + public static final int WHERE=9; + public static final int RE=62; + public static final int OVERLAY=26; + public static final int GTE=21; + public static final int LBRACE=56; + public static final int MAX=41; + public static final int INTERPOLATIONDEFAULT=32; + public static final int FOR=4; + public static final int FLOAT=91; + public static final int SLICE=85; + public static final int AND=15; + public static final int LTE=20; + public static final int LPAREN=6; + public static final int EXTEND=86; + public static final int IM=63; + public static final int BOOLEAN=87; + public static final int IN=5; + public static final int COMMA=8; + public static final int AVG=39; + public static final int IDENTIFIER=27; + public static final int SOME=36; + public static final int ALL=35; + public static final int ARCSIN=73; + public static final int PLUS=22; + public static final int ARCCOS=74; + public static final int RBRACKET=83; + public static final int DOT=96; + public static final int ADD=38; + public static final int SETIDENTIFIER=51; + public static final int XOR=14; + public static final int SETINTERPOLATIONSET=55; + public static final int OTHER=106; + public static final int VALUES=50; + public static final int ARCTAN=75; + public static final int NOTEQUALS=17; + public static final int SHORT=89; + public static final int STRUCT=58; + public static final int MIN=40; + public static final int SQRT=60; + public static final int MINUS=23; + public static final int CRSTRANSFORM=59; + public static final int DOMAIN=34; + public static final int COLON=45; + public static final int CUBIC=102; + public static final int UNSIGNED=95; + public static final int NULLSET=31; + public static final int BIT=77; + public static final int LONG=90; + public static final int INTERPOLATIONSET=33; + public static final int SETCRSSET=52; + public static final int HALF=105; + public static final int STRING=80; + public static final int NEAREST=99; + + // delegates + // delegators + + public wcpsLexer() {;} + public wcpsLexer(CharStream input) { + this(input, new RecognizerSharedState()); + } + public wcpsLexer(CharStream input, RecognizerSharedState state) { + super(input,state); + + } + public String getGrammarFileName() { return "src/petascope/wcps/grammar/wcps.g"; } + + // $ANTLR start "PLUS" + public final void mPLUS() throws RecognitionException { + try { + int _type = PLUS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:393:5: ( '+' ) + // src/petascope/wcps/grammar/wcps.g:393:8: '+' + { + match('+'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "PLUS" + + // $ANTLR start "MINUS" + public final void mMINUS() throws RecognitionException { + try { + int _type = MINUS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:394:6: ( '-' ) + // src/petascope/wcps/grammar/wcps.g:394:9: '-' + { + match('-'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "MINUS" + + // $ANTLR start "DIVIDE" + public final void mDIVIDE() throws RecognitionException { + try { + int _type = DIVIDE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:395:7: ( '/' ) + // src/petascope/wcps/grammar/wcps.g:395:9: '/' + { + match('/'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "DIVIDE" + + // $ANTLR start "MULT" + public final void mMULT() throws RecognitionException { + try { + int _type = MULT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:396:5: ( '*' ) + // src/petascope/wcps/grammar/wcps.g:396:7: '*' + { + match('*'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "MULT" + + // $ANTLR start "EQUALS" + public final void mEQUALS() throws RecognitionException { + try { + int _type = EQUALS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:397:7: ( '=' ) + // src/petascope/wcps/grammar/wcps.g:397:9: '=' + { + match('='); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "EQUALS" + + // $ANTLR start "NOTEQUALS" + public final void mNOTEQUALS() throws RecognitionException { + try { + int _type = NOTEQUALS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:398:10: ( '!=' ) + // src/petascope/wcps/grammar/wcps.g:398:12: '!=' + { + match("!="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "NOTEQUALS" + + // $ANTLR start "LT" + public final void mLT() throws RecognitionException { + try { + int _type = LT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:399:3: ( '<' ) + // src/petascope/wcps/grammar/wcps.g:399:5: '<' + { + match('<'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LT" + + // $ANTLR start "GT" + public final void mGT() throws RecognitionException { + try { + int _type = GT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:400:3: ( '>' ) + // src/petascope/wcps/grammar/wcps.g:400:5: '>' + { + match('>'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "GT" + + // $ANTLR start "LTE" + public final void mLTE() throws RecognitionException { + try { + int _type = LTE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:401:4: ( '<=' ) + // src/petascope/wcps/grammar/wcps.g:401:6: '<=' + { + match("<="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LTE" + + // $ANTLR start "GTE" + public final void mGTE() throws RecognitionException { + try { + int _type = GTE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:402:4: ( '>=' ) + // src/petascope/wcps/grammar/wcps.g:402:6: '>=' + { + match(">="); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "GTE" + + // $ANTLR start "DOT" + public final void mDOT() throws RecognitionException { + try { + int _type = DOT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:403:4: ( '.' ) + // src/petascope/wcps/grammar/wcps.g:403:6: '.' + { + match('.'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "DOT" + + // $ANTLR start "LPAREN" + public final void mLPAREN() throws RecognitionException { + try { + int _type = LPAREN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:404:7: ( '(' ) + // src/petascope/wcps/grammar/wcps.g:404:9: '(' + { + match('('); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LPAREN" + + // $ANTLR start "RPAREN" + public final void mRPAREN() throws RecognitionException { + try { + int _type = RPAREN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:405:7: ( ')' ) + // src/petascope/wcps/grammar/wcps.g:405:9: ')' + { + match(')'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RPAREN" + + // $ANTLR start "LBRACKET" + public final void mLBRACKET() throws RecognitionException { + try { + int _type = LBRACKET; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:406:9: ( '[' ) + // src/petascope/wcps/grammar/wcps.g:406:11: '[' + { + match('['); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LBRACKET" + + // $ANTLR start "RBRACKET" + public final void mRBRACKET() throws RecognitionException { + try { + int _type = RBRACKET; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:407:9: ( ']' ) + // src/petascope/wcps/grammar/wcps.g:407:11: ']' + { + match(']'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RBRACKET" + + // $ANTLR start "LBRACE" + public final void mLBRACE() throws RecognitionException { + try { + int _type = LBRACE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:408:7: ( '{' ) + // src/petascope/wcps/grammar/wcps.g:408:9: '{' + { + match('{'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LBRACE" + + // $ANTLR start "RBRACE" + public final void mRBRACE() throws RecognitionException { + try { + int _type = RBRACE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:409:7: ( '}' ) + // src/petascope/wcps/grammar/wcps.g:409:9: '}' + { + match('}'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RBRACE" + + // $ANTLR start "COMMA" + public final void mCOMMA() throws RecognitionException { + try { + int _type = COMMA; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:410:6: ( ',' ) + // src/petascope/wcps/grammar/wcps.g:410:8: ',' + { + match(','); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "COMMA" + + // $ANTLR start "COLON" + public final void mCOLON() throws RecognitionException { + try { + int _type = COLON; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:411:6: ( ':' ) + // src/petascope/wcps/grammar/wcps.g:411:8: ':' + { + match(':'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "COLON" + + // $ANTLR start "SEMICOLON" + public final void mSEMICOLON() throws RecognitionException { + try { + int _type = SEMICOLON; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:412:10: ( ';' ) + // src/petascope/wcps/grammar/wcps.g:412:12: ';' + { + match(';'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SEMICOLON" + + // $ANTLR start "FOR" + public final void mFOR() throws RecognitionException { + try { + int _type = FOR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:413:4: ( ( 'f' | 'F' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ) + // src/petascope/wcps/grammar/wcps.g:413:6: ( 'f' | 'F' ) ( 'o' | 'O' ) ( 'r' | 'R' ) + { + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "FOR" + + // $ANTLR start "IN" + public final void mIN() throws RecognitionException { + try { + int _type = IN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:414:3: ( ( 'i' | 'I' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:414:5: ( 'i' | 'I' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "IN" + + // $ANTLR start "WHERE" + public final void mWHERE() throws RecognitionException { + try { + int _type = WHERE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:415:6: ( ( 'w' | 'W' ) ( 'h' | 'H' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:415:8: ( 'w' | 'W' ) ( 'h' | 'H' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='W'||input.LA(1)=='w' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='H'||input.LA(1)=='h' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "WHERE" + + // $ANTLR start "RETURN" + public final void mRETURN() throws RecognitionException { + try { + int _type = RETURN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:416:7: ( ( 'r' | 'R' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'u' | 'U' ) ( 'r' | 'R' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:416:9: ( 'r' | 'R' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'u' | 'U' ) ( 'r' | 'R' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RETURN" + + // $ANTLR start "STORE" + public final void mSTORE() throws RecognitionException { + try { + int _type = STORE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:417:6: ( ( 's' | 'S' ) ( 't' | 'T' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:417:8: ( 's' | 'S' ) ( 't' | 'T' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "STORE" + + // $ANTLR start "ENCODE" + public final void mENCODE() throws RecognitionException { + try { + int _type = ENCODE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:418:7: ( ( 'e' | 'E' ) ( 'n' | 'N' ) ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:418:9: ( 'e' | 'E' ) ( 'n' | 'N' ) ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'd' | 'D' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "ENCODE" + + // $ANTLR start "SQRT" + public final void mSQRT() throws RecognitionException { + try { + int _type = SQRT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:419:5: ( ( 's' | 'S' ) ( 'q' | 'Q' ) ( 'r' | 'R' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:419:7: ( 's' | 'S' ) ( 'q' | 'Q' ) ( 'r' | 'R' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='Q'||input.LA(1)=='q' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SQRT" + + // $ANTLR start "SIN" + public final void mSIN() throws RecognitionException { + try { + int _type = SIN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:420:4: ( ( 's' | 'S' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:420:6: ( 's' | 'S' ) ( 'i' | 'I' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SIN" + + // $ANTLR start "COS" + public final void mCOS() throws RecognitionException { + try { + int _type = COS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:421:4: ( ( 'c' | 'C' ) ( 'o' | 'O' ) ( 's' | 'S' ) ) + // src/petascope/wcps/grammar/wcps.g:421:6: ( 'c' | 'C' ) ( 'o' | 'O' ) ( 's' | 'S' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "COS" + + // $ANTLR start "TAN" + public final void mTAN() throws RecognitionException { + try { + int _type = TAN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:422:4: ( ( 't' | 'T' ) ( 'a' | 'A' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:422:6: ( 't' | 'T' ) ( 'a' | 'A' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "TAN" + + // $ANTLR start "SINH" + public final void mSINH() throws RecognitionException { + try { + int _type = SINH; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:423:5: ( ( 's' | 'S' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 'h' | 'H' ) ) + // src/petascope/wcps/grammar/wcps.g:423:7: ( 's' | 'S' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 'h' | 'H' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='H'||input.LA(1)=='h' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SINH" + + // $ANTLR start "COSH" + public final void mCOSH() throws RecognitionException { + try { + int _type = COSH; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:424:5: ( ( 'c' | 'C' ) ( 'o' | 'O' ) ( 's' | 'S' ) ( 'h' | 'H' ) ) + // src/petascope/wcps/grammar/wcps.g:424:7: ( 'c' | 'C' ) ( 'o' | 'O' ) ( 's' | 'S' ) ( 'h' | 'H' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='H'||input.LA(1)=='h' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "COSH" + + // $ANTLR start "TANH" + public final void mTANH() throws RecognitionException { + try { + int _type = TANH; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:425:5: ( ( 't' | 'T' ) ( 'a' | 'A' ) ( 'n' | 'N' ) ( 'h' | 'H' ) ) + // src/petascope/wcps/grammar/wcps.g:425:7: ( 't' | 'T' ) ( 'a' | 'A' ) ( 'n' | 'N' ) ( 'h' | 'H' ) + { + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='H'||input.LA(1)=='h' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "TANH" + + // $ANTLR start "ARCSIN" + public final void mARCSIN() throws RecognitionException { + try { + int _type = ARCSIN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:426:7: ( ( 'a' | 'A' ) ( 'r' | 'R' ) ( 'c' | 'C' ) ( 's' | 'S' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:426:9: ( 'a' | 'A' ) ( 'r' | 'R' ) ( 'c' | 'C' ) ( 's' | 'S' ) ( 'i' | 'I' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "ARCSIN" + + // $ANTLR start "ARCCOS" + public final void mARCCOS() throws RecognitionException { + try { + int _type = ARCCOS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:427:7: ( ( 'a' | 'A' ) ( 'r' | 'R' ) ( 'c' | 'C' ) ( 'c' | 'C' ) ( 'o' | 'O' ) ( 's' | 'S' ) ) + // src/petascope/wcps/grammar/wcps.g:427:9: ( 'a' | 'A' ) ( 'r' | 'R' ) ( 'c' | 'C' ) ( 'c' | 'C' ) ( 'o' | 'O' ) ( 's' | 'S' ) + { + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "ARCCOS" + + // $ANTLR start "ARCTAN" + public final void mARCTAN() throws RecognitionException { + try { + int _type = ARCTAN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:428:7: ( ( 'a' | 'A' ) ( 'r' | 'R' ) ( 'c' | 'C' ) ( 't' | 'T' ) ( 'a' | 'A' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:428:9: ( 'a' | 'A' ) ( 'r' | 'R' ) ( 'c' | 'C' ) ( 't' | 'T' ) ( 'a' | 'A' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "ARCTAN" + + // $ANTLR start "EXP" + public final void mEXP() throws RecognitionException { + try { + int _type = EXP; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:429:4: ( ( 'e' | 'E' ) ( 'x' | 'X' ) ( 'p' | 'P' ) ) + // src/petascope/wcps/grammar/wcps.g:429:6: ( 'e' | 'E' ) ( 'x' | 'X' ) ( 'p' | 'P' ) + { + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='X'||input.LA(1)=='x' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='P'||input.LA(1)=='p' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "EXP" + + // $ANTLR start "LN" + public final void mLN() throws RecognitionException { + try { + int _type = LN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:430:3: ( ( 'l' | 'L' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:430:5: ( 'l' | 'L' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LN" + + // $ANTLR start "LOG" + public final void mLOG() throws RecognitionException { + try { + int _type = LOG; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:431:4: ( ( 'l' | 'L' ) ( 'o' | 'O' ) ( 'g' | 'G' ) ) + // src/petascope/wcps/grammar/wcps.g:431:6: ( 'l' | 'L' ) ( 'o' | 'O' ) ( 'g' | 'G' ) + { + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LOG" + + // $ANTLR start "ROUND" + public final void mROUND() throws RecognitionException { + try { + int _type = ROUND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:432:6: ( ( 'r' | 'R' ) ( 'o' | 'O' ) ( 'u' | 'U' ) ( 'n' | 'N' ) ( 'd' | 'D' ) ) + // src/petascope/wcps/grammar/wcps.g:432:8: ( 'r' | 'R' ) ( 'o' | 'O' ) ( 'u' | 'U' ) ( 'n' | 'N' ) ( 'd' | 'D' ) + { + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "ROUND" + + // $ANTLR start "ABS" + public final void mABS() throws RecognitionException { + try { + int _type = ABS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:433:4: ( ( 'a' | 'A' ) ( 'b' | 'B' ) ( 's' | 'S' ) ) + // src/petascope/wcps/grammar/wcps.g:433:6: ( 'a' | 'A' ) ( 'b' | 'B' ) ( 's' | 'S' ) + { + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='B'||input.LA(1)=='b' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "ABS" + + // $ANTLR start "OVERLAY" + public final void mOVERLAY() throws RecognitionException { + try { + int _type = OVERLAY; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:434:8: ( ( 'o' | 'O' ) ( 'v' | 'V' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 'y' | 'Y' ) ) + // src/petascope/wcps/grammar/wcps.g:434:10: ( 'o' | 'O' ) ( 'v' | 'V' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 'y' | 'Y' ) + { + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='V'||input.LA(1)=='v' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='Y'||input.LA(1)=='y' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "OVERLAY" + + // $ANTLR start "STRUCT" + public final void mSTRUCT() throws RecognitionException { + try { + int _type = STRUCT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:435:7: ( ( 's' | 'S' ) ( 't' | 'T' ) ( 'r' | 'R' ) ( 'u' | 'U' ) ( 'c' | 'C' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:435:9: ( 's' | 'S' ) ( 't' | 'T' ) ( 'r' | 'R' ) ( 'u' | 'U' ) ( 'c' | 'C' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "STRUCT" + + // $ANTLR start "RE" + public final void mRE() throws RecognitionException { + try { + int _type = RE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:436:3: ( ( 'r' | 'R' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:436:5: ( 'r' | 'R' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "RE" + + // $ANTLR start "IM" + public final void mIM() throws RecognitionException { + try { + int _type = IM; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:437:3: ( ( 'i' | 'I' ) ( 'm' | 'M' ) ) + // src/petascope/wcps/grammar/wcps.g:437:5: ( 'i' | 'I' ) ( 'm' | 'M' ) + { + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "IM" + + // $ANTLR start "AND" + public final void mAND() throws RecognitionException { + try { + int _type = AND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:438:4: ( ( 'a' | 'A' ) ( 'n' | 'N' ) ( 'd' | 'D' ) ) + // src/petascope/wcps/grammar/wcps.g:438:6: ( 'a' | 'A' ) ( 'n' | 'N' ) ( 'd' | 'D' ) + { + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "AND" + + // $ANTLR start "OR" + public final void mOR() throws RecognitionException { + try { + int _type = OR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:439:3: ( ( 'o' | 'O' ) ( 'r' | 'R' ) ) + // src/petascope/wcps/grammar/wcps.g:439:5: ( 'o' | 'O' ) ( 'r' | 'R' ) + { + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "OR" + + // $ANTLR start "XOR" + public final void mXOR() throws RecognitionException { + try { + int _type = XOR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:440:4: ( ( 'x' | 'X' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ) + // src/petascope/wcps/grammar/wcps.g:440:6: ( 'x' | 'X' ) ( 'o' | 'O' ) ( 'r' | 'R' ) + { + if ( input.LA(1)=='X'||input.LA(1)=='x' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "XOR" + + // $ANTLR start "NOT" + public final void mNOT() throws RecognitionException { + try { + int _type = NOT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:441:4: ( ( 'n' | 'N' ) ( 'o' | 'O' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:441:6: ( 'n' | 'N' ) ( 'o' | 'O' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "NOT" + + // $ANTLR start "IDENTIFIER" + public final void mIDENTIFIER() throws RecognitionException { + try { + int _type = IDENTIFIER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:442:11: ( ( 'i' | 'I' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'f' | 'F' ) ( 'i' | 'I' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ) + // src/petascope/wcps/grammar/wcps.g:442:13: ( 'i' | 'I' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'f' | 'F' ) ( 'i' | 'I' ) ( 'e' | 'E' ) ( 'r' | 'R' ) + { + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "IDENTIFIER" + + // $ANTLR start "IMAGECRS" + public final void mIMAGECRS() throws RecognitionException { + try { + int _type = IMAGECRS; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:443:9: ( ( 'i' | 'I' ) ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'g' | 'G' ) ( 'e' | 'E' ) ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) ) + // src/petascope/wcps/grammar/wcps.g:443:11: ( 'i' | 'I' ) ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'g' | 'G' ) ( 'e' | 'E' ) ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) + { + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "IMAGECRS" + + // $ANTLR start "IMAGECRSDOMAIN" + public final void mIMAGECRSDOMAIN() throws RecognitionException { + try { + int _type = IMAGECRSDOMAIN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:444:15: ( ( 'i' | 'I' ) ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'g' | 'G' ) ( 'e' | 'E' ) ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) ( 'd' | 'D' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:444:17: ( 'i' | 'I' ) ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'g' | 'G' ) ( 'e' | 'E' ) ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) ( 'd' | 'D' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'i' | 'I' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "IMAGECRSDOMAIN" + + // $ANTLR start "CRSSET" + public final void mCRSSET() throws RecognitionException { + try { + int _type = CRSSET; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:445:7: ( ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:445:9: ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "CRSSET" + + // $ANTLR start "DOMAIN" + public final void mDOMAIN() throws RecognitionException { + try { + int _type = DOMAIN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:446:7: ( ( 'd' | 'D' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:446:9: ( 'd' | 'D' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'i' | 'I' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "DOMAIN" + + // $ANTLR start "NULLSET" + public final void mNULLSET() throws RecognitionException { + try { + int _type = NULLSET; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:447:8: ( ( 'n' | 'N' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:447:10: ( 'n' | 'N' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "NULLSET" + + // $ANTLR start "NULLDEFAULT" + public final void mNULLDEFAULT() throws RecognitionException { + try { + int _type = NULLDEFAULT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:448:12: ( ( 'n' | 'N' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:448:14: ( 'n' | 'N' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "NULLDEFAULT" + + // $ANTLR start "INTERPOLATIONDEFAULT" + public final void mINTERPOLATIONDEFAULT() throws RecognitionException { + try { + int _type = INTERPOLATIONDEFAULT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:449:21: ( ( 'i' | 'I' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'p' | 'P' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:449:23: ( 'i' | 'I' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'p' | 'P' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='P'||input.LA(1)=='p' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "INTERPOLATIONDEFAULT" + + // $ANTLR start "INTERPOLATIONSET" + public final void mINTERPOLATIONSET() throws RecognitionException { + try { + int _type = INTERPOLATIONSET; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:450:17: ( ( 'i' | 'I' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'p' | 'P' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:450:19: ( 'i' | 'I' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'p' | 'P' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='P'||input.LA(1)=='p' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "INTERPOLATIONSET" + + // $ANTLR start "SETIDENTIFIER" + public final void mSETIDENTIFIER() throws RecognitionException { + try { + int _type = SETIDENTIFIER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:451:14: ( ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'f' | 'F' ) ( 'i' | 'I' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ) + // src/petascope/wcps/grammar/wcps.g:451:16: ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'f' | 'F' ) ( 'i' | 'I' ) ( 'e' | 'E' ) ( 'r' | 'R' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SETIDENTIFIER" + + // $ANTLR start "SETNULLSET" + public final void mSETNULLSET() throws RecognitionException { + try { + int _type = SETNULLSET; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:452:11: ( ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'n' | 'N' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:452:13: ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'n' | 'N' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SETNULLSET" + + // $ANTLR start "SETINTERPOLATIONDEFAULT" + public final void mSETINTERPOLATIONDEFAULT() throws RecognitionException { + try { + int _type = SETINTERPOLATIONDEFAULT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:453:24: ( ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'p' | 'P' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:453:26: ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'p' | 'P' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='P'||input.LA(1)=='p' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SETINTERPOLATIONDEFAULT" + + // $ANTLR start "SETINTERPOLATIONSET" + public final void mSETINTERPOLATIONSET() throws RecognitionException { + try { + int _type = SETINTERPOLATIONSET; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:454:20: ( ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'p' | 'P' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:454:21: ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'p' | 'P' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='P'||input.LA(1)=='p' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SETINTERPOLATIONSET" + + // $ANTLR start "SETCRSSET" + public final void mSETCRSSET() throws RecognitionException { + try { + int _type = SETCRSSET; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:455:10: ( ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:455:12: ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) ( 's' | 'S' ) ( 'e' | 'E' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SETCRSSET" + + // $ANTLR start "TRIM" + public final void mTRIM() throws RecognitionException { + try { + int _type = TRIM; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:456:5: ( ( 't' | 'T' ) ( 'r' | 'R' ) ( 'i' | 'I' ) ( 'm' | 'M' ) ) + // src/petascope/wcps/grammar/wcps.g:456:7: ( 't' | 'T' ) ( 'r' | 'R' ) ( 'i' | 'I' ) ( 'm' | 'M' ) + { + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "TRIM" + + // $ANTLR start "SLICE" + public final void mSLICE() throws RecognitionException { + try { + int _type = SLICE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:457:6: ( ( 's' | 'S' ) ( 'l' | 'L' ) ( 'i' | 'I' ) ( 'c' | 'C' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:457:8: ( 's' | 'S' ) ( 'l' | 'L' ) ( 'i' | 'I' ) ( 'c' | 'C' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SLICE" + + // $ANTLR start "EXTEND" + public final void mEXTEND() throws RecognitionException { + try { + int _type = EXTEND; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:458:7: ( ( 'e' | 'E' ) ( 'x' | 'X' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'n' | 'N' ) ( 'd' | 'D' ) ) + // src/petascope/wcps/grammar/wcps.g:458:9: ( 'e' | 'E' ) ( 'x' | 'X' ) ( 't' | 'T' ) ( 'e' | 'E' ) ( 'n' | 'N' ) ( 'd' | 'D' ) + { + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='X'||input.LA(1)=='x' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "EXTEND" + + // $ANTLR start "SCALE" + public final void mSCALE() throws RecognitionException { + try { + int _type = SCALE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:459:6: ( ( 's' | 'S' ) ( 'c' | 'C' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:459:8: ( 's' | 'S' ) ( 'c' | 'C' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SCALE" + + // $ANTLR start "CRSTRANSFORM" + public final void mCRSTRANSFORM() throws RecognitionException { + try { + int _type = CRSTRANSFORM; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:460:13: ( ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) ( 't' | 'T' ) ( 'r' | 'R' ) ( 'a' | 'A' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'f' | 'F' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 'm' | 'M' ) ) + // src/petascope/wcps/grammar/wcps.g:460:15: ( 'c' | 'C' ) ( 'r' | 'R' ) ( 's' | 'S' ) ( 't' | 'T' ) ( 'r' | 'R' ) ( 'a' | 'A' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'f' | 'F' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 'm' | 'M' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "CRSTRANSFORM" + + // $ANTLR start "COUNT" + public final void mCOUNT() throws RecognitionException { + try { + int _type = COUNT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:461:6: ( ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'u' | 'U' ) ( 'n' | 'N' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:461:8: ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'u' | 'U' ) ( 'n' | 'N' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "COUNT" + + // $ANTLR start "ADD" + public final void mADD() throws RecognitionException { + try { + int _type = ADD; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:462:4: ( ( 'a' | 'A' ) ( 'd' | 'D' ) ( 'd' | 'D' ) ) + // src/petascope/wcps/grammar/wcps.g:462:6: ( 'a' | 'A' ) ( 'd' | 'D' ) ( 'd' | 'D' ) + { + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "ADD" + + // $ANTLR start "AVG" + public final void mAVG() throws RecognitionException { + try { + int _type = AVG; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:463:4: ( ( 'a' | 'A' ) ( 'v' | 'V' ) ( 'g' | 'G' ) ) + // src/petascope/wcps/grammar/wcps.g:463:6: ( 'a' | 'A' ) ( 'v' | 'V' ) ( 'g' | 'G' ) + { + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='V'||input.LA(1)=='v' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "AVG" + + // $ANTLR start "MAX" + public final void mMAX() throws RecognitionException { + try { + int _type = MAX; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:464:4: ( ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'x' | 'X' ) ) + // src/petascope/wcps/grammar/wcps.g:464:6: ( 'm' | 'M' ) ( 'a' | 'A' ) ( 'x' | 'X' ) + { + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='X'||input.LA(1)=='x' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "MAX" + + // $ANTLR start "MIN" + public final void mMIN() throws RecognitionException { + try { + int _type = MIN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:465:4: ( ( 'm' | 'M' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:465:6: ( 'm' | 'M' ) ( 'i' | 'I' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "MIN" + + // $ANTLR start "SOME" + public final void mSOME() throws RecognitionException { + try { + int _type = SOME; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:466:5: ( ( 's' | 'S' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:466:7: ( 's' | 'S' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SOME" + + // $ANTLR start "ALL" + public final void mALL() throws RecognitionException { + try { + int _type = ALL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:467:4: ( ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'l' | 'L' ) ) + // src/petascope/wcps/grammar/wcps.g:467:6: ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'l' | 'L' ) + { + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "ALL" + + // $ANTLR start "COVERAGE" + public final void mCOVERAGE() throws RecognitionException { + try { + int _type = COVERAGE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:468:9: ( ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'v' | 'V' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'a' | 'A' ) ( 'g' | 'G' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:468:11: ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'v' | 'V' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ( 'a' | 'A' ) ( 'g' | 'G' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='V'||input.LA(1)=='v' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "COVERAGE" + + // $ANTLR start "OVER" + public final void mOVER() throws RecognitionException { + try { + int _type = OVER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:469:5: ( ( 'o' | 'O' ) ( 'v' | 'V' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ) + // src/petascope/wcps/grammar/wcps.g:469:7: ( 'o' | 'O' ) ( 'v' | 'V' ) ( 'e' | 'E' ) ( 'r' | 'R' ) + { + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='V'||input.LA(1)=='v' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "OVER" + + // $ANTLR start "VALUE" + public final void mVALUE() throws RecognitionException { + try { + int _type = VALUE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:470:6: ( ( 'v' | 'V' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'u' | 'U' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:470:8: ( 'v' | 'V' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'u' | 'U' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='V'||input.LA(1)=='v' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "VALUE" + + // $ANTLR start "VALUES" + public final void mVALUES() throws RecognitionException { + try { + int _type = VALUES; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:471:7: ( ( 'v' | 'V' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'u' | 'U' ) ( 'e' | 'E' ) ( 's' | 'S' ) ) + // src/petascope/wcps/grammar/wcps.g:471:9: ( 'v' | 'V' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'u' | 'U' ) ( 'e' | 'E' ) ( 's' | 'S' ) + { + if ( input.LA(1)=='V'||input.LA(1)=='v' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "VALUES" + + // $ANTLR start "LIST" + public final void mLIST() throws RecognitionException { + try { + int _type = LIST; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:472:5: ( ( 'l' | 'L' ) ( 'i' | 'I' ) ( 's' | 'S' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:472:7: ( 'l' | 'L' ) ( 'i' | 'I' ) ( 's' | 'S' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LIST" + + // $ANTLR start "CONDENSE" + public final void mCONDENSE() throws RecognitionException { + try { + int _type = CONDENSE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:473:9: ( ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:473:11: ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'd' | 'D' ) ( 'e' | 'E' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "CONDENSE" + + // $ANTLR start "USING" + public final void mUSING() throws RecognitionException { + try { + int _type = USING; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:474:6: ( ( 'u' | 'U' ) ( 's' | 'S' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 'g' | 'G' ) ) + // src/petascope/wcps/grammar/wcps.g:474:8: ( 'u' | 'U' ) ( 's' | 'S' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 'g' | 'G' ) + { + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "USING" + + // $ANTLR start "NEAREST" + public final void mNEAREST() throws RecognitionException { + try { + int _type = NEAREST; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:475:8: ( ( 'n' | 'N' ) ( 'e' | 'E' ) ( 'a' | 'A' ) ( 'r' | 'R' ) ( 'e' | 'E' ) ( 's' | 'S' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:475:10: ( 'n' | 'N' ) ( 'e' | 'E' ) ( 'a' | 'A' ) ( 'r' | 'R' ) ( 'e' | 'E' ) ( 's' | 'S' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "NEAREST" + + // $ANTLR start "LINEAR" + public final void mLINEAR() throws RecognitionException { + try { + int _type = LINEAR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:476:7: ( ( 'l' | 'L' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 'e' | 'E' ) ( 'a' | 'A' ) ( 'r' | 'R' ) ) + // src/petascope/wcps/grammar/wcps.g:476:9: ( 'l' | 'L' ) ( 'i' | 'I' ) ( 'n' | 'N' ) ( 'e' | 'E' ) ( 'a' | 'A' ) ( 'r' | 'R' ) + { + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LINEAR" + + // $ANTLR start "QUADRATIC" + public final void mQUADRATIC() throws RecognitionException { + try { + int _type = QUADRATIC; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:477:10: ( ( 'q' | 'Q' ) ( 'u' | 'U' ) ( 'a' | 'A' ) ( 'd' | 'D' ) ( 'r' | 'R' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'c' | 'C' ) ) + // src/petascope/wcps/grammar/wcps.g:477:12: ( 'q' | 'Q' ) ( 'u' | 'U' ) ( 'a' | 'A' ) ( 'd' | 'D' ) ( 'r' | 'R' ) ( 'a' | 'A' ) ( 't' | 'T' ) ( 'i' | 'I' ) ( 'c' | 'C' ) + { + if ( input.LA(1)=='Q'||input.LA(1)=='q' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "QUADRATIC" + + // $ANTLR start "CUBIC" + public final void mCUBIC() throws RecognitionException { + try { + int _type = CUBIC; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:478:6: ( ( 'c' | 'C' ) ( 'u' | 'U' ) ( 'b' | 'B' ) ( 'i' | 'I' ) ( 'c' | 'C' ) ) + // src/petascope/wcps/grammar/wcps.g:478:8: ( 'c' | 'C' ) ( 'u' | 'U' ) ( 'b' | 'B' ) ( 'i' | 'I' ) ( 'c' | 'C' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='B'||input.LA(1)=='b' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "CUBIC" + + // $ANTLR start "FULL" + public final void mFULL() throws RecognitionException { + try { + int _type = FULL; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:479:5: ( ( 'f' | 'F' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) ) + // src/petascope/wcps/grammar/wcps.g:479:7: ( 'f' | 'F' ) ( 'u' | 'U' ) ( 'l' | 'L' ) ( 'l' | 'L' ) + { + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "FULL" + + // $ANTLR start "NONE" + public final void mNONE() throws RecognitionException { + try { + int _type = NONE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:480:5: ( ( 'n' | 'N' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:480:7: ( 'n' | 'N' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "NONE" + + // $ANTLR start "HALF" + public final void mHALF() throws RecognitionException { + try { + int _type = HALF; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:481:5: ( ( 'h' | 'H' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'f' | 'F' ) ) + // src/petascope/wcps/grammar/wcps.g:481:7: ( 'h' | 'H' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 'f' | 'F' ) + { + if ( input.LA(1)=='H'||input.LA(1)=='h' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "HALF" + + // $ANTLR start "OTHER" + public final void mOTHER() throws RecognitionException { + try { + int _type = OTHER; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:482:6: ( ( 'o' | 'O' ) ( 't' | 'T' ) ( 'h' | 'H' ) ( 'e' | 'E' ) ( 'r' | 'R' ) ) + // src/petascope/wcps/grammar/wcps.g:482:8: ( 'o' | 'O' ) ( 't' | 'T' ) ( 'h' | 'H' ) ( 'e' | 'E' ) ( 'r' | 'R' ) + { + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='H'||input.LA(1)=='h' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "OTHER" + + // $ANTLR start "PHI" + public final void mPHI() throws RecognitionException { + try { + int _type = PHI; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:483:4: ( ( 'p' | 'P' ) ( 'h' | 'H' ) ( 'i' | 'I' ) ) + // src/petascope/wcps/grammar/wcps.g:483:6: ( 'p' | 'P' ) ( 'h' | 'H' ) ( 'i' | 'I' ) + { + if ( input.LA(1)=='P'||input.LA(1)=='p' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='H'||input.LA(1)=='h' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "PHI" + + // $ANTLR start "BIT" + public final void mBIT() throws RecognitionException { + try { + int _type = BIT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:484:4: ( ( 'b' | 'B' ) ( 'i' | 'I' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:484:6: ( 'b' | 'B' ) ( 'i' | 'I' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='B'||input.LA(1)=='b' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "BIT" + + // $ANTLR start "UNSIGNED" + public final void mUNSIGNED() throws RecognitionException { + try { + int _type = UNSIGNED; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:485:9: ( ( 'u' | 'U' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'i' | 'I' ) ( 'g' | 'G' ) ( 'n' | 'N' ) ( 'e' | 'E' ) ( 'd' | 'D' ) ) + // src/petascope/wcps/grammar/wcps.g:485:11: ( 'u' | 'U' ) ( 'n' | 'N' ) ( 's' | 'S' ) ( 'i' | 'I' ) ( 'g' | 'G' ) ( 'n' | 'N' ) ( 'e' | 'E' ) ( 'd' | 'D' ) + { + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='I'||input.LA(1)=='i' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "UNSIGNED" + + // $ANTLR start "BOOLEAN" + public final void mBOOLEAN() throws RecognitionException { + try { + int _type = BOOLEAN; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:486:8: ( ( 'b' | 'B' ) ( 'o' | 'O' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'e' | 'E' ) ( 'a' | 'A' ) ( 'n' | 'N' ) ) + // src/petascope/wcps/grammar/wcps.g:486:10: ( 'b' | 'B' ) ( 'o' | 'O' ) ( 'o' | 'O' ) ( 'l' | 'L' ) ( 'e' | 'E' ) ( 'a' | 'A' ) ( 'n' | 'N' ) + { + if ( input.LA(1)=='B'||input.LA(1)=='b' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "BOOLEAN" + + // $ANTLR start "CHAR" + public final void mCHAR() throws RecognitionException { + try { + int _type = CHAR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:487:5: ( ( 'c' | 'C' ) ( 'h' | 'H' ) ( 'a' | 'A' ) ( 'r' | 'R' ) ) + // src/petascope/wcps/grammar/wcps.g:487:7: ( 'c' | 'C' ) ( 'h' | 'H' ) ( 'a' | 'A' ) ( 'r' | 'R' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='H'||input.LA(1)=='h' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "CHAR" + + // $ANTLR start "SHORT" + public final void mSHORT() throws RecognitionException { + try { + int _type = SHORT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:488:6: ( ( 's' | 'S' ) ( 'h' | 'H' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:488:8: ( 's' | 'S' ) ( 'h' | 'H' ) ( 'o' | 'O' ) ( 'r' | 'R' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='H'||input.LA(1)=='h' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "SHORT" + + // $ANTLR start "LONG" + public final void mLONG() throws RecognitionException { + try { + int _type = LONG; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:489:5: ( ( 'l' | 'L' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'g' | 'G' ) ) + // src/petascope/wcps/grammar/wcps.g:489:7: ( 'l' | 'L' ) ( 'o' | 'O' ) ( 'n' | 'N' ) ( 'g' | 'G' ) + { + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='N'||input.LA(1)=='n' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='G'||input.LA(1)=='g' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "LONG" + + // $ANTLR start "FLOAT" + public final void mFLOAT() throws RecognitionException { + try { + int _type = FLOAT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:490:6: ( ( 'f' | 'F' ) ( 'l' | 'L' ) ( 'o' | 'O' ) ( 'a' | 'A' ) ( 't' | 'T' ) ) + // src/petascope/wcps/grammar/wcps.g:490:8: ( 'f' | 'F' ) ( 'l' | 'L' ) ( 'o' | 'O' ) ( 'a' | 'A' ) ( 't' | 'T' ) + { + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "FLOAT" + + // $ANTLR start "DOUBLE" + public final void mDOUBLE() throws RecognitionException { + try { + int _type = DOUBLE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:491:7: ( ( 'd' | 'D' ) ( 'o' | 'O' ) ( 'u' | 'U' ) ( 'b' | 'B' ) ( 'l' | 'L' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:491:9: ( 'd' | 'D' ) ( 'o' | 'O' ) ( 'u' | 'U' ) ( 'b' | 'B' ) ( 'l' | 'L' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='D'||input.LA(1)=='d' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='B'||input.LA(1)=='b' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "DOUBLE" + + // $ANTLR start "COMPLEX" + public final void mCOMPLEX() throws RecognitionException { + try { + int _type = COMPLEX; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:492:8: ( ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'p' | 'P' ) ( 'l' | 'L' ) ( 'e' | 'E' ) ( 'x' | 'X' ) ) + // src/petascope/wcps/grammar/wcps.g:492:10: ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'p' | 'P' ) ( 'l' | 'L' ) ( 'e' | 'E' ) ( 'x' | 'X' ) + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='P'||input.LA(1)=='p' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='X'||input.LA(1)=='x' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "COMPLEX" + + // $ANTLR start "COMPLEX2" + public final void mCOMPLEX2() throws RecognitionException { + try { + int _type = COMPLEX2; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:493:9: ( ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'p' | 'P' ) ( 'l' | 'L' ) ( 'e' | 'E' ) ( 'x' | 'X' ) '2' ) + // src/petascope/wcps/grammar/wcps.g:493:11: ( 'c' | 'C' ) ( 'o' | 'O' ) ( 'm' | 'M' ) ( 'p' | 'P' ) ( 'l' | 'L' ) ( 'e' | 'E' ) ( 'x' | 'X' ) '2' + { + if ( input.LA(1)=='C'||input.LA(1)=='c' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='O'||input.LA(1)=='o' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='M'||input.LA(1)=='m' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='P'||input.LA(1)=='p' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='X'||input.LA(1)=='x' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + match('2'); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "COMPLEX2" + + // $ANTLR start "BOOLEANCONSTANT" + public final void mBOOLEANCONSTANT() throws RecognitionException { + try { + int _type = BOOLEANCONSTANT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:494:16: ( ( ( 't' | 'T' ) ( 'r' | 'R' ) ( 'u' | 'U' ) ( 'e' | 'E' ) ) | ( ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 's' | 'S' ) ( 'e' | 'E' ) ) ) + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0=='T'||LA1_0=='t') ) { + alt1=1; + } + else if ( (LA1_0=='F'||LA1_0=='f') ) { + alt1=2; + } + else { + NoViableAltException nvae = + new NoViableAltException("", 1, 0, input); + + throw nvae; + } + switch (alt1) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:494:18: ( ( 't' | 'T' ) ( 'r' | 'R' ) ( 'u' | 'U' ) ( 'e' | 'E' ) ) + { + // src/petascope/wcps/grammar/wcps.g:494:18: ( ( 't' | 'T' ) ( 'r' | 'R' ) ( 'u' | 'U' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:494:19: ( 't' | 'T' ) ( 'r' | 'R' ) ( 'u' | 'U' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='T'||input.LA(1)=='t' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='R'||input.LA(1)=='r' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='U'||input.LA(1)=='u' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:494:57: ( ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 's' | 'S' ) ( 'e' | 'E' ) ) + { + // src/petascope/wcps/grammar/wcps.g:494:57: ( ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 's' | 'S' ) ( 'e' | 'E' ) ) + // src/petascope/wcps/grammar/wcps.g:494:58: ( 'f' | 'F' ) ( 'a' | 'A' ) ( 'l' | 'L' ) ( 's' | 'S' ) ( 'e' | 'E' ) + { + if ( input.LA(1)=='F'||input.LA(1)=='f' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='A'||input.LA(1)=='a' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='L'||input.LA(1)=='l' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='S'||input.LA(1)=='s' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + + + } + break; + + } + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "BOOLEANCONSTANT" + + // $ANTLR start "INTEGERCONSTANT" + public final void mINTEGERCONSTANT() throws RecognitionException { + try { + int _type = INTEGERCONSTANT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:495:16: ( ( PLUS | MINUS )? ( '0' .. '9' )+ ) + // src/petascope/wcps/grammar/wcps.g:495:19: ( PLUS | MINUS )? ( '0' .. '9' )+ + { + // src/petascope/wcps/grammar/wcps.g:495:19: ( PLUS | MINUS )? + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0=='+'||LA2_0=='-') ) { + alt2=1; + } + switch (alt2) { + case 1 : + // src/petascope/wcps/grammar/wcps.g: + { + if ( input.LA(1)=='+'||input.LA(1)=='-' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + } + + // src/petascope/wcps/grammar/wcps.g:495:33: ( '0' .. '9' )+ + int cnt3=0; + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( ((LA3_0>='0' && LA3_0<='9')) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:495:34: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt3 >= 1 ) break loop3; + EarlyExitException eee = + new EarlyExitException(3, input); + throw eee; + } + cnt3++; + } while (true); + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "INTEGERCONSTANT" + + // $ANTLR start "FLOATCONSTANT" + public final void mFLOATCONSTANT() throws RecognitionException { + try { + int _type = FLOATCONSTANT; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:496:14: ( INTEGERCONSTANT ( '.' ) ( ( '0' .. '9' )+ ) ( ( 'e' | 'E' ) ( ( '-' | '+' )? ) ( ( '0' .. '9' )+ ) )? ) + // src/petascope/wcps/grammar/wcps.g:496:16: INTEGERCONSTANT ( '.' ) ( ( '0' .. '9' )+ ) ( ( 'e' | 'E' ) ( ( '-' | '+' )? ) ( ( '0' .. '9' )+ ) )? + { + mINTEGERCONSTANT(); + // src/petascope/wcps/grammar/wcps.g:496:32: ( '.' ) + // src/petascope/wcps/grammar/wcps.g:496:33: '.' + { + match('.'); + + } + + // src/petascope/wcps/grammar/wcps.g:496:37: ( ( '0' .. '9' )+ ) + // src/petascope/wcps/grammar/wcps.g:496:38: ( '0' .. '9' )+ + { + // src/petascope/wcps/grammar/wcps.g:496:38: ( '0' .. '9' )+ + int cnt4=0; + loop4: + do { + int alt4=2; + int LA4_0 = input.LA(1); + + if ( ((LA4_0>='0' && LA4_0<='9')) ) { + alt4=1; + } + + + switch (alt4) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:496:38: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt4 >= 1 ) break loop4; + EarlyExitException eee = + new EarlyExitException(4, input); + throw eee; + } + cnt4++; + } while (true); + + + } + + // src/petascope/wcps/grammar/wcps.g:496:48: ( ( 'e' | 'E' ) ( ( '-' | '+' )? ) ( ( '0' .. '9' )+ ) )? + int alt7=2; + int LA7_0 = input.LA(1); + + if ( (LA7_0=='E'||LA7_0=='e') ) { + alt7=1; + } + switch (alt7) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:496:49: ( 'e' | 'E' ) ( ( '-' | '+' )? ) ( ( '0' .. '9' )+ ) + { + if ( input.LA(1)=='E'||input.LA(1)=='e' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // src/petascope/wcps/grammar/wcps.g:496:58: ( ( '-' | '+' )? ) + // src/petascope/wcps/grammar/wcps.g:496:59: ( '-' | '+' )? + { + // src/petascope/wcps/grammar/wcps.g:496:59: ( '-' | '+' )? + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0=='+'||LA5_0=='-') ) { + alt5=1; + } + switch (alt5) { + case 1 : + // src/petascope/wcps/grammar/wcps.g: + { + if ( input.LA(1)=='+'||input.LA(1)=='-' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + } + + + } + + // src/petascope/wcps/grammar/wcps.g:496:70: ( ( '0' .. '9' )+ ) + // src/petascope/wcps/grammar/wcps.g:496:71: ( '0' .. '9' )+ + { + // src/petascope/wcps/grammar/wcps.g:496:71: ( '0' .. '9' )+ + int cnt6=0; + loop6: + do { + int alt6=2; + int LA6_0 = input.LA(1); + + if ( ((LA6_0>='0' && LA6_0<='9')) ) { + alt6=1; + } + + + switch (alt6) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:496:71: '0' .. '9' + { + matchRange('0','9'); + + } + break; + + default : + if ( cnt6 >= 1 ) break loop6; + EarlyExitException eee = + new EarlyExitException(6, input); + throw eee; + } + cnt6++; + } while (true); + + + } + + + } + break; + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "FLOATCONSTANT" + + // $ANTLR start "STRING" + public final void mSTRING() throws RecognitionException { + try { + int _type = STRING; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:497:7: ( '\"' ( options {greedy=false; } : . )* '\"' ) + // src/petascope/wcps/grammar/wcps.g:497:9: '\"' ( options {greedy=false; } : . )* '\"' + { + match('\"'); + // src/petascope/wcps/grammar/wcps.g:497:13: ( options {greedy=false; } : . )* + loop8: + do { + int alt8=2; + int LA8_0 = input.LA(1); + + if ( (LA8_0=='\"') ) { + alt8=2; + } + else if ( ((LA8_0>='\u0000' && LA8_0<='!')||(LA8_0>='#' && LA8_0<='\uFFFF')) ) { + alt8=1; + } + + + switch (alt8) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:497:41: . + { + matchAny(); + + } + break; + + default : + break loop8; + } + } while (true); + + match('\"'); + setText(getText().substring(1, getText().length()-1)); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "STRING" + + // $ANTLR start "NAME" + public final void mNAME() throws RecognitionException { + try { + int _type = NAME; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:498:5: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) ) + // src/petascope/wcps/grammar/wcps.g:498:7: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) + { + if ( (input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + // src/petascope/wcps/grammar/wcps.g:498:30: ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) + // src/petascope/wcps/grammar/wcps.g:498:31: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* + { + // src/petascope/wcps/grammar/wcps.g:498:31: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* + loop9: + do { + int alt9=2; + int LA9_0 = input.LA(1); + + if ( ((LA9_0>='0' && LA9_0<='9')||(LA9_0>='A' && LA9_0<='Z')||LA9_0=='_'||(LA9_0>='a' && LA9_0<='z')) ) { + alt9=1; + } + + + switch (alt9) { + case 1 : + // src/petascope/wcps/grammar/wcps.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop9; + } + } while (true); + + + } + + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "NAME" + + // $ANTLR start "VARIABLE_DOLLAR" + public final void mVARIABLE_DOLLAR() throws RecognitionException { + try { + int _type = VARIABLE_DOLLAR; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:499:16: ( '$' ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) ) + // src/petascope/wcps/grammar/wcps.g:499:18: '$' ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) + { + match('$'); + // src/petascope/wcps/grammar/wcps.g:499:21: ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* ) + // src/petascope/wcps/grammar/wcps.g:499:22: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* + { + // src/petascope/wcps/grammar/wcps.g:499:22: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '_' )* + loop10: + do { + int alt10=2; + int LA10_0 = input.LA(1); + + if ( ((LA10_0>='0' && LA10_0<='9')||(LA10_0>='A' && LA10_0<='Z')||LA10_0=='_'||(LA10_0>='a' && LA10_0<='z')) ) { + alt10=1; + } + + + switch (alt10) { + case 1 : + // src/petascope/wcps/grammar/wcps.g: + { + if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a' && input.LA(1)<='z') ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + break loop10; + } + } while (true); + + + } + + setText(getText().substring(1, getText().length())); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "VARIABLE_DOLLAR" + + // $ANTLR start "WHITESPACE" + public final void mWHITESPACE() throws RecognitionException { + try { + int _type = WHITESPACE; + int _channel = DEFAULT_TOKEN_CHANNEL; + // src/petascope/wcps/grammar/wcps.g:500:11: ( ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' )+ ) + // src/petascope/wcps/grammar/wcps.g:500:13: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' )+ + { + // src/petascope/wcps/grammar/wcps.g:500:13: ( ' ' | '\\t' | '\\r' | '\\n' | '\\u000C' )+ + int cnt11=0; + loop11: + do { + int alt11=2; + int LA11_0 = input.LA(1); + + if ( ((LA11_0>='\t' && LA11_0<='\n')||(LA11_0>='\f' && LA11_0<='\r')||LA11_0==' ') ) { + alt11=1; + } + + + switch (alt11) { + case 1 : + // src/petascope/wcps/grammar/wcps.g: + { + if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) { + input.consume(); + + } + else { + MismatchedSetException mse = new MismatchedSetException(null,input); + recover(mse); + throw mse;} + + + } + break; + + default : + if ( cnt11 >= 1 ) break loop11; + EarlyExitException eee = + new EarlyExitException(11, input); + throw eee; + } + cnt11++; + } while (true); + + skip(); + + } + + state.type = _type; + state.channel = _channel; + } + finally { + } + } + // $ANTLR end "WHITESPACE" + + public void mTokens() throws RecognitionException { + // src/petascope/wcps/grammar/wcps.g:1:8: ( PLUS | MINUS | DIVIDE | MULT | EQUALS | NOTEQUALS | LT | GT | LTE | GTE | DOT | LPAREN | RPAREN | LBRACKET | RBRACKET | LBRACE | RBRACE | COMMA | COLON | SEMICOLON | FOR | IN | WHERE | RETURN | STORE | ENCODE | SQRT | SIN | COS | TAN | SINH | COSH | TANH | ARCSIN | ARCCOS | ARCTAN | EXP | LN | LOG | ROUND | ABS | OVERLAY | STRUCT | RE | IM | AND | OR | XOR | NOT | IDENTIFIER | IMAGECRS | IMAGECRSDOMAIN | CRSSET | DOMAIN | NULLSET | NULLDEFAULT | INTERPOLATIONDEFAULT | INTERPOLATIONSET | SETIDENTIFIER | SETNULLSET | SETINTERPOLATIONDEFAULT | SETINTERPOLATIONSET | SETCRSSET | TRIM | SLICE | EXTEND | SCALE | CRSTRANSFORM | COUNT | ADD | AVG | MAX | MIN | SOME | ALL | COVERAGE | OVER | VALUE | VALUES | LIST | CONDENSE | USING | NEAREST | LINEAR | QUADRATIC | CUBIC | FULL | NONE | HALF | OTHER | PHI | BIT | UNSIGNED | BOOLEAN | CHAR | SHORT | LONG | FLOAT | DOUBLE | COMPLEX | COMPLEX2 | BOOLEANCONSTANT | INTEGERCONSTANT | FLOATCONSTANT | STRING | NAME | VARIABLE_DOLLAR | WHITESPACE ) + int alt12=108; + alt12 = dfa12.predict(input); + switch (alt12) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:1:10: PLUS + { + mPLUS(); + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:1:15: MINUS + { + mMINUS(); + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:1:21: DIVIDE + { + mDIVIDE(); + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:1:28: MULT + { + mMULT(); + + } + break; + case 5 : + // src/petascope/wcps/grammar/wcps.g:1:33: EQUALS + { + mEQUALS(); + + } + break; + case 6 : + // src/petascope/wcps/grammar/wcps.g:1:40: NOTEQUALS + { + mNOTEQUALS(); + + } + break; + case 7 : + // src/petascope/wcps/grammar/wcps.g:1:50: LT + { + mLT(); + + } + break; + case 8 : + // src/petascope/wcps/grammar/wcps.g:1:53: GT + { + mGT(); + + } + break; + case 9 : + // src/petascope/wcps/grammar/wcps.g:1:56: LTE + { + mLTE(); + + } + break; + case 10 : + // src/petascope/wcps/grammar/wcps.g:1:60: GTE + { + mGTE(); + + } + break; + case 11 : + // src/petascope/wcps/grammar/wcps.g:1:64: DOT + { + mDOT(); + + } + break; + case 12 : + // src/petascope/wcps/grammar/wcps.g:1:68: LPAREN + { + mLPAREN(); + + } + break; + case 13 : + // src/petascope/wcps/grammar/wcps.g:1:75: RPAREN + { + mRPAREN(); + + } + break; + case 14 : + // src/petascope/wcps/grammar/wcps.g:1:82: LBRACKET + { + mLBRACKET(); + + } + break; + case 15 : + // src/petascope/wcps/grammar/wcps.g:1:91: RBRACKET + { + mRBRACKET(); + + } + break; + case 16 : + // src/petascope/wcps/grammar/wcps.g:1:100: LBRACE + { + mLBRACE(); + + } + break; + case 17 : + // src/petascope/wcps/grammar/wcps.g:1:107: RBRACE + { + mRBRACE(); + + } + break; + case 18 : + // src/petascope/wcps/grammar/wcps.g:1:114: COMMA + { + mCOMMA(); + + } + break; + case 19 : + // src/petascope/wcps/grammar/wcps.g:1:120: COLON + { + mCOLON(); + + } + break; + case 20 : + // src/petascope/wcps/grammar/wcps.g:1:126: SEMICOLON + { + mSEMICOLON(); + + } + break; + case 21 : + // src/petascope/wcps/grammar/wcps.g:1:136: FOR + { + mFOR(); + + } + break; + case 22 : + // src/petascope/wcps/grammar/wcps.g:1:140: IN + { + mIN(); + + } + break; + case 23 : + // src/petascope/wcps/grammar/wcps.g:1:143: WHERE + { + mWHERE(); + + } + break; + case 24 : + // src/petascope/wcps/grammar/wcps.g:1:149: RETURN + { + mRETURN(); + + } + break; + case 25 : + // src/petascope/wcps/grammar/wcps.g:1:156: STORE + { + mSTORE(); + + } + break; + case 26 : + // src/petascope/wcps/grammar/wcps.g:1:162: ENCODE + { + mENCODE(); + + } + break; + case 27 : + // src/petascope/wcps/grammar/wcps.g:1:169: SQRT + { + mSQRT(); + + } + break; + case 28 : + // src/petascope/wcps/grammar/wcps.g:1:174: SIN + { + mSIN(); + + } + break; + case 29 : + // src/petascope/wcps/grammar/wcps.g:1:178: COS + { + mCOS(); + + } + break; + case 30 : + // src/petascope/wcps/grammar/wcps.g:1:182: TAN + { + mTAN(); + + } + break; + case 31 : + // src/petascope/wcps/grammar/wcps.g:1:186: SINH + { + mSINH(); + + } + break; + case 32 : + // src/petascope/wcps/grammar/wcps.g:1:191: COSH + { + mCOSH(); + + } + break; + case 33 : + // src/petascope/wcps/grammar/wcps.g:1:196: TANH + { + mTANH(); + + } + break; + case 34 : + // src/petascope/wcps/grammar/wcps.g:1:201: ARCSIN + { + mARCSIN(); + + } + break; + case 35 : + // src/petascope/wcps/grammar/wcps.g:1:208: ARCCOS + { + mARCCOS(); + + } + break; + case 36 : + // src/petascope/wcps/grammar/wcps.g:1:215: ARCTAN + { + mARCTAN(); + + } + break; + case 37 : + // src/petascope/wcps/grammar/wcps.g:1:222: EXP + { + mEXP(); + + } + break; + case 38 : + // src/petascope/wcps/grammar/wcps.g:1:226: LN + { + mLN(); + + } + break; + case 39 : + // src/petascope/wcps/grammar/wcps.g:1:229: LOG + { + mLOG(); + + } + break; + case 40 : + // src/petascope/wcps/grammar/wcps.g:1:233: ROUND + { + mROUND(); + + } + break; + case 41 : + // src/petascope/wcps/grammar/wcps.g:1:239: ABS + { + mABS(); + + } + break; + case 42 : + // src/petascope/wcps/grammar/wcps.g:1:243: OVERLAY + { + mOVERLAY(); + + } + break; + case 43 : + // src/petascope/wcps/grammar/wcps.g:1:251: STRUCT + { + mSTRUCT(); + + } + break; + case 44 : + // src/petascope/wcps/grammar/wcps.g:1:258: RE + { + mRE(); + + } + break; + case 45 : + // src/petascope/wcps/grammar/wcps.g:1:261: IM + { + mIM(); + + } + break; + case 46 : + // src/petascope/wcps/grammar/wcps.g:1:264: AND + { + mAND(); + + } + break; + case 47 : + // src/petascope/wcps/grammar/wcps.g:1:268: OR + { + mOR(); + + } + break; + case 48 : + // src/petascope/wcps/grammar/wcps.g:1:271: XOR + { + mXOR(); + + } + break; + case 49 : + // src/petascope/wcps/grammar/wcps.g:1:275: NOT + { + mNOT(); + + } + break; + case 50 : + // src/petascope/wcps/grammar/wcps.g:1:279: IDENTIFIER + { + mIDENTIFIER(); + + } + break; + case 51 : + // src/petascope/wcps/grammar/wcps.g:1:290: IMAGECRS + { + mIMAGECRS(); + + } + break; + case 52 : + // src/petascope/wcps/grammar/wcps.g:1:299: IMAGECRSDOMAIN + { + mIMAGECRSDOMAIN(); + + } + break; + case 53 : + // src/petascope/wcps/grammar/wcps.g:1:314: CRSSET + { + mCRSSET(); + + } + break; + case 54 : + // src/petascope/wcps/grammar/wcps.g:1:321: DOMAIN + { + mDOMAIN(); + + } + break; + case 55 : + // src/petascope/wcps/grammar/wcps.g:1:328: NULLSET + { + mNULLSET(); + + } + break; + case 56 : + // src/petascope/wcps/grammar/wcps.g:1:336: NULLDEFAULT + { + mNULLDEFAULT(); + + } + break; + case 57 : + // src/petascope/wcps/grammar/wcps.g:1:348: INTERPOLATIONDEFAULT + { + mINTERPOLATIONDEFAULT(); + + } + break; + case 58 : + // src/petascope/wcps/grammar/wcps.g:1:369: INTERPOLATIONSET + { + mINTERPOLATIONSET(); + + } + break; + case 59 : + // src/petascope/wcps/grammar/wcps.g:1:386: SETIDENTIFIER + { + mSETIDENTIFIER(); + + } + break; + case 60 : + // src/petascope/wcps/grammar/wcps.g:1:400: SETNULLSET + { + mSETNULLSET(); + + } + break; + case 61 : + // src/petascope/wcps/grammar/wcps.g:1:411: SETINTERPOLATIONDEFAULT + { + mSETINTERPOLATIONDEFAULT(); + + } + break; + case 62 : + // src/petascope/wcps/grammar/wcps.g:1:435: SETINTERPOLATIONSET + { + mSETINTERPOLATIONSET(); + + } + break; + case 63 : + // src/petascope/wcps/grammar/wcps.g:1:455: SETCRSSET + { + mSETCRSSET(); + + } + break; + case 64 : + // src/petascope/wcps/grammar/wcps.g:1:465: TRIM + { + mTRIM(); + + } + break; + case 65 : + // src/petascope/wcps/grammar/wcps.g:1:470: SLICE + { + mSLICE(); + + } + break; + case 66 : + // src/petascope/wcps/grammar/wcps.g:1:476: EXTEND + { + mEXTEND(); + + } + break; + case 67 : + // src/petascope/wcps/grammar/wcps.g:1:483: SCALE + { + mSCALE(); + + } + break; + case 68 : + // src/petascope/wcps/grammar/wcps.g:1:489: CRSTRANSFORM + { + mCRSTRANSFORM(); + + } + break; + case 69 : + // src/petascope/wcps/grammar/wcps.g:1:502: COUNT + { + mCOUNT(); + + } + break; + case 70 : + // src/petascope/wcps/grammar/wcps.g:1:508: ADD + { + mADD(); + + } + break; + case 71 : + // src/petascope/wcps/grammar/wcps.g:1:512: AVG + { + mAVG(); + + } + break; + case 72 : + // src/petascope/wcps/grammar/wcps.g:1:516: MAX + { + mMAX(); + + } + break; + case 73 : + // src/petascope/wcps/grammar/wcps.g:1:520: MIN + { + mMIN(); + + } + break; + case 74 : + // src/petascope/wcps/grammar/wcps.g:1:524: SOME + { + mSOME(); + + } + break; + case 75 : + // src/petascope/wcps/grammar/wcps.g:1:529: ALL + { + mALL(); + + } + break; + case 76 : + // src/petascope/wcps/grammar/wcps.g:1:533: COVERAGE + { + mCOVERAGE(); + + } + break; + case 77 : + // src/petascope/wcps/grammar/wcps.g:1:542: OVER + { + mOVER(); + + } + break; + case 78 : + // src/petascope/wcps/grammar/wcps.g:1:547: VALUE + { + mVALUE(); + + } + break; + case 79 : + // src/petascope/wcps/grammar/wcps.g:1:553: VALUES + { + mVALUES(); + + } + break; + case 80 : + // src/petascope/wcps/grammar/wcps.g:1:560: LIST + { + mLIST(); + + } + break; + case 81 : + // src/petascope/wcps/grammar/wcps.g:1:565: CONDENSE + { + mCONDENSE(); + + } + break; + case 82 : + // src/petascope/wcps/grammar/wcps.g:1:574: USING + { + mUSING(); + + } + break; + case 83 : + // src/petascope/wcps/grammar/wcps.g:1:580: NEAREST + { + mNEAREST(); + + } + break; + case 84 : + // src/petascope/wcps/grammar/wcps.g:1:588: LINEAR + { + mLINEAR(); + + } + break; + case 85 : + // src/petascope/wcps/grammar/wcps.g:1:595: QUADRATIC + { + mQUADRATIC(); + + } + break; + case 86 : + // src/petascope/wcps/grammar/wcps.g:1:605: CUBIC + { + mCUBIC(); + + } + break; + case 87 : + // src/petascope/wcps/grammar/wcps.g:1:611: FULL + { + mFULL(); + + } + break; + case 88 : + // src/petascope/wcps/grammar/wcps.g:1:616: NONE + { + mNONE(); + + } + break; + case 89 : + // src/petascope/wcps/grammar/wcps.g:1:621: HALF + { + mHALF(); + + } + break; + case 90 : + // src/petascope/wcps/grammar/wcps.g:1:626: OTHER + { + mOTHER(); + + } + break; + case 91 : + // src/petascope/wcps/grammar/wcps.g:1:632: PHI + { + mPHI(); + + } + break; + case 92 : + // src/petascope/wcps/grammar/wcps.g:1:636: BIT + { + mBIT(); + + } + break; + case 93 : + // src/petascope/wcps/grammar/wcps.g:1:640: UNSIGNED + { + mUNSIGNED(); + + } + break; + case 94 : + // src/petascope/wcps/grammar/wcps.g:1:649: BOOLEAN + { + mBOOLEAN(); + + } + break; + case 95 : + // src/petascope/wcps/grammar/wcps.g:1:657: CHAR + { + mCHAR(); + + } + break; + case 96 : + // src/petascope/wcps/grammar/wcps.g:1:662: SHORT + { + mSHORT(); + + } + break; + case 97 : + // src/petascope/wcps/grammar/wcps.g:1:668: LONG + { + mLONG(); + + } + break; + case 98 : + // src/petascope/wcps/grammar/wcps.g:1:673: FLOAT + { + mFLOAT(); + + } + break; + case 99 : + // src/petascope/wcps/grammar/wcps.g:1:679: DOUBLE + { + mDOUBLE(); + + } + break; + case 100 : + // src/petascope/wcps/grammar/wcps.g:1:686: COMPLEX + { + mCOMPLEX(); + + } + break; + case 101 : + // src/petascope/wcps/grammar/wcps.g:1:694: COMPLEX2 + { + mCOMPLEX2(); + + } + break; + case 102 : + // src/petascope/wcps/grammar/wcps.g:1:703: BOOLEANCONSTANT + { + mBOOLEANCONSTANT(); + + } + break; + case 103 : + // src/petascope/wcps/grammar/wcps.g:1:719: INTEGERCONSTANT + { + mINTEGERCONSTANT(); + + } + break; + case 104 : + // src/petascope/wcps/grammar/wcps.g:1:735: FLOATCONSTANT + { + mFLOATCONSTANT(); + + } + break; + case 105 : + // src/petascope/wcps/grammar/wcps.g:1:749: STRING + { + mSTRING(); + + } + break; + case 106 : + // src/petascope/wcps/grammar/wcps.g:1:756: NAME + { + mNAME(); + + } + break; + case 107 : + // src/petascope/wcps/grammar/wcps.g:1:761: VARIABLE_DOLLAR + { + mVARIABLE_DOLLAR(); + + } + break; + case 108 : + // src/petascope/wcps/grammar/wcps.g:1:777: WHITESPACE + { + mWHITESPACE(); + + } + break; + + } + + } + + + protected DFA12 dfa12 = new DFA12(this); + static final String DFA12_eotS = + "\1\uffff\1\55\1\56\4\uffff\1\60\1\62\12\uffff\25\52\1\150\12\uffff"+ + "\4\52\1\157\1\161\2\52\1\165\27\52\1\u0094\3\52\1\u009a\20\52\2"+ + "\uffff\1\u00ad\4\52\1\uffff\1\52\1\uffff\3\52\1\uffff\4\52\1\u00bb"+ + "\6\52\1\u00c4\1\52\1\u00c7\7\52\1\u00d1\3\52\1\u00d7\1\u00d8\1\u00d9"+ + "\1\u00da\1\u00db\1\uffff\1\u00dc\4\52\1\uffff\1\52\1\u00e2\1\u00e3"+ + "\5\52\1\u00e9\1\u00ea\5\52\1\u00f0\1\u00f1\1\52\1\uffff\1\u00f3"+ + "\12\52\1\u00fe\1\u00ff\1\uffff\5\52\1\u0106\2\52\1\uffff\1\52\1"+ + "\u010a\1\uffff\7\52\1\u0112\1\u0113\1\uffff\1\u0114\1\u0115\3\52"+ + "\6\uffff\1\u0119\1\u011a\1\52\1\u011d\1\52\2\uffff\1\u011f\4\52"+ + "\2\uffff\4\52\1\u0129\2\uffff\1\52\1\uffff\1\u012b\1\u0115\3\52"+ + "\1\u012f\1\52\1\u0131\1\u0132\1\52\2\uffff\4\52\1\u0138\1\u0139"+ + "\1\uffff\1\u013a\2\52\1\uffff\1\u013d\5\52\1\u0143\4\uffff\3\52"+ + "\2\uffff\2\52\1\uffff\1\u0149\1\uffff\5\52\1\u0150\1\u0151\2\52"+ + "\1\uffff\1\52\1\uffff\3\52\1\uffff\1\u0158\2\uffff\1\u0159\4\52"+ + "\3\uffff\1\u015e\1\u015f\1\uffff\3\52\1\u0163\1\52\1\uffff\1\u0165"+ + "\1\u0166\1\u0167\1\u0168\1\52\1\uffff\3\52\1\u016d\1\u016e\1\u016f"+ + "\2\uffff\6\52\2\uffff\4\52\2\uffff\2\52\1\u017d\1\uffff\1\52\4\uffff"+ + "\1\u017f\1\u0180\1\52\1\u0182\3\uffff\2\52\1\u0185\1\52\1\u0188"+ + "\5\52\1\u018e\1\u018f\1\u0190\1\uffff\1\52\2\uffff\1\52\1\uffff"+ + "\1\u0193\1\52\1\uffff\2\52\1\uffff\4\52\1\u019b\3\uffff\2\52\1\uffff"+ + "\1\u019e\2\52\1\u01a1\2\52\1\u01a4\1\uffff\2\52\1\uffff\2\52\1\uffff"+ + "\2\52\1\uffff\1\52\1\u01ac\4\52\1\u01b1\1\uffff\2\52\1\u01b5\1\52"+ + "\1\uffff\2\52\1\u01b9\1\uffff\3\52\1\uffff\2\52\1\u01bf\2\52\1\uffff"+ + "\7\52\1\u01ca\1\u01cb\1\52\2\uffff\2\52\1\u01cf\1\uffff"; + static final String DFA12_eofS = + "\u01d0\uffff"; + static final String DFA12_minS = + "\1\11\2\60\4\uffff\2\75\12\uffff\1\101\1\104\1\110\1\105\1\103\1"+ + "\116\1\110\1\101\1\102\1\111\1\122\1\117\1\105\1\117\2\101\1\116"+ + "\1\125\1\101\1\110\1\111\1\56\12\uffff\1\122\1\114\1\117\1\114\2"+ + "\60\2\105\1\60\1\125\1\117\1\122\1\116\1\124\1\111\1\101\1\115\1"+ + "\117\1\103\1\120\1\115\1\123\1\102\1\101\1\116\1\111\1\103\1\123"+ + "\2\104\1\107\1\114\1\60\1\107\1\116\1\105\1\60\1\110\1\122\1\116"+ + "\1\114\1\101\1\115\1\130\1\116\1\114\1\111\1\123\1\101\1\114\1\111"+ + "\1\124\1\117\2\uffff\1\60\1\114\1\101\1\123\1\105\1\uffff\1\107"+ + "\1\uffff\1\116\1\122\1\125\1\uffff\1\116\1\122\1\125\1\124\1\60"+ + "\2\103\1\114\1\105\1\122\1\117\1\60\1\105\1\60\1\116\1\105\1\104"+ + "\1\120\1\123\1\111\1\122\1\60\1\115\1\105\1\103\5\60\1\uffff\1\60"+ + "\1\107\1\124\1\105\1\122\1\uffff\1\105\2\60\1\105\1\114\1\122\1"+ + "\101\1\102\2\60\1\125\1\116\1\111\1\104\1\106\2\60\1\114\1\uffff"+ + "\1\60\1\124\1\105\1\122\1\105\1\124\1\105\1\122\1\104\1\105\1\103"+ + "\2\60\1\uffff\1\104\1\125\1\122\2\105\1\60\1\124\1\104\1\uffff\1"+ + "\116\1\60\1\uffff\1\124\1\122\1\105\1\114\1\105\1\122\1\103\2\60"+ + "\1\uffff\2\60\1\111\1\117\1\101\6\uffff\2\60\1\101\1\60\1\122\2"+ + "\uffff\1\60\1\104\1\105\1\111\1\114\2\uffff\1\105\2\107\1\122\1"+ + "\60\2\uffff\1\105\1\uffff\2\60\1\120\1\103\1\111\1\60\1\116\2\60"+ + "\1\124\2\uffff\1\105\1\124\1\114\1\123\2\60\1\uffff\1\60\1\105\1"+ + "\104\1\uffff\1\60\1\101\1\116\1\105\1\124\1\101\1\60\4\uffff\1\116"+ + "\1\123\1\116\2\uffff\1\122\1\101\1\uffff\1\60\1\uffff\2\105\1\123"+ + "\1\116\1\105\2\60\1\116\1\101\1\uffff\1\101\1\uffff\1\117\1\122"+ + "\1\106\1\uffff\1\60\2\uffff\1\60\1\116\1\105\1\114\1\123\3\uffff"+ + "\2\60\1\uffff\1\107\1\123\1\130\1\60\1\116\1\uffff\4\60\1\131\1"+ + "\uffff\1\124\1\106\1\124\3\60\2\uffff\1\105\1\124\1\116\1\114\1"+ + "\123\1\111\2\uffff\1\124\1\122\1\123\1\105\2\uffff\2\105\1\60\1"+ + "\uffff\1\123\4\uffff\2\60\1\101\1\60\3\uffff\1\104\1\111\1\60\1"+ + "\101\1\60\1\105\1\111\1\120\1\105\1\124\3\60\1\uffff\1\106\2\uffff"+ + "\1\125\1\uffff\1\60\1\103\1\uffff\1\124\1\117\1\uffff\1\122\1\106"+ + "\1\117\1\124\1\60\3\uffff\1\117\1\114\1\uffff\1\60\1\111\1\115\1"+ + "\60\1\111\1\114\1\60\1\uffff\1\122\1\124\1\uffff\1\117\1\101\1\uffff"+ + "\1\105\1\101\1\uffff\1\115\1\60\1\116\1\111\1\122\1\124\1\60\1\uffff"+ + "\1\104\1\116\1\60\1\111\1\uffff\2\105\1\60\1\uffff\1\117\1\106\1"+ + "\124\1\uffff\1\116\1\101\1\60\1\104\1\125\1\uffff\2\105\1\114\1"+ + "\106\2\124\1\101\2\60\1\125\2\uffff\1\114\1\124\1\60\1\uffff"; + static final String DFA12_maxS = + "\1\175\2\71\4\uffff\2\75\12\uffff\1\165\1\156\1\150\1\157\1\164"+ + "\1\170\1\165\1\162\1\166\1\157\1\166\1\157\1\165\1\157\1\151\1\141"+ + "\1\163\1\165\1\141\1\150\1\157\1\71\12\uffff\1\162\1\154\1\157\1"+ + "\154\2\172\2\145\1\172\1\165\2\162\1\156\1\164\1\151\1\141\1\155"+ + "\1\157\1\143\1\164\1\166\1\163\1\142\1\141\1\156\1\165\1\143\1\163"+ + "\2\144\1\147\1\154\1\172\1\156\1\163\1\145\1\172\1\150\1\162\1\164"+ + "\1\154\1\141\1\165\1\170\1\156\1\154\1\151\1\163\1\141\1\154\1\151"+ + "\1\164\1\157\2\uffff\1\172\1\154\1\141\1\163\1\145\1\uffff\1\147"+ + "\1\uffff\1\156\1\162\1\165\1\uffff\1\156\1\162\1\165\1\164\1\172"+ + "\1\156\1\143\1\154\1\145\1\162\1\157\1\172\1\145\1\172\1\156\1\145"+ + "\1\144\1\160\1\164\1\151\1\162\1\172\1\155\1\145\1\164\5\172\1\uffff"+ + "\1\172\1\147\1\164\1\145\1\162\1\uffff\1\145\2\172\1\145\1\154\1"+ + "\162\1\141\1\142\2\172\1\165\1\156\1\151\1\144\1\146\2\172\1\154"+ + "\1\uffff\1\172\1\164\1\145\1\162\1\145\1\164\1\145\1\162\1\144\1"+ + "\145\1\143\2\172\1\uffff\1\156\1\165\1\162\2\145\1\172\1\164\1\144"+ + "\1\uffff\1\156\1\172\1\uffff\1\164\1\162\1\145\1\154\1\145\1\162"+ + "\1\143\2\172\1\uffff\2\172\1\151\1\157\1\141\6\uffff\2\172\1\141"+ + "\1\172\1\162\2\uffff\1\172\1\163\1\145\1\151\1\154\2\uffff\1\145"+ + "\2\147\1\162\1\172\2\uffff\1\145\1\uffff\2\172\1\160\1\143\1\151"+ + "\1\172\1\156\2\172\1\164\2\uffff\1\145\1\164\1\154\1\163\2\172\1"+ + "\uffff\1\172\1\145\1\144\1\uffff\1\172\1\141\1\156\1\145\1\164\1"+ + "\141\1\172\4\uffff\1\156\1\163\1\156\2\uffff\1\162\1\141\1\uffff"+ + "\1\172\1\uffff\2\145\1\163\1\156\1\145\2\172\1\156\1\141\1\uffff"+ + "\1\141\1\uffff\1\157\1\162\1\146\1\uffff\1\172\2\uffff\1\172\1\156"+ + "\1\145\1\154\1\163\3\uffff\2\172\1\uffff\1\147\1\163\1\170\1\172"+ + "\1\156\1\uffff\4\172\1\171\1\uffff\1\164\1\146\1\164\3\172\2\uffff"+ + "\1\145\1\164\1\156\1\154\1\163\1\151\2\uffff\1\164\1\162\1\163\1"+ + "\145\2\uffff\2\145\1\172\1\uffff\1\163\4\uffff\2\172\1\141\1\172"+ + "\3\uffff\1\144\1\151\1\172\1\141\1\172\1\145\1\151\1\160\1\145\1"+ + "\164\3\172\1\uffff\1\146\2\uffff\1\165\1\uffff\1\172\1\143\1\uffff"+ + "\1\164\1\157\1\uffff\1\162\1\146\1\157\1\164\1\172\3\uffff\1\157"+ + "\1\154\1\uffff\1\172\1\151\1\155\1\172\1\151\1\154\1\172\1\uffff"+ + "\1\162\1\164\1\uffff\1\157\1\141\1\uffff\1\145\1\141\1\uffff\1\155"+ + "\1\172\1\156\1\151\1\162\1\164\1\172\1\uffff\1\163\1\156\1\172\1"+ + "\151\1\uffff\2\145\1\172\1\uffff\1\157\1\146\1\164\1\uffff\1\156"+ + "\1\141\1\172\1\163\1\165\1\uffff\2\145\1\154\1\146\2\164\1\141\2"+ + "\172\1\165\2\uffff\1\154\1\164\1\172\1\uffff"; + static final String DFA12_acceptS = + "\3\uffff\1\3\1\4\1\5\1\6\2\uffff\1\13\1\14\1\15\1\16\1\17\1\20\1"+ + "\21\1\22\1\23\1\24\26\uffff\1\151\1\152\1\153\1\154\1\1\1\2\1\11"+ + "\1\7\1\12\1\10\65\uffff\1\147\1\150\5\uffff\1\26\1\uffff\1\55\3"+ + "\uffff\1\54\36\uffff\1\46\5\uffff\1\57\22\uffff\1\25\15\uffff\1"+ + "\34\10\uffff\1\45\2\uffff\1\35\11\uffff\1\36\5\uffff\1\51\1\56\1"+ + "\106\1\107\1\113\1\47\5\uffff\1\60\1\61\5\uffff\1\110\1\111\5\uffff"+ + "\1\133\1\134\1\uffff\1\127\12\uffff\1\33\1\37\6\uffff\1\112\3\uffff"+ + "\1\40\7\uffff\1\137\1\41\1\100\1\146\3\uffff\1\141\1\120\2\uffff"+ + "\1\115\1\uffff\1\130\11\uffff\1\131\1\uffff\1\142\3\uffff\1\27\1"+ + "\uffff\1\50\1\31\5\uffff\1\101\1\103\1\140\2\uffff\1\105\5\uffff"+ + "\1\126\5\uffff\1\132\6\uffff\1\116\1\122\6\uffff\1\30\1\53\4\uffff"+ + "\1\32\1\102\3\uffff\1\65\1\uffff\1\42\1\43\1\44\1\124\4\uffff\1"+ + "\66\1\143\1\117\15\uffff\1\144\1\uffff\1\52\1\67\1\uffff\1\123\2"+ + "\uffff\1\136\2\uffff\1\63\5\uffff\1\114\1\121\1\145\2\uffff\1\135"+ + "\7\uffff\1\77\2\uffff\1\125\2\uffff\1\62\2\uffff\1\74\7\uffff\1"+ + "\70\4\uffff\1\104\3\uffff\1\73\3\uffff\1\64\5\uffff\1\72\12\uffff"+ + "\1\76\1\71\3\uffff\1\75"; + static final String DFA12_specialS = + "\u01d0\uffff}>"; + static final String[] DFA12_transitionS = { + "\2\54\1\uffff\2\54\22\uffff\1\54\1\6\1\51\1\uffff\1\53\3\uffff"+ + "\1\12\1\13\1\4\1\1\1\20\1\2\1\11\1\3\12\50\1\21\1\22\1\7\1\5"+ + "\1\10\2\uffff\1\33\1\47\1\31\1\40\1\30\1\23\1\52\1\45\1\24\2"+ + "\52\1\34\1\41\1\37\1\35\1\46\1\44\1\26\1\27\1\32\1\43\1\42\1"+ + "\25\1\36\2\52\1\14\1\uffff\1\15\1\uffff\1\52\1\uffff\1\33\1"+ + "\47\1\31\1\40\1\30\1\23\1\52\1\45\1\24\2\52\1\34\1\41\1\37\1"+ + "\35\1\46\1\44\1\26\1\27\1\32\1\43\1\42\1\25\1\36\2\52\1\16\1"+ + "\uffff\1\17", + "\12\50", + "\12\50", + "", + "", + "", + "", + "\1\57", + "\1\61", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\66\12\uffff\1\65\2\uffff\1\63\5\uffff\1\64\13\uffff\1\66"+ + "\12\uffff\1\65\2\uffff\1\63\5\uffff\1\64", + "\1\71\10\uffff\1\70\1\67\25\uffff\1\71\10\uffff\1\70\1\67", + "\1\72\37\uffff\1\72", + "\1\73\11\uffff\1\74\25\uffff\1\73\11\uffff\1\74", + "\1\102\1\uffff\1\100\2\uffff\1\104\1\77\2\uffff\1\101\2\uffff"+ + "\1\103\1\uffff\1\76\2\uffff\1\75\16\uffff\1\102\1\uffff\1\100"+ + "\2\uffff\1\104\1\77\2\uffff\1\101\2\uffff\1\103\1\uffff\1\76"+ + "\2\uffff\1\75", + "\1\105\11\uffff\1\106\25\uffff\1\105\11\uffff\1\106", + "\1\112\6\uffff\1\107\2\uffff\1\110\2\uffff\1\111\22\uffff\1"+ + "\112\6\uffff\1\107\2\uffff\1\110\2\uffff\1\111", + "\1\113\20\uffff\1\114\16\uffff\1\113\20\uffff\1\114", + "\1\116\1\uffff\1\120\7\uffff\1\122\1\uffff\1\117\3\uffff\1"+ + "\115\3\uffff\1\121\13\uffff\1\116\1\uffff\1\120\7\uffff\1\122"+ + "\1\uffff\1\117\3\uffff\1\115\3\uffff\1\121", + "\1\125\4\uffff\1\123\1\124\31\uffff\1\125\4\uffff\1\123\1\124", + "\1\127\1\uffff\1\130\1\uffff\1\126\33\uffff\1\127\1\uffff\1"+ + "\130\1\uffff\1\126", + "\1\131\37\uffff\1\131", + "\1\134\11\uffff\1\132\5\uffff\1\133\17\uffff\1\134\11\uffff"+ + "\1\132\5\uffff\1\133", + "\1\135\37\uffff\1\135", + "\1\136\7\uffff\1\137\27\uffff\1\136\7\uffff\1\137", + "\1\140\37\uffff\1\140", + "\1\142\4\uffff\1\141\32\uffff\1\142\4\uffff\1\141", + "\1\143\37\uffff\1\143", + "\1\144\37\uffff\1\144", + "\1\145\37\uffff\1\145", + "\1\146\5\uffff\1\147\31\uffff\1\146\5\uffff\1\147", + "\1\151\1\uffff\12\50", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\152\37\uffff\1\152", + "\1\153\37\uffff\1\153", + "\1\154\37\uffff\1\154", + "\1\155\37\uffff\1\155", + "\12\52\7\uffff\23\52\1\156\6\52\4\uffff\1\52\1\uffff\23\52"+ + "\1\156\6\52", + "\12\52\7\uffff\1\160\31\52\4\uffff\1\52\1\uffff\1\160\31\52", + "\1\162\37\uffff\1\162", + "\1\163\37\uffff\1\163", + "\12\52\7\uffff\23\52\1\164\6\52\4\uffff\1\52\1\uffff\23\52"+ + "\1\164\6\52", + "\1\166\37\uffff\1\166", + "\1\167\2\uffff\1\170\34\uffff\1\167\2\uffff\1\170", + "\1\171\37\uffff\1\171", + "\1\172\37\uffff\1\172", + "\1\173\37\uffff\1\173", + "\1\174\37\uffff\1\174", + "\1\175\37\uffff\1\175", + "\1\176\37\uffff\1\176", + "\1\177\37\uffff\1\177", + "\1\u0080\37\uffff\1\u0080", + "\1\u0081\3\uffff\1\u0082\33\uffff\1\u0081\3\uffff\1\u0082", + "\1\u0087\1\u0086\4\uffff\1\u0083\1\uffff\1\u0084\1\u0085\26"+ + "\uffff\1\u0087\1\u0086\4\uffff\1\u0083\1\uffff\1\u0084\1\u0085", + "\1\u0088\37\uffff\1\u0088", + "\1\u0089\37\uffff\1\u0089", + "\1\u008a\37\uffff\1\u008a", + "\1\u008b\37\uffff\1\u008b", + "\1\u008c\13\uffff\1\u008d\23\uffff\1\u008c\13\uffff\1\u008d", + "\1\u008e\37\uffff\1\u008e", + "\1\u008f\37\uffff\1\u008f", + "\1\u0090\37\uffff\1\u0090", + "\1\u0091\37\uffff\1\u0091", + "\1\u0092\37\uffff\1\u0092", + "\1\u0093\37\uffff\1\u0093", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0095\6\uffff\1\u0096\30\uffff\1\u0095\6\uffff\1\u0096", + "\1\u0098\4\uffff\1\u0097\32\uffff\1\u0098\4\uffff\1\u0097", + "\1\u0099\37\uffff\1\u0099", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u009b\37\uffff\1\u009b", + "\1\u009c\37\uffff\1\u009c", + "\1\u009e\5\uffff\1\u009d\31\uffff\1\u009e\5\uffff\1\u009d", + "\1\u009f\37\uffff\1\u009f", + "\1\u00a0\37\uffff\1\u00a0", + "\1\u00a1\7\uffff\1\u00a2\27\uffff\1\u00a1\7\uffff\1\u00a2", + "\1\u00a3\37\uffff\1\u00a3", + "\1\u00a4\37\uffff\1\u00a4", + "\1\u00a5\37\uffff\1\u00a5", + "\1\u00a6\37\uffff\1\u00a6", + "\1\u00a7\37\uffff\1\u00a7", + "\1\u00a8\37\uffff\1\u00a8", + "\1\u00a9\37\uffff\1\u00a9", + "\1\u00aa\37\uffff\1\u00aa", + "\1\u00ab\37\uffff\1\u00ab", + "\1\u00ac\37\uffff\1\u00ac", + "", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u00ae\37\uffff\1\u00ae", + "\1\u00af\37\uffff\1\u00af", + "\1\u00b0\37\uffff\1\u00b0", + "\1\u00b1\37\uffff\1\u00b1", + "", + "\1\u00b2\37\uffff\1\u00b2", + "", + "\1\u00b3\37\uffff\1\u00b3", + "\1\u00b4\37\uffff\1\u00b4", + "\1\u00b5\37\uffff\1\u00b5", + "", + "\1\u00b6\37\uffff\1\u00b6", + "\1\u00b7\37\uffff\1\u00b7", + "\1\u00b8\37\uffff\1\u00b8", + "\1\u00b9\37\uffff\1\u00b9", + "\12\52\7\uffff\7\52\1\u00ba\22\52\4\uffff\1\52\1\uffff\7\52"+ + "\1\u00ba\22\52", + "\1\u00be\5\uffff\1\u00bc\4\uffff\1\u00bd\24\uffff\1\u00be\5"+ + "\uffff\1\u00bc\4\uffff\1\u00bd", + "\1\u00bf\37\uffff\1\u00bf", + "\1\u00c0\37\uffff\1\u00c0", + "\1\u00c1\37\uffff\1\u00c1", + "\1\u00c2\37\uffff\1\u00c2", + "\1\u00c3\37\uffff\1\u00c3", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u00c5\37\uffff\1\u00c5", + "\12\52\7\uffff\7\52\1\u00c6\22\52\4\uffff\1\52\1\uffff\7\52"+ + "\1\u00c6\22\52", + "\1\u00c8\37\uffff\1\u00c8", + "\1\u00c9\37\uffff\1\u00c9", + "\1\u00ca\37\uffff\1\u00ca", + "\1\u00cb\37\uffff\1\u00cb", + "\1\u00cc\1\u00cd\36\uffff\1\u00cc\1\u00cd", + "\1\u00ce\37\uffff\1\u00ce", + "\1\u00cf\37\uffff\1\u00cf", + "\12\52\7\uffff\7\52\1\u00d0\22\52\4\uffff\1\52\1\uffff\7\52"+ + "\1\u00d0\22\52", + "\1\u00d2\37\uffff\1\u00d2", + "\1\u00d3\37\uffff\1\u00d3", + "\1\u00d5\17\uffff\1\u00d4\1\u00d6\16\uffff\1\u00d5\17\uffff"+ + "\1\u00d4\1\u00d6", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u00dd\37\uffff\1\u00dd", + "\1\u00de\37\uffff\1\u00de", + "\1\u00df\37\uffff\1\u00df", + "\1\u00e0\37\uffff\1\u00e0", + "", + "\1\u00e1\37\uffff\1\u00e1", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u00e4\37\uffff\1\u00e4", + "\1\u00e5\37\uffff\1\u00e5", + "\1\u00e6\37\uffff\1\u00e6", + "\1\u00e7\37\uffff\1\u00e7", + "\1\u00e8\37\uffff\1\u00e8", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u00eb\37\uffff\1\u00eb", + "\1\u00ec\37\uffff\1\u00ec", + "\1\u00ed\37\uffff\1\u00ed", + "\1\u00ee\37\uffff\1\u00ee", + "\1\u00ef\37\uffff\1\u00ef", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u00f2\37\uffff\1\u00f2", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u00f4\37\uffff\1\u00f4", + "\1\u00f5\37\uffff\1\u00f5", + "\1\u00f6\37\uffff\1\u00f6", + "\1\u00f7\37\uffff\1\u00f7", + "\1\u00f8\37\uffff\1\u00f8", + "\1\u00f9\37\uffff\1\u00f9", + "\1\u00fa\37\uffff\1\u00fa", + "\1\u00fb\37\uffff\1\u00fb", + "\1\u00fc\37\uffff\1\u00fc", + "\1\u00fd\37\uffff\1\u00fd", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\1\u0100\11\uffff\1\u0101\25\uffff\1\u0100\11\uffff\1\u0101", + "\1\u0102\37\uffff\1\u0102", + "\1\u0103\37\uffff\1\u0103", + "\1\u0104\37\uffff\1\u0104", + "\1\u0105\37\uffff\1\u0105", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0107\37\uffff\1\u0107", + "\1\u0108\37\uffff\1\u0108", + "", + "\1\u0109\37\uffff\1\u0109", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\1\u010b\37\uffff\1\u010b", + "\1\u010c\37\uffff\1\u010c", + "\1\u010d\37\uffff\1\u010d", + "\1\u010e\37\uffff\1\u010e", + "\1\u010f\37\uffff\1\u010f", + "\1\u0110\37\uffff\1\u0110", + "\1\u0111\37\uffff\1\u0111", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0116\37\uffff\1\u0116", + "\1\u0117\37\uffff\1\u0117", + "\1\u0118\37\uffff\1\u0118", + "", + "", + "", + "", + "", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u011b\37\uffff\1\u011b", + "\12\52\7\uffff\13\52\1\u011c\16\52\4\uffff\1\52\1\uffff\13"+ + "\52\1\u011c\16\52", + "\1\u011e\37\uffff\1\u011e", + "", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0121\16\uffff\1\u0120\20\uffff\1\u0121\16\uffff\1\u0120", + "\1\u0122\37\uffff\1\u0122", + "\1\u0123\37\uffff\1\u0123", + "\1\u0124\37\uffff\1\u0124", + "", + "", + "\1\u0125\37\uffff\1\u0125", + "\1\u0126\37\uffff\1\u0126", + "\1\u0127\37\uffff\1\u0127", + "\1\u0128\37\uffff\1\u0128", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "", + "\1\u012a\37\uffff\1\u012a", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u012c\37\uffff\1\u012c", + "\1\u012d\37\uffff\1\u012d", + "\1\u012e\37\uffff\1\u012e", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0130\37\uffff\1\u0130", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0133\37\uffff\1\u0133", + "", + "", + "\1\u0134\37\uffff\1\u0134", + "\1\u0135\37\uffff\1\u0135", + "\1\u0136\37\uffff\1\u0136", + "\1\u0137\37\uffff\1\u0137", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u013b\37\uffff\1\u013b", + "\1\u013c\37\uffff\1\u013c", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u013e\37\uffff\1\u013e", + "\1\u013f\37\uffff\1\u013f", + "\1\u0140\37\uffff\1\u0140", + "\1\u0141\37\uffff\1\u0141", + "\1\u0142\37\uffff\1\u0142", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "", + "", + "", + "\1\u0144\37\uffff\1\u0144", + "\1\u0145\37\uffff\1\u0145", + "\1\u0146\37\uffff\1\u0146", + "", + "", + "\1\u0147\37\uffff\1\u0147", + "\1\u0148\37\uffff\1\u0148", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\1\u014a\37\uffff\1\u014a", + "\1\u014b\37\uffff\1\u014b", + "\1\u014c\37\uffff\1\u014c", + "\1\u014d\37\uffff\1\u014d", + "\1\u014e\37\uffff\1\u014e", + "\12\52\7\uffff\22\52\1\u014f\7\52\4\uffff\1\52\1\uffff\22\52"+ + "\1\u014f\7\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0152\37\uffff\1\u0152", + "\1\u0153\37\uffff\1\u0153", + "", + "\1\u0154\37\uffff\1\u0154", + "", + "\1\u0155\37\uffff\1\u0155", + "\1\u0156\37\uffff\1\u0156", + "\1\u0157\37\uffff\1\u0157", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u015a\37\uffff\1\u015a", + "\1\u015b\37\uffff\1\u015b", + "\1\u015c\37\uffff\1\u015c", + "\1\u015d\37\uffff\1\u015d", + "", + "", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\1\u0160\37\uffff\1\u0160", + "\1\u0161\37\uffff\1\u0161", + "\1\u0162\37\uffff\1\u0162", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0164\37\uffff\1\u0164", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0169\37\uffff\1\u0169", + "", + "\1\u016a\37\uffff\1\u016a", + "\1\u016b\37\uffff\1\u016b", + "\1\u016c\37\uffff\1\u016c", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "", + "\1\u0170\37\uffff\1\u0170", + "\1\u0171\37\uffff\1\u0171", + "\1\u0172\37\uffff\1\u0172", + "\1\u0173\37\uffff\1\u0173", + "\1\u0174\37\uffff\1\u0174", + "\1\u0175\37\uffff\1\u0175", + "", + "", + "\1\u0176\37\uffff\1\u0176", + "\1\u0177\37\uffff\1\u0177", + "\1\u0178\37\uffff\1\u0178", + "\1\u0179\37\uffff\1\u0179", + "", + "", + "\1\u017a\37\uffff\1\u017a", + "\1\u017b\37\uffff\1\u017b", + "\2\52\1\u017c\7\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\1\u017e\37\uffff\1\u017e", + "", + "", + "", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0181\37\uffff\1\u0181", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "", + "", + "\1\u0183\37\uffff\1\u0183", + "\1\u0184\37\uffff\1\u0184", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0186\37\uffff\1\u0186", + "\12\52\7\uffff\3\52\1\u0187\26\52\4\uffff\1\52\1\uffff\3\52"+ + "\1\u0187\26\52", + "\1\u0189\37\uffff\1\u0189", + "\1\u018a\37\uffff\1\u018a", + "\1\u018b\37\uffff\1\u018b", + "\1\u018c\37\uffff\1\u018c", + "\1\u018d\37\uffff\1\u018d", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\1\u0191\37\uffff\1\u0191", + "", + "", + "\1\u0192\37\uffff\1\u0192", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u0194\37\uffff\1\u0194", + "", + "\1\u0195\37\uffff\1\u0195", + "\1\u0196\37\uffff\1\u0196", + "", + "\1\u0197\37\uffff\1\u0197", + "\1\u0198\37\uffff\1\u0198", + "\1\u0199\37\uffff\1\u0199", + "\1\u019a\37\uffff\1\u019a", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "", + "", + "\1\u019c\37\uffff\1\u019c", + "\1\u019d\37\uffff\1\u019d", + "", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u019f\37\uffff\1\u019f", + "\1\u01a0\37\uffff\1\u01a0", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u01a2\37\uffff\1\u01a2", + "\1\u01a3\37\uffff\1\u01a3", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\1\u01a5\37\uffff\1\u01a5", + "\1\u01a6\37\uffff\1\u01a6", + "", + "\1\u01a7\37\uffff\1\u01a7", + "\1\u01a8\37\uffff\1\u01a8", + "", + "\1\u01a9\37\uffff\1\u01a9", + "\1\u01aa\37\uffff\1\u01aa", + "", + "\1\u01ab\37\uffff\1\u01ab", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u01ad\37\uffff\1\u01ad", + "\1\u01ae\37\uffff\1\u01ae", + "\1\u01af\37\uffff\1\u01af", + "\1\u01b0\37\uffff\1\u01b0", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\1\u01b2\16\uffff\1\u01b3\20\uffff\1\u01b2\16\uffff\1\u01b3", + "\1\u01b4\37\uffff\1\u01b4", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u01b6\37\uffff\1\u01b6", + "", + "\1\u01b7\37\uffff\1\u01b7", + "\1\u01b8\37\uffff\1\u01b8", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "", + "\1\u01ba\37\uffff\1\u01ba", + "\1\u01bb\37\uffff\1\u01bb", + "\1\u01bc\37\uffff\1\u01bc", + "", + "\1\u01bd\37\uffff\1\u01bd", + "\1\u01be\37\uffff\1\u01be", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u01c0\16\uffff\1\u01c1\20\uffff\1\u01c0\16\uffff\1\u01c1", + "\1\u01c2\37\uffff\1\u01c2", + "", + "\1\u01c3\37\uffff\1\u01c3", + "\1\u01c4\37\uffff\1\u01c4", + "\1\u01c5\37\uffff\1\u01c5", + "\1\u01c6\37\uffff\1\u01c6", + "\1\u01c7\37\uffff\1\u01c7", + "\1\u01c8\37\uffff\1\u01c8", + "\1\u01c9\37\uffff\1\u01c9", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "\1\u01cc\37\uffff\1\u01cc", + "", + "", + "\1\u01cd\37\uffff\1\u01cd", + "\1\u01ce\37\uffff\1\u01ce", + "\12\52\7\uffff\32\52\4\uffff\1\52\1\uffff\32\52", + "" + }; + + static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS); + static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS); + static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS); + static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS); + static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS); + static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS); + static final short[][] DFA12_transition; + + static { + int numStates = DFA12_transitionS.length; + DFA12_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]); + } + } + + class DFA12 extends DFA { + + public DFA12(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 12; + this.eot = DFA12_eot; + this.eof = DFA12_eof; + this.min = DFA12_min; + this.max = DFA12_max; + this.accept = DFA12_accept; + this.special = DFA12_special; + this.transition = DFA12_transition; + } + public String getDescription() { + return "1:1: Tokens : ( PLUS | MINUS | DIVIDE | MULT | EQUALS | NOTEQUALS | LT | GT | LTE | GTE | DOT | LPAREN | RPAREN | LBRACKET | RBRACKET | LBRACE | RBRACE | COMMA | COLON | SEMICOLON | FOR | IN | WHERE | RETURN | STORE | ENCODE | SQRT | SIN | COS | TAN | SINH | COSH | TANH | ARCSIN | ARCCOS | ARCTAN | EXP | LN | LOG | ROUND | ABS | OVERLAY | STRUCT | RE | IM | AND | OR | XOR | NOT | IDENTIFIER | IMAGECRS | IMAGECRSDOMAIN | CRSSET | DOMAIN | NULLSET | NULLDEFAULT | INTERPOLATIONDEFAULT | INTERPOLATIONSET | SETIDENTIFIER | SETNULLSET | SETINTERPOLATIONDEFAULT | SETINTERPOLATIONSET | SETCRSSET | TRIM | SLICE | EXTEND | SCALE | CRSTRANSFORM | COUNT | ADD | AVG | MAX | MIN | SOME | ALL | COVERAGE | OVER | VALUE | VALUES | LIST | CONDENSE | USING | NEAREST | LINEAR | QUADRATIC | CUBIC | FULL | NONE | HALF | OTHER | PHI | BIT | UNSIGNED | BOOLEAN | CHAR | SHORT | LONG | FLOAT | DOUBLE | COMPLEX | COMPLEX2 | BOOLEANCONSTANT | INTEGERCONSTANT | FLOATCONSTANT | STRING | NAME | VARIABLE_DOLLAR | WHITESPACE );"; + } + } + + +}
\ No newline at end of file diff --git a/petascope/src/petascope/wcps/grammar/wcpsParser.java b/petascope/src/petascope/wcps/grammar/wcpsParser.java new file mode 100644 index 0000000..27f75f8 --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/wcpsParser.java @@ -0,0 +1,18359 @@ +// $ANTLR 3.2 Sep 23, 2009 12:02:23 src/petascope/wcps/grammar/wcps.g 2010-04-29 23:04:40 +package petascope.wcps.grammar; + +import org.antlr.runtime.*; +import java.util.Stack; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; + +import org.antlr.runtime.tree.*; + +public class wcpsParser extends Parser { + public static final String[] tokenNames = new String[] { + "<invalid>", "<EOR>", "<DOWN>", "<UP>", "FOR", "IN", "LPAREN", "RPAREN", "COMMA", "WHERE", "RETURN", "ENCODE", "STORE", "OR", "XOR", "AND", "EQUALS", "NOTEQUALS", "LT", "GT", "LTE", "GTE", "PLUS", "MINUS", "MULT", "DIVIDE", "OVERLAY", "IDENTIFIER", "IMAGECRS", "IMAGECRSDOMAIN", "CRSSET", "NULLSET", "INTERPOLATIONDEFAULT", "INTERPOLATIONSET", "DOMAIN", "ALL", "SOME", "COUNT", "ADD", "AVG", "MIN", "MAX", "CONDENSE", "OVER", "USING", "COLON", "COVERAGE", "VALUE", "LIST", "SEMICOLON", "VALUES", "SETIDENTIFIER", "SETCRSSET", "SETNULLSET", "SETINTERPOLATIONDEFAULT", "SETINTERPOLATIONSET", "LBRACE", "RBRACE", "STRUCT", "CRSTRANSFORM", "SQRT", "ABS", "RE", "IM", "EXP", "LOG", "LN", "SIN", "COS", "TAN", "SINH", "COSH", "TANH", "ARCSIN", "ARCCOS", "ARCTAN", "NOT", "BIT", "INTEGERCONSTANT", "ROUND", "STRING", "SCALE", "LBRACKET", "RBRACKET", "TRIM", "SLICE", "EXTEND", "BOOLEAN", "CHAR", "SHORT", "LONG", "FLOAT", "DOUBLE", "COMPLEX", "COMPLEX2", "UNSIGNED", "DOT", "BOOLEANCONSTANT", "FLOATCONSTANT", "NEAREST", "LINEAR", "QUADRATIC", "CUBIC", "FULL", "NONE", "HALF", "OTHER", "NAME", "VARIABLE_DOLLAR", "NULLDEFAULT", "PHI", "WHITESPACE" + }; + public static final int IMAGECRS=28; + public static final int LT=18; + public static final int LN=66; + public static final int LOG=65; + public static final int CHAR=88; + public static final int COMPLEX=93; + public static final int SETINTERPOLATIONDEFAULT=54; + public static final int COUNT=37; + public static final int EQUALS=16; + public static final int COSH=71; + public static final int NOT=76; + public static final int INTEGERCONSTANT=78; + public static final int EOF=-1; + public static final int SINH=70; + public static final int LBRACKET=82; + public static final int RPAREN=7; + public static final int NAME=107; + public static final int LINEAR=100; + public static final int TANH=72; + public static final int FULL=103; + public static final int USING=44; + public static final int SIN=67; + public static final int EXP=64; + public static final int COS=68; + public static final int TAN=69; + public static final int RETURN=10; + public static final int DOUBLE=92; + public static final int NULLDEFAULT=109; + public static final int DIVIDE=25; + public static final int STORE=12; + public static final int BOOLEANCONSTANT=97; + public static final int RBRACE=57; + public static final int SETNULLSET=53; + public static final int CONDENSE=42; + public static final int WHITESPACE=111; + public static final int SEMICOLON=49; + public static final int MULT=24; + public static final int VALUE=47; + public static final int LIST=48; + public static final int COMPLEX2=94; + public static final int ABS=61; + public static final int CRSSET=30; + public static final int SCALE=81; + public static final int VARIABLE_DOLLAR=108; + public static final int FLOATCONSTANT=98; + public static final int IMAGECRSDOMAIN=29; + public static final int NONE=104; + public static final int OR=13; + public static final int TRIM=84; + public static final int GT=19; + public static final int ROUND=79; + public static final int QUADRATIC=101; + public static final int ENCODE=11; + public static final int PHI=110; + public static final int OVER=43; + public static final int COVERAGE=46; + public static final int WHERE=9; + public static final int RE=62; + public static final int OVERLAY=26; + public static final int GTE=21; + public static final int LBRACE=56; + public static final int MAX=41; + public static final int INTERPOLATIONDEFAULT=32; + public static final int FOR=4; + public static final int FLOAT=91; + public static final int SLICE=85; + public static final int AND=15; + public static final int LTE=20; + public static final int LPAREN=6; + public static final int EXTEND=86; + public static final int IM=63; + public static final int BOOLEAN=87; + public static final int IN=5; + public static final int COMMA=8; + public static final int AVG=39; + public static final int IDENTIFIER=27; + public static final int SOME=36; + public static final int ALL=35; + public static final int ARCSIN=73; + public static final int PLUS=22; + public static final int ARCCOS=74; + public static final int RBRACKET=83; + public static final int DOT=96; + public static final int ADD=38; + public static final int SETIDENTIFIER=51; + public static final int XOR=14; + public static final int SETINTERPOLATIONSET=55; + public static final int OTHER=106; + public static final int VALUES=50; + public static final int ARCTAN=75; + public static final int NOTEQUALS=17; + public static final int STRUCT=58; + public static final int SHORT=89; + public static final int MIN=40; + public static final int MINUS=23; + public static final int SQRT=60; + public static final int DOMAIN=34; + public static final int CRSTRANSFORM=59; + public static final int COLON=45; + public static final int CUBIC=102; + public static final int UNSIGNED=95; + public static final int NULLSET=31; + public static final int BIT=77; + public static final int INTERPOLATIONSET=33; + public static final int LONG=90; + public static final int SETCRSSET=52; + public static final int HALF=105; + public static final int STRING=80; + public static final int NEAREST=99; + + // delegates + // delegators + + + public wcpsParser(TokenStream input) { + this(input, new RecognizerSharedState()); + } + public wcpsParser(TokenStream input, RecognizerSharedState state) { + super(input, state); + this.state.ruleMemo = new HashMap[241+1]; + + + } + + protected TreeAdaptor adaptor = new CommonTreeAdaptor(); + + public void setTreeAdaptor(TreeAdaptor adaptor) { + this.adaptor = adaptor; + } + public TreeAdaptor getTreeAdaptor() { + return adaptor; + } + + public String[] getTokenNames() { return wcpsParser.tokenNames; } + public String getGrammarFileName() { return "src/petascope/wcps/grammar/wcps.g"; } + + + public static class wcpsRequest_return extends ParserRuleReturnScope { + public WCPSRequest value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "wcpsRequest" + // src/petascope/wcps/grammar/wcps.g:32:1: wcpsRequest returns [WCPSRequest value] : e1= forClause (e2= whereClause )? e3= returnClause ; + public final wcpsParser.wcpsRequest_return wcpsRequest() throws RecognitionException { + wcpsParser.wcpsRequest_return retval = new wcpsParser.wcpsRequest_return(); + retval.start = input.LT(1); + int wcpsRequest_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.forClause_return e1 = null; + + wcpsParser.whereClause_return e2 = null; + + wcpsParser.returnClause_return e3 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 1) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:33:2: (e1= forClause (e2= whereClause )? e3= returnClause ) + // src/petascope/wcps/grammar/wcps.g:33:4: e1= forClause (e2= whereClause )? e3= returnClause + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_forClause_in_wcpsRequest63); + e1=forClause(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new WCPSRequest((e1!=null?e1.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:34:3: (e2= whereClause )? + int alt1=2; + int LA1_0 = input.LA(1); + + if ( (LA1_0==WHERE) ) { + alt1=1; + } + switch (alt1) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:34:4: e2= whereClause + { + pushFollow(FOLLOW_whereClause_in_wcpsRequest72); + e2=whereClause(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value.setWhere((e2!=null?e2.value:null)); + } + + } + break; + + } + + pushFollow(FOLLOW_returnClause_in_wcpsRequest83); + e3=returnClause(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e3.getTree()); + if ( state.backtracking==0 ) { + retval.value.setReturn((e3!=null?e3.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 1, wcpsRequest_StartIndex); } + } + return retval; + } + // $ANTLR end "wcpsRequest" + + public static class forClause_return extends ParserRuleReturnScope { + public ForClauseElements value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "forClause" + // src/petascope/wcps/grammar/wcps.g:37:1: forClause returns [ForClauseElements value] : FOR v= coverageVariable IN LPAREN list= coverageList RPAREN ( COMMA v= coverageVariable IN LPAREN list= coverageList RPAREN )* ; + public final wcpsParser.forClause_return forClause() throws RecognitionException { + wcpsParser.forClause_return retval = new wcpsParser.forClause_return(); + retval.start = input.LT(1); + int forClause_StartIndex = input.index(); + Object root_0 = null; + + Token FOR1=null; + Token IN2=null; + Token LPAREN3=null; + Token RPAREN4=null; + Token COMMA5=null; + Token IN6=null; + Token LPAREN7=null; + Token RPAREN8=null; + wcpsParser.coverageVariable_return v = null; + + wcpsParser.coverageList_return list = null; + + + Object FOR1_tree=null; + Object IN2_tree=null; + Object LPAREN3_tree=null; + Object RPAREN4_tree=null; + Object COMMA5_tree=null; + Object IN6_tree=null; + Object LPAREN7_tree=null; + Object RPAREN8_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 2) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:38:2: ( FOR v= coverageVariable IN LPAREN list= coverageList RPAREN ( COMMA v= coverageVariable IN LPAREN list= coverageList RPAREN )* ) + // src/petascope/wcps/grammar/wcps.g:38:4: FOR v= coverageVariable IN LPAREN list= coverageList RPAREN ( COMMA v= coverageVariable IN LPAREN list= coverageList RPAREN )* + { + root_0 = (Object)adaptor.nil(); + + FOR1=(Token)match(input,FOR,FOLLOW_FOR_in_forClause98); if (state.failed) return retval; + if ( state.backtracking==0 ) { + FOR1_tree = (Object)adaptor.create(FOR1); + adaptor.addChild(root_0, FOR1_tree); + } + pushFollow(FOLLOW_coverageVariable_in_forClause102); + v=coverageVariable(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, v.getTree()); + IN2=(Token)match(input,IN,FOLLOW_IN_in_forClause104); if (state.failed) return retval; + if ( state.backtracking==0 ) { + IN2_tree = (Object)adaptor.create(IN2); + adaptor.addChild(root_0, IN2_tree); + } + LPAREN3=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_forClause106); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN3_tree = (Object)adaptor.create(LPAREN3); + adaptor.addChild(root_0, LPAREN3_tree); + } + pushFollow(FOLLOW_coverageList_in_forClause110); + list=coverageList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, list.getTree()); + RPAREN4=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_forClause112); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN4_tree = (Object)adaptor.create(RPAREN4); + adaptor.addChild(root_0, RPAREN4_tree); + } + if ( state.backtracking==0 ) { + retval.value = new ForClauseElements((v!=null?v.value:null), (list!=null?list.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:40:4: ( COMMA v= coverageVariable IN LPAREN list= coverageList RPAREN )* + loop2: + do { + int alt2=2; + int LA2_0 = input.LA(1); + + if ( (LA2_0==COMMA) ) { + alt2=1; + } + + + switch (alt2) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:40:5: COMMA v= coverageVariable IN LPAREN list= coverageList RPAREN + { + COMMA5=(Token)match(input,COMMA,FOLLOW_COMMA_in_forClause122); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA5_tree = (Object)adaptor.create(COMMA5); + adaptor.addChild(root_0, COMMA5_tree); + } + pushFollow(FOLLOW_coverageVariable_in_forClause126); + v=coverageVariable(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, v.getTree()); + IN6=(Token)match(input,IN,FOLLOW_IN_in_forClause128); if (state.failed) return retval; + if ( state.backtracking==0 ) { + IN6_tree = (Object)adaptor.create(IN6); + adaptor.addChild(root_0, IN6_tree); + } + LPAREN7=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_forClause130); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN7_tree = (Object)adaptor.create(LPAREN7); + adaptor.addChild(root_0, LPAREN7_tree); + } + pushFollow(FOLLOW_coverageList_in_forClause134); + list=coverageList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, list.getTree()); + RPAREN8=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_forClause136); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN8_tree = (Object)adaptor.create(RPAREN8); + adaptor.addChild(root_0, RPAREN8_tree); + } + if ( state.backtracking==0 ) { + retval.value = new ForClauseElements((v!=null?v.value:null), (list!=null?list.value:null), retval.value); + } + + } + break; + + default : + break loop2; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 2, forClause_StartIndex); } + } + return retval; + } + // $ANTLR end "forClause" + + public static class whereClause_return extends ParserRuleReturnScope { + public WhereClause value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "whereClause" + // src/petascope/wcps/grammar/wcps.g:43:1: whereClause returns [WhereClause value] : WHERE e1= booleanScalarExpr ; + public final wcpsParser.whereClause_return whereClause() throws RecognitionException { + wcpsParser.whereClause_return retval = new wcpsParser.whereClause_return(); + retval.start = input.LT(1); + int whereClause_StartIndex = input.index(); + Object root_0 = null; + + Token WHERE9=null; + wcpsParser.booleanScalarExpr_return e1 = null; + + + Object WHERE9_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 3) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:44:2: ( WHERE e1= booleanScalarExpr ) + // src/petascope/wcps/grammar/wcps.g:44:4: WHERE e1= booleanScalarExpr + { + root_0 = (Object)adaptor.nil(); + + WHERE9=(Token)match(input,WHERE,FOLLOW_WHERE_in_whereClause157); if (state.failed) return retval; + if ( state.backtracking==0 ) { + WHERE9_tree = (Object)adaptor.create(WHERE9); + adaptor.addChild(root_0, WHERE9_tree); + } + pushFollow(FOLLOW_booleanScalarExpr_in_whereClause161); + e1=booleanScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new WhereClause((e1!=null?e1.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 3, whereClause_StartIndex); } + } + return retval; + } + // $ANTLR end "whereClause" + + public static class returnClause_return extends ParserRuleReturnScope { + public ReturnClause value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "returnClause" + // src/petascope/wcps/grammar/wcps.g:46:1: returnClause returns [ReturnClause value] : RETURN e1= processingExpr ; + public final wcpsParser.returnClause_return returnClause() throws RecognitionException { + wcpsParser.returnClause_return retval = new wcpsParser.returnClause_return(); + retval.start = input.LT(1); + int returnClause_StartIndex = input.index(); + Object root_0 = null; + + Token RETURN10=null; + wcpsParser.processingExpr_return e1 = null; + + + Object RETURN10_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 4) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:47:2: ( RETURN e1= processingExpr ) + // src/petascope/wcps/grammar/wcps.g:47:4: RETURN e1= processingExpr + { + root_0 = (Object)adaptor.nil(); + + RETURN10=(Token)match(input,RETURN,FOLLOW_RETURN_in_returnClause176); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RETURN10_tree = (Object)adaptor.create(RETURN10); + adaptor.addChild(root_0, RETURN10_tree); + } + pushFollow(FOLLOW_processingExpr_in_returnClause180); + e1=processingExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ReturnClause((e1!=null?e1.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 4, returnClause_StartIndex); } + } + return retval; + } + // $ANTLR end "returnClause" + + public static class coverageList_return extends ParserRuleReturnScope { + public CoverageList value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageList" + // src/petascope/wcps/grammar/wcps.g:49:1: coverageList returns [CoverageList value] : cname= coverageName ( COMMA next= coverageName )* ; + public final wcpsParser.coverageList_return coverageList() throws RecognitionException { + wcpsParser.coverageList_return retval = new wcpsParser.coverageList_return(); + retval.start = input.LT(1); + int coverageList_StartIndex = input.index(); + Object root_0 = null; + + Token COMMA11=null; + wcpsParser.coverageName_return cname = null; + + wcpsParser.coverageName_return next = null; + + + Object COMMA11_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 5) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:50:2: (cname= coverageName ( COMMA next= coverageName )* ) + // src/petascope/wcps/grammar/wcps.g:50:4: cname= coverageName ( COMMA next= coverageName )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageName_in_coverageList197); + cname=coverageName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, cname.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageList((cname!=null?cname.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:51:3: ( COMMA next= coverageName )* + loop3: + do { + int alt3=2; + int LA3_0 = input.LA(1); + + if ( (LA3_0==COMMA) ) { + alt3=1; + } + + + switch (alt3) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:51:4: COMMA next= coverageName + { + COMMA11=(Token)match(input,COMMA,FOLLOW_COMMA_in_coverageList204); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA11_tree = (Object)adaptor.create(COMMA11); + adaptor.addChild(root_0, COMMA11_tree); + } + pushFollow(FOLLOW_coverageName_in_coverageList208); + next=coverageName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, next.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageList((next!=null?next.value:null), retval.value); + } + + } + break; + + default : + break loop3; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 5, coverageList_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageList" + + public static class processingExpr_return extends ParserRuleReturnScope { + public ProcessingExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "processingExpr" + // src/petascope/wcps/grammar/wcps.g:53:1: processingExpr returns [ProcessingExpr value] : (e1= encodedCoverageExpr | e2= storeExpr | e3= scalarExpr ); + public final wcpsParser.processingExpr_return processingExpr() throws RecognitionException { + wcpsParser.processingExpr_return retval = new wcpsParser.processingExpr_return(); + retval.start = input.LT(1); + int processingExpr_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.encodedCoverageExpr_return e1 = null; + + wcpsParser.storeExpr_return e2 = null; + + wcpsParser.scalarExpr_return e3 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 6) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:54:5: (e1= encodedCoverageExpr | e2= storeExpr | e3= scalarExpr ) + int alt4=3; + alt4 = dfa4.predict(input); + switch (alt4) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:54:7: e1= encodedCoverageExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_encodedCoverageExpr_in_processingExpr230); + e1=encodedCoverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ProcessingExpr((e1!=null?e1.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:55:7: e2= storeExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_storeExpr_in_processingExpr242); + e2=storeExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ProcessingExpr((e2!=null?e2.value:null)); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:56:7: e3= scalarExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_scalarExpr_in_processingExpr254); + e3=scalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e3.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ProcessingExpr((e3!=null?e3.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 6, processingExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "processingExpr" + + public static class encodedCoverageExpr_return extends ParserRuleReturnScope { + public EncodedCoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "encodedCoverageExpr" + // src/petascope/wcps/grammar/wcps.g:58:1: encodedCoverageExpr returns [EncodedCoverageExpr value] : ENCODE LPAREN cov= coverageExpr COMMA format= stringConstant ( COMMA params= stringConstant )? RPAREN ; + public final wcpsParser.encodedCoverageExpr_return encodedCoverageExpr() throws RecognitionException { + wcpsParser.encodedCoverageExpr_return retval = new wcpsParser.encodedCoverageExpr_return(); + retval.start = input.LT(1); + int encodedCoverageExpr_StartIndex = input.index(); + Object root_0 = null; + + Token ENCODE12=null; + Token LPAREN13=null; + Token COMMA14=null; + Token COMMA15=null; + Token RPAREN16=null; + wcpsParser.coverageExpr_return cov = null; + + wcpsParser.stringConstant_return format = null; + + wcpsParser.stringConstant_return params = null; + + + Object ENCODE12_tree=null; + Object LPAREN13_tree=null; + Object COMMA14_tree=null; + Object COMMA15_tree=null; + Object RPAREN16_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 7) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:59:2: ( ENCODE LPAREN cov= coverageExpr COMMA format= stringConstant ( COMMA params= stringConstant )? RPAREN ) + // src/petascope/wcps/grammar/wcps.g:59:4: ENCODE LPAREN cov= coverageExpr COMMA format= stringConstant ( COMMA params= stringConstant )? RPAREN + { + root_0 = (Object)adaptor.nil(); + + ENCODE12=(Token)match(input,ENCODE,FOLLOW_ENCODE_in_encodedCoverageExpr272); if (state.failed) return retval; + if ( state.backtracking==0 ) { + ENCODE12_tree = (Object)adaptor.create(ENCODE12); + adaptor.addChild(root_0, ENCODE12_tree); + } + LPAREN13=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_encodedCoverageExpr274); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN13_tree = (Object)adaptor.create(LPAREN13); + adaptor.addChild(root_0, LPAREN13_tree); + } + pushFollow(FOLLOW_coverageExpr_in_encodedCoverageExpr278); + cov=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, cov.getTree()); + COMMA14=(Token)match(input,COMMA,FOLLOW_COMMA_in_encodedCoverageExpr280); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA14_tree = (Object)adaptor.create(COMMA14); + adaptor.addChild(root_0, COMMA14_tree); + } + pushFollow(FOLLOW_stringConstant_in_encodedCoverageExpr284); + format=stringConstant(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, format.getTree()); + if ( state.backtracking==0 ) { + retval.value = new EncodedCoverageExpr((cov!=null?cov.value:null), (format!=null?input.toString(format.start,format.stop):null)); + } + // src/petascope/wcps/grammar/wcps.g:60:3: ( COMMA params= stringConstant )? + int alt5=2; + int LA5_0 = input.LA(1); + + if ( (LA5_0==COMMA) ) { + alt5=1; + } + switch (alt5) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:60:4: COMMA params= stringConstant + { + COMMA15=(Token)match(input,COMMA,FOLLOW_COMMA_in_encodedCoverageExpr291); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA15_tree = (Object)adaptor.create(COMMA15); + adaptor.addChild(root_0, COMMA15_tree); + } + pushFollow(FOLLOW_stringConstant_in_encodedCoverageExpr295); + params=stringConstant(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, params.getTree()); + if ( state.backtracking==0 ) { + retval.value.setParams((params!=null?input.toString(params.start,params.stop):null)); + } + + } + break; + + } + + RPAREN16=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_encodedCoverageExpr302); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN16_tree = (Object)adaptor.create(RPAREN16); + adaptor.addChild(root_0, RPAREN16_tree); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 7, encodedCoverageExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "encodedCoverageExpr" + + public static class storeExpr_return extends ParserRuleReturnScope { + public StoreExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "storeExpr" + // src/petascope/wcps/grammar/wcps.g:62:1: storeExpr returns [StoreExpr value] : STORE LPAREN e1= encodedCoverageExpr RPAREN ; + public final wcpsParser.storeExpr_return storeExpr() throws RecognitionException { + wcpsParser.storeExpr_return retval = new wcpsParser.storeExpr_return(); + retval.start = input.LT(1); + int storeExpr_StartIndex = input.index(); + Object root_0 = null; + + Token STORE17=null; + Token LPAREN18=null; + Token RPAREN19=null; + wcpsParser.encodedCoverageExpr_return e1 = null; + + + Object STORE17_tree=null; + Object LPAREN18_tree=null; + Object RPAREN19_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 8) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:63:5: ( STORE LPAREN e1= encodedCoverageExpr RPAREN ) + // src/petascope/wcps/grammar/wcps.g:63:7: STORE LPAREN e1= encodedCoverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + STORE17=(Token)match(input,STORE,FOLLOW_STORE_in_storeExpr319); if (state.failed) return retval; + if ( state.backtracking==0 ) { + STORE17_tree = (Object)adaptor.create(STORE17); + adaptor.addChild(root_0, STORE17_tree); + } + LPAREN18=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_storeExpr321); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN18_tree = (Object)adaptor.create(LPAREN18); + adaptor.addChild(root_0, LPAREN18_tree); + } + pushFollow(FOLLOW_encodedCoverageExpr_in_storeExpr325); + e1=encodedCoverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN19=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_storeExpr327); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN19_tree = (Object)adaptor.create(RPAREN19); + adaptor.addChild(root_0, RPAREN19_tree); + } + if ( state.backtracking==0 ) { + retval.value = new StoreExpr((e1!=null?e1.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 8, storeExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "storeExpr" + + public static class coverageExpr_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageExpr" + // src/petascope/wcps/grammar/wcps.g:65:1: coverageExpr returns [CoverageExpr value] : e1= coverageLogicTerm (op= ( OR | XOR ) e2= coverageLogicTerm )* ; + public final wcpsParser.coverageExpr_return coverageExpr() throws RecognitionException { + wcpsParser.coverageExpr_return retval = new wcpsParser.coverageExpr_return(); + retval.start = input.LT(1); + int coverageExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.coverageLogicTerm_return e1 = null; + + wcpsParser.coverageLogicTerm_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 9) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:66:5: (e1= coverageLogicTerm (op= ( OR | XOR ) e2= coverageLogicTerm )* ) + // src/petascope/wcps/grammar/wcps.g:66:7: e1= coverageLogicTerm (op= ( OR | XOR ) e2= coverageLogicTerm )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageLogicTerm_in_coverageExpr350); + e1=coverageLogicTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:67:9: (op= ( OR | XOR ) e2= coverageLogicTerm )* + loop6: + do { + int alt6=2; + alt6 = dfa6.predict(input); + switch (alt6) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:67:10: op= ( OR | XOR ) e2= coverageLogicTerm + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=OR && input.LA(1)<=XOR) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_coverageLogicTerm_in_coverageExpr374); + e2=coverageLogicTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop6; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 9, coverageExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageExpr" + + public static class coverageLogicTerm_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageLogicTerm" + // src/petascope/wcps/grammar/wcps.g:69:1: coverageLogicTerm returns [CoverageExpr value] : e1= coverageLogicFactor (op= AND e2= coverageLogicFactor )* ; + public final wcpsParser.coverageLogicTerm_return coverageLogicTerm() throws RecognitionException { + wcpsParser.coverageLogicTerm_return retval = new wcpsParser.coverageLogicTerm_return(); + retval.start = input.LT(1); + int coverageLogicTerm_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.coverageLogicFactor_return e1 = null; + + wcpsParser.coverageLogicFactor_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 10) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:70:5: (e1= coverageLogicFactor (op= AND e2= coverageLogicFactor )* ) + // src/petascope/wcps/grammar/wcps.g:70:7: e1= coverageLogicFactor (op= AND e2= coverageLogicFactor )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageLogicFactor_in_coverageLogicTerm400); + e1=coverageLogicFactor(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:71:9: (op= AND e2= coverageLogicFactor )* + loop7: + do { + int alt7=2; + alt7 = dfa7.predict(input); + switch (alt7) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:71:10: op= AND e2= coverageLogicFactor + { + op=(Token)match(input,AND,FOLLOW_AND_in_coverageLogicTerm416); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + pushFollow(FOLLOW_coverageLogicFactor_in_coverageLogicTerm420); + e2=coverageLogicFactor(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop7; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 10, coverageLogicTerm_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageLogicTerm" + + public static class coverageLogicFactor_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageLogicFactor" + // src/petascope/wcps/grammar/wcps.g:73:1: coverageLogicFactor returns [CoverageExpr value] : e1= coverageArithmeticExpr (op= ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ) e2= coverageArithmeticExpr )? ; + public final wcpsParser.coverageLogicFactor_return coverageLogicFactor() throws RecognitionException { + wcpsParser.coverageLogicFactor_return retval = new wcpsParser.coverageLogicFactor_return(); + retval.start = input.LT(1); + int coverageLogicFactor_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.coverageArithmeticExpr_return e1 = null; + + wcpsParser.coverageArithmeticExpr_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 11) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:74:5: (e1= coverageArithmeticExpr (op= ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ) e2= coverageArithmeticExpr )? ) + // src/petascope/wcps/grammar/wcps.g:74:7: e1= coverageArithmeticExpr (op= ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ) e2= coverageArithmeticExpr )? + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageArithmeticExpr_in_coverageLogicFactor447); + e1=coverageArithmeticExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:75:9: (op= ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ) e2= coverageArithmeticExpr )? + int alt8=2; + alt8 = dfa8.predict(input); + switch (alt8) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:75:10: op= ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ) e2= coverageArithmeticExpr + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=EQUALS && input.LA(1)<=GTE) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_coverageArithmeticExpr_in_coverageLogicFactor479); + e2=coverageArithmeticExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (e2!=null?e2.value:null)); + } + + } + break; + + } + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 11, coverageLogicFactor_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageLogicFactor" + + public static class coverageArithmeticExpr_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageArithmeticExpr" + // src/petascope/wcps/grammar/wcps.g:77:1: coverageArithmeticExpr returns [CoverageExpr value] : e1= coverageArithmeticTerm (op= ( PLUS | MINUS ) e2= coverageArithmeticTerm )* ; + public final wcpsParser.coverageArithmeticExpr_return coverageArithmeticExpr() throws RecognitionException { + wcpsParser.coverageArithmeticExpr_return retval = new wcpsParser.coverageArithmeticExpr_return(); + retval.start = input.LT(1); + int coverageArithmeticExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.coverageArithmeticTerm_return e1 = null; + + wcpsParser.coverageArithmeticTerm_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 12) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:78:5: (e1= coverageArithmeticTerm (op= ( PLUS | MINUS ) e2= coverageArithmeticTerm )* ) + // src/petascope/wcps/grammar/wcps.g:78:7: e1= coverageArithmeticTerm (op= ( PLUS | MINUS ) e2= coverageArithmeticTerm )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageArithmeticTerm_in_coverageArithmeticExpr507); + e1=coverageArithmeticTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:79:9: (op= ( PLUS | MINUS ) e2= coverageArithmeticTerm )* + loop9: + do { + int alt9=2; + alt9 = dfa9.predict(input); + switch (alt9) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:79:10: op= ( PLUS | MINUS ) e2= coverageArithmeticTerm + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=PLUS && input.LA(1)<=MINUS) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_coverageArithmeticTerm_in_coverageArithmeticExpr531); + e2=coverageArithmeticTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop9; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 12, coverageArithmeticExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageArithmeticExpr" + + public static class coverageArithmeticTerm_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageArithmeticTerm" + // src/petascope/wcps/grammar/wcps.g:81:1: coverageArithmeticTerm returns [CoverageExpr value] : e1= coverageArithmeticFactor (op= ( MULT | DIVIDE ) e2= coverageArithmeticFactor )* ; + public final wcpsParser.coverageArithmeticTerm_return coverageArithmeticTerm() throws RecognitionException { + wcpsParser.coverageArithmeticTerm_return retval = new wcpsParser.coverageArithmeticTerm_return(); + retval.start = input.LT(1); + int coverageArithmeticTerm_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.coverageArithmeticFactor_return e1 = null; + + wcpsParser.coverageArithmeticFactor_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 13) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:82:5: (e1= coverageArithmeticFactor (op= ( MULT | DIVIDE ) e2= coverageArithmeticFactor )* ) + // src/petascope/wcps/grammar/wcps.g:82:9: e1= coverageArithmeticFactor (op= ( MULT | DIVIDE ) e2= coverageArithmeticFactor )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageArithmeticFactor_in_coverageArithmeticTerm559); + e1=coverageArithmeticFactor(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:83:9: (op= ( MULT | DIVIDE ) e2= coverageArithmeticFactor )* + loop10: + do { + int alt10=2; + alt10 = dfa10.predict(input); + switch (alt10) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:83:10: op= ( MULT | DIVIDE ) e2= coverageArithmeticFactor + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=MULT && input.LA(1)<=DIVIDE) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_coverageArithmeticFactor_in_coverageArithmeticTerm582); + e2=coverageArithmeticFactor(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop10; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 13, coverageArithmeticTerm_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageArithmeticTerm" + + public static class coverageArithmeticFactor_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageArithmeticFactor" + // src/petascope/wcps/grammar/wcps.g:85:1: coverageArithmeticFactor returns [CoverageExpr value] : e1= coverageValue (op= OVERLAY e2= coverageValue )* ; + public final wcpsParser.coverageArithmeticFactor_return coverageArithmeticFactor() throws RecognitionException { + wcpsParser.coverageArithmeticFactor_return retval = new wcpsParser.coverageArithmeticFactor_return(); + retval.start = input.LT(1); + int coverageArithmeticFactor_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.coverageValue_return e1 = null; + + wcpsParser.coverageValue_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 14) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:86:5: (e1= coverageValue (op= OVERLAY e2= coverageValue )* ) + // src/petascope/wcps/grammar/wcps.g:86:7: e1= coverageValue (op= OVERLAY e2= coverageValue )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageValue_in_coverageArithmeticFactor610); + e1=coverageValue(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:87:9: (op= OVERLAY e2= coverageValue )* + loop11: + do { + int alt11=2; + alt11 = dfa11.predict(input); + switch (alt11) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:87:10: op= OVERLAY e2= coverageValue + { + op=(Token)match(input,OVERLAY,FOLLOW_OVERLAY_in_coverageArithmeticFactor625); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + pushFollow(FOLLOW_coverageValue_in_coverageArithmeticFactor629); + e2=coverageValue(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop11; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 14, coverageArithmeticFactor_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageArithmeticFactor" + + public static class coverageValue_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageValue" + // src/petascope/wcps/grammar/wcps.g:89:1: coverageValue returns [CoverageExpr value] : (e5= subsetExpr | e2= unaryInducedExpr | e4= scaleExpr | e3= crsTransformExpr | e1= coverageAtom ); + public final wcpsParser.coverageValue_return coverageValue() throws RecognitionException { + wcpsParser.coverageValue_return retval = new wcpsParser.coverageValue_return(); + retval.start = input.LT(1); + int coverageValue_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.subsetExpr_return e5 = null; + + wcpsParser.unaryInducedExpr_return e2 = null; + + wcpsParser.scaleExpr_return e4 = null; + + wcpsParser.crsTransformExpr_return e3 = null; + + wcpsParser.coverageAtom_return e1 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 15) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:90:5: (e5= subsetExpr | e2= unaryInducedExpr | e4= scaleExpr | e3= crsTransformExpr | e1= coverageAtom ) + int alt12=5; + alt12 = dfa12.predict(input); + switch (alt12) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:90:7: e5= subsetExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_subsetExpr_in_coverageValue655); + e5=subsetExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e5.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e5!=null?e5.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:91:7: e2= unaryInducedExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_unaryInducedExpr_in_coverageValue668); + e2=unaryInducedExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e2!=null?e2.value:null); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:92:7: e4= scaleExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_scaleExpr_in_coverageValue680); + e4=scaleExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e4.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e4!=null?e4.value:null)); + } + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:93:7: e3= crsTransformExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_crsTransformExpr_in_coverageValue692); + e3=crsTransformExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e3.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e3!=null?e3.value:null)); + } + + } + break; + case 5 : + // src/petascope/wcps/grammar/wcps.g:94:7: e1= coverageAtom + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageAtom_in_coverageValue704); + e1=coverageAtom(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 15, coverageValue_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageValue" + + public static class coverageAtom_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageAtom" + // src/petascope/wcps/grammar/wcps.g:96:1: coverageAtom returns [CoverageExpr value] : (e2= scalarExpr | e1= coverageVariable | LPAREN e7= coverageExpr RPAREN | e3= coverageConstantExpr | e4= coverageConstructorExpr | e5= setMetaDataExpr | e6= rangeConstructorExpr ); + public final wcpsParser.coverageAtom_return coverageAtom() throws RecognitionException { + wcpsParser.coverageAtom_return retval = new wcpsParser.coverageAtom_return(); + retval.start = input.LT(1); + int coverageAtom_StartIndex = input.index(); + Object root_0 = null; + + Token LPAREN20=null; + Token RPAREN21=null; + wcpsParser.scalarExpr_return e2 = null; + + wcpsParser.coverageVariable_return e1 = null; + + wcpsParser.coverageExpr_return e7 = null; + + wcpsParser.coverageConstantExpr_return e3 = null; + + wcpsParser.coverageConstructorExpr_return e4 = null; + + wcpsParser.setMetaDataExpr_return e5 = null; + + wcpsParser.rangeConstructorExpr_return e6 = null; + + + Object LPAREN20_tree=null; + Object RPAREN21_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 16) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:97:5: (e2= scalarExpr | e1= coverageVariable | LPAREN e7= coverageExpr RPAREN | e3= coverageConstantExpr | e4= coverageConstructorExpr | e5= setMetaDataExpr | e6= rangeConstructorExpr ) + int alt13=7; + alt13 = dfa13.predict(input); + switch (alt13) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:97:7: e2= scalarExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_scalarExpr_in_coverageAtom727); + e2=scalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e2!=null?e2.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:98:7: e1= coverageVariable + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageVariable_in_coverageAtom739); + e1=coverageVariable(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e1!=null?e1.value:null)); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:99:7: LPAREN e7= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + LPAREN20=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_coverageAtom749); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN20_tree = (Object)adaptor.create(LPAREN20); + adaptor.addChild(root_0, LPAREN20_tree); + } + pushFollow(FOLLOW_coverageExpr_in_coverageAtom753); + e7=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e7.getTree()); + RPAREN21=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_coverageAtom755); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN21_tree = (Object)adaptor.create(RPAREN21); + adaptor.addChild(root_0, RPAREN21_tree); + } + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e7!=null?e7.value:null)); + } + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:100:7: e3= coverageConstantExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageConstantExpr_in_coverageAtom768); + e3=coverageConstantExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e3.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e3!=null?e3.value:null)); + } + + } + break; + case 5 : + // src/petascope/wcps/grammar/wcps.g:101:7: e4= coverageConstructorExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageConstructorExpr_in_coverageAtom780); + e4=coverageConstructorExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e4.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e4!=null?e4.value:null)); + } + + } + break; + case 6 : + // src/petascope/wcps/grammar/wcps.g:102:7: e5= setMetaDataExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_setMetaDataExpr_in_coverageAtom793); + e5=setMetaDataExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e5.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e5!=null?e5.value:null)); + } + + } + break; + case 7 : + // src/petascope/wcps/grammar/wcps.g:103:7: e6= rangeConstructorExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_rangeConstructorExpr_in_coverageAtom806); + e6=rangeConstructorExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e6.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e6!=null?e6.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 16, coverageAtom_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageAtom" + + public static class scalarExpr_return extends ParserRuleReturnScope { + public ScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "scalarExpr" + // src/petascope/wcps/grammar/wcps.g:105:1: scalarExpr returns [ScalarExpr value] : (e1= metaDataExpr | e2= condenseExpr | e3= booleanScalarExpr | e4= numericScalarExpr | e5= stringScalarExpr | LPAREN e6= scalarExpr RPAREN ); + public final wcpsParser.scalarExpr_return scalarExpr() throws RecognitionException { + wcpsParser.scalarExpr_return retval = new wcpsParser.scalarExpr_return(); + retval.start = input.LT(1); + int scalarExpr_StartIndex = input.index(); + Object root_0 = null; + + Token LPAREN22=null; + Token RPAREN23=null; + wcpsParser.metaDataExpr_return e1 = null; + + wcpsParser.condenseExpr_return e2 = null; + + wcpsParser.booleanScalarExpr_return e3 = null; + + wcpsParser.numericScalarExpr_return e4 = null; + + wcpsParser.stringScalarExpr_return e5 = null; + + wcpsParser.scalarExpr_return e6 = null; + + + Object LPAREN22_tree=null; + Object RPAREN23_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 17) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:106:5: (e1= metaDataExpr | e2= condenseExpr | e3= booleanScalarExpr | e4= numericScalarExpr | e5= stringScalarExpr | LPAREN e6= scalarExpr RPAREN ) + int alt14=6; + alt14 = dfa14.predict(input); + switch (alt14) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:106:7: e1= metaDataExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_metaDataExpr_in_scalarExpr830); + e1=metaDataExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ScalarExpr((e1!=null?e1.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:107:7: e2= condenseExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_condenseExpr_in_scalarExpr843); + e2=condenseExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ScalarExpr((e2!=null?e2.value:null)); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:108:7: e3= booleanScalarExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_booleanScalarExpr_in_scalarExpr856); + e3=booleanScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e3.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ScalarExpr((e3!=null?e3.value:null)); + } + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:109:7: e4= numericScalarExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_numericScalarExpr_in_scalarExpr870); + e4=numericScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e4.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ScalarExpr((e4!=null?e4.value:null)); + } + + } + break; + case 5 : + // src/petascope/wcps/grammar/wcps.g:110:7: e5= stringScalarExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_stringScalarExpr_in_scalarExpr883); + e5=stringScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e5.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ScalarExpr((e5!=null?e5.value:null)); + } + + } + break; + case 6 : + // src/petascope/wcps/grammar/wcps.g:111:7: LPAREN e6= scalarExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + LPAREN22=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_scalarExpr894); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN22_tree = (Object)adaptor.create(LPAREN22); + adaptor.addChild(root_0, LPAREN22_tree); + } + pushFollow(FOLLOW_scalarExpr_in_scalarExpr898); + e6=scalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e6.getTree()); + RPAREN23=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_scalarExpr900); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN23_tree = (Object)adaptor.create(RPAREN23); + adaptor.addChild(root_0, RPAREN23_tree); + } + if ( state.backtracking==0 ) { + retval.value = (e6!=null?e6.value:null); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 17, scalarExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "scalarExpr" + + public static class metaDataExpr_return extends ParserRuleReturnScope { + public MetaDataExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "metaDataExpr" + // src/petascope/wcps/grammar/wcps.g:113:1: metaDataExpr returns [MetaDataExpr value] : (op= IDENTIFIER LPAREN e1= coverageExpr RPAREN | op= IMAGECRS LPAREN e1= coverageExpr RPAREN | op= IMAGECRSDOMAIN LPAREN e1= coverageExpr ( COMMA e2= axisName )? RPAREN | op= CRSSET LPAREN e1= coverageExpr RPAREN | de= domainExpr | op= NULLSET LPAREN e1= coverageExpr RPAREN | op= INTERPOLATIONDEFAULT LPAREN e1= coverageExpr COMMA f1= fieldName RPAREN | op= INTERPOLATIONSET LPAREN e1= coverageExpr COMMA f1= fieldName RPAREN ); + public final wcpsParser.metaDataExpr_return metaDataExpr() throws RecognitionException { + wcpsParser.metaDataExpr_return retval = new wcpsParser.metaDataExpr_return(); + retval.start = input.LT(1); + int metaDataExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + Token LPAREN24=null; + Token RPAREN25=null; + Token LPAREN26=null; + Token RPAREN27=null; + Token LPAREN28=null; + Token COMMA29=null; + Token RPAREN30=null; + Token LPAREN31=null; + Token RPAREN32=null; + Token LPAREN33=null; + Token RPAREN34=null; + Token LPAREN35=null; + Token COMMA36=null; + Token RPAREN37=null; + Token LPAREN38=null; + Token COMMA39=null; + Token RPAREN40=null; + wcpsParser.coverageExpr_return e1 = null; + + wcpsParser.axisName_return e2 = null; + + wcpsParser.domainExpr_return de = null; + + wcpsParser.fieldName_return f1 = null; + + + Object op_tree=null; + Object LPAREN24_tree=null; + Object RPAREN25_tree=null; + Object LPAREN26_tree=null; + Object RPAREN27_tree=null; + Object LPAREN28_tree=null; + Object COMMA29_tree=null; + Object RPAREN30_tree=null; + Object LPAREN31_tree=null; + Object RPAREN32_tree=null; + Object LPAREN33_tree=null; + Object RPAREN34_tree=null; + Object LPAREN35_tree=null; + Object COMMA36_tree=null; + Object RPAREN37_tree=null; + Object LPAREN38_tree=null; + Object COMMA39_tree=null; + Object RPAREN40_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 18) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:114:5: (op= IDENTIFIER LPAREN e1= coverageExpr RPAREN | op= IMAGECRS LPAREN e1= coverageExpr RPAREN | op= IMAGECRSDOMAIN LPAREN e1= coverageExpr ( COMMA e2= axisName )? RPAREN | op= CRSSET LPAREN e1= coverageExpr RPAREN | de= domainExpr | op= NULLSET LPAREN e1= coverageExpr RPAREN | op= INTERPOLATIONDEFAULT LPAREN e1= coverageExpr COMMA f1= fieldName RPAREN | op= INTERPOLATIONSET LPAREN e1= coverageExpr COMMA f1= fieldName RPAREN ) + int alt16=8; + switch ( input.LA(1) ) { + case IDENTIFIER: + { + alt16=1; + } + break; + case IMAGECRS: + { + alt16=2; + } + break; + case IMAGECRSDOMAIN: + { + alt16=3; + } + break; + case CRSSET: + { + alt16=4; + } + break; + case DOMAIN: + { + alt16=5; + } + break; + case NULLSET: + { + alt16=6; + } + break; + case INTERPOLATIONDEFAULT: + { + alt16=7; + } + break; + case INTERPOLATIONSET: + { + alt16=8; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 16, 0, input); + + throw nvae; + } + + switch (alt16) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:114:7: op= IDENTIFIER LPAREN e1= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_metaDataExpr924); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN24=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_metaDataExpr926); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN24_tree = (Object)adaptor.create(LPAREN24); + adaptor.addChild(root_0, LPAREN24_tree); + } + pushFollow(FOLLOW_coverageExpr_in_metaDataExpr930); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN25=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_metaDataExpr932); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN25_tree = (Object)adaptor.create(RPAREN25); + adaptor.addChild(root_0, RPAREN25_tree); + } + if ( state.backtracking==0 ) { + retval.value = new MetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:115:7: op= IMAGECRS LPAREN e1= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,IMAGECRS,FOLLOW_IMAGECRS_in_metaDataExpr944); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN26=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_metaDataExpr946); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN26_tree = (Object)adaptor.create(LPAREN26); + adaptor.addChild(root_0, LPAREN26_tree); + } + pushFollow(FOLLOW_coverageExpr_in_metaDataExpr950); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN27=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_metaDataExpr952); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN27_tree = (Object)adaptor.create(RPAREN27); + adaptor.addChild(root_0, RPAREN27_tree); + } + if ( state.backtracking==0 ) { + retval.value = new MetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:116:7: op= IMAGECRSDOMAIN LPAREN e1= coverageExpr ( COMMA e2= axisName )? RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,IMAGECRSDOMAIN,FOLLOW_IMAGECRSDOMAIN_in_metaDataExpr964); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN28=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_metaDataExpr966); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN28_tree = (Object)adaptor.create(LPAREN28); + adaptor.addChild(root_0, LPAREN28_tree); + } + pushFollow(FOLLOW_coverageExpr_in_metaDataExpr970); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + // src/petascope/wcps/grammar/wcps.g:116:48: ( COMMA e2= axisName )? + int alt15=2; + int LA15_0 = input.LA(1); + + if ( (LA15_0==COMMA) ) { + alt15=1; + } + switch (alt15) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:116:49: COMMA e2= axisName + { + COMMA29=(Token)match(input,COMMA,FOLLOW_COMMA_in_metaDataExpr973); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA29_tree = (Object)adaptor.create(COMMA29); + adaptor.addChild(root_0, COMMA29_tree); + } + pushFollow(FOLLOW_axisName_in_metaDataExpr977); + e2=axisName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + + } + break; + + } + + RPAREN30=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_metaDataExpr981); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN30_tree = (Object)adaptor.create(RPAREN30); + adaptor.addChild(root_0, RPAREN30_tree); + } + if ( state.backtracking==0 ) { + retval.value = new MetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (e2!=null?e2.value:null)); + } + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:117:7: op= CRSSET LPAREN e1= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,CRSSET,FOLLOW_CRSSET_in_metaDataExpr993); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN31=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_metaDataExpr995); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN31_tree = (Object)adaptor.create(LPAREN31); + adaptor.addChild(root_0, LPAREN31_tree); + } + pushFollow(FOLLOW_coverageExpr_in_metaDataExpr999); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN32=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_metaDataExpr1001); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN32_tree = (Object)adaptor.create(RPAREN32); + adaptor.addChild(root_0, RPAREN32_tree); + } + if ( state.backtracking==0 ) { + retval.value = new MetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + break; + case 5 : + // src/petascope/wcps/grammar/wcps.g:118:7: de= domainExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_domainExpr_in_metaDataExpr1013); + de=domainExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, de.getTree()); + if ( state.backtracking==0 ) { + retval.value = new MetaDataExpr((de!=null?de.value:null)); + } + + } + break; + case 6 : + // src/petascope/wcps/grammar/wcps.g:119:7: op= NULLSET LPAREN e1= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,NULLSET,FOLLOW_NULLSET_in_metaDataExpr1025); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN33=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_metaDataExpr1027); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN33_tree = (Object)adaptor.create(LPAREN33); + adaptor.addChild(root_0, LPAREN33_tree); + } + pushFollow(FOLLOW_coverageExpr_in_metaDataExpr1031); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN34=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_metaDataExpr1033); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN34_tree = (Object)adaptor.create(RPAREN34); + adaptor.addChild(root_0, RPAREN34_tree); + } + if ( state.backtracking==0 ) { + retval.value = new MetaDataExpr((op!=null?op.getText():null),(e1!=null?e1.value:null)); + } + + } + break; + case 7 : + // src/petascope/wcps/grammar/wcps.g:120:7: op= INTERPOLATIONDEFAULT LPAREN e1= coverageExpr COMMA f1= fieldName RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,INTERPOLATIONDEFAULT,FOLLOW_INTERPOLATIONDEFAULT_in_metaDataExpr1045); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN35=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_metaDataExpr1047); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN35_tree = (Object)adaptor.create(LPAREN35); + adaptor.addChild(root_0, LPAREN35_tree); + } + pushFollow(FOLLOW_coverageExpr_in_metaDataExpr1051); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA36=(Token)match(input,COMMA,FOLLOW_COMMA_in_metaDataExpr1053); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA36_tree = (Object)adaptor.create(COMMA36); + adaptor.addChild(root_0, COMMA36_tree); + } + pushFollow(FOLLOW_fieldName_in_metaDataExpr1057); + f1=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, f1.getTree()); + RPAREN37=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_metaDataExpr1059); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN37_tree = (Object)adaptor.create(RPAREN37); + adaptor.addChild(root_0, RPAREN37_tree); + } + if ( state.backtracking==0 ) { + retval.value = new MetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (f1!=null?f1.value:null)); + } + + } + break; + case 8 : + // src/petascope/wcps/grammar/wcps.g:121:7: op= INTERPOLATIONSET LPAREN e1= coverageExpr COMMA f1= fieldName RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,INTERPOLATIONSET,FOLLOW_INTERPOLATIONSET_in_metaDataExpr1071); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN38=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_metaDataExpr1073); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN38_tree = (Object)adaptor.create(LPAREN38); + adaptor.addChild(root_0, LPAREN38_tree); + } + pushFollow(FOLLOW_coverageExpr_in_metaDataExpr1077); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA39=(Token)match(input,COMMA,FOLLOW_COMMA_in_metaDataExpr1079); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA39_tree = (Object)adaptor.create(COMMA39); + adaptor.addChild(root_0, COMMA39_tree); + } + pushFollow(FOLLOW_fieldName_in_metaDataExpr1083); + f1=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, f1.getTree()); + RPAREN40=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_metaDataExpr1085); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN40_tree = (Object)adaptor.create(RPAREN40); + adaptor.addChild(root_0, RPAREN40_tree); + } + if ( state.backtracking==0 ) { + retval.value = new MetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (f1!=null?f1.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 18, metaDataExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "metaDataExpr" + + public static class domainExpr_return extends ParserRuleReturnScope { + public DomainExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "domainExpr" + // src/petascope/wcps/grammar/wcps.g:123:1: domainExpr returns [DomainExpr value] : DOMAIN LPAREN var= coverageVariable COMMA axis= axisName COMMA crs= crsName RPAREN ; + public final wcpsParser.domainExpr_return domainExpr() throws RecognitionException { + wcpsParser.domainExpr_return retval = new wcpsParser.domainExpr_return(); + retval.start = input.LT(1); + int domainExpr_StartIndex = input.index(); + Object root_0 = null; + + Token DOMAIN41=null; + Token LPAREN42=null; + Token COMMA43=null; + Token COMMA44=null; + Token RPAREN45=null; + wcpsParser.coverageVariable_return var = null; + + wcpsParser.axisName_return axis = null; + + wcpsParser.crsName_return crs = null; + + + Object DOMAIN41_tree=null; + Object LPAREN42_tree=null; + Object COMMA43_tree=null; + Object COMMA44_tree=null; + Object RPAREN45_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 19) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:124:2: ( DOMAIN LPAREN var= coverageVariable COMMA axis= axisName COMMA crs= crsName RPAREN ) + // src/petascope/wcps/grammar/wcps.g:124:4: DOMAIN LPAREN var= coverageVariable COMMA axis= axisName COMMA crs= crsName RPAREN + { + root_0 = (Object)adaptor.nil(); + + DOMAIN41=(Token)match(input,DOMAIN,FOLLOW_DOMAIN_in_domainExpr1104); if (state.failed) return retval; + if ( state.backtracking==0 ) { + DOMAIN41_tree = (Object)adaptor.create(DOMAIN41); + adaptor.addChild(root_0, DOMAIN41_tree); + } + LPAREN42=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_domainExpr1106); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN42_tree = (Object)adaptor.create(LPAREN42); + adaptor.addChild(root_0, LPAREN42_tree); + } + pushFollow(FOLLOW_coverageVariable_in_domainExpr1110); + var=coverageVariable(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, var.getTree()); + COMMA43=(Token)match(input,COMMA,FOLLOW_COMMA_in_domainExpr1112); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA43_tree = (Object)adaptor.create(COMMA43); + adaptor.addChild(root_0, COMMA43_tree); + } + pushFollow(FOLLOW_axisName_in_domainExpr1116); + axis=axisName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, axis.getTree()); + COMMA44=(Token)match(input,COMMA,FOLLOW_COMMA_in_domainExpr1118); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA44_tree = (Object)adaptor.create(COMMA44); + adaptor.addChild(root_0, COMMA44_tree); + } + pushFollow(FOLLOW_crsName_in_domainExpr1122); + crs=crsName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, crs.getTree()); + RPAREN45=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_domainExpr1124); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN45_tree = (Object)adaptor.create(RPAREN45); + adaptor.addChild(root_0, RPAREN45_tree); + } + if ( state.backtracking==0 ) { + retval.value = new DomainExpr((var!=null?var.value:null), (axis!=null?axis.value:null), (crs!=null?crs.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 19, domainExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "domainExpr" + + public static class condenseExpr_return extends ParserRuleReturnScope { + public CondenseExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "condenseExpr" + // src/petascope/wcps/grammar/wcps.g:126:1: condenseExpr returns [CondenseExpr value] : (e1= reduceExpr | e2= generalCondenseExpr ); + public final wcpsParser.condenseExpr_return condenseExpr() throws RecognitionException { + wcpsParser.condenseExpr_return retval = new wcpsParser.condenseExpr_return(); + retval.start = input.LT(1); + int condenseExpr_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.reduceExpr_return e1 = null; + + wcpsParser.generalCondenseExpr_return e2 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 20) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:127:2: (e1= reduceExpr | e2= generalCondenseExpr ) + int alt17=2; + int LA17_0 = input.LA(1); + + if ( ((LA17_0>=ALL && LA17_0<=MAX)) ) { + alt17=1; + } + else if ( (LA17_0==CONDENSE) ) { + alt17=2; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 17, 0, input); + + throw nvae; + } + switch (alt17) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:127:4: e1= reduceExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_reduceExpr_in_condenseExpr1141); + e1=reduceExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CondenseExpr((e1!=null?e1.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:128:4: e2= generalCondenseExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_generalCondenseExpr_in_condenseExpr1150); + e2=generalCondenseExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CondenseExpr((e2!=null?e2.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 20, condenseExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "condenseExpr" + + public static class reduceExpr_return extends ParserRuleReturnScope { + public ReduceExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "reduceExpr" + // src/petascope/wcps/grammar/wcps.g:130:1: reduceExpr returns [ReduceExpr value] : op= ( ALL | SOME | COUNT | ADD | AVG | MIN | MAX ) LPAREN e1= coverageExpr RPAREN ; + public final wcpsParser.reduceExpr_return reduceExpr() throws RecognitionException { + wcpsParser.reduceExpr_return retval = new wcpsParser.reduceExpr_return(); + retval.start = input.LT(1); + int reduceExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + Token LPAREN46=null; + Token RPAREN47=null; + wcpsParser.coverageExpr_return e1 = null; + + + Object op_tree=null; + Object LPAREN46_tree=null; + Object RPAREN47_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:131:2: (op= ( ALL | SOME | COUNT | ADD | AVG | MIN | MAX ) LPAREN e1= coverageExpr RPAREN ) + // src/petascope/wcps/grammar/wcps.g:131:4: op= ( ALL | SOME | COUNT | ADD | AVG | MIN | MAX ) LPAREN e1= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)input.LT(1); + if ( (input.LA(1)>=ALL && input.LA(1)<=MAX) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + LPAREN46=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_reduceExpr1183); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN46_tree = (Object)adaptor.create(LPAREN46); + adaptor.addChild(root_0, LPAREN46_tree); + } + pushFollow(FOLLOW_coverageExpr_in_reduceExpr1187); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN47=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_reduceExpr1189); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN47_tree = (Object)adaptor.create(RPAREN47); + adaptor.addChild(root_0, RPAREN47_tree); + } + if ( state.backtracking==0 ) { + retval.value = new ReduceExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 21, reduceExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "reduceExpr" + + public static class generalCondenseExpr_return extends ParserRuleReturnScope { + public GeneralCondenseExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "generalCondenseExpr" + // src/petascope/wcps/grammar/wcps.g:133:1: generalCondenseExpr returns [GeneralCondenseExpr value] : CONDENSE op= condenseOpType OVER ail= axisIteratorList ( WHERE cond= booleanScalarExpr )? USING ce= coverageExpr ; + public final wcpsParser.generalCondenseExpr_return generalCondenseExpr() throws RecognitionException { + wcpsParser.generalCondenseExpr_return retval = new wcpsParser.generalCondenseExpr_return(); + retval.start = input.LT(1); + int generalCondenseExpr_StartIndex = input.index(); + Object root_0 = null; + + Token CONDENSE48=null; + Token OVER49=null; + Token WHERE50=null; + Token USING51=null; + wcpsParser.condenseOpType_return op = null; + + wcpsParser.axisIteratorList_return ail = null; + + wcpsParser.booleanScalarExpr_return cond = null; + + wcpsParser.coverageExpr_return ce = null; + + + Object CONDENSE48_tree=null; + Object OVER49_tree=null; + Object WHERE50_tree=null; + Object USING51_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 22) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:134:2: ( CONDENSE op= condenseOpType OVER ail= axisIteratorList ( WHERE cond= booleanScalarExpr )? USING ce= coverageExpr ) + // src/petascope/wcps/grammar/wcps.g:134:4: CONDENSE op= condenseOpType OVER ail= axisIteratorList ( WHERE cond= booleanScalarExpr )? USING ce= coverageExpr + { + root_0 = (Object)adaptor.nil(); + + CONDENSE48=(Token)match(input,CONDENSE,FOLLOW_CONDENSE_in_generalCondenseExpr1204); if (state.failed) return retval; + if ( state.backtracking==0 ) { + CONDENSE48_tree = (Object)adaptor.create(CONDENSE48); + adaptor.addChild(root_0, CONDENSE48_tree); + } + pushFollow(FOLLOW_condenseOpType_in_generalCondenseExpr1208); + op=condenseOpType(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, op.getTree()); + OVER49=(Token)match(input,OVER,FOLLOW_OVER_in_generalCondenseExpr1210); if (state.failed) return retval; + if ( state.backtracking==0 ) { + OVER49_tree = (Object)adaptor.create(OVER49); + adaptor.addChild(root_0, OVER49_tree); + } + pushFollow(FOLLOW_axisIteratorList_in_generalCondenseExpr1214); + ail=axisIteratorList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ail.getTree()); + if ( state.backtracking==0 ) { + retval.value = new GeneralCondenseExpr((op!=null?op.value:null), (ail!=null?ail.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:135:3: ( WHERE cond= booleanScalarExpr )? + int alt18=2; + int LA18_0 = input.LA(1); + + if ( (LA18_0==WHERE) ) { + alt18=1; + } + switch (alt18) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:135:4: WHERE cond= booleanScalarExpr + { + WHERE50=(Token)match(input,WHERE,FOLLOW_WHERE_in_generalCondenseExpr1221); if (state.failed) return retval; + if ( state.backtracking==0 ) { + WHERE50_tree = (Object)adaptor.create(WHERE50); + adaptor.addChild(root_0, WHERE50_tree); + } + pushFollow(FOLLOW_booleanScalarExpr_in_generalCondenseExpr1225); + cond=booleanScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, cond.getTree()); + if ( state.backtracking==0 ) { + retval.value.setWhere((cond!=null?cond.value:null)); + } + + } + break; + + } + + USING51=(Token)match(input,USING,FOLLOW_USING_in_generalCondenseExpr1233); if (state.failed) return retval; + if ( state.backtracking==0 ) { + USING51_tree = (Object)adaptor.create(USING51); + adaptor.addChild(root_0, USING51_tree); + } + pushFollow(FOLLOW_coverageExpr_in_generalCondenseExpr1237); + ce=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ce.getTree()); + if ( state.backtracking==0 ) { + retval.value.setUsing((ce!=null?ce.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 22, generalCondenseExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "generalCondenseExpr" + + public static class axisIteratorList_return extends ParserRuleReturnScope { + public AxisIteratorList value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "axisIteratorList" + // src/petascope/wcps/grammar/wcps.g:138:1: axisIteratorList returns [AxisIteratorList value] : vn= variableName an= axisName LPAREN ie= intervalExpr RPAREN ( COMMA vn2= variableName an2= axisName LPAREN ie2= intervalExpr RPAREN )* ; + public final wcpsParser.axisIteratorList_return axisIteratorList() throws RecognitionException { + wcpsParser.axisIteratorList_return retval = new wcpsParser.axisIteratorList_return(); + retval.start = input.LT(1); + int axisIteratorList_StartIndex = input.index(); + Object root_0 = null; + + Token LPAREN52=null; + Token RPAREN53=null; + Token COMMA54=null; + Token LPAREN55=null; + Token RPAREN56=null; + wcpsParser.variableName_return vn = null; + + wcpsParser.axisName_return an = null; + + wcpsParser.intervalExpr_return ie = null; + + wcpsParser.variableName_return vn2 = null; + + wcpsParser.axisName_return an2 = null; + + wcpsParser.intervalExpr_return ie2 = null; + + + Object LPAREN52_tree=null; + Object RPAREN53_tree=null; + Object COMMA54_tree=null; + Object LPAREN55_tree=null; + Object RPAREN56_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 23) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:139:2: (vn= variableName an= axisName LPAREN ie= intervalExpr RPAREN ( COMMA vn2= variableName an2= axisName LPAREN ie2= intervalExpr RPAREN )* ) + // src/petascope/wcps/grammar/wcps.g:139:4: vn= variableName an= axisName LPAREN ie= intervalExpr RPAREN ( COMMA vn2= variableName an2= axisName LPAREN ie2= intervalExpr RPAREN )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_variableName_in_axisIteratorList1254); + vn=variableName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, vn.getTree()); + pushFollow(FOLLOW_axisName_in_axisIteratorList1258); + an=axisName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, an.getTree()); + LPAREN52=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_axisIteratorList1260); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN52_tree = (Object)adaptor.create(LPAREN52); + adaptor.addChild(root_0, LPAREN52_tree); + } + pushFollow(FOLLOW_intervalExpr_in_axisIteratorList1264); + ie=intervalExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ie.getTree()); + RPAREN53=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_axisIteratorList1266); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN53_tree = (Object)adaptor.create(RPAREN53); + adaptor.addChild(root_0, RPAREN53_tree); + } + if ( state.backtracking==0 ) { + retval.value = new AxisIteratorList(new AxisIterator((vn!=null?vn.value:null), (an!=null?an.value:null), (ie!=null?ie.value:null))); + } + // src/petascope/wcps/grammar/wcps.g:141:2: ( COMMA vn2= variableName an2= axisName LPAREN ie2= intervalExpr RPAREN )* + loop19: + do { + int alt19=2; + int LA19_0 = input.LA(1); + + if ( (LA19_0==COMMA) ) { + alt19=1; + } + + + switch (alt19) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:141:3: COMMA vn2= variableName an2= axisName LPAREN ie2= intervalExpr RPAREN + { + COMMA54=(Token)match(input,COMMA,FOLLOW_COMMA_in_axisIteratorList1274); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA54_tree = (Object)adaptor.create(COMMA54); + adaptor.addChild(root_0, COMMA54_tree); + } + pushFollow(FOLLOW_variableName_in_axisIteratorList1278); + vn2=variableName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, vn2.getTree()); + pushFollow(FOLLOW_axisName_in_axisIteratorList1282); + an2=axisName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, an2.getTree()); + LPAREN55=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_axisIteratorList1284); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN55_tree = (Object)adaptor.create(LPAREN55); + adaptor.addChild(root_0, LPAREN55_tree); + } + pushFollow(FOLLOW_intervalExpr_in_axisIteratorList1288); + ie2=intervalExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ie2.getTree()); + RPAREN56=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_axisIteratorList1290); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN56_tree = (Object)adaptor.create(RPAREN56); + adaptor.addChild(root_0, RPAREN56_tree); + } + if ( state.backtracking==0 ) { + retval.value = new AxisIteratorList(new AxisIterator((vn2!=null?vn2.value:null), (an2!=null?an2.value:null), (ie2!=null?ie2.value:null)), retval.value); + } + + } + break; + + default : + break loop19; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 23, axisIteratorList_StartIndex); } + } + return retval; + } + // $ANTLR end "axisIteratorList" + + public static class intervalExpr_return extends ParserRuleReturnScope { + public IntervalExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "intervalExpr" + // src/petascope/wcps/grammar/wcps.g:144:1: intervalExpr returns [IntervalExpr value] : (lo= indexExpr COLON hi= indexExpr | IMAGECRSDOMAIN LPAREN e1= coverageName COMMA e2= axisName RPAREN ); + public final wcpsParser.intervalExpr_return intervalExpr() throws RecognitionException { + wcpsParser.intervalExpr_return retval = new wcpsParser.intervalExpr_return(); + retval.start = input.LT(1); + int intervalExpr_StartIndex = input.index(); + Object root_0 = null; + + Token COLON57=null; + Token IMAGECRSDOMAIN58=null; + Token LPAREN59=null; + Token COMMA60=null; + Token RPAREN61=null; + wcpsParser.indexExpr_return lo = null; + + wcpsParser.indexExpr_return hi = null; + + wcpsParser.coverageName_return e1 = null; + + wcpsParser.axisName_return e2 = null; + + + Object COLON57_tree=null; + Object IMAGECRSDOMAIN58_tree=null; + Object LPAREN59_tree=null; + Object COMMA60_tree=null; + Object RPAREN61_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 24) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:145:5: (lo= indexExpr COLON hi= indexExpr | IMAGECRSDOMAIN LPAREN e1= coverageName COMMA e2= axisName RPAREN ) + int alt20=2; + int LA20_0 = input.LA(1); + + if ( (LA20_0==LPAREN||(LA20_0>=INTEGERCONSTANT && LA20_0<=ROUND)) ) { + alt20=1; + } + else if ( (LA20_0==IMAGECRSDOMAIN) ) { + alt20=2; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 20, 0, input); + + throw nvae; + } + switch (alt20) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:145:7: lo= indexExpr COLON hi= indexExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_indexExpr_in_intervalExpr1314); + lo=indexExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, lo.getTree()); + COLON57=(Token)match(input,COLON,FOLLOW_COLON_in_intervalExpr1316); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON57_tree = (Object)adaptor.create(COLON57); + adaptor.addChild(root_0, COLON57_tree); + } + pushFollow(FOLLOW_indexExpr_in_intervalExpr1320); + hi=indexExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, hi.getTree()); + if ( state.backtracking==0 ) { + retval.value = new IntervalExpr((lo!=null?lo.value:null), (hi!=null?hi.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:147:7: IMAGECRSDOMAIN LPAREN e1= coverageName COMMA e2= axisName RPAREN + { + root_0 = (Object)adaptor.nil(); + + IMAGECRSDOMAIN58=(Token)match(input,IMAGECRSDOMAIN,FOLLOW_IMAGECRSDOMAIN_in_intervalExpr1335); if (state.failed) return retval; + if ( state.backtracking==0 ) { + IMAGECRSDOMAIN58_tree = (Object)adaptor.create(IMAGECRSDOMAIN58); + adaptor.addChild(root_0, IMAGECRSDOMAIN58_tree); + } + LPAREN59=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_intervalExpr1337); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN59_tree = (Object)adaptor.create(LPAREN59); + adaptor.addChild(root_0, LPAREN59_tree); + } + pushFollow(FOLLOW_coverageName_in_intervalExpr1341); + e1=coverageName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA60=(Token)match(input,COMMA,FOLLOW_COMMA_in_intervalExpr1343); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA60_tree = (Object)adaptor.create(COMMA60); + adaptor.addChild(root_0, COMMA60_tree); + } + pushFollow(FOLLOW_axisName_in_intervalExpr1347); + e2=axisName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + RPAREN61=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_intervalExpr1349); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN61_tree = (Object)adaptor.create(RPAREN61); + adaptor.addChild(root_0, RPAREN61_tree); + } + if ( state.backtracking==0 ) { + retval.value = new IntervalExpr((e1!=null?e1.value:null), (e2!=null?e2.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 24, intervalExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "intervalExpr" + + public static class coverageConstantExpr_return extends ParserRuleReturnScope { + public CoverageConstantExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageConstantExpr" + // src/petascope/wcps/grammar/wcps.g:150:1: coverageConstantExpr returns [CoverageConstantExpr value] : COVERAGE aname= coverageName OVER iter= axisIteratorList VALUE LIST LT values= constantList GT ; + public final wcpsParser.coverageConstantExpr_return coverageConstantExpr() throws RecognitionException { + wcpsParser.coverageConstantExpr_return retval = new wcpsParser.coverageConstantExpr_return(); + retval.start = input.LT(1); + int coverageConstantExpr_StartIndex = input.index(); + Object root_0 = null; + + Token COVERAGE62=null; + Token OVER63=null; + Token VALUE64=null; + Token LIST65=null; + Token LT66=null; + Token GT67=null; + wcpsParser.coverageName_return aname = null; + + wcpsParser.axisIteratorList_return iter = null; + + wcpsParser.constantList_return values = null; + + + Object COVERAGE62_tree=null; + Object OVER63_tree=null; + Object VALUE64_tree=null; + Object LIST65_tree=null; + Object LT66_tree=null; + Object GT67_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 25) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:151:5: ( COVERAGE aname= coverageName OVER iter= axisIteratorList VALUE LIST LT values= constantList GT ) + // src/petascope/wcps/grammar/wcps.g:151:7: COVERAGE aname= coverageName OVER iter= axisIteratorList VALUE LIST LT values= constantList GT + { + root_0 = (Object)adaptor.nil(); + + COVERAGE62=(Token)match(input,COVERAGE,FOLLOW_COVERAGE_in_coverageConstantExpr1375); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COVERAGE62_tree = (Object)adaptor.create(COVERAGE62); + adaptor.addChild(root_0, COVERAGE62_tree); + } + pushFollow(FOLLOW_coverageName_in_coverageConstantExpr1379); + aname=coverageName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, aname.getTree()); + OVER63=(Token)match(input,OVER,FOLLOW_OVER_in_coverageConstantExpr1381); if (state.failed) return retval; + if ( state.backtracking==0 ) { + OVER63_tree = (Object)adaptor.create(OVER63); + adaptor.addChild(root_0, OVER63_tree); + } + pushFollow(FOLLOW_axisIteratorList_in_coverageConstantExpr1385); + iter=axisIteratorList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, iter.getTree()); + VALUE64=(Token)match(input,VALUE,FOLLOW_VALUE_in_coverageConstantExpr1387); if (state.failed) return retval; + if ( state.backtracking==0 ) { + VALUE64_tree = (Object)adaptor.create(VALUE64); + adaptor.addChild(root_0, VALUE64_tree); + } + LIST65=(Token)match(input,LIST,FOLLOW_LIST_in_coverageConstantExpr1389); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LIST65_tree = (Object)adaptor.create(LIST65); + adaptor.addChild(root_0, LIST65_tree); + } + LT66=(Token)match(input,LT,FOLLOW_LT_in_coverageConstantExpr1391); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LT66_tree = (Object)adaptor.create(LT66); + adaptor.addChild(root_0, LT66_tree); + } + pushFollow(FOLLOW_constantList_in_coverageConstantExpr1395); + values=constantList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, values.getTree()); + GT67=(Token)match(input,GT,FOLLOW_GT_in_coverageConstantExpr1397); if (state.failed) return retval; + if ( state.backtracking==0 ) { + GT67_tree = (Object)adaptor.create(GT67); + adaptor.addChild(root_0, GT67_tree); + } + if ( state.backtracking==0 ) { + retval.value = new CoverageConstantExpr((aname!=null?aname.value:null), (iter!=null?iter.value:null), (values!=null?values.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 25, coverageConstantExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageConstantExpr" + + public static class constantList_return extends ParserRuleReturnScope { + public ConstantList value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "constantList" + // src/petascope/wcps/grammar/wcps.g:154:1: constantList returns [ConstantList value] : c= constant ( SEMICOLON c= constant )* ; + public final wcpsParser.constantList_return constantList() throws RecognitionException { + wcpsParser.constantList_return retval = new wcpsParser.constantList_return(); + retval.start = input.LT(1); + int constantList_StartIndex = input.index(); + Object root_0 = null; + + Token SEMICOLON68=null; + wcpsParser.constant_return c = null; + + + Object SEMICOLON68_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 26) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:155:5: (c= constant ( SEMICOLON c= constant )* ) + // src/petascope/wcps/grammar/wcps.g:155:7: c= constant ( SEMICOLON c= constant )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_constant_in_constantList1428); + c=constant(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, c.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ConstantList((c!=null?c.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:155:59: ( SEMICOLON c= constant )* + loop21: + do { + int alt21=2; + int LA21_0 = input.LA(1); + + if ( (LA21_0==SEMICOLON) ) { + alt21=1; + } + + + switch (alt21) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:155:60: SEMICOLON c= constant + { + SEMICOLON68=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_constantList1433); if (state.failed) return retval; + if ( state.backtracking==0 ) { + SEMICOLON68_tree = (Object)adaptor.create(SEMICOLON68); + adaptor.addChild(root_0, SEMICOLON68_tree); + } + pushFollow(FOLLOW_constant_in_constantList1437); + c=constant(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, c.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((c!=null?c.value:null)); + } + + } + break; + + default : + break loop21; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 26, constantList_StartIndex); } + } + return retval; + } + // $ANTLR end "constantList" + + public static class coverageConstructorExpr_return extends ParserRuleReturnScope { + public CoverageConstructorExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageConstructorExpr" + // src/petascope/wcps/grammar/wcps.g:157:1: coverageConstructorExpr returns [CoverageConstructorExpr value] : COVERAGE coverage= coverageName OVER ail= axisIteratorList VALUES se= scalarExpr ; + public final wcpsParser.coverageConstructorExpr_return coverageConstructorExpr() throws RecognitionException { + wcpsParser.coverageConstructorExpr_return retval = new wcpsParser.coverageConstructorExpr_return(); + retval.start = input.LT(1); + int coverageConstructorExpr_StartIndex = input.index(); + Object root_0 = null; + + Token COVERAGE69=null; + Token OVER70=null; + Token VALUES71=null; + wcpsParser.coverageName_return coverage = null; + + wcpsParser.axisIteratorList_return ail = null; + + wcpsParser.scalarExpr_return se = null; + + + Object COVERAGE69_tree=null; + Object OVER70_tree=null; + Object VALUES71_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 27) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:158:2: ( COVERAGE coverage= coverageName OVER ail= axisIteratorList VALUES se= scalarExpr ) + // src/petascope/wcps/grammar/wcps.g:158:4: COVERAGE coverage= coverageName OVER ail= axisIteratorList VALUES se= scalarExpr + { + root_0 = (Object)adaptor.nil(); + + COVERAGE69=(Token)match(input,COVERAGE,FOLLOW_COVERAGE_in_coverageConstructorExpr1457); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COVERAGE69_tree = (Object)adaptor.create(COVERAGE69); + adaptor.addChild(root_0, COVERAGE69_tree); + } + pushFollow(FOLLOW_coverageName_in_coverageConstructorExpr1461); + coverage=coverageName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, coverage.getTree()); + OVER70=(Token)match(input,OVER,FOLLOW_OVER_in_coverageConstructorExpr1463); if (state.failed) return retval; + if ( state.backtracking==0 ) { + OVER70_tree = (Object)adaptor.create(OVER70); + adaptor.addChild(root_0, OVER70_tree); + } + pushFollow(FOLLOW_axisIteratorList_in_coverageConstructorExpr1467); + ail=axisIteratorList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, ail.getTree()); + VALUES71=(Token)match(input,VALUES,FOLLOW_VALUES_in_coverageConstructorExpr1469); if (state.failed) return retval; + if ( state.backtracking==0 ) { + VALUES71_tree = (Object)adaptor.create(VALUES71); + adaptor.addChild(root_0, VALUES71_tree); + } + pushFollow(FOLLOW_scalarExpr_in_coverageConstructorExpr1473); + se=scalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, se.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageConstructorExpr((coverage!=null?coverage.value:null), (ail!=null?ail.value:null), (se!=null?se.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 27, coverageConstructorExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageConstructorExpr" + + public static class setMetaDataExpr_return extends ParserRuleReturnScope { + public SetMetaDataExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "setMetaDataExpr" + // src/petascope/wcps/grammar/wcps.g:161:1: setMetaDataExpr returns [SetMetaDataExpr value] : (op= SETIDENTIFIER LPAREN s= stringConstant COMMA e1= coverageExpr RPAREN | op= SETCRSSET LPAREN e1= coverageExpr COMMA crs= crsList RPAREN | op= SETNULLSET LPAREN e1= coverageExpr COMMA rel= rangeExprList RPAREN | op= SETINTERPOLATIONDEFAULT LPAREN e1= coverageExpr COMMA fn= fieldName COMMA im= interpolationMethod RPAREN | op= SETINTERPOLATIONSET LPAREN e1= coverageExpr COMMA fn= fieldName COMMA iml= interpolationMethodList RPAREN ); + public final wcpsParser.setMetaDataExpr_return setMetaDataExpr() throws RecognitionException { + wcpsParser.setMetaDataExpr_return retval = new wcpsParser.setMetaDataExpr_return(); + retval.start = input.LT(1); + int setMetaDataExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + Token LPAREN72=null; + Token COMMA73=null; + Token RPAREN74=null; + Token LPAREN75=null; + Token COMMA76=null; + Token RPAREN77=null; + Token LPAREN78=null; + Token COMMA79=null; + Token RPAREN80=null; + Token LPAREN81=null; + Token COMMA82=null; + Token COMMA83=null; + Token RPAREN84=null; + Token LPAREN85=null; + Token COMMA86=null; + Token COMMA87=null; + Token RPAREN88=null; + wcpsParser.stringConstant_return s = null; + + wcpsParser.coverageExpr_return e1 = null; + + wcpsParser.crsList_return crs = null; + + wcpsParser.rangeExprList_return rel = null; + + wcpsParser.fieldName_return fn = null; + + wcpsParser.interpolationMethod_return im = null; + + wcpsParser.interpolationMethodList_return iml = null; + + + Object op_tree=null; + Object LPAREN72_tree=null; + Object COMMA73_tree=null; + Object RPAREN74_tree=null; + Object LPAREN75_tree=null; + Object COMMA76_tree=null; + Object RPAREN77_tree=null; + Object LPAREN78_tree=null; + Object COMMA79_tree=null; + Object RPAREN80_tree=null; + Object LPAREN81_tree=null; + Object COMMA82_tree=null; + Object COMMA83_tree=null; + Object RPAREN84_tree=null; + Object LPAREN85_tree=null; + Object COMMA86_tree=null; + Object COMMA87_tree=null; + Object RPAREN88_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 28) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:162:5: (op= SETIDENTIFIER LPAREN s= stringConstant COMMA e1= coverageExpr RPAREN | op= SETCRSSET LPAREN e1= coverageExpr COMMA crs= crsList RPAREN | op= SETNULLSET LPAREN e1= coverageExpr COMMA rel= rangeExprList RPAREN | op= SETINTERPOLATIONDEFAULT LPAREN e1= coverageExpr COMMA fn= fieldName COMMA im= interpolationMethod RPAREN | op= SETINTERPOLATIONSET LPAREN e1= coverageExpr COMMA fn= fieldName COMMA iml= interpolationMethodList RPAREN ) + int alt22=5; + switch ( input.LA(1) ) { + case SETIDENTIFIER: + { + alt22=1; + } + break; + case SETCRSSET: + { + alt22=2; + } + break; + case SETNULLSET: + { + alt22=3; + } + break; + case SETINTERPOLATIONDEFAULT: + { + alt22=4; + } + break; + case SETINTERPOLATIONSET: + { + alt22=5; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 22, 0, input); + + throw nvae; + } + + switch (alt22) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:162:7: op= SETIDENTIFIER LPAREN s= stringConstant COMMA e1= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,SETIDENTIFIER,FOLLOW_SETIDENTIFIER_in_setMetaDataExpr1495); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN72=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_setMetaDataExpr1497); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN72_tree = (Object)adaptor.create(LPAREN72); + adaptor.addChild(root_0, LPAREN72_tree); + } + pushFollow(FOLLOW_stringConstant_in_setMetaDataExpr1501); + s=stringConstant(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, s.getTree()); + COMMA73=(Token)match(input,COMMA,FOLLOW_COMMA_in_setMetaDataExpr1503); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA73_tree = (Object)adaptor.create(COMMA73); + adaptor.addChild(root_0, COMMA73_tree); + } + pushFollow(FOLLOW_coverageExpr_in_setMetaDataExpr1507); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN74=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_setMetaDataExpr1509); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN74_tree = (Object)adaptor.create(RPAREN74); + adaptor.addChild(root_0, RPAREN74_tree); + } + if ( state.backtracking==0 ) { + retval.value = new SetMetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (s!=null?s.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:164:7: op= SETCRSSET LPAREN e1= coverageExpr COMMA crs= crsList RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,SETCRSSET,FOLLOW_SETCRSSET_in_setMetaDataExpr1522); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN75=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_setMetaDataExpr1524); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN75_tree = (Object)adaptor.create(LPAREN75); + adaptor.addChild(root_0, LPAREN75_tree); + } + pushFollow(FOLLOW_coverageExpr_in_setMetaDataExpr1528); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA76=(Token)match(input,COMMA,FOLLOW_COMMA_in_setMetaDataExpr1530); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA76_tree = (Object)adaptor.create(COMMA76); + adaptor.addChild(root_0, COMMA76_tree); + } + pushFollow(FOLLOW_crsList_in_setMetaDataExpr1534); + crs=crsList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, crs.getTree()); + RPAREN77=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_setMetaDataExpr1536); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN77_tree = (Object)adaptor.create(RPAREN77); + adaptor.addChild(root_0, RPAREN77_tree); + } + if ( state.backtracking==0 ) { + retval.value = new SetMetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (crs!=null?crs.value:null)); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:166:7: op= SETNULLSET LPAREN e1= coverageExpr COMMA rel= rangeExprList RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,SETNULLSET,FOLLOW_SETNULLSET_in_setMetaDataExpr1553); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN78=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_setMetaDataExpr1555); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN78_tree = (Object)adaptor.create(LPAREN78); + adaptor.addChild(root_0, LPAREN78_tree); + } + pushFollow(FOLLOW_coverageExpr_in_setMetaDataExpr1559); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA79=(Token)match(input,COMMA,FOLLOW_COMMA_in_setMetaDataExpr1561); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA79_tree = (Object)adaptor.create(COMMA79); + adaptor.addChild(root_0, COMMA79_tree); + } + pushFollow(FOLLOW_rangeExprList_in_setMetaDataExpr1565); + rel=rangeExprList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, rel.getTree()); + RPAREN80=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_setMetaDataExpr1567); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN80_tree = (Object)adaptor.create(RPAREN80); + adaptor.addChild(root_0, RPAREN80_tree); + } + if ( state.backtracking==0 ) { + retval.value = new SetMetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (rel!=null?rel.value:null)); + } + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:168:7: op= SETINTERPOLATIONDEFAULT LPAREN e1= coverageExpr COMMA fn= fieldName COMMA im= interpolationMethod RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,SETINTERPOLATIONDEFAULT,FOLLOW_SETINTERPOLATIONDEFAULT_in_setMetaDataExpr1584); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN81=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_setMetaDataExpr1586); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN81_tree = (Object)adaptor.create(LPAREN81); + adaptor.addChild(root_0, LPAREN81_tree); + } + pushFollow(FOLLOW_coverageExpr_in_setMetaDataExpr1590); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA82=(Token)match(input,COMMA,FOLLOW_COMMA_in_setMetaDataExpr1592); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA82_tree = (Object)adaptor.create(COMMA82); + adaptor.addChild(root_0, COMMA82_tree); + } + pushFollow(FOLLOW_fieldName_in_setMetaDataExpr1596); + fn=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, fn.getTree()); + COMMA83=(Token)match(input,COMMA,FOLLOW_COMMA_in_setMetaDataExpr1598); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA83_tree = (Object)adaptor.create(COMMA83); + adaptor.addChild(root_0, COMMA83_tree); + } + pushFollow(FOLLOW_interpolationMethod_in_setMetaDataExpr1602); + im=interpolationMethod(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, im.getTree()); + RPAREN84=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_setMetaDataExpr1604); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN84_tree = (Object)adaptor.create(RPAREN84); + adaptor.addChild(root_0, RPAREN84_tree); + } + if ( state.backtracking==0 ) { + retval.value = new SetMetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (im!=null?im.value:null), (fn!=null?fn.value:null)); + } + + } + break; + case 5 : + // src/petascope/wcps/grammar/wcps.g:170:7: op= SETINTERPOLATIONSET LPAREN e1= coverageExpr COMMA fn= fieldName COMMA iml= interpolationMethodList RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,SETINTERPOLATIONSET,FOLLOW_SETINTERPOLATIONSET_in_setMetaDataExpr1624); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN85=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_setMetaDataExpr1626); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN85_tree = (Object)adaptor.create(LPAREN85); + adaptor.addChild(root_0, LPAREN85_tree); + } + pushFollow(FOLLOW_coverageExpr_in_setMetaDataExpr1630); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA86=(Token)match(input,COMMA,FOLLOW_COMMA_in_setMetaDataExpr1632); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA86_tree = (Object)adaptor.create(COMMA86); + adaptor.addChild(root_0, COMMA86_tree); + } + pushFollow(FOLLOW_fieldName_in_setMetaDataExpr1636); + fn=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, fn.getTree()); + COMMA87=(Token)match(input,COMMA,FOLLOW_COMMA_in_setMetaDataExpr1638); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA87_tree = (Object)adaptor.create(COMMA87); + adaptor.addChild(root_0, COMMA87_tree); + } + pushFollow(FOLLOW_interpolationMethodList_in_setMetaDataExpr1642); + iml=interpolationMethodList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, iml.getTree()); + RPAREN88=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_setMetaDataExpr1644); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN88_tree = (Object)adaptor.create(RPAREN88); + adaptor.addChild(root_0, RPAREN88_tree); + } + if ( state.backtracking==0 ) { + retval.value = new SetMetaDataExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (iml!=null?iml.value:null), (fn!=null?fn.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 28, setMetaDataExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "setMetaDataExpr" + + public static class crsList_return extends ParserRuleReturnScope { + public CrsList value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "crsList" + // src/petascope/wcps/grammar/wcps.g:173:1: crsList returns [CrsList value] : LBRACE (crs= crsName ( COMMA crs= crsName )* )? RBRACE ; + public final wcpsParser.crsList_return crsList() throws RecognitionException { + wcpsParser.crsList_return retval = new wcpsParser.crsList_return(); + retval.start = input.LT(1); + int crsList_StartIndex = input.index(); + Object root_0 = null; + + Token LBRACE89=null; + Token COMMA90=null; + Token RBRACE91=null; + wcpsParser.crsName_return crs = null; + + + Object LBRACE89_tree=null; + Object COMMA90_tree=null; + Object RBRACE91_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 29) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:174:5: ( LBRACE (crs= crsName ( COMMA crs= crsName )* )? RBRACE ) + // src/petascope/wcps/grammar/wcps.g:174:7: LBRACE (crs= crsName ( COMMA crs= crsName )* )? RBRACE + { + root_0 = (Object)adaptor.nil(); + + LBRACE89=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_crsList1673); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACE89_tree = (Object)adaptor.create(LBRACE89); + adaptor.addChild(root_0, LBRACE89_tree); + } + if ( state.backtracking==0 ) { + retval.value = new CrsList(); + } + // src/petascope/wcps/grammar/wcps.g:174:40: (crs= crsName ( COMMA crs= crsName )* )? + int alt24=2; + int LA24_0 = input.LA(1); + + if ( (LA24_0==STRING) ) { + alt24=1; + } + switch (alt24) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:174:41: crs= crsName ( COMMA crs= crsName )* + { + pushFollow(FOLLOW_crsName_in_crsList1680); + crs=crsName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, crs.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((crs!=null?crs.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:174:81: ( COMMA crs= crsName )* + loop23: + do { + int alt23=2; + int LA23_0 = input.LA(1); + + if ( (LA23_0==COMMA) ) { + alt23=1; + } + + + switch (alt23) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:174:82: COMMA crs= crsName + { + COMMA90=(Token)match(input,COMMA,FOLLOW_COMMA_in_crsList1685); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA90_tree = (Object)adaptor.create(COMMA90); + adaptor.addChild(root_0, COMMA90_tree); + } + pushFollow(FOLLOW_crsName_in_crsList1689); + crs=crsName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, crs.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((crs!=null?crs.value:null)); + } + + } + break; + + default : + break loop23; + } + } while (true); + + + } + break; + + } + + RBRACE91=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_crsList1698); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACE91_tree = (Object)adaptor.create(RBRACE91); + adaptor.addChild(root_0, RBRACE91_tree); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 29, crsList_StartIndex); } + } + return retval; + } + // $ANTLR end "crsList" + + public static class rangeExprList_return extends ParserRuleReturnScope { + public RangeExprList value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "rangeExprList" + // src/petascope/wcps/grammar/wcps.g:176:1: rangeExprList returns [RangeExprList value] : LBRACE (re1= rangeExpr ( COMMA re2= rangeExpr )* )? RBRACE ; + public final wcpsParser.rangeExprList_return rangeExprList() throws RecognitionException { + wcpsParser.rangeExprList_return retval = new wcpsParser.rangeExprList_return(); + retval.start = input.LT(1); + int rangeExprList_StartIndex = input.index(); + Object root_0 = null; + + Token LBRACE92=null; + Token COMMA93=null; + Token RBRACE94=null; + wcpsParser.rangeExpr_return re1 = null; + + wcpsParser.rangeExpr_return re2 = null; + + + Object LBRACE92_tree=null; + Object COMMA93_tree=null; + Object RBRACE94_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 30) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:177:5: ( LBRACE (re1= rangeExpr ( COMMA re2= rangeExpr )* )? RBRACE ) + // src/petascope/wcps/grammar/wcps.g:177:7: LBRACE (re1= rangeExpr ( COMMA re2= rangeExpr )* )? RBRACE + { + root_0 = (Object)adaptor.nil(); + + LBRACE92=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_rangeExprList1717); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACE92_tree = (Object)adaptor.create(LBRACE92); + adaptor.addChild(root_0, LBRACE92_tree); + } + if ( state.backtracking==0 ) { + retval.value = new RangeExprList(); + } + // src/petascope/wcps/grammar/wcps.g:177:48: (re1= rangeExpr ( COMMA re2= rangeExpr )* )? + int alt26=2; + int LA26_0 = input.LA(1); + + if ( (LA26_0==STRUCT) ) { + alt26=1; + } + switch (alt26) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:177:49: re1= rangeExpr ( COMMA re2= rangeExpr )* + { + pushFollow(FOLLOW_rangeExpr_in_rangeExprList1724); + re1=rangeExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, re1.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((re1!=null?re1.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:177:91: ( COMMA re2= rangeExpr )* + loop25: + do { + int alt25=2; + int LA25_0 = input.LA(1); + + if ( (LA25_0==COMMA) ) { + alt25=1; + } + + + switch (alt25) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:177:92: COMMA re2= rangeExpr + { + COMMA93=(Token)match(input,COMMA,FOLLOW_COMMA_in_rangeExprList1729); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA93_tree = (Object)adaptor.create(COMMA93); + adaptor.addChild(root_0, COMMA93_tree); + } + pushFollow(FOLLOW_rangeExpr_in_rangeExprList1733); + re2=rangeExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, re2.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((re2!=null?re2.value:null)); + } + + } + break; + + default : + break loop25; + } + } while (true); + + + } + break; + + } + + RBRACE94=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_rangeExprList1742); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACE94_tree = (Object)adaptor.create(RBRACE94); + adaptor.addChild(root_0, RBRACE94_tree); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 30, rangeExprList_StartIndex); } + } + return retval; + } + // $ANTLR end "rangeExprList" + + public static class interpolationMethodList_return extends ParserRuleReturnScope { + public InterpolationMethodList value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "interpolationMethodList" + // src/petascope/wcps/grammar/wcps.g:179:1: interpolationMethodList returns [InterpolationMethodList value] : LBRACE (e= interpolationMethod ( COMMA e= interpolationMethod )* )? RBRACE ; + public final wcpsParser.interpolationMethodList_return interpolationMethodList() throws RecognitionException { + wcpsParser.interpolationMethodList_return retval = new wcpsParser.interpolationMethodList_return(); + retval.start = input.LT(1); + int interpolationMethodList_StartIndex = input.index(); + Object root_0 = null; + + Token LBRACE95=null; + Token COMMA96=null; + Token RBRACE97=null; + wcpsParser.interpolationMethod_return e = null; + + + Object LBRACE95_tree=null; + Object COMMA96_tree=null; + Object RBRACE97_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 31) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:180:2: ( LBRACE (e= interpolationMethod ( COMMA e= interpolationMethod )* )? RBRACE ) + // src/petascope/wcps/grammar/wcps.g:180:4: LBRACE (e= interpolationMethod ( COMMA e= interpolationMethod )* )? RBRACE + { + root_0 = (Object)adaptor.nil(); + + LBRACE95=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_interpolationMethodList1758); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACE95_tree = (Object)adaptor.create(LBRACE95); + adaptor.addChild(root_0, LBRACE95_tree); + } + if ( state.backtracking==0 ) { + retval.value = new InterpolationMethodList(); + } + // src/petascope/wcps/grammar/wcps.g:180:53: (e= interpolationMethod ( COMMA e= interpolationMethod )* )? + int alt28=2; + int LA28_0 = input.LA(1); + + if ( (LA28_0==LPAREN) ) { + alt28=1; + } + switch (alt28) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:180:54: e= interpolationMethod ( COMMA e= interpolationMethod )* + { + pushFollow(FOLLOW_interpolationMethod_in_interpolationMethodList1765); + e=interpolationMethod(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((e!=null?e.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:180:102: ( COMMA e= interpolationMethod )* + loop27: + do { + int alt27=2; + int LA27_0 = input.LA(1); + + if ( (LA27_0==COMMA) ) { + alt27=1; + } + + + switch (alt27) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:180:103: COMMA e= interpolationMethod + { + COMMA96=(Token)match(input,COMMA,FOLLOW_COMMA_in_interpolationMethodList1770); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA96_tree = (Object)adaptor.create(COMMA96); + adaptor.addChild(root_0, COMMA96_tree); + } + pushFollow(FOLLOW_interpolationMethod_in_interpolationMethodList1774); + e=interpolationMethod(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((e!=null?e.value:null)); + } + + } + break; + + default : + break loop27; + } + } while (true); + + + } + break; + + } + + RBRACE97=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_interpolationMethodList1782); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACE97_tree = (Object)adaptor.create(RBRACE97); + adaptor.addChild(root_0, RBRACE97_tree); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 31, interpolationMethodList_StartIndex); } + } + return retval; + } + // $ANTLR end "interpolationMethodList" + + public static class rangeExpr_return extends ParserRuleReturnScope { + public RangeExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "rangeExpr" + // src/petascope/wcps/grammar/wcps.g:182:1: rangeExpr returns [RangeExpr value] : STRUCT LBRACE (field= fieldName COLON expr= scalarExpr ( COMMA field= fieldName COLON expr= scalarExpr )* )? RBRACE ; + public final wcpsParser.rangeExpr_return rangeExpr() throws RecognitionException { + wcpsParser.rangeExpr_return retval = new wcpsParser.rangeExpr_return(); + retval.start = input.LT(1); + int rangeExpr_StartIndex = input.index(); + Object root_0 = null; + + Token STRUCT98=null; + Token LBRACE99=null; + Token COLON100=null; + Token COMMA101=null; + Token COLON102=null; + Token RBRACE103=null; + wcpsParser.fieldName_return field = null; + + wcpsParser.scalarExpr_return expr = null; + + + Object STRUCT98_tree=null; + Object LBRACE99_tree=null; + Object COLON100_tree=null; + Object COMMA101_tree=null; + Object COLON102_tree=null; + Object RBRACE103_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 32) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:183:2: ( STRUCT LBRACE (field= fieldName COLON expr= scalarExpr ( COMMA field= fieldName COLON expr= scalarExpr )* )? RBRACE ) + // src/petascope/wcps/grammar/wcps.g:183:4: STRUCT LBRACE (field= fieldName COLON expr= scalarExpr ( COMMA field= fieldName COLON expr= scalarExpr )* )? RBRACE + { + root_0 = (Object)adaptor.nil(); + + STRUCT98=(Token)match(input,STRUCT,FOLLOW_STRUCT_in_rangeExpr1795); if (state.failed) return retval; + if ( state.backtracking==0 ) { + STRUCT98_tree = (Object)adaptor.create(STRUCT98); + adaptor.addChild(root_0, STRUCT98_tree); + } + LBRACE99=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_rangeExpr1797); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACE99_tree = (Object)adaptor.create(LBRACE99); + adaptor.addChild(root_0, LBRACE99_tree); + } + if ( state.backtracking==0 ) { + retval.value =new RangeExpr(); + } + // src/petascope/wcps/grammar/wcps.g:184:2: (field= fieldName COLON expr= scalarExpr ( COMMA field= fieldName COLON expr= scalarExpr )* )? + int alt30=2; + int LA30_0 = input.LA(1); + + if ( (LA30_0==INTEGERCONSTANT||LA30_0==STRING||LA30_0==NAME) ) { + alt30=1; + } + switch (alt30) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:184:3: field= fieldName COLON expr= scalarExpr ( COMMA field= fieldName COLON expr= scalarExpr )* + { + pushFollow(FOLLOW_fieldName_in_rangeExpr1805); + field=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, field.getTree()); + COLON100=(Token)match(input,COLON,FOLLOW_COLON_in_rangeExpr1807); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON100_tree = (Object)adaptor.create(COLON100); + adaptor.addChild(root_0, COLON100_tree); + } + pushFollow(FOLLOW_scalarExpr_in_rangeExpr1811); + expr=scalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, expr.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((field!=null?field.value:null), (expr!=null?expr.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:185:3: ( COMMA field= fieldName COLON expr= scalarExpr )* + loop29: + do { + int alt29=2; + int LA29_0 = input.LA(1); + + if ( (LA29_0==COMMA) ) { + alt29=1; + } + + + switch (alt29) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:185:4: COMMA field= fieldName COLON expr= scalarExpr + { + COMMA101=(Token)match(input,COMMA,FOLLOW_COMMA_in_rangeExpr1818); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA101_tree = (Object)adaptor.create(COMMA101); + adaptor.addChild(root_0, COMMA101_tree); + } + pushFollow(FOLLOW_fieldName_in_rangeExpr1822); + field=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, field.getTree()); + COLON102=(Token)match(input,COLON,FOLLOW_COLON_in_rangeExpr1824); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON102_tree = (Object)adaptor.create(COLON102); + adaptor.addChild(root_0, COLON102_tree); + } + pushFollow(FOLLOW_scalarExpr_in_rangeExpr1828); + expr=scalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, expr.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((field!=null?field.value:null), (expr!=null?expr.value:null)); + } + + } + break; + + default : + break loop29; + } + } while (true); + + + } + break; + + } + + RBRACE103=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_rangeExpr1839); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACE103_tree = (Object)adaptor.create(RBRACE103); + adaptor.addChild(root_0, RBRACE103_tree); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 32, rangeExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "rangeExpr" + + public static class rangeConstructorExpr_return extends ParserRuleReturnScope { + public RangeConstructorExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "rangeConstructorExpr" + // src/petascope/wcps/grammar/wcps.g:188:1: rangeConstructorExpr returns [RangeConstructorExpr value] : ( STRUCT )? LBRACE field= fieldName COLON expr= coverageExpr ( SEMICOLON field= fieldName COLON expr= coverageExpr )* RBRACE ; + public final wcpsParser.rangeConstructorExpr_return rangeConstructorExpr() throws RecognitionException { + wcpsParser.rangeConstructorExpr_return retval = new wcpsParser.rangeConstructorExpr_return(); + retval.start = input.LT(1); + int rangeConstructorExpr_StartIndex = input.index(); + Object root_0 = null; + + Token STRUCT104=null; + Token LBRACE105=null; + Token COLON106=null; + Token SEMICOLON107=null; + Token COLON108=null; + Token RBRACE109=null; + wcpsParser.fieldName_return field = null; + + wcpsParser.coverageExpr_return expr = null; + + + Object STRUCT104_tree=null; + Object LBRACE105_tree=null; + Object COLON106_tree=null; + Object SEMICOLON107_tree=null; + Object COLON108_tree=null; + Object RBRACE109_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 33) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:189:5: ( ( STRUCT )? LBRACE field= fieldName COLON expr= coverageExpr ( SEMICOLON field= fieldName COLON expr= coverageExpr )* RBRACE ) + // src/petascope/wcps/grammar/wcps.g:189:7: ( STRUCT )? LBRACE field= fieldName COLON expr= coverageExpr ( SEMICOLON field= fieldName COLON expr= coverageExpr )* RBRACE + { + root_0 = (Object)adaptor.nil(); + + // src/petascope/wcps/grammar/wcps.g:189:7: ( STRUCT )? + int alt31=2; + int LA31_0 = input.LA(1); + + if ( (LA31_0==STRUCT) ) { + alt31=1; + } + switch (alt31) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:189:8: STRUCT + { + STRUCT104=(Token)match(input,STRUCT,FOLLOW_STRUCT_in_rangeConstructorExpr1856); if (state.failed) return retval; + if ( state.backtracking==0 ) { + STRUCT104_tree = (Object)adaptor.create(STRUCT104); + adaptor.addChild(root_0, STRUCT104_tree); + } + + } + break; + + } + + LBRACE105=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_rangeConstructorExpr1860); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACE105_tree = (Object)adaptor.create(LBRACE105); + adaptor.addChild(root_0, LBRACE105_tree); + } + pushFollow(FOLLOW_fieldName_in_rangeConstructorExpr1864); + field=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, field.getTree()); + COLON106=(Token)match(input,COLON,FOLLOW_COLON_in_rangeConstructorExpr1866); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON106_tree = (Object)adaptor.create(COLON106); + adaptor.addChild(root_0, COLON106_tree); + } + pushFollow(FOLLOW_coverageExpr_in_rangeConstructorExpr1870); + expr=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, expr.getTree()); + if ( state.backtracking==0 ) { + retval.value = new RangeConstructorExpr((field!=null?field.value:null), (expr!=null?expr.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:190:9: ( SEMICOLON field= fieldName COLON expr= coverageExpr )* + loop32: + do { + int alt32=2; + int LA32_0 = input.LA(1); + + if ( (LA32_0==SEMICOLON) ) { + alt32=1; + } + + + switch (alt32) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:190:10: SEMICOLON field= fieldName COLON expr= coverageExpr + { + SEMICOLON107=(Token)match(input,SEMICOLON,FOLLOW_SEMICOLON_in_rangeConstructorExpr1883); if (state.failed) return retval; + if ( state.backtracking==0 ) { + SEMICOLON107_tree = (Object)adaptor.create(SEMICOLON107); + adaptor.addChild(root_0, SEMICOLON107_tree); + } + pushFollow(FOLLOW_fieldName_in_rangeConstructorExpr1887); + field=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, field.getTree()); + COLON108=(Token)match(input,COLON,FOLLOW_COLON_in_rangeConstructorExpr1889); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON108_tree = (Object)adaptor.create(COLON108); + adaptor.addChild(root_0, COLON108_tree); + } + pushFollow(FOLLOW_coverageExpr_in_rangeConstructorExpr1893); + expr=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, expr.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((field!=null?field.value:null), (expr!=null?expr.value:null)); + } + + } + break; + + default : + break loop32; + } + } while (true); + + RBRACE109=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_rangeConstructorExpr1899); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACE109_tree = (Object)adaptor.create(RBRACE109); + adaptor.addChild(root_0, RBRACE109_tree); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 33, rangeConstructorExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "rangeConstructorExpr" + + public static class crsTransformExpr_return extends ParserRuleReturnScope { + public CrsTransformExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "crsTransformExpr" + // src/petascope/wcps/grammar/wcps.g:192:1: crsTransformExpr returns [CrsTransformExpr value] : CRSTRANSFORM LPAREN e1= coverageExpr COMMA dcl= dimensionIntervalList COMMA fil= fieldInterpolationList RPAREN ; + public final wcpsParser.crsTransformExpr_return crsTransformExpr() throws RecognitionException { + wcpsParser.crsTransformExpr_return retval = new wcpsParser.crsTransformExpr_return(); + retval.start = input.LT(1); + int crsTransformExpr_StartIndex = input.index(); + Object root_0 = null; + + Token CRSTRANSFORM110=null; + Token LPAREN111=null; + Token COMMA112=null; + Token COMMA113=null; + Token RPAREN114=null; + wcpsParser.coverageExpr_return e1 = null; + + wcpsParser.dimensionIntervalList_return dcl = null; + + wcpsParser.fieldInterpolationList_return fil = null; + + + Object CRSTRANSFORM110_tree=null; + Object LPAREN111_tree=null; + Object COMMA112_tree=null; + Object COMMA113_tree=null; + Object RPAREN114_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 34) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:193:2: ( CRSTRANSFORM LPAREN e1= coverageExpr COMMA dcl= dimensionIntervalList COMMA fil= fieldInterpolationList RPAREN ) + // src/petascope/wcps/grammar/wcps.g:193:4: CRSTRANSFORM LPAREN e1= coverageExpr COMMA dcl= dimensionIntervalList COMMA fil= fieldInterpolationList RPAREN + { + root_0 = (Object)adaptor.nil(); + + CRSTRANSFORM110=(Token)match(input,CRSTRANSFORM,FOLLOW_CRSTRANSFORM_in_crsTransformExpr1915); if (state.failed) return retval; + if ( state.backtracking==0 ) { + CRSTRANSFORM110_tree = (Object)adaptor.create(CRSTRANSFORM110); + adaptor.addChild(root_0, CRSTRANSFORM110_tree); + } + LPAREN111=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_crsTransformExpr1917); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN111_tree = (Object)adaptor.create(LPAREN111); + adaptor.addChild(root_0, LPAREN111_tree); + } + pushFollow(FOLLOW_coverageExpr_in_crsTransformExpr1921); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA112=(Token)match(input,COMMA,FOLLOW_COMMA_in_crsTransformExpr1923); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA112_tree = (Object)adaptor.create(COMMA112); + adaptor.addChild(root_0, COMMA112_tree); + } + pushFollow(FOLLOW_dimensionIntervalList_in_crsTransformExpr1927); + dcl=dimensionIntervalList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, dcl.getTree()); + COMMA113=(Token)match(input,COMMA,FOLLOW_COMMA_in_crsTransformExpr1929); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA113_tree = (Object)adaptor.create(COMMA113); + adaptor.addChild(root_0, COMMA113_tree); + } + pushFollow(FOLLOW_fieldInterpolationList_in_crsTransformExpr1933); + fil=fieldInterpolationList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, fil.getTree()); + RPAREN114=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_crsTransformExpr1935); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN114_tree = (Object)adaptor.create(RPAREN114); + adaptor.addChild(root_0, RPAREN114_tree); + } + if ( state.backtracking==0 ) { + retval.value = new CrsTransformExpr((e1!=null?e1.value:null), (dcl!=null?dcl.value:null), (fil!=null?fil.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 34, crsTransformExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "crsTransformExpr" + + public static class fieldInterpolationList_return extends ParserRuleReturnScope { + public FieldInterpolationList value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "fieldInterpolationList" + // src/petascope/wcps/grammar/wcps.g:196:1: fieldInterpolationList returns [FieldInterpolationList value] : LBRACE elem= fieldInterpolationElement ( COMMA elem= fieldInterpolationElement )* RBRACE ; + public final wcpsParser.fieldInterpolationList_return fieldInterpolationList() throws RecognitionException { + wcpsParser.fieldInterpolationList_return retval = new wcpsParser.fieldInterpolationList_return(); + retval.start = input.LT(1); + int fieldInterpolationList_StartIndex = input.index(); + Object root_0 = null; + + Token LBRACE115=null; + Token COMMA116=null; + Token RBRACE117=null; + wcpsParser.fieldInterpolationElement_return elem = null; + + + Object LBRACE115_tree=null; + Object COMMA116_tree=null; + Object RBRACE117_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 35) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:197:2: ( LBRACE elem= fieldInterpolationElement ( COMMA elem= fieldInterpolationElement )* RBRACE ) + // src/petascope/wcps/grammar/wcps.g:197:4: LBRACE elem= fieldInterpolationElement ( COMMA elem= fieldInterpolationElement )* RBRACE + { + root_0 = (Object)adaptor.nil(); + + LBRACE115=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_fieldInterpolationList1952); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACE115_tree = (Object)adaptor.create(LBRACE115); + adaptor.addChild(root_0, LBRACE115_tree); + } + pushFollow(FOLLOW_fieldInterpolationElement_in_fieldInterpolationList1956); + elem=fieldInterpolationElement(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, elem.getTree()); + if ( state.backtracking==0 ) { + retval.value = new FieldInterpolationList((elem!=null?elem.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:198:3: ( COMMA elem= fieldInterpolationElement )* + loop33: + do { + int alt33=2; + int LA33_0 = input.LA(1); + + if ( (LA33_0==COMMA) ) { + alt33=1; + } + + + switch (alt33) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:198:4: COMMA elem= fieldInterpolationElement + { + COMMA116=(Token)match(input,COMMA,FOLLOW_COMMA_in_fieldInterpolationList1963); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA116_tree = (Object)adaptor.create(COMMA116); + adaptor.addChild(root_0, COMMA116_tree); + } + pushFollow(FOLLOW_fieldInterpolationElement_in_fieldInterpolationList1967); + elem=fieldInterpolationElement(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, elem.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((elem!=null?elem.value:null)); + } + + } + break; + + default : + break loop33; + } + } while (true); + + RBRACE117=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_fieldInterpolationList1974); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACE117_tree = (Object)adaptor.create(RBRACE117); + adaptor.addChild(root_0, RBRACE117_tree); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 35, fieldInterpolationList_StartIndex); } + } + return retval; + } + // $ANTLR end "fieldInterpolationList" + + public static class fieldInterpolationElement_return extends ParserRuleReturnScope { + public FieldInterpolationElement value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "fieldInterpolationElement" + // src/petascope/wcps/grammar/wcps.g:200:1: fieldInterpolationElement returns [FieldInterpolationElement value] : aname= fieldName method= interpolationMethod ; + public final wcpsParser.fieldInterpolationElement_return fieldInterpolationElement() throws RecognitionException { + wcpsParser.fieldInterpolationElement_return retval = new wcpsParser.fieldInterpolationElement_return(); + retval.start = input.LT(1); + int fieldInterpolationElement_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.fieldName_return aname = null; + + wcpsParser.interpolationMethod_return method = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 36) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:201:2: (aname= fieldName method= interpolationMethod ) + // src/petascope/wcps/grammar/wcps.g:201:4: aname= fieldName method= interpolationMethod + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_fieldName_in_fieldInterpolationElement1989); + aname=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, aname.getTree()); + pushFollow(FOLLOW_interpolationMethod_in_fieldInterpolationElement1993); + method=interpolationMethod(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, method.getTree()); + if ( state.backtracking==0 ) { + retval.value = new FieldInterpolationElement((aname!=null?aname.value:null), (method!=null?method.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 36, fieldInterpolationElement_StartIndex); } + } + return retval; + } + // $ANTLR end "fieldInterpolationElement" + + public static class unaryInducedExpr_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "unaryInducedExpr" + // src/petascope/wcps/grammar/wcps.g:203:1: unaryInducedExpr returns [CoverageExpr value] : (e6= fieldExpr | e1= unaryArithmeticExpr | e2= exponentialExpr | e3= trigonometricExpr | e4= booleanExpr | e5= castExpr | e7= rangeConstructorExpr ); + public final wcpsParser.unaryInducedExpr_return unaryInducedExpr() throws RecognitionException { + wcpsParser.unaryInducedExpr_return retval = new wcpsParser.unaryInducedExpr_return(); + retval.start = input.LT(1); + int unaryInducedExpr_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.fieldExpr_return e6 = null; + + wcpsParser.unaryArithmeticExpr_return e1 = null; + + wcpsParser.exponentialExpr_return e2 = null; + + wcpsParser.trigonometricExpr_return e3 = null; + + wcpsParser.booleanExpr_return e4 = null; + + wcpsParser.castExpr_return e5 = null; + + wcpsParser.rangeConstructorExpr_return e7 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 37) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:204:5: (e6= fieldExpr | e1= unaryArithmeticExpr | e2= exponentialExpr | e3= trigonometricExpr | e4= booleanExpr | e5= castExpr | e7= rangeConstructorExpr ) + int alt34=7; + alt34 = dfa34.predict(input); + switch (alt34) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:204:7: e6= fieldExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_fieldExpr_in_unaryInducedExpr2013); + e6=fieldExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e6.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e6!=null?e6.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:205:4: e1= unaryArithmeticExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_unaryArithmeticExpr_in_unaryInducedExpr2022); + e1=unaryArithmeticExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:206:7: e2= exponentialExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_exponentialExpr_in_unaryInducedExpr2034); + e2=exponentialExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e2!=null?e2.value:null)); + } + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:207:7: e3= trigonometricExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_trigonometricExpr_in_unaryInducedExpr2046); + e3=trigonometricExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e3.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e3!=null?e3.value:null)); + } + + } + break; + case 5 : + // src/petascope/wcps/grammar/wcps.g:208:7: e4= booleanExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_booleanExpr_in_unaryInducedExpr2058); + e4=booleanExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e4.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e4!=null?e4.value:null)); + } + + } + break; + case 6 : + // src/petascope/wcps/grammar/wcps.g:209:7: e5= castExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_castExpr_in_unaryInducedExpr2070); + e5=castExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e5.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e5!=null?e5.value:null)); + } + + } + break; + case 7 : + // src/petascope/wcps/grammar/wcps.g:210:7: e7= rangeConstructorExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_rangeConstructorExpr_in_unaryInducedExpr2082); + e7=rangeConstructorExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e7.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((e7!=null?e7.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 37, unaryInducedExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "unaryInducedExpr" + + public static class unaryArithmeticExpr_return extends ParserRuleReturnScope { + public CoverageExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "unaryArithmeticExpr" + // src/petascope/wcps/grammar/wcps.g:212:1: unaryArithmeticExpr returns [CoverageExpr value] : (op= ( MINUS | PLUS ) e1= coverageAtom | op= ( SQRT | ABS | RE | IM ) LPAREN e2= coverageExpr RPAREN ); + public final wcpsParser.unaryArithmeticExpr_return unaryArithmeticExpr() throws RecognitionException { + wcpsParser.unaryArithmeticExpr_return retval = new wcpsParser.unaryArithmeticExpr_return(); + retval.start = input.LT(1); + int unaryArithmeticExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + Token LPAREN118=null; + Token RPAREN119=null; + wcpsParser.coverageAtom_return e1 = null; + + wcpsParser.coverageExpr_return e2 = null; + + + Object op_tree=null; + Object LPAREN118_tree=null; + Object RPAREN119_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 38) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:213:5: (op= ( MINUS | PLUS ) e1= coverageAtom | op= ( SQRT | ABS | RE | IM ) LPAREN e2= coverageExpr RPAREN ) + int alt35=2; + int LA35_0 = input.LA(1); + + if ( ((LA35_0>=PLUS && LA35_0<=MINUS)) ) { + alt35=1; + } + else if ( ((LA35_0>=SQRT && LA35_0<=IM)) ) { + alt35=2; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 35, 0, input); + + throw nvae; + } + switch (alt35) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:213:7: op= ( MINUS | PLUS ) e1= coverageAtom + { + root_0 = (Object)adaptor.nil(); + + op=(Token)input.LT(1); + if ( (input.LA(1)>=PLUS && input.LA(1)<=MINUS) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_coverageAtom_in_unaryArithmeticExpr2113); + e1=coverageAtom(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:214:7: op= ( SQRT | ABS | RE | IM ) LPAREN e2= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)input.LT(1); + if ( (input.LA(1)>=SQRT && input.LA(1)<=IM) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + LPAREN118=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_unaryArithmeticExpr2135); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN118_tree = (Object)adaptor.create(LPAREN118); + adaptor.addChild(root_0, LPAREN118_tree); + } + pushFollow(FOLLOW_coverageExpr_in_unaryArithmeticExpr2139); + e2=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + RPAREN119=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_unaryArithmeticExpr2141); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN119_tree = (Object)adaptor.create(RPAREN119); + adaptor.addChild(root_0, RPAREN119_tree); + } + if ( state.backtracking==0 ) { + retval.value = new CoverageExpr((op!=null?op.getText():null), (e2!=null?e2.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 38, unaryArithmeticExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "unaryArithmeticExpr" + + public static class exponentialExpr_return extends ParserRuleReturnScope { + public ExponentialExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "exponentialExpr" + // src/petascope/wcps/grammar/wcps.g:216:1: exponentialExpr returns [ExponentialExpr value] : op= ( EXP | LOG | LN ) LPAREN e1= coverageExpr RPAREN ; + public final wcpsParser.exponentialExpr_return exponentialExpr() throws RecognitionException { + wcpsParser.exponentialExpr_return retval = new wcpsParser.exponentialExpr_return(); + retval.start = input.LT(1); + int exponentialExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + Token LPAREN120=null; + Token RPAREN121=null; + wcpsParser.coverageExpr_return e1 = null; + + + Object op_tree=null; + Object LPAREN120_tree=null; + Object RPAREN121_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 39) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:217:5: (op= ( EXP | LOG | LN ) LPAREN e1= coverageExpr RPAREN ) + // src/petascope/wcps/grammar/wcps.g:217:7: op= ( EXP | LOG | LN ) LPAREN e1= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)input.LT(1); + if ( (input.LA(1)>=EXP && input.LA(1)<=LN) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + LPAREN120=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_exponentialExpr2172); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN120_tree = (Object)adaptor.create(LPAREN120); + adaptor.addChild(root_0, LPAREN120_tree); + } + pushFollow(FOLLOW_coverageExpr_in_exponentialExpr2176); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN121=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_exponentialExpr2178); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN121_tree = (Object)adaptor.create(RPAREN121); + adaptor.addChild(root_0, RPAREN121_tree); + } + if ( state.backtracking==0 ) { + retval.value = new ExponentialExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 39, exponentialExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "exponentialExpr" + + public static class trigonometricExpr_return extends ParserRuleReturnScope { + public TrigonometricExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "trigonometricExpr" + // src/petascope/wcps/grammar/wcps.g:219:1: trigonometricExpr returns [TrigonometricExpr value] : op= ( SIN | COS | TAN | SINH | COSH | TANH | ARCSIN | ARCCOS | ARCTAN ) LPAREN e1= coverageExpr RPAREN ; + public final wcpsParser.trigonometricExpr_return trigonometricExpr() throws RecognitionException { + wcpsParser.trigonometricExpr_return retval = new wcpsParser.trigonometricExpr_return(); + retval.start = input.LT(1); + int trigonometricExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + Token LPAREN122=null; + Token RPAREN123=null; + wcpsParser.coverageExpr_return e1 = null; + + + Object op_tree=null; + Object LPAREN122_tree=null; + Object RPAREN123_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 40) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:220:5: (op= ( SIN | COS | TAN | SINH | COSH | TANH | ARCSIN | ARCCOS | ARCTAN ) LPAREN e1= coverageExpr RPAREN ) + // src/petascope/wcps/grammar/wcps.g:220:7: op= ( SIN | COS | TAN | SINH | COSH | TANH | ARCSIN | ARCCOS | ARCTAN ) LPAREN e1= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)input.LT(1); + if ( (input.LA(1)>=SIN && input.LA(1)<=ARCTAN) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + LPAREN122=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_trigonometricExpr2221); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN122_tree = (Object)adaptor.create(LPAREN122); + adaptor.addChild(root_0, LPAREN122_tree); + } + pushFollow(FOLLOW_coverageExpr_in_trigonometricExpr2225); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN123=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_trigonometricExpr2227); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN123_tree = (Object)adaptor.create(RPAREN123); + adaptor.addChild(root_0, RPAREN123_tree); + } + if ( state.backtracking==0 ) { + retval.value = new TrigonometricExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 40, trigonometricExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "trigonometricExpr" + + public static class booleanExpr_return extends ParserRuleReturnScope { + public BooleanExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "booleanExpr" + // src/petascope/wcps/grammar/wcps.g:222:1: booleanExpr returns [BooleanExpr value] : (op= NOT e1= coverageExpr | op= BIT LPAREN e1= coverageExpr COMMA e2= indexExpr RPAREN ); + public final wcpsParser.booleanExpr_return booleanExpr() throws RecognitionException { + wcpsParser.booleanExpr_return retval = new wcpsParser.booleanExpr_return(); + retval.start = input.LT(1); + int booleanExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + Token LPAREN124=null; + Token COMMA125=null; + Token RPAREN126=null; + wcpsParser.coverageExpr_return e1 = null; + + wcpsParser.indexExpr_return e2 = null; + + + Object op_tree=null; + Object LPAREN124_tree=null; + Object COMMA125_tree=null; + Object RPAREN126_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 41) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:223:5: (op= NOT e1= coverageExpr | op= BIT LPAREN e1= coverageExpr COMMA e2= indexExpr RPAREN ) + int alt36=2; + int LA36_0 = input.LA(1); + + if ( (LA36_0==NOT) ) { + alt36=1; + } + else if ( (LA36_0==BIT) ) { + alt36=2; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 36, 0, input); + + throw nvae; + } + switch (alt36) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:223:7: op= NOT e1= coverageExpr + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,NOT,FOLLOW_NOT_in_booleanExpr2250); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + pushFollow(FOLLOW_coverageExpr_in_booleanExpr2254); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new BooleanExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:224:7: op= BIT LPAREN e1= coverageExpr COMMA e2= indexExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,BIT,FOLLOW_BIT_in_booleanExpr2266); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN124=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_booleanExpr2268); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN124_tree = (Object)adaptor.create(LPAREN124); + adaptor.addChild(root_0, LPAREN124_tree); + } + pushFollow(FOLLOW_coverageExpr_in_booleanExpr2272); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA125=(Token)match(input,COMMA,FOLLOW_COMMA_in_booleanExpr2274); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA125_tree = (Object)adaptor.create(COMMA125); + adaptor.addChild(root_0, COMMA125_tree); + } + pushFollow(FOLLOW_indexExpr_in_booleanExpr2278); + e2=indexExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + RPAREN126=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_booleanExpr2280); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN126_tree = (Object)adaptor.create(RPAREN126); + adaptor.addChild(root_0, RPAREN126_tree); + } + if ( state.backtracking==0 ) { + retval.value = new BooleanExpr((op!=null?op.getText():null), (e1!=null?e1.value:null), (e2!=null?e2.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 41, booleanExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "booleanExpr" + + public static class indexExpr_return extends ParserRuleReturnScope { + public IndexExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "indexExpr" + // src/petascope/wcps/grammar/wcps.g:226:1: indexExpr returns [IndexExpr value] : e1= indexTerm (op= ( PLUS | MINUS ) e2= indexTerm )* ; + public final wcpsParser.indexExpr_return indexExpr() throws RecognitionException { + wcpsParser.indexExpr_return retval = new wcpsParser.indexExpr_return(); + retval.start = input.LT(1); + int indexExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.indexTerm_return e1 = null; + + wcpsParser.indexTerm_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 42) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:227:5: (e1= indexTerm (op= ( PLUS | MINUS ) e2= indexTerm )* ) + // src/petascope/wcps/grammar/wcps.g:227:7: e1= indexTerm (op= ( PLUS | MINUS ) e2= indexTerm )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_indexTerm_in_indexExpr2303); + e1=indexTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:228:3: (op= ( PLUS | MINUS ) e2= indexTerm )* + loop37: + do { + int alt37=2; + int LA37_0 = input.LA(1); + + if ( ((LA37_0>=PLUS && LA37_0<=MINUS)) ) { + alt37=1; + } + + + switch (alt37) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:228:4: op= ( PLUS | MINUS ) e2= indexTerm + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=PLUS && input.LA(1)<=MINUS) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_indexTerm_in_indexExpr2321); + e2=indexTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new IndexExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop37; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 42, indexExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "indexExpr" + + public static class indexTerm_return extends ParserRuleReturnScope { + public IndexExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "indexTerm" + // src/petascope/wcps/grammar/wcps.g:230:1: indexTerm returns [IndexExpr value] : e1= indexFactor ( (op= ( MULT | DIVIDE ) e2= indexFactor ) )* ; + public final wcpsParser.indexTerm_return indexTerm() throws RecognitionException { + wcpsParser.indexTerm_return retval = new wcpsParser.indexTerm_return(); + retval.start = input.LT(1); + int indexTerm_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.indexFactor_return e1 = null; + + wcpsParser.indexFactor_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 43) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:231:5: (e1= indexFactor ( (op= ( MULT | DIVIDE ) e2= indexFactor ) )* ) + // src/petascope/wcps/grammar/wcps.g:231:7: e1= indexFactor ( (op= ( MULT | DIVIDE ) e2= indexFactor ) )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_indexFactor_in_indexTerm2346); + e1=indexFactor(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:232:6: ( (op= ( MULT | DIVIDE ) e2= indexFactor ) )* + loop38: + do { + int alt38=2; + int LA38_0 = input.LA(1); + + if ( ((LA38_0>=MULT && LA38_0<=DIVIDE)) ) { + alt38=1; + } + + + switch (alt38) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:232:7: (op= ( MULT | DIVIDE ) e2= indexFactor ) + { + // src/petascope/wcps/grammar/wcps.g:232:7: (op= ( MULT | DIVIDE ) e2= indexFactor ) + // src/petascope/wcps/grammar/wcps.g:232:8: op= ( MULT | DIVIDE ) e2= indexFactor + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=MULT && input.LA(1)<=DIVIDE) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_indexFactor_in_indexTerm2367); + e2=indexFactor(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new IndexExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + + + } + break; + + default : + break loop38; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 43, indexTerm_StartIndex); } + } + return retval; + } + // $ANTLR end "indexTerm" + + public static class indexFactor_return extends ParserRuleReturnScope { + public IndexExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "indexFactor" + // src/petascope/wcps/grammar/wcps.g:234:1: indexFactor returns [IndexExpr value] : (e= INTEGERCONSTANT | op= ROUND LPAREN e1= numericScalarExpr RPAREN | ( LPAREN e2= indexExpr RPAREN ) ); + public final wcpsParser.indexFactor_return indexFactor() throws RecognitionException { + wcpsParser.indexFactor_return retval = new wcpsParser.indexFactor_return(); + retval.start = input.LT(1); + int indexFactor_StartIndex = input.index(); + Object root_0 = null; + + Token e=null; + Token op=null; + Token LPAREN127=null; + Token RPAREN128=null; + Token LPAREN129=null; + Token RPAREN130=null; + wcpsParser.numericScalarExpr_return e1 = null; + + wcpsParser.indexExpr_return e2 = null; + + + Object e_tree=null; + Object op_tree=null; + Object LPAREN127_tree=null; + Object RPAREN128_tree=null; + Object LPAREN129_tree=null; + Object RPAREN130_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 44) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:235:5: (e= INTEGERCONSTANT | op= ROUND LPAREN e1= numericScalarExpr RPAREN | ( LPAREN e2= indexExpr RPAREN ) ) + int alt39=3; + switch ( input.LA(1) ) { + case INTEGERCONSTANT: + { + alt39=1; + } + break; + case ROUND: + { + alt39=2; + } + break; + case LPAREN: + { + alt39=3; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 39, 0, input); + + throw nvae; + } + + switch (alt39) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:235:7: e= INTEGERCONSTANT + { + root_0 = (Object)adaptor.nil(); + + e=(Token)match(input,INTEGERCONSTANT,FOLLOW_INTEGERCONSTANT_in_indexFactor2394); if (state.failed) return retval; + if ( state.backtracking==0 ) { + e_tree = (Object)adaptor.create(e); + adaptor.addChild(root_0, e_tree); + } + if ( state.backtracking==0 ) { + retval.value = new IndexExpr((e!=null?e.getText():null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:236:7: op= ROUND LPAREN e1= numericScalarExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,ROUND,FOLLOW_ROUND_in_indexFactor2407); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN127=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_indexFactor2409); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN127_tree = (Object)adaptor.create(LPAREN127); + adaptor.addChild(root_0, LPAREN127_tree); + } + pushFollow(FOLLOW_numericScalarExpr_in_indexFactor2413); + e1=numericScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN128=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_indexFactor2415); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN128_tree = (Object)adaptor.create(RPAREN128); + adaptor.addChild(root_0, RPAREN128_tree); + } + if ( state.backtracking==0 ) { + retval.value = new IndexExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:237:7: ( LPAREN e2= indexExpr RPAREN ) + { + root_0 = (Object)adaptor.nil(); + + // src/petascope/wcps/grammar/wcps.g:237:7: ( LPAREN e2= indexExpr RPAREN ) + // src/petascope/wcps/grammar/wcps.g:237:8: LPAREN e2= indexExpr RPAREN + { + LPAREN129=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_indexFactor2427); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN129_tree = (Object)adaptor.create(LPAREN129); + adaptor.addChild(root_0, LPAREN129_tree); + } + pushFollow(FOLLOW_indexExpr_in_indexFactor2431); + e2=indexExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + RPAREN130=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_indexFactor2433); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN130_tree = (Object)adaptor.create(RPAREN130); + adaptor.addChild(root_0, RPAREN130_tree); + } + if ( state.backtracking==0 ) { + retval.value = (e2!=null?e2.value:null); + } + + } + + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 44, indexFactor_StartIndex); } + } + return retval; + } + // $ANTLR end "indexFactor" + + public static class stringScalarExpr_return extends ParserRuleReturnScope { + public StringScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "stringScalarExpr" + // src/petascope/wcps/grammar/wcps.g:239:1: stringScalarExpr returns [StringScalarExpr value] : (op= IDENTIFIER LPAREN e1= coverageExpr RPAREN | e= STRING ); + public final wcpsParser.stringScalarExpr_return stringScalarExpr() throws RecognitionException { + wcpsParser.stringScalarExpr_return retval = new wcpsParser.stringScalarExpr_return(); + retval.start = input.LT(1); + int stringScalarExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + Token e=null; + Token LPAREN131=null; + Token RPAREN132=null; + wcpsParser.coverageExpr_return e1 = null; + + + Object op_tree=null; + Object e_tree=null; + Object LPAREN131_tree=null; + Object RPAREN132_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 45) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:241:5: (op= IDENTIFIER LPAREN e1= coverageExpr RPAREN | e= STRING ) + int alt40=2; + int LA40_0 = input.LA(1); + + if ( (LA40_0==IDENTIFIER) ) { + alt40=1; + } + else if ( (LA40_0==STRING) ) { + alt40=2; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 40, 0, input); + + throw nvae; + } + switch (alt40) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:241:7: op= IDENTIFIER LPAREN e1= coverageExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_stringScalarExpr2460); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN131=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_stringScalarExpr2462); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN131_tree = (Object)adaptor.create(LPAREN131); + adaptor.addChild(root_0, LPAREN131_tree); + } + pushFollow(FOLLOW_coverageExpr_in_stringScalarExpr2466); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN132=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_stringScalarExpr2468); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN132_tree = (Object)adaptor.create(RPAREN132); + adaptor.addChild(root_0, RPAREN132_tree); + } + if ( state.backtracking==0 ) { + retval.value = new StringScalarExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:242:7: e= STRING + { + root_0 = (Object)adaptor.nil(); + + e=(Token)match(input,STRING,FOLLOW_STRING_in_stringScalarExpr2481); if (state.failed) return retval; + if ( state.backtracking==0 ) { + e_tree = (Object)adaptor.create(e); + adaptor.addChild(root_0, e_tree); + } + if ( state.backtracking==0 ) { + retval.value = new StringScalarExpr((e!=null?e.getText():null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 45, stringScalarExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "stringScalarExpr" + + public static class scaleExpr_return extends ParserRuleReturnScope { + public ScaleExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "scaleExpr" + // src/petascope/wcps/grammar/wcps.g:244:1: scaleExpr returns [ScaleExpr value] : SCALE LPAREN e1= coverageExpr COMMA dil= dimensionIntervalList ( COMMA fil= fieldInterpolationList )? RPAREN ; + public final wcpsParser.scaleExpr_return scaleExpr() throws RecognitionException { + wcpsParser.scaleExpr_return retval = new wcpsParser.scaleExpr_return(); + retval.start = input.LT(1); + int scaleExpr_StartIndex = input.index(); + Object root_0 = null; + + Token SCALE133=null; + Token LPAREN134=null; + Token COMMA135=null; + Token COMMA136=null; + Token RPAREN137=null; + wcpsParser.coverageExpr_return e1 = null; + + wcpsParser.dimensionIntervalList_return dil = null; + + wcpsParser.fieldInterpolationList_return fil = null; + + + Object SCALE133_tree=null; + Object LPAREN134_tree=null; + Object COMMA135_tree=null; + Object COMMA136_tree=null; + Object RPAREN137_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 46) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:245:2: ( SCALE LPAREN e1= coverageExpr COMMA dil= dimensionIntervalList ( COMMA fil= fieldInterpolationList )? RPAREN ) + // src/petascope/wcps/grammar/wcps.g:245:4: SCALE LPAREN e1= coverageExpr COMMA dil= dimensionIntervalList ( COMMA fil= fieldInterpolationList )? RPAREN + { + root_0 = (Object)adaptor.nil(); + + SCALE133=(Token)match(input,SCALE,FOLLOW_SCALE_in_scaleExpr2499); if (state.failed) return retval; + if ( state.backtracking==0 ) { + SCALE133_tree = (Object)adaptor.create(SCALE133); + adaptor.addChild(root_0, SCALE133_tree); + } + LPAREN134=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_scaleExpr2501); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN134_tree = (Object)adaptor.create(LPAREN134); + adaptor.addChild(root_0, LPAREN134_tree); + } + pushFollow(FOLLOW_coverageExpr_in_scaleExpr2505); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA135=(Token)match(input,COMMA,FOLLOW_COMMA_in_scaleExpr2507); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA135_tree = (Object)adaptor.create(COMMA135); + adaptor.addChild(root_0, COMMA135_tree); + } + pushFollow(FOLLOW_dimensionIntervalList_in_scaleExpr2511); + dil=dimensionIntervalList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, dil.getTree()); + if ( state.backtracking==0 ) { + retval.value = new ScaleExpr((e1!=null?e1.value:null), (dil!=null?dil.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:246:13: ( COMMA fil= fieldInterpolationList )? + int alt41=2; + int LA41_0 = input.LA(1); + + if ( (LA41_0==COMMA) ) { + alt41=1; + } + switch (alt41) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:246:14: COMMA fil= fieldInterpolationList + { + COMMA136=(Token)match(input,COMMA,FOLLOW_COMMA_in_scaleExpr2528); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA136_tree = (Object)adaptor.create(COMMA136); + adaptor.addChild(root_0, COMMA136_tree); + } + pushFollow(FOLLOW_fieldInterpolationList_in_scaleExpr2532); + fil=fieldInterpolationList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, fil.getTree()); + if ( state.backtracking==0 ) { + retval.value.addInterpolationList((fil!=null?fil.value:null)); + } + + } + break; + + } + + RPAREN137=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_scaleExpr2557); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN137_tree = (Object)adaptor.create(RPAREN137); + adaptor.addChild(root_0, RPAREN137_tree); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 46, scaleExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "scaleExpr" + + public static class subsetExpr_return extends ParserRuleReturnScope { + public SubsetExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "subsetExpr" + // src/petascope/wcps/grammar/wcps.g:250:1: subsetExpr returns [SubsetExpr value] : (e1= trimExpr | e2= sliceExpr | e3= extendExpr ); + public final wcpsParser.subsetExpr_return subsetExpr() throws RecognitionException { + wcpsParser.subsetExpr_return retval = new wcpsParser.subsetExpr_return(); + retval.start = input.LT(1); + int subsetExpr_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.trimExpr_return e1 = null; + + wcpsParser.sliceExpr_return e2 = null; + + wcpsParser.extendExpr_return e3 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 47) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:251:2: (e1= trimExpr | e2= sliceExpr | e3= extendExpr ) + int alt42=3; + alt42 = dfa42.predict(input); + switch (alt42) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:251:4: e1= trimExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_trimExpr_in_subsetExpr2575); + e1=trimExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new SubsetExpr((e1!=null?e1.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:252:4: e2= sliceExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_sliceExpr_in_subsetExpr2584); + e2=sliceExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new SubsetExpr((e2!=null?e2.value:null)); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:253:4: e3= extendExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_extendExpr_in_subsetExpr2593); + e3=extendExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e3.getTree()); + if ( state.backtracking==0 ) { + retval.value = new SubsetExpr((e3!=null?e3.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 47, subsetExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "subsetExpr" + + public static class trimExpr_return extends ParserRuleReturnScope { + public TrimExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "trimExpr" + // src/petascope/wcps/grammar/wcps.g:255:1: trimExpr returns [TrimExpr value] : (e1= coverageAtom LBRACKET dil= dimensionIntervalList RBRACKET | TRIM LPAREN e2= coverageExpr COMMA LBRACE dil= dimensionIntervalList RBRACE RPAREN ); + public final wcpsParser.trimExpr_return trimExpr() throws RecognitionException { + wcpsParser.trimExpr_return retval = new wcpsParser.trimExpr_return(); + retval.start = input.LT(1); + int trimExpr_StartIndex = input.index(); + Object root_0 = null; + + Token LBRACKET138=null; + Token RBRACKET139=null; + Token TRIM140=null; + Token LPAREN141=null; + Token COMMA142=null; + Token LBRACE143=null; + Token RBRACE144=null; + Token RPAREN145=null; + wcpsParser.coverageAtom_return e1 = null; + + wcpsParser.dimensionIntervalList_return dil = null; + + wcpsParser.coverageExpr_return e2 = null; + + + Object LBRACKET138_tree=null; + Object RBRACKET139_tree=null; + Object TRIM140_tree=null; + Object LPAREN141_tree=null; + Object COMMA142_tree=null; + Object LBRACE143_tree=null; + Object RBRACE144_tree=null; + Object RPAREN145_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 48) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:256:2: (e1= coverageAtom LBRACKET dil= dimensionIntervalList RBRACKET | TRIM LPAREN e2= coverageExpr COMMA LBRACE dil= dimensionIntervalList RBRACE RPAREN ) + int alt43=2; + alt43 = dfa43.predict(input); + switch (alt43) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:256:4: e1= coverageAtom LBRACKET dil= dimensionIntervalList RBRACKET + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageAtom_in_trimExpr2610); + e1=coverageAtom(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + LBRACKET138=(Token)match(input,LBRACKET,FOLLOW_LBRACKET_in_trimExpr2612); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACKET138_tree = (Object)adaptor.create(LBRACKET138); + adaptor.addChild(root_0, LBRACKET138_tree); + } + pushFollow(FOLLOW_dimensionIntervalList_in_trimExpr2616); + dil=dimensionIntervalList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, dil.getTree()); + RBRACKET139=(Token)match(input,RBRACKET,FOLLOW_RBRACKET_in_trimExpr2618); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACKET139_tree = (Object)adaptor.create(RBRACKET139); + adaptor.addChild(root_0, RBRACKET139_tree); + } + if ( state.backtracking==0 ) { + retval.value = new TrimExpr((e1!=null?e1.value:null), (dil!=null?dil.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:257:6: TRIM LPAREN e2= coverageExpr COMMA LBRACE dil= dimensionIntervalList RBRACE RPAREN + { + root_0 = (Object)adaptor.nil(); + + TRIM140=(Token)match(input,TRIM,FOLLOW_TRIM_in_trimExpr2627); if (state.failed) return retval; + if ( state.backtracking==0 ) { + TRIM140_tree = (Object)adaptor.create(TRIM140); + adaptor.addChild(root_0, TRIM140_tree); + } + LPAREN141=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_trimExpr2629); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN141_tree = (Object)adaptor.create(LPAREN141); + adaptor.addChild(root_0, LPAREN141_tree); + } + pushFollow(FOLLOW_coverageExpr_in_trimExpr2633); + e2=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + COMMA142=(Token)match(input,COMMA,FOLLOW_COMMA_in_trimExpr2635); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA142_tree = (Object)adaptor.create(COMMA142); + adaptor.addChild(root_0, COMMA142_tree); + } + LBRACE143=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_trimExpr2637); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACE143_tree = (Object)adaptor.create(LBRACE143); + adaptor.addChild(root_0, LBRACE143_tree); + } + pushFollow(FOLLOW_dimensionIntervalList_in_trimExpr2641); + dil=dimensionIntervalList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, dil.getTree()); + RBRACE144=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_trimExpr2643); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACE144_tree = (Object)adaptor.create(RBRACE144); + adaptor.addChild(root_0, RBRACE144_tree); + } + RPAREN145=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_trimExpr2645); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN145_tree = (Object)adaptor.create(RPAREN145); + adaptor.addChild(root_0, RPAREN145_tree); + } + if ( state.backtracking==0 ) { + retval.value = new TrimExpr((e2!=null?e2.value:null), (dil!=null?dil.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 48, trimExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "trimExpr" + + public static class sliceExpr_return extends ParserRuleReturnScope { + public SliceExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "sliceExpr" + // src/petascope/wcps/grammar/wcps.g:259:1: sliceExpr returns [SliceExpr value] : (e1= coverageAtom LBRACKET dpl= dimensionPointList RBRACKET | SLICE LPAREN e2= coverageExpr COMMA LBRACE dpl= dimensionPointList RBRACE RPAREN ); + public final wcpsParser.sliceExpr_return sliceExpr() throws RecognitionException { + wcpsParser.sliceExpr_return retval = new wcpsParser.sliceExpr_return(); + retval.start = input.LT(1); + int sliceExpr_StartIndex = input.index(); + Object root_0 = null; + + Token LBRACKET146=null; + Token RBRACKET147=null; + Token SLICE148=null; + Token LPAREN149=null; + Token COMMA150=null; + Token LBRACE151=null; + Token RBRACE152=null; + Token RPAREN153=null; + wcpsParser.coverageAtom_return e1 = null; + + wcpsParser.dimensionPointList_return dpl = null; + + wcpsParser.coverageExpr_return e2 = null; + + + Object LBRACKET146_tree=null; + Object RBRACKET147_tree=null; + Object SLICE148_tree=null; + Object LPAREN149_tree=null; + Object COMMA150_tree=null; + Object LBRACE151_tree=null; + Object RBRACE152_tree=null; + Object RPAREN153_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 49) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:260:2: (e1= coverageAtom LBRACKET dpl= dimensionPointList RBRACKET | SLICE LPAREN e2= coverageExpr COMMA LBRACE dpl= dimensionPointList RBRACE RPAREN ) + int alt44=2; + alt44 = dfa44.predict(input); + switch (alt44) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:260:4: e1= coverageAtom LBRACKET dpl= dimensionPointList RBRACKET + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageAtom_in_sliceExpr2662); + e1=coverageAtom(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + LBRACKET146=(Token)match(input,LBRACKET,FOLLOW_LBRACKET_in_sliceExpr2664); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACKET146_tree = (Object)adaptor.create(LBRACKET146); + adaptor.addChild(root_0, LBRACKET146_tree); + } + pushFollow(FOLLOW_dimensionPointList_in_sliceExpr2668); + dpl=dimensionPointList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, dpl.getTree()); + RBRACKET147=(Token)match(input,RBRACKET,FOLLOW_RBRACKET_in_sliceExpr2670); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACKET147_tree = (Object)adaptor.create(RBRACKET147); + adaptor.addChild(root_0, RBRACKET147_tree); + } + if ( state.backtracking==0 ) { + retval.value = new SliceExpr((e1!=null?e1.value:null), (dpl!=null?dpl.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:261:4: SLICE LPAREN e2= coverageExpr COMMA LBRACE dpl= dimensionPointList RBRACE RPAREN + { + root_0 = (Object)adaptor.nil(); + + SLICE148=(Token)match(input,SLICE,FOLLOW_SLICE_in_sliceExpr2677); if (state.failed) return retval; + if ( state.backtracking==0 ) { + SLICE148_tree = (Object)adaptor.create(SLICE148); + adaptor.addChild(root_0, SLICE148_tree); + } + LPAREN149=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_sliceExpr2679); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN149_tree = (Object)adaptor.create(LPAREN149); + adaptor.addChild(root_0, LPAREN149_tree); + } + pushFollow(FOLLOW_coverageExpr_in_sliceExpr2683); + e2=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + COMMA150=(Token)match(input,COMMA,FOLLOW_COMMA_in_sliceExpr2685); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA150_tree = (Object)adaptor.create(COMMA150); + adaptor.addChild(root_0, COMMA150_tree); + } + LBRACE151=(Token)match(input,LBRACE,FOLLOW_LBRACE_in_sliceExpr2687); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LBRACE151_tree = (Object)adaptor.create(LBRACE151); + adaptor.addChild(root_0, LBRACE151_tree); + } + pushFollow(FOLLOW_dimensionPointList_in_sliceExpr2691); + dpl=dimensionPointList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, dpl.getTree()); + RBRACE152=(Token)match(input,RBRACE,FOLLOW_RBRACE_in_sliceExpr2693); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RBRACE152_tree = (Object)adaptor.create(RBRACE152); + adaptor.addChild(root_0, RBRACE152_tree); + } + RPAREN153=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_sliceExpr2695); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN153_tree = (Object)adaptor.create(RPAREN153); + adaptor.addChild(root_0, RPAREN153_tree); + } + if ( state.backtracking==0 ) { + retval.value = new SliceExpr((e2!=null?e2.value:null), (dpl!=null?dpl.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 49, sliceExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "sliceExpr" + + public static class extendExpr_return extends ParserRuleReturnScope { + public ExtendExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "extendExpr" + // src/petascope/wcps/grammar/wcps.g:263:1: extendExpr returns [ExtendExpr value] : EXTEND LPAREN e1= coverageExpr COMMA dil= dimensionIntervalList RPAREN ; + public final wcpsParser.extendExpr_return extendExpr() throws RecognitionException { + wcpsParser.extendExpr_return retval = new wcpsParser.extendExpr_return(); + retval.start = input.LT(1); + int extendExpr_StartIndex = input.index(); + Object root_0 = null; + + Token EXTEND154=null; + Token LPAREN155=null; + Token COMMA156=null; + Token RPAREN157=null; + wcpsParser.coverageExpr_return e1 = null; + + wcpsParser.dimensionIntervalList_return dil = null; + + + Object EXTEND154_tree=null; + Object LPAREN155_tree=null; + Object COMMA156_tree=null; + Object RPAREN157_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 50) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:264:2: ( EXTEND LPAREN e1= coverageExpr COMMA dil= dimensionIntervalList RPAREN ) + // src/petascope/wcps/grammar/wcps.g:264:4: EXTEND LPAREN e1= coverageExpr COMMA dil= dimensionIntervalList RPAREN + { + root_0 = (Object)adaptor.nil(); + + EXTEND154=(Token)match(input,EXTEND,FOLLOW_EXTEND_in_extendExpr2710); if (state.failed) return retval; + if ( state.backtracking==0 ) { + EXTEND154_tree = (Object)adaptor.create(EXTEND154); + adaptor.addChild(root_0, EXTEND154_tree); + } + LPAREN155=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_extendExpr2712); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN155_tree = (Object)adaptor.create(LPAREN155); + adaptor.addChild(root_0, LPAREN155_tree); + } + pushFollow(FOLLOW_coverageExpr_in_extendExpr2716); + e1=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COMMA156=(Token)match(input,COMMA,FOLLOW_COMMA_in_extendExpr2718); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA156_tree = (Object)adaptor.create(COMMA156); + adaptor.addChild(root_0, COMMA156_tree); + } + pushFollow(FOLLOW_dimensionIntervalList_in_extendExpr2722); + dil=dimensionIntervalList(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, dil.getTree()); + RPAREN157=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_extendExpr2724); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN157_tree = (Object)adaptor.create(RPAREN157); + adaptor.addChild(root_0, RPAREN157_tree); + } + if ( state.backtracking==0 ) { + retval.value = new ExtendExpr((e1!=null?e1.value:null), (dil!=null?dil.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 50, extendExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "extendExpr" + + public static class castExpr_return extends ParserRuleReturnScope { + public CastExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "castExpr" + // src/petascope/wcps/grammar/wcps.g:266:1: castExpr returns [CastExpr value] : LPAREN e1= rangeType RPAREN e2= coverageExpr ; + public final wcpsParser.castExpr_return castExpr() throws RecognitionException { + wcpsParser.castExpr_return retval = new wcpsParser.castExpr_return(); + retval.start = input.LT(1); + int castExpr_StartIndex = input.index(); + Object root_0 = null; + + Token LPAREN158=null; + Token RPAREN159=null; + wcpsParser.rangeType_return e1 = null; + + wcpsParser.coverageExpr_return e2 = null; + + + Object LPAREN158_tree=null; + Object RPAREN159_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 51) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:267:5: ( LPAREN e1= rangeType RPAREN e2= coverageExpr ) + // src/petascope/wcps/grammar/wcps.g:267:7: LPAREN e1= rangeType RPAREN e2= coverageExpr + { + root_0 = (Object)adaptor.nil(); + + LPAREN158=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_castExpr2742); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN158_tree = (Object)adaptor.create(LPAREN158); + adaptor.addChild(root_0, LPAREN158_tree); + } + pushFollow(FOLLOW_rangeType_in_castExpr2746); + e1=rangeType(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN159=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_castExpr2748); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN159_tree = (Object)adaptor.create(RPAREN159); + adaptor.addChild(root_0, RPAREN159_tree); + } + pushFollow(FOLLOW_coverageExpr_in_castExpr2752); + e2=coverageExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new CastExpr((e2!=null?e2.value:null), (e1!=null?e1.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 51, castExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "castExpr" + + public static class rangeType_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "rangeType" + // src/petascope/wcps/grammar/wcps.g:269:1: rangeType returns [String value] : (type= ( BOOLEAN | CHAR | SHORT | LONG | FLOAT | DOUBLE | COMPLEX | COMPLEX2 ) | UNSIGNED type= ( CHAR | SHORT | LONG ) ); + public final wcpsParser.rangeType_return rangeType() throws RecognitionException { + wcpsParser.rangeType_return retval = new wcpsParser.rangeType_return(); + retval.start = input.LT(1); + int rangeType_StartIndex = input.index(); + Object root_0 = null; + + Token type=null; + Token UNSIGNED160=null; + + Object type_tree=null; + Object UNSIGNED160_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 52) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:270:5: (type= ( BOOLEAN | CHAR | SHORT | LONG | FLOAT | DOUBLE | COMPLEX | COMPLEX2 ) | UNSIGNED type= ( CHAR | SHORT | LONG ) ) + int alt45=2; + int LA45_0 = input.LA(1); + + if ( ((LA45_0>=BOOLEAN && LA45_0<=COMPLEX2)) ) { + alt45=1; + } + else if ( (LA45_0==UNSIGNED) ) { + alt45=2; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 45, 0, input); + + throw nvae; + } + switch (alt45) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:270:7: type= ( BOOLEAN | CHAR | SHORT | LONG | FLOAT | DOUBLE | COMPLEX | COMPLEX2 ) + { + root_0 = (Object)adaptor.nil(); + + type=(Token)input.LT(1); + if ( (input.LA(1)>=BOOLEAN && input.LA(1)<=COMPLEX2) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(type)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + if ( state.backtracking==0 ) { + retval.value = new String((type!=null?type.getText():null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:271:7: UNSIGNED type= ( CHAR | SHORT | LONG ) + { + root_0 = (Object)adaptor.nil(); + + UNSIGNED160=(Token)match(input,UNSIGNED,FOLLOW_UNSIGNED_in_rangeType2801); if (state.failed) return retval; + if ( state.backtracking==0 ) { + UNSIGNED160_tree = (Object)adaptor.create(UNSIGNED160); + adaptor.addChild(root_0, UNSIGNED160_tree); + } + type=(Token)input.LT(1); + if ( (input.LA(1)>=CHAR && input.LA(1)<=LONG) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(type)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + if ( state.backtracking==0 ) { + retval.value = new String("unsigned " + (type!=null?type.getText():null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 52, rangeType_StartIndex); } + } + return retval; + } + // $ANTLR end "rangeType" + + public static class fieldExpr_return extends ParserRuleReturnScope { + public SelectExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "fieldExpr" + // src/petascope/wcps/grammar/wcps.g:273:1: fieldExpr returns [SelectExpr value] : e1= coverageAtom DOT e2= fieldName ; + public final wcpsParser.fieldExpr_return fieldExpr() throws RecognitionException { + wcpsParser.fieldExpr_return retval = new wcpsParser.fieldExpr_return(); + retval.start = input.LT(1); + int fieldExpr_StartIndex = input.index(); + Object root_0 = null; + + Token DOT161=null; + wcpsParser.coverageAtom_return e1 = null; + + wcpsParser.fieldName_return e2 = null; + + + Object DOT161_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 53) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:274:5: (e1= coverageAtom DOT e2= fieldName ) + // src/petascope/wcps/grammar/wcps.g:274:7: e1= coverageAtom DOT e2= fieldName + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_coverageAtom_in_fieldExpr2834); + e1=coverageAtom(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + DOT161=(Token)match(input,DOT,FOLLOW_DOT_in_fieldExpr2836); if (state.failed) return retval; + if ( state.backtracking==0 ) { + DOT161_tree = (Object)adaptor.create(DOT161); + adaptor.addChild(root_0, DOT161_tree); + } + pushFollow(FOLLOW_fieldName_in_fieldExpr2840); + e2=fieldName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new SelectExpr((e1!=null?e1.value:null), (e2!=null?e2.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 53, fieldExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "fieldExpr" + + public static class booleanScalarExpr_return extends ParserRuleReturnScope { + public BooleanScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "booleanScalarExpr" + // src/petascope/wcps/grammar/wcps.g:278:1: booleanScalarExpr returns [BooleanScalarExpr value] : e1= booleanScalarTerm (op= ( OR | XOR ) e2= booleanScalarTerm )* ; + public final wcpsParser.booleanScalarExpr_return booleanScalarExpr() throws RecognitionException { + wcpsParser.booleanScalarExpr_return retval = new wcpsParser.booleanScalarExpr_return(); + retval.start = input.LT(1); + int booleanScalarExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.booleanScalarTerm_return e1 = null; + + wcpsParser.booleanScalarTerm_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 54) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:279:5: (e1= booleanScalarTerm (op= ( OR | XOR ) e2= booleanScalarTerm )* ) + // src/petascope/wcps/grammar/wcps.g:279:7: e1= booleanScalarTerm (op= ( OR | XOR ) e2= booleanScalarTerm )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_booleanScalarTerm_in_booleanScalarExpr2865); + e1=booleanScalarTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:280:7: (op= ( OR | XOR ) e2= booleanScalarTerm )* + loop46: + do { + int alt46=2; + alt46 = dfa46.predict(input); + switch (alt46) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:280:8: op= ( OR | XOR ) e2= booleanScalarTerm + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=OR && input.LA(1)<=XOR) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_booleanScalarTerm_in_booleanScalarExpr2886); + e2=booleanScalarTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new BooleanScalarExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop46; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 54, booleanScalarExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "booleanScalarExpr" + + public static class booleanScalarTerm_return extends ParserRuleReturnScope { + public BooleanScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "booleanScalarTerm" + // src/petascope/wcps/grammar/wcps.g:282:1: booleanScalarTerm returns [BooleanScalarExpr value] : e1= booleanScalarNegation (op= AND e2= booleanScalarNegation )* ; + public final wcpsParser.booleanScalarTerm_return booleanScalarTerm() throws RecognitionException { + wcpsParser.booleanScalarTerm_return retval = new wcpsParser.booleanScalarTerm_return(); + retval.start = input.LT(1); + int booleanScalarTerm_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.booleanScalarNegation_return e1 = null; + + wcpsParser.booleanScalarNegation_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 55) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:283:2: (e1= booleanScalarNegation (op= AND e2= booleanScalarNegation )* ) + // src/petascope/wcps/grammar/wcps.g:283:4: e1= booleanScalarNegation (op= AND e2= booleanScalarNegation )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_booleanScalarNegation_in_booleanScalarTerm2908); + e1=booleanScalarNegation(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:284:4: (op= AND e2= booleanScalarNegation )* + loop47: + do { + int alt47=2; + alt47 = dfa47.predict(input); + switch (alt47) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:284:5: op= AND e2= booleanScalarNegation + { + op=(Token)match(input,AND,FOLLOW_AND_in_booleanScalarTerm2918); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + pushFollow(FOLLOW_booleanScalarNegation_in_booleanScalarTerm2922); + e2=booleanScalarNegation(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new BooleanScalarExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop47; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 55, booleanScalarTerm_StartIndex); } + } + return retval; + } + // $ANTLR end "booleanScalarTerm" + + public static class booleanScalarNegation_return extends ParserRuleReturnScope { + public BooleanScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "booleanScalarNegation" + // src/petascope/wcps/grammar/wcps.g:286:1: booleanScalarNegation returns [BooleanScalarExpr value] : (e1= booleanScalarAtom | op= NOT e1= booleanScalarAtom ); + public final wcpsParser.booleanScalarNegation_return booleanScalarNegation() throws RecognitionException { + wcpsParser.booleanScalarNegation_return retval = new wcpsParser.booleanScalarNegation_return(); + retval.start = input.LT(1); + int booleanScalarNegation_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.booleanScalarAtom_return e1 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 56) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:287:2: (e1= booleanScalarAtom | op= NOT e1= booleanScalarAtom ) + int alt48=2; + alt48 = dfa48.predict(input); + switch (alt48) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:287:4: e1= booleanScalarAtom + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_booleanScalarAtom_in_booleanScalarNegation2943); + e1=booleanScalarAtom(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:288:4: op= NOT e1= booleanScalarAtom + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,NOT,FOLLOW_NOT_in_booleanScalarNegation2952); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + pushFollow(FOLLOW_booleanScalarAtom_in_booleanScalarNegation2956); + e1=booleanScalarAtom(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new BooleanScalarExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 56, booleanScalarNegation_StartIndex); } + } + return retval; + } + // $ANTLR end "booleanScalarNegation" + + public static class booleanScalarAtom_return extends ParserRuleReturnScope { + public BooleanScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "booleanScalarAtom" + // src/petascope/wcps/grammar/wcps.g:290:1: booleanScalarAtom returns [BooleanScalarExpr value] : ( LPAREN e1= booleanScalarExpr RPAREN | s1= stringScalarExpr cop= compOp s2= stringScalarExpr | n1= numericScalarExpr cop= compOp n2= numericScalarExpr | e= BOOLEANCONSTANT ); + public final wcpsParser.booleanScalarAtom_return booleanScalarAtom() throws RecognitionException { + wcpsParser.booleanScalarAtom_return retval = new wcpsParser.booleanScalarAtom_return(); + retval.start = input.LT(1); + int booleanScalarAtom_StartIndex = input.index(); + Object root_0 = null; + + Token e=null; + Token LPAREN162=null; + Token RPAREN163=null; + wcpsParser.booleanScalarExpr_return e1 = null; + + wcpsParser.stringScalarExpr_return s1 = null; + + wcpsParser.compOp_return cop = null; + + wcpsParser.stringScalarExpr_return s2 = null; + + wcpsParser.numericScalarExpr_return n1 = null; + + wcpsParser.numericScalarExpr_return n2 = null; + + + Object e_tree=null; + Object LPAREN162_tree=null; + Object RPAREN163_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 57) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:291:2: ( LPAREN e1= booleanScalarExpr RPAREN | s1= stringScalarExpr cop= compOp s2= stringScalarExpr | n1= numericScalarExpr cop= compOp n2= numericScalarExpr | e= BOOLEANCONSTANT ) + int alt49=4; + alt49 = dfa49.predict(input); + switch (alt49) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:291:4: LPAREN e1= booleanScalarExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + LPAREN162=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_booleanScalarAtom2971); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN162_tree = (Object)adaptor.create(LPAREN162); + adaptor.addChild(root_0, LPAREN162_tree); + } + pushFollow(FOLLOW_booleanScalarExpr_in_booleanScalarAtom2975); + e1=booleanScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN163=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_booleanScalarAtom2977); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN163_tree = (Object)adaptor.create(RPAREN163); + adaptor.addChild(root_0, RPAREN163_tree); + } + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:292:4: s1= stringScalarExpr cop= compOp s2= stringScalarExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_stringScalarExpr_in_booleanScalarAtom2986); + s1=stringScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, s1.getTree()); + pushFollow(FOLLOW_compOp_in_booleanScalarAtom2990); + cop=compOp(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, cop.getTree()); + pushFollow(FOLLOW_stringScalarExpr_in_booleanScalarAtom2994); + s2=stringScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, s2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new BooleanScalarExpr((cop!=null?cop.value:null), (s1!=null?s1.value:null), (s2!=null?s2.value:null)); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:293:4: n1= numericScalarExpr cop= compOp n2= numericScalarExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_numericScalarExpr_in_booleanScalarAtom3004); + n1=numericScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, n1.getTree()); + pushFollow(FOLLOW_compOp_in_booleanScalarAtom3008); + cop=compOp(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, cop.getTree()); + pushFollow(FOLLOW_numericScalarExpr_in_booleanScalarAtom3012); + n2=numericScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, n2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new BooleanScalarExpr((cop!=null?cop.value:null), (n1!=null?n1.value:null), (n2!=null?n2.value:null)); + } + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:294:4: e= BOOLEANCONSTANT + { + root_0 = (Object)adaptor.nil(); + + e=(Token)match(input,BOOLEANCONSTANT,FOLLOW_BOOLEANCONSTANT_in_booleanScalarAtom3022); if (state.failed) return retval; + if ( state.backtracking==0 ) { + e_tree = (Object)adaptor.create(e); + adaptor.addChild(root_0, e_tree); + } + if ( state.backtracking==0 ) { + retval.value = new BooleanScalarExpr((e!=null?e.getText():null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 57, booleanScalarAtom_StartIndex); } + } + return retval; + } + // $ANTLR end "booleanScalarAtom" + + public static class numericScalarExpr_return extends ParserRuleReturnScope { + public NumericScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "numericScalarExpr" + // src/petascope/wcps/grammar/wcps.g:296:1: numericScalarExpr returns [NumericScalarExpr value] : e1= numericScalarTerm (op= ( PLUS | MINUS ) e2= numericScalarTerm )* ; + public final wcpsParser.numericScalarExpr_return numericScalarExpr() throws RecognitionException { + wcpsParser.numericScalarExpr_return retval = new wcpsParser.numericScalarExpr_return(); + retval.start = input.LT(1); + int numericScalarExpr_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.numericScalarTerm_return e1 = null; + + wcpsParser.numericScalarTerm_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 58) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:297:2: (e1= numericScalarTerm (op= ( PLUS | MINUS ) e2= numericScalarTerm )* ) + // src/petascope/wcps/grammar/wcps.g:297:4: e1= numericScalarTerm (op= ( PLUS | MINUS ) e2= numericScalarTerm )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_numericScalarTerm_in_numericScalarExpr3039); + e1=numericScalarTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:298:4: (op= ( PLUS | MINUS ) e2= numericScalarTerm )* + loop50: + do { + int alt50=2; + alt50 = dfa50.predict(input); + switch (alt50) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:298:5: op= ( PLUS | MINUS ) e2= numericScalarTerm + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=PLUS && input.LA(1)<=MINUS) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_numericScalarTerm_in_numericScalarExpr3057); + e2=numericScalarTerm(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop50; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 58, numericScalarExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "numericScalarExpr" + + public static class numericScalarTerm_return extends ParserRuleReturnScope { + public NumericScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "numericScalarTerm" + // src/petascope/wcps/grammar/wcps.g:300:1: numericScalarTerm returns [NumericScalarExpr value] : e1= numericScalarFactor (op= ( MULT | DIVIDE ) e2= numericScalarFactor )* ; + public final wcpsParser.numericScalarTerm_return numericScalarTerm() throws RecognitionException { + wcpsParser.numericScalarTerm_return retval = new wcpsParser.numericScalarTerm_return(); + retval.start = input.LT(1); + int numericScalarTerm_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + wcpsParser.numericScalarFactor_return e1 = null; + + wcpsParser.numericScalarFactor_return e2 = null; + + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 59) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:301:2: (e1= numericScalarFactor (op= ( MULT | DIVIDE ) e2= numericScalarFactor )* ) + // src/petascope/wcps/grammar/wcps.g:301:4: e1= numericScalarFactor (op= ( MULT | DIVIDE ) e2= numericScalarFactor )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_numericScalarFactor_in_numericScalarTerm3076); + e1=numericScalarFactor(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + // src/petascope/wcps/grammar/wcps.g:302:3: (op= ( MULT | DIVIDE ) e2= numericScalarFactor )* + loop51: + do { + int alt51=2; + alt51 = dfa51.predict(input); + switch (alt51) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:302:4: op= ( MULT | DIVIDE ) e2= numericScalarFactor + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=MULT && input.LA(1)<=DIVIDE) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_numericScalarFactor_in_numericScalarTerm3093); + e2=numericScalarFactor(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((op!=null?op.getText():null), retval.value, (e2!=null?e2.value:null)); + } + + } + break; + + default : + break loop51; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 59, numericScalarTerm_StartIndex); } + } + return retval; + } + // $ANTLR end "numericScalarTerm" + + public static class numericScalarFactor_return extends ParserRuleReturnScope { + public NumericScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "numericScalarFactor" + // src/petascope/wcps/grammar/wcps.g:304:1: numericScalarFactor returns [NumericScalarExpr value] : ( LPAREN e1= numericScalarExpr RPAREN | op= MINUS e10= numericScalarFactor | op= ABS LPAREN e12= numericScalarExpr RPAREN | op= SQRT LPAREN e11= numericScalarExpr RPAREN | op= ROUND LPAREN e1= numericScalarExpr RPAREN | e= INTEGERCONSTANT | e= FLOATCONSTANT | e2= complexConstant | e3= condenseExpr | e4= variableName ); + public final wcpsParser.numericScalarFactor_return numericScalarFactor() throws RecognitionException { + wcpsParser.numericScalarFactor_return retval = new wcpsParser.numericScalarFactor_return(); + retval.start = input.LT(1); + int numericScalarFactor_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + Token e=null; + Token LPAREN164=null; + Token RPAREN165=null; + Token LPAREN166=null; + Token RPAREN167=null; + Token LPAREN168=null; + Token RPAREN169=null; + Token LPAREN170=null; + Token RPAREN171=null; + wcpsParser.numericScalarExpr_return e1 = null; + + wcpsParser.numericScalarFactor_return e10 = null; + + wcpsParser.numericScalarExpr_return e12 = null; + + wcpsParser.numericScalarExpr_return e11 = null; + + wcpsParser.complexConstant_return e2 = null; + + wcpsParser.condenseExpr_return e3 = null; + + wcpsParser.variableName_return e4 = null; + + + Object op_tree=null; + Object e_tree=null; + Object LPAREN164_tree=null; + Object RPAREN165_tree=null; + Object LPAREN166_tree=null; + Object RPAREN167_tree=null; + Object LPAREN168_tree=null; + Object RPAREN169_tree=null; + Object LPAREN170_tree=null; + Object RPAREN171_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 60) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:305:5: ( LPAREN e1= numericScalarExpr RPAREN | op= MINUS e10= numericScalarFactor | op= ABS LPAREN e12= numericScalarExpr RPAREN | op= SQRT LPAREN e11= numericScalarExpr RPAREN | op= ROUND LPAREN e1= numericScalarExpr RPAREN | e= INTEGERCONSTANT | e= FLOATCONSTANT | e2= complexConstant | e3= condenseExpr | e4= variableName ) + int alt52=10; + alt52 = dfa52.predict(input); + switch (alt52) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:305:7: LPAREN e1= numericScalarExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + LPAREN164=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_numericScalarFactor3113); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN164_tree = (Object)adaptor.create(LPAREN164); + adaptor.addChild(root_0, LPAREN164_tree); + } + pushFollow(FOLLOW_numericScalarExpr_in_numericScalarFactor3117); + e1=numericScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN165=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_numericScalarFactor3119); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN165_tree = (Object)adaptor.create(RPAREN165); + adaptor.addChild(root_0, RPAREN165_tree); + } + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:306:7: op= MINUS e10= numericScalarFactor + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,MINUS,FOLLOW_MINUS_in_numericScalarFactor3131); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + pushFollow(FOLLOW_numericScalarFactor_in_numericScalarFactor3135); + e10=numericScalarFactor(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e10.getTree()); + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((op!=null?op.getText():null), (e10!=null?e10.value:null)); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:307:7: op= ABS LPAREN e12= numericScalarExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,ABS,FOLLOW_ABS_in_numericScalarFactor3147); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN166=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_numericScalarFactor3149); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN166_tree = (Object)adaptor.create(LPAREN166); + adaptor.addChild(root_0, LPAREN166_tree); + } + pushFollow(FOLLOW_numericScalarExpr_in_numericScalarFactor3153); + e12=numericScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e12.getTree()); + RPAREN167=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_numericScalarFactor3155); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN167_tree = (Object)adaptor.create(RPAREN167); + adaptor.addChild(root_0, RPAREN167_tree); + } + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((op!=null?op.getText():null), (e12!=null?e12.value:null)); + } + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:308:7: op= SQRT LPAREN e11= numericScalarExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,SQRT,FOLLOW_SQRT_in_numericScalarFactor3167); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN168=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_numericScalarFactor3169); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN168_tree = (Object)adaptor.create(LPAREN168); + adaptor.addChild(root_0, LPAREN168_tree); + } + pushFollow(FOLLOW_numericScalarExpr_in_numericScalarFactor3173); + e11=numericScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e11.getTree()); + RPAREN169=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_numericScalarFactor3175); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN169_tree = (Object)adaptor.create(RPAREN169); + adaptor.addChild(root_0, RPAREN169_tree); + } + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((op!=null?op.getText():null), (e11!=null?e11.value:null)); + } + + } + break; + case 5 : + // src/petascope/wcps/grammar/wcps.g:309:7: op= ROUND LPAREN e1= numericScalarExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + op=(Token)match(input,ROUND,FOLLOW_ROUND_in_numericScalarFactor3187); if (state.failed) return retval; + if ( state.backtracking==0 ) { + op_tree = (Object)adaptor.create(op); + adaptor.addChild(root_0, op_tree); + } + LPAREN170=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_numericScalarFactor3189); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN170_tree = (Object)adaptor.create(LPAREN170); + adaptor.addChild(root_0, LPAREN170_tree); + } + pushFollow(FOLLOW_numericScalarExpr_in_numericScalarFactor3193); + e1=numericScalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + RPAREN171=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_numericScalarFactor3195); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN171_tree = (Object)adaptor.create(RPAREN171); + adaptor.addChild(root_0, RPAREN171_tree); + } + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((op!=null?op.getText():null), (e1!=null?e1.value:null)); + } + + } + break; + case 6 : + // src/petascope/wcps/grammar/wcps.g:310:7: e= INTEGERCONSTANT + { + root_0 = (Object)adaptor.nil(); + + e=(Token)match(input,INTEGERCONSTANT,FOLLOW_INTEGERCONSTANT_in_numericScalarFactor3207); if (state.failed) return retval; + if ( state.backtracking==0 ) { + e_tree = (Object)adaptor.create(e); + adaptor.addChild(root_0, e_tree); + } + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((e!=null?e.getText():null)); + } + + } + break; + case 7 : + // src/petascope/wcps/grammar/wcps.g:311:7: e= FLOATCONSTANT + { + root_0 = (Object)adaptor.nil(); + + e=(Token)match(input,FLOATCONSTANT,FOLLOW_FLOATCONSTANT_in_numericScalarFactor3219); if (state.failed) return retval; + if ( state.backtracking==0 ) { + e_tree = (Object)adaptor.create(e); + adaptor.addChild(root_0, e_tree); + } + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((e!=null?e.getText():null)); + } + + } + break; + case 8 : + // src/petascope/wcps/grammar/wcps.g:312:7: e2= complexConstant + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_complexConstant_in_numericScalarFactor3231); + e2=complexConstant(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((e2!=null?e2.value:null)); + } + + } + break; + case 9 : + // src/petascope/wcps/grammar/wcps.g:313:7: e3= condenseExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_condenseExpr_in_numericScalarFactor3243); + e3=condenseExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e3.getTree()); + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr((e3!=null?e3.value:null)); + } + + } + break; + case 10 : + // src/petascope/wcps/grammar/wcps.g:314:7: e4= variableName + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_variableName_in_numericScalarFactor3255); + e4=variableName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e4.getTree()); + if ( state.backtracking==0 ) { + retval.value = new NumericScalarExpr("var", (e4!=null?e4.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 60, numericScalarFactor_StartIndex); } + } + return retval; + } + // $ANTLR end "numericScalarFactor" + + public static class compOp_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "compOp" + // src/petascope/wcps/grammar/wcps.g:316:1: compOp returns [String value] : ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ); + public final wcpsParser.compOp_return compOp() throws RecognitionException { + wcpsParser.compOp_return retval = new wcpsParser.compOp_return(); + retval.start = input.LT(1); + int compOp_StartIndex = input.index(); + Object root_0 = null; + + Token EQUALS172=null; + Token NOTEQUALS173=null; + Token LT174=null; + Token GT175=null; + Token LTE176=null; + Token GTE177=null; + + Object EQUALS172_tree=null; + Object NOTEQUALS173_tree=null; + Object LT174_tree=null; + Object GT175_tree=null; + Object LTE176_tree=null; + Object GTE177_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 61) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:317:2: ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ) + int alt53=6; + switch ( input.LA(1) ) { + case EQUALS: + { + alt53=1; + } + break; + case NOTEQUALS: + { + alt53=2; + } + break; + case LT: + { + alt53=3; + } + break; + case GT: + { + alt53=4; + } + break; + case LTE: + { + alt53=5; + } + break; + case GTE: + { + alt53=6; + } + break; + default: + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 53, 0, input); + + throw nvae; + } + + switch (alt53) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:317:4: EQUALS + { + root_0 = (Object)adaptor.nil(); + + EQUALS172=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_compOp3273); if (state.failed) return retval; + if ( state.backtracking==0 ) { + EQUALS172_tree = (Object)adaptor.create(EQUALS172); + adaptor.addChild(root_0, EQUALS172_tree); + } + if ( state.backtracking==0 ) { + retval.value = new String("equals"); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:318:4: NOTEQUALS + { + root_0 = (Object)adaptor.nil(); + + NOTEQUALS173=(Token)match(input,NOTEQUALS,FOLLOW_NOTEQUALS_in_compOp3280); if (state.failed) return retval; + if ( state.backtracking==0 ) { + NOTEQUALS173_tree = (Object)adaptor.create(NOTEQUALS173); + adaptor.addChild(root_0, NOTEQUALS173_tree); + } + if ( state.backtracking==0 ) { + retval.value = new String("notEqual"); + } + + } + break; + case 3 : + // src/petascope/wcps/grammar/wcps.g:319:4: LT + { + root_0 = (Object)adaptor.nil(); + + LT174=(Token)match(input,LT,FOLLOW_LT_in_compOp3287); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LT174_tree = (Object)adaptor.create(LT174); + adaptor.addChild(root_0, LT174_tree); + } + if ( state.backtracking==0 ) { + retval.value = new String("lessThan"); + } + + } + break; + case 4 : + // src/petascope/wcps/grammar/wcps.g:320:4: GT + { + root_0 = (Object)adaptor.nil(); + + GT175=(Token)match(input,GT,FOLLOW_GT_in_compOp3294); if (state.failed) return retval; + if ( state.backtracking==0 ) { + GT175_tree = (Object)adaptor.create(GT175); + adaptor.addChild(root_0, GT175_tree); + } + if ( state.backtracking==0 ) { + retval.value = new String("greaterThan"); + } + + } + break; + case 5 : + // src/petascope/wcps/grammar/wcps.g:321:4: LTE + { + root_0 = (Object)adaptor.nil(); + + LTE176=(Token)match(input,LTE,FOLLOW_LTE_in_compOp3301); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LTE176_tree = (Object)adaptor.create(LTE176); + adaptor.addChild(root_0, LTE176_tree); + } + if ( state.backtracking==0 ) { + retval.value = new String("lessOrEqual"); + } + + } + break; + case 6 : + // src/petascope/wcps/grammar/wcps.g:322:4: GTE + { + root_0 = (Object)adaptor.nil(); + + GTE177=(Token)match(input,GTE,FOLLOW_GTE_in_compOp3308); if (state.failed) return retval; + if ( state.backtracking==0 ) { + GTE177_tree = (Object)adaptor.create(GTE177); + adaptor.addChild(root_0, GTE177_tree); + } + if ( state.backtracking==0 ) { + retval.value = new String("greaterOrEqual"); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 61, compOp_StartIndex); } + } + return retval; + } + // $ANTLR end "compOp" + + public static class dimensionIntervalList_return extends ParserRuleReturnScope { + public DimensionIntervalList value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "dimensionIntervalList" + // src/petascope/wcps/grammar/wcps.g:324:1: dimensionIntervalList returns [DimensionIntervalList value] : elem= dimensionIntervalElement ( COMMA elem= dimensionIntervalElement )* ; + public final wcpsParser.dimensionIntervalList_return dimensionIntervalList() throws RecognitionException { + wcpsParser.dimensionIntervalList_return retval = new wcpsParser.dimensionIntervalList_return(); + retval.start = input.LT(1); + int dimensionIntervalList_StartIndex = input.index(); + Object root_0 = null; + + Token COMMA178=null; + wcpsParser.dimensionIntervalElement_return elem = null; + + + Object COMMA178_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 62) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:325:5: (elem= dimensionIntervalElement ( COMMA elem= dimensionIntervalElement )* ) + // src/petascope/wcps/grammar/wcps.g:325:7: elem= dimensionIntervalElement ( COMMA elem= dimensionIntervalElement )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_dimensionIntervalElement_in_dimensionIntervalList3328); + elem=dimensionIntervalElement(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, elem.getTree()); + if ( state.backtracking==0 ) { + retval.value = new DimensionIntervalList((elem!=null?elem.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:326:9: ( COMMA elem= dimensionIntervalElement )* + loop54: + do { + int alt54=2; + int LA54_0 = input.LA(1); + + if ( (LA54_0==COMMA) ) { + int LA54_1 = input.LA(2); + + if ( (LA54_1==INTEGERCONSTANT||LA54_1==STRING||LA54_1==NAME) ) { + alt54=1; + } + + + } + + + switch (alt54) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:326:10: COMMA elem= dimensionIntervalElement + { + COMMA178=(Token)match(input,COMMA,FOLLOW_COMMA_in_dimensionIntervalList3341); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA178_tree = (Object)adaptor.create(COMMA178); + adaptor.addChild(root_0, COMMA178_tree); + } + pushFollow(FOLLOW_dimensionIntervalElement_in_dimensionIntervalList3345); + elem=dimensionIntervalElement(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, elem.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((elem!=null?elem.value:null)); + } + + } + break; + + default : + break loop54; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 62, dimensionIntervalList_StartIndex); } + } + return retval; + } + // $ANTLR end "dimensionIntervalList" + + public static class dimensionIntervalElement_return extends ParserRuleReturnScope { + public DimensionIntervalElement value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "dimensionIntervalElement" + // src/petascope/wcps/grammar/wcps.g:328:1: dimensionIntervalElement returns [DimensionIntervalElement value] : aname= axisName ( COLON crs= crsName )? LPAREN die= dimensionIntervalExpr RPAREN ; + public final wcpsParser.dimensionIntervalElement_return dimensionIntervalElement() throws RecognitionException { + wcpsParser.dimensionIntervalElement_return retval = new wcpsParser.dimensionIntervalElement_return(); + retval.start = input.LT(1); + int dimensionIntervalElement_StartIndex = input.index(); + Object root_0 = null; + + Token COLON179=null; + Token LPAREN180=null; + Token RPAREN181=null; + wcpsParser.axisName_return aname = null; + + wcpsParser.crsName_return crs = null; + + wcpsParser.dimensionIntervalExpr_return die = null; + + + Object COLON179_tree=null; + Object LPAREN180_tree=null; + Object RPAREN181_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 63) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:329:5: (aname= axisName ( COLON crs= crsName )? LPAREN die= dimensionIntervalExpr RPAREN ) + // src/petascope/wcps/grammar/wcps.g:329:7: aname= axisName ( COLON crs= crsName )? LPAREN die= dimensionIntervalExpr RPAREN + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_axisName_in_dimensionIntervalElement3370); + aname=axisName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, aname.getTree()); + if ( state.backtracking==0 ) { + retval.value = new DimensionIntervalElement((aname!=null?aname.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:329:79: ( COLON crs= crsName )? + int alt55=2; + int LA55_0 = input.LA(1); + + if ( (LA55_0==COLON) ) { + alt55=1; + } + switch (alt55) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:329:80: COLON crs= crsName + { + COLON179=(Token)match(input,COLON,FOLLOW_COLON_in_dimensionIntervalElement3375); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON179_tree = (Object)adaptor.create(COLON179); + adaptor.addChild(root_0, COLON179_tree); + } + pushFollow(FOLLOW_crsName_in_dimensionIntervalElement3379); + crs=crsName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, crs.getTree()); + if ( state.backtracking==0 ) { + retval.value.setCrs((crs!=null?crs.value:null)); + } + + } + break; + + } + + LPAREN180=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_dimensionIntervalElement3390); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN180_tree = (Object)adaptor.create(LPAREN180); + adaptor.addChild(root_0, LPAREN180_tree); + } + pushFollow(FOLLOW_dimensionIntervalExpr_in_dimensionIntervalElement3394); + die=dimensionIntervalExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, die.getTree()); + RPAREN181=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_dimensionIntervalElement3396); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN181_tree = (Object)adaptor.create(RPAREN181); + adaptor.addChild(root_0, RPAREN181_tree); + } + if ( state.backtracking==0 ) { + retval.value.setIntervalExpr((die!=null?die.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 63, dimensionIntervalElement_StartIndex); } + } + return retval; + } + // $ANTLR end "dimensionIntervalElement" + + public static class dimensionIntervalExpr_return extends ParserRuleReturnScope { + public DimensionIntervalExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "dimensionIntervalExpr" + // src/petascope/wcps/grammar/wcps.g:332:1: dimensionIntervalExpr returns [DimensionIntervalExpr value] : (e1= scalarExpr COLON e2= scalarExpr | DOMAIN LPAREN e3= coverageName COLON e4= axisName COLON e5= crsName RPAREN ); + public final wcpsParser.dimensionIntervalExpr_return dimensionIntervalExpr() throws RecognitionException { + wcpsParser.dimensionIntervalExpr_return retval = new wcpsParser.dimensionIntervalExpr_return(); + retval.start = input.LT(1); + int dimensionIntervalExpr_StartIndex = input.index(); + Object root_0 = null; + + Token COLON182=null; + Token DOMAIN183=null; + Token LPAREN184=null; + Token COLON185=null; + Token COLON186=null; + Token RPAREN187=null; + wcpsParser.scalarExpr_return e1 = null; + + wcpsParser.scalarExpr_return e2 = null; + + wcpsParser.coverageName_return e3 = null; + + wcpsParser.axisName_return e4 = null; + + wcpsParser.crsName_return e5 = null; + + + Object COLON182_tree=null; + Object DOMAIN183_tree=null; + Object LPAREN184_tree=null; + Object COLON185_tree=null; + Object COLON186_tree=null; + Object RPAREN187_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 64) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:333:5: (e1= scalarExpr COLON e2= scalarExpr | DOMAIN LPAREN e3= coverageName COLON e4= axisName COLON e5= crsName RPAREN ) + int alt56=2; + alt56 = dfa56.predict(input); + switch (alt56) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:333:7: e1= scalarExpr COLON e2= scalarExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_scalarExpr_in_dimensionIntervalExpr3419); + e1=scalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + COLON182=(Token)match(input,COLON,FOLLOW_COLON_in_dimensionIntervalExpr3421); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON182_tree = (Object)adaptor.create(COLON182); + adaptor.addChild(root_0, COLON182_tree); + } + pushFollow(FOLLOW_scalarExpr_in_dimensionIntervalExpr3425); + e2=scalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e2.getTree()); + if ( state.backtracking==0 ) { + retval.value = new DimensionIntervalExpr((e1!=null?e1.value:null), (e2!=null?e2.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:334:7: DOMAIN LPAREN e3= coverageName COLON e4= axisName COLON e5= crsName RPAREN + { + root_0 = (Object)adaptor.nil(); + + DOMAIN183=(Token)match(input,DOMAIN,FOLLOW_DOMAIN_in_dimensionIntervalExpr3435); if (state.failed) return retval; + if ( state.backtracking==0 ) { + DOMAIN183_tree = (Object)adaptor.create(DOMAIN183); + adaptor.addChild(root_0, DOMAIN183_tree); + } + LPAREN184=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_dimensionIntervalExpr3437); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN184_tree = (Object)adaptor.create(LPAREN184); + adaptor.addChild(root_0, LPAREN184_tree); + } + pushFollow(FOLLOW_coverageName_in_dimensionIntervalExpr3441); + e3=coverageName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e3.getTree()); + COLON185=(Token)match(input,COLON,FOLLOW_COLON_in_dimensionIntervalExpr3443); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON185_tree = (Object)adaptor.create(COLON185); + adaptor.addChild(root_0, COLON185_tree); + } + pushFollow(FOLLOW_axisName_in_dimensionIntervalExpr3447); + e4=axisName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e4.getTree()); + COLON186=(Token)match(input,COLON,FOLLOW_COLON_in_dimensionIntervalExpr3449); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON186_tree = (Object)adaptor.create(COLON186); + adaptor.addChild(root_0, COLON186_tree); + } + pushFollow(FOLLOW_crsName_in_dimensionIntervalExpr3453); + e5=crsName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e5.getTree()); + RPAREN187=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_dimensionIntervalExpr3455); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN187_tree = (Object)adaptor.create(RPAREN187); + adaptor.addChild(root_0, RPAREN187_tree); + } + if ( state.backtracking==0 ) { + retval.value = new DimensionIntervalExpr((e3!=null?e3.value:null), (e4!=null?e4.value:null), (e5!=null?e5.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 64, dimensionIntervalExpr_StartIndex); } + } + return retval; + } + // $ANTLR end "dimensionIntervalExpr" + + public static class dimensionPointList_return extends ParserRuleReturnScope { + public DimensionPointList value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "dimensionPointList" + // src/petascope/wcps/grammar/wcps.g:336:1: dimensionPointList returns [DimensionPointList value] : elem1= dimensionPointElement ( COMMA elem2= dimensionPointElement )* ; + public final wcpsParser.dimensionPointList_return dimensionPointList() throws RecognitionException { + wcpsParser.dimensionPointList_return retval = new wcpsParser.dimensionPointList_return(); + retval.start = input.LT(1); + int dimensionPointList_StartIndex = input.index(); + Object root_0 = null; + + Token COMMA188=null; + wcpsParser.dimensionPointElement_return elem1 = null; + + wcpsParser.dimensionPointElement_return elem2 = null; + + + Object COMMA188_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 65) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:337:5: (elem1= dimensionPointElement ( COMMA elem2= dimensionPointElement )* ) + // src/petascope/wcps/grammar/wcps.g:337:7: elem1= dimensionPointElement ( COMMA elem2= dimensionPointElement )* + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_dimensionPointElement_in_dimensionPointList3478); + elem1=dimensionPointElement(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, elem1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new DimensionPointList((elem1!=null?elem1.value:null)); + } + // src/petascope/wcps/grammar/wcps.g:338:6: ( COMMA elem2= dimensionPointElement )* + loop57: + do { + int alt57=2; + int LA57_0 = input.LA(1); + + if ( (LA57_0==COMMA) ) { + alt57=1; + } + + + switch (alt57) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:338:7: COMMA elem2= dimensionPointElement + { + COMMA188=(Token)match(input,COMMA,FOLLOW_COMMA_in_dimensionPointList3488); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA188_tree = (Object)adaptor.create(COMMA188); + adaptor.addChild(root_0, COMMA188_tree); + } + pushFollow(FOLLOW_dimensionPointElement_in_dimensionPointList3492); + elem2=dimensionPointElement(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, elem2.getTree()); + if ( state.backtracking==0 ) { + retval.value.add((elem2!=null?elem2.value:null)); + } + + } + break; + + default : + break loop57; + } + } while (true); + + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 65, dimensionPointList_StartIndex); } + } + return retval; + } + // $ANTLR end "dimensionPointList" + + public static class dimensionPointElement_return extends ParserRuleReturnScope { + public DimensionPointElement value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "dimensionPointElement" + // src/petascope/wcps/grammar/wcps.g:340:1: dimensionPointElement returns [DimensionPointElement value] : (aname= axisName LPAREN dpe= dimensionPoint RPAREN | aname= axisName COLON crs= crsName LPAREN dpe= dimensionPoint RPAREN ); + public final wcpsParser.dimensionPointElement_return dimensionPointElement() throws RecognitionException { + wcpsParser.dimensionPointElement_return retval = new wcpsParser.dimensionPointElement_return(); + retval.start = input.LT(1); + int dimensionPointElement_StartIndex = input.index(); + Object root_0 = null; + + Token LPAREN189=null; + Token RPAREN190=null; + Token COLON191=null; + Token LPAREN192=null; + Token RPAREN193=null; + wcpsParser.axisName_return aname = null; + + wcpsParser.dimensionPoint_return dpe = null; + + wcpsParser.crsName_return crs = null; + + + Object LPAREN189_tree=null; + Object RPAREN190_tree=null; + Object COLON191_tree=null; + Object LPAREN192_tree=null; + Object RPAREN193_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 66) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:341:5: (aname= axisName LPAREN dpe= dimensionPoint RPAREN | aname= axisName COLON crs= crsName LPAREN dpe= dimensionPoint RPAREN ) + int alt58=2; + int LA58_0 = input.LA(1); + + if ( (LA58_0==INTEGERCONSTANT||LA58_0==STRING||LA58_0==NAME) ) { + int LA58_1 = input.LA(2); + + if ( (LA58_1==LPAREN) ) { + alt58=1; + } + else if ( (LA58_1==COLON) ) { + alt58=2; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 58, 1, input); + + throw nvae; + } + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 58, 0, input); + + throw nvae; + } + switch (alt58) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:341:7: aname= axisName LPAREN dpe= dimensionPoint RPAREN + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_axisName_in_dimensionPointElement3517); + aname=axisName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, aname.getTree()); + LPAREN189=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_dimensionPointElement3519); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN189_tree = (Object)adaptor.create(LPAREN189); + adaptor.addChild(root_0, LPAREN189_tree); + } + pushFollow(FOLLOW_dimensionPoint_in_dimensionPointElement3523); + dpe=dimensionPoint(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, dpe.getTree()); + RPAREN190=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_dimensionPointElement3525); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN190_tree = (Object)adaptor.create(RPAREN190); + adaptor.addChild(root_0, RPAREN190_tree); + } + if ( state.backtracking==0 ) { + retval.value = new DimensionPointElement((aname!=null?aname.value:null), (dpe!=null?dpe.value:null)); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:342:7: aname= axisName COLON crs= crsName LPAREN dpe= dimensionPoint RPAREN + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_axisName_in_dimensionPointElement3537); + aname=axisName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, aname.getTree()); + COLON191=(Token)match(input,COLON,FOLLOW_COLON_in_dimensionPointElement3539); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON191_tree = (Object)adaptor.create(COLON191); + adaptor.addChild(root_0, COLON191_tree); + } + pushFollow(FOLLOW_crsName_in_dimensionPointElement3543); + crs=crsName(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, crs.getTree()); + LPAREN192=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_dimensionPointElement3545); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN192_tree = (Object)adaptor.create(LPAREN192); + adaptor.addChild(root_0, LPAREN192_tree); + } + pushFollow(FOLLOW_dimensionPoint_in_dimensionPointElement3549); + dpe=dimensionPoint(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, dpe.getTree()); + RPAREN193=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_dimensionPointElement3551); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN193_tree = (Object)adaptor.create(RPAREN193); + adaptor.addChild(root_0, RPAREN193_tree); + } + if ( state.backtracking==0 ) { + retval.value = new DimensionPointElement((aname!=null?aname.value:null), (crs!=null?crs.value:null), (dpe!=null?dpe.value:null)); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 66, dimensionPointElement_StartIndex); } + } + return retval; + } + // $ANTLR end "dimensionPointElement" + + public static class dimensionPoint_return extends ParserRuleReturnScope { + public ScalarExpr value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "dimensionPoint" + // src/petascope/wcps/grammar/wcps.g:344:1: dimensionPoint returns [ScalarExpr value] : e1= scalarExpr ; + public final wcpsParser.dimensionPoint_return dimensionPoint() throws RecognitionException { + wcpsParser.dimensionPoint_return retval = new wcpsParser.dimensionPoint_return(); + retval.start = input.LT(1); + int dimensionPoint_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.scalarExpr_return e1 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 67) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:345:5: (e1= scalarExpr ) + // src/petascope/wcps/grammar/wcps.g:345:7: e1= scalarExpr + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_scalarExpr_in_dimensionPoint3574); + e1=scalarExpr(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 67, dimensionPoint_StartIndex); } + } + return retval; + } + // $ANTLR end "dimensionPoint" + + public static class interpolationMethod_return extends ParserRuleReturnScope { + public InterpolationMethod value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "interpolationMethod" + // src/petascope/wcps/grammar/wcps.g:347:1: interpolationMethod returns [InterpolationMethod value] : LPAREN type= interpolationType COLON res= nullResistence RPAREN ; + public final wcpsParser.interpolationMethod_return interpolationMethod() throws RecognitionException { + wcpsParser.interpolationMethod_return retval = new wcpsParser.interpolationMethod_return(); + retval.start = input.LT(1); + int interpolationMethod_StartIndex = input.index(); + Object root_0 = null; + + Token LPAREN194=null; + Token COLON195=null; + Token RPAREN196=null; + wcpsParser.interpolationType_return type = null; + + wcpsParser.nullResistence_return res = null; + + + Object LPAREN194_tree=null; + Object COLON195_tree=null; + Object RPAREN196_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 68) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:348:2: ( LPAREN type= interpolationType COLON res= nullResistence RPAREN ) + // src/petascope/wcps/grammar/wcps.g:348:4: LPAREN type= interpolationType COLON res= nullResistence RPAREN + { + root_0 = (Object)adaptor.nil(); + + LPAREN194=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_interpolationMethod3592); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN194_tree = (Object)adaptor.create(LPAREN194); + adaptor.addChild(root_0, LPAREN194_tree); + } + pushFollow(FOLLOW_interpolationType_in_interpolationMethod3596); + type=interpolationType(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, type.getTree()); + COLON195=(Token)match(input,COLON,FOLLOW_COLON_in_interpolationMethod3598); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COLON195_tree = (Object)adaptor.create(COLON195); + adaptor.addChild(root_0, COLON195_tree); + } + pushFollow(FOLLOW_nullResistence_in_interpolationMethod3602); + res=nullResistence(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, res.getTree()); + RPAREN196=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_interpolationMethod3604); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN196_tree = (Object)adaptor.create(RPAREN196); + adaptor.addChild(root_0, RPAREN196_tree); + } + if ( state.backtracking==0 ) { + retval.value = new InterpolationMethod((type!=null?type.value:null), (res!=null?res.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 68, interpolationMethod_StartIndex); } + } + return retval; + } + // $ANTLR end "interpolationMethod" + + public static class interpolationType_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "interpolationType" + // src/petascope/wcps/grammar/wcps.g:350:1: interpolationType returns [String value] : type= ( NEAREST | LINEAR | QUADRATIC | CUBIC ) ; + public final wcpsParser.interpolationType_return interpolationType() throws RecognitionException { + wcpsParser.interpolationType_return retval = new wcpsParser.interpolationType_return(); + retval.start = input.LT(1); + int interpolationType_StartIndex = input.index(); + Object root_0 = null; + + Token type=null; + + Object type_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 69) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:351:2: (type= ( NEAREST | LINEAR | QUADRATIC | CUBIC ) ) + // src/petascope/wcps/grammar/wcps.g:351:4: type= ( NEAREST | LINEAR | QUADRATIC | CUBIC ) + { + root_0 = (Object)adaptor.nil(); + + type=(Token)input.LT(1); + if ( (input.LA(1)>=NEAREST && input.LA(1)<=CUBIC) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(type)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + if ( state.backtracking==0 ) { + retval.value = new String((type!=null?type.getText():null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 69, interpolationType_StartIndex); } + } + return retval; + } + // $ANTLR end "interpolationType" + + public static class nullResistence_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "nullResistence" + // src/petascope/wcps/grammar/wcps.g:353:1: nullResistence returns [String value] : resistance= ( FULL | NONE | HALF | OTHER ) ; + public final wcpsParser.nullResistence_return nullResistence() throws RecognitionException { + wcpsParser.nullResistence_return retval = new wcpsParser.nullResistence_return(); + retval.start = input.LT(1); + int nullResistence_StartIndex = input.index(); + Object root_0 = null; + + Token resistance=null; + + Object resistance_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 70) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:354:2: (resistance= ( FULL | NONE | HALF | OTHER ) ) + // src/petascope/wcps/grammar/wcps.g:354:4: resistance= ( FULL | NONE | HALF | OTHER ) + { + root_0 = (Object)adaptor.nil(); + + resistance=(Token)input.LT(1); + if ( (input.LA(1)>=FULL && input.LA(1)<=OTHER) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(resistance)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + if ( state.backtracking==0 ) { + retval.value = new String((resistance!=null?resistance.getText():null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 70, nullResistence_StartIndex); } + } + return retval; + } + // $ANTLR end "nullResistence" + + public static class condenseOpType_return extends ParserRuleReturnScope { + public CondenseOperation value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "condenseOpType" + // src/petascope/wcps/grammar/wcps.g:356:1: condenseOpType returns [CondenseOperation value] : op= ( PLUS | MULT | MAX | MIN | AND | OR ) ; + public final wcpsParser.condenseOpType_return condenseOpType() throws RecognitionException { + wcpsParser.condenseOpType_return retval = new wcpsParser.condenseOpType_return(); + retval.start = input.LT(1); + int condenseOpType_StartIndex = input.index(); + Object root_0 = null; + + Token op=null; + + Object op_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 71) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:357:2: (op= ( PLUS | MULT | MAX | MIN | AND | OR ) ) + // src/petascope/wcps/grammar/wcps.g:357:4: op= ( PLUS | MULT | MAX | MIN | AND | OR ) + { + root_0 = (Object)adaptor.nil(); + + op=(Token)input.LT(1); + if ( input.LA(1)==OR||input.LA(1)==AND||input.LA(1)==PLUS||input.LA(1)==MULT||(input.LA(1)>=MIN && input.LA(1)<=MAX) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(op)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + if ( state.backtracking==0 ) { + retval.value = new CondenseOperation((op!=null?op.getText():null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 71, condenseOpType_StartIndex); } + } + return retval; + } + // $ANTLR end "condenseOpType" + + public static class fieldName_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "fieldName" + // src/petascope/wcps/grammar/wcps.g:359:1: fieldName returns [String value] : name ; + public final wcpsParser.fieldName_return fieldName() throws RecognitionException { + wcpsParser.fieldName_return retval = new wcpsParser.fieldName_return(); + retval.start = input.LT(1); + int fieldName_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.name_return name197 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 72) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:360:2: ( name ) + // src/petascope/wcps/grammar/wcps.g:360:4: name + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_name_in_fieldName3698); + name197=name(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, name197.getTree()); + if ( state.backtracking==0 ) { + retval.value = new String((name197!=null?name197.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 72, fieldName_StartIndex); } + } + return retval; + } + // $ANTLR end "fieldName" + + public static class constant_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "constant" + // src/petascope/wcps/grammar/wcps.g:362:1: constant returns [String value] : (e= ( STRING | BOOLEANCONSTANT | INTEGERCONSTANT | FLOATCONSTANT ) | e1= complexConstant ); + public final wcpsParser.constant_return constant() throws RecognitionException { + wcpsParser.constant_return retval = new wcpsParser.constant_return(); + retval.start = input.LT(1); + int constant_StartIndex = input.index(); + Object root_0 = null; + + Token e=null; + wcpsParser.complexConstant_return e1 = null; + + + Object e_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 73) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:363:2: (e= ( STRING | BOOLEANCONSTANT | INTEGERCONSTANT | FLOATCONSTANT ) | e1= complexConstant ) + int alt59=2; + int LA59_0 = input.LA(1); + + if ( (LA59_0==INTEGERCONSTANT||LA59_0==STRING||(LA59_0>=BOOLEANCONSTANT && LA59_0<=FLOATCONSTANT)) ) { + alt59=1; + } + else if ( (LA59_0==LPAREN) ) { + alt59=2; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + NoViableAltException nvae = + new NoViableAltException("", 59, 0, input); + + throw nvae; + } + switch (alt59) { + case 1 : + // src/petascope/wcps/grammar/wcps.g:363:4: e= ( STRING | BOOLEANCONSTANT | INTEGERCONSTANT | FLOATCONSTANT ) + { + root_0 = (Object)adaptor.nil(); + + e=(Token)input.LT(1); + if ( input.LA(1)==INTEGERCONSTANT||input.LA(1)==STRING||(input.LA(1)>=BOOLEANCONSTANT && input.LA(1)<=FLOATCONSTANT) ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(e)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + if ( state.backtracking==0 ) { + retval.value = (e!=null?e.getText():null); + } + + } + break; + case 2 : + // src/petascope/wcps/grammar/wcps.g:364:4: e1= complexConstant + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_complexConstant_in_constant3732); + e1=complexConstant(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, e1.getTree()); + if ( state.backtracking==0 ) { + retval.value = (e1!=null?e1.value:null); + } + + } + break; + + } + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 73, constant_StartIndex); } + } + return retval; + } + // $ANTLR end "constant" + + public static class complexConstant_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "complexConstant" + // src/petascope/wcps/grammar/wcps.g:366:1: complexConstant returns [String value] : LPAREN re1= FLOATCONSTANT COMMA im1= FLOATCONSTANT RPAREN ; + public final wcpsParser.complexConstant_return complexConstant() throws RecognitionException { + wcpsParser.complexConstant_return retval = new wcpsParser.complexConstant_return(); + retval.start = input.LT(1); + int complexConstant_StartIndex = input.index(); + Object root_0 = null; + + Token re1=null; + Token im1=null; + Token LPAREN198=null; + Token COMMA199=null; + Token RPAREN200=null; + + Object re1_tree=null; + Object im1_tree=null; + Object LPAREN198_tree=null; + Object COMMA199_tree=null; + Object RPAREN200_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 74) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:367:2: ( LPAREN re1= FLOATCONSTANT COMMA im1= FLOATCONSTANT RPAREN ) + // src/petascope/wcps/grammar/wcps.g:367:4: LPAREN re1= FLOATCONSTANT COMMA im1= FLOATCONSTANT RPAREN + { + root_0 = (Object)adaptor.nil(); + + LPAREN198=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_complexConstant3747); if (state.failed) return retval; + if ( state.backtracking==0 ) { + LPAREN198_tree = (Object)adaptor.create(LPAREN198); + adaptor.addChild(root_0, LPAREN198_tree); + } + re1=(Token)match(input,FLOATCONSTANT,FOLLOW_FLOATCONSTANT_in_complexConstant3751); if (state.failed) return retval; + if ( state.backtracking==0 ) { + re1_tree = (Object)adaptor.create(re1); + adaptor.addChild(root_0, re1_tree); + } + COMMA199=(Token)match(input,COMMA,FOLLOW_COMMA_in_complexConstant3753); if (state.failed) return retval; + if ( state.backtracking==0 ) { + COMMA199_tree = (Object)adaptor.create(COMMA199); + adaptor.addChild(root_0, COMMA199_tree); + } + im1=(Token)match(input,FLOATCONSTANT,FOLLOW_FLOATCONSTANT_in_complexConstant3757); if (state.failed) return retval; + if ( state.backtracking==0 ) { + im1_tree = (Object)adaptor.create(im1); + adaptor.addChild(root_0, im1_tree); + } + RPAREN200=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_complexConstant3759); if (state.failed) return retval; + if ( state.backtracking==0 ) { + RPAREN200_tree = (Object)adaptor.create(RPAREN200); + adaptor.addChild(root_0, RPAREN200_tree); + } + if ( state.backtracking==0 ) { + retval.value = new String((re1!=null?re1.getText():null) +"+i"+(im1!=null?im1.getText():null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 74, complexConstant_StartIndex); } + } + return retval; + } + // $ANTLR end "complexConstant" + + public static class stringConstant_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "stringConstant" + // src/petascope/wcps/grammar/wcps.g:369:1: stringConstant returns [String value] : s= STRING ; + public final wcpsParser.stringConstant_return stringConstant() throws RecognitionException { + wcpsParser.stringConstant_return retval = new wcpsParser.stringConstant_return(); + retval.start = input.LT(1); + int stringConstant_StartIndex = input.index(); + Object root_0 = null; + + Token s=null; + + Object s_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 75) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:370:2: (s= STRING ) + // src/petascope/wcps/grammar/wcps.g:370:4: s= STRING + { + root_0 = (Object)adaptor.nil(); + + s=(Token)match(input,STRING,FOLLOW_STRING_in_stringConstant3776); if (state.failed) return retval; + if ( state.backtracking==0 ) { + s_tree = (Object)adaptor.create(s); + adaptor.addChild(root_0, s_tree); + } + if ( state.backtracking==0 ) { + retval.value = (s!=null?s.getText():null); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 75, stringConstant_StartIndex); } + } + return retval; + } + // $ANTLR end "stringConstant" + + public static class name_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "name" + // src/petascope/wcps/grammar/wcps.g:372:1: name returns [String value] : var= ( NAME | STRING | INTEGERCONSTANT ) ; + public final wcpsParser.name_return name() throws RecognitionException { + wcpsParser.name_return retval = new wcpsParser.name_return(); + retval.start = input.LT(1); + int name_StartIndex = input.index(); + Object root_0 = null; + + Token var=null; + + Object var_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 76) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:373:2: (var= ( NAME | STRING | INTEGERCONSTANT ) ) + // src/petascope/wcps/grammar/wcps.g:373:4: var= ( NAME | STRING | INTEGERCONSTANT ) + { + root_0 = (Object)adaptor.nil(); + + var=(Token)input.LT(1); + if ( input.LA(1)==INTEGERCONSTANT||input.LA(1)==STRING||input.LA(1)==NAME ) { + input.consume(); + if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(var)); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return retval;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + if ( state.backtracking==0 ) { + retval.value = (var!=null?var.getText():null); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 76, name_StartIndex); } + } + return retval; + } + // $ANTLR end "name" + + public static class crsName_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "crsName" + // src/petascope/wcps/grammar/wcps.g:375:1: crsName returns [String value] : s= stringConstant ; + public final wcpsParser.crsName_return crsName() throws RecognitionException { + wcpsParser.crsName_return retval = new wcpsParser.crsName_return(); + retval.start = input.LT(1); + int crsName_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.stringConstant_return s = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 77) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:376:2: (s= stringConstant ) + // src/petascope/wcps/grammar/wcps.g:376:4: s= stringConstant + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_stringConstant_in_crsName3820); + s=stringConstant(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, s.getTree()); + if ( state.backtracking==0 ) { + retval.value = (s!=null?s.value:null); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 77, crsName_StartIndex); } + } + return retval; + } + // $ANTLR end "crsName" + + public static class axisName_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "axisName" + // src/petascope/wcps/grammar/wcps.g:378:1: axisName returns [String value] : type1= name ; + public final wcpsParser.axisName_return axisName() throws RecognitionException { + wcpsParser.axisName_return retval = new wcpsParser.axisName_return(); + retval.start = input.LT(1); + int axisName_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.name_return type1 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 78) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:379:2: (type1= name ) + // src/petascope/wcps/grammar/wcps.g:379:4: type1= name + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_name_in_axisName3837); + type1=name(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, type1.getTree()); + if ( state.backtracking==0 ) { + retval.value = new String((type1!=null?type1.value:null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 78, axisName_StartIndex); } + } + return retval; + } + // $ANTLR end "axisName" + + public static class variableName_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "variableName" + // src/petascope/wcps/grammar/wcps.g:381:1: variableName returns [String value] : var= VARIABLE_DOLLAR ; + public final wcpsParser.variableName_return variableName() throws RecognitionException { + wcpsParser.variableName_return retval = new wcpsParser.variableName_return(); + retval.start = input.LT(1); + int variableName_StartIndex = input.index(); + Object root_0 = null; + + Token var=null; + + Object var_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 79) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:382:2: (var= VARIABLE_DOLLAR ) + // src/petascope/wcps/grammar/wcps.g:382:4: var= VARIABLE_DOLLAR + { + root_0 = (Object)adaptor.nil(); + + var=(Token)match(input,VARIABLE_DOLLAR,FOLLOW_VARIABLE_DOLLAR_in_variableName3854); if (state.failed) return retval; + if ( state.backtracking==0 ) { + var_tree = (Object)adaptor.create(var); + adaptor.addChild(root_0, var_tree); + } + if ( state.backtracking==0 ) { + retval.value = new String((var!=null?var.getText():null)); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 79, variableName_StartIndex); } + } + return retval; + } + // $ANTLR end "variableName" + + public static class coverageVariable_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageVariable" + // src/petascope/wcps/grammar/wcps.g:384:1: coverageVariable returns [String value] : var= NAME ; + public final wcpsParser.coverageVariable_return coverageVariable() throws RecognitionException { + wcpsParser.coverageVariable_return retval = new wcpsParser.coverageVariable_return(); + retval.start = input.LT(1); + int coverageVariable_StartIndex = input.index(); + Object root_0 = null; + + Token var=null; + + Object var_tree=null; + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 80) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:385:2: (var= NAME ) + // src/petascope/wcps/grammar/wcps.g:385:4: var= NAME + { + root_0 = (Object)adaptor.nil(); + + var=(Token)match(input,NAME,FOLLOW_NAME_in_coverageVariable3871); if (state.failed) return retval; + if ( state.backtracking==0 ) { + var_tree = (Object)adaptor.create(var); + adaptor.addChild(root_0, var_tree); + } + if ( state.backtracking==0 ) { + retval.value = (var!=null?var.getText():null); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 80, coverageVariable_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageVariable" + + public static class coverageName_return extends ParserRuleReturnScope { + public String value; + Object tree; + public Object getTree() { return tree; } + }; + + // $ANTLR start "coverageName" + // src/petascope/wcps/grammar/wcps.g:387:1: coverageName returns [String value] : name ; + public final wcpsParser.coverageName_return coverageName() throws RecognitionException { + wcpsParser.coverageName_return retval = new wcpsParser.coverageName_return(); + retval.start = input.LT(1); + int coverageName_StartIndex = input.index(); + Object root_0 = null; + + wcpsParser.name_return name201 = null; + + + + try { + if ( state.backtracking>0 && alreadyParsedRule(input, 81) ) { return retval; } + // src/petascope/wcps/grammar/wcps.g:388:2: ( name ) + // src/petascope/wcps/grammar/wcps.g:388:4: name + { + root_0 = (Object)adaptor.nil(); + + pushFollow(FOLLOW_name_in_coverageName3886); + name201=name(); + + state._fsp--; + if (state.failed) return retval; + if ( state.backtracking==0 ) adaptor.addChild(root_0, name201.getTree()); + if ( state.backtracking==0 ) { + retval.value = (name201!=null?name201.value:null); + } + + } + + retval.stop = input.LT(-1); + + if ( state.backtracking==0 ) { + + retval.tree = (Object)adaptor.rulePostProcessing(root_0); + adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop); + } + } + catch (RecognitionException re) { + reportError(re); + recover(input,re); + retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re); + + } + finally { + if ( state.backtracking>0 ) { memoize(input, 81, coverageName_StartIndex); } + } + return retval; + } + // $ANTLR end "coverageName" + + // $ANTLR start synpred8_wcps + public final void synpred8_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.coverageLogicTerm_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:67:10: (op= ( OR | XOR ) e2= coverageLogicTerm ) + // src/petascope/wcps/grammar/wcps.g:67:10: op= ( OR | XOR ) e2= coverageLogicTerm + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=OR && input.LA(1)<=XOR) ) { + input.consume(); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_coverageLogicTerm_in_synpred8_wcps374); + e2=coverageLogicTerm(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred8_wcps + + // $ANTLR start synpred9_wcps + public final void synpred9_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.coverageLogicFactor_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:71:10: (op= AND e2= coverageLogicFactor ) + // src/petascope/wcps/grammar/wcps.g:71:10: op= AND e2= coverageLogicFactor + { + op=(Token)match(input,AND,FOLLOW_AND_in_synpred9_wcps416); if (state.failed) return ; + pushFollow(FOLLOW_coverageLogicFactor_in_synpred9_wcps420); + e2=coverageLogicFactor(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred9_wcps + + // $ANTLR start synpred15_wcps + public final void synpred15_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.coverageArithmeticExpr_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:75:10: (op= ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ) e2= coverageArithmeticExpr ) + // src/petascope/wcps/grammar/wcps.g:75:10: op= ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ) e2= coverageArithmeticExpr + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=EQUALS && input.LA(1)<=GTE) ) { + input.consume(); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_coverageArithmeticExpr_in_synpred15_wcps479); + e2=coverageArithmeticExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred15_wcps + + // $ANTLR start synpred17_wcps + public final void synpred17_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.coverageArithmeticTerm_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:79:10: (op= ( PLUS | MINUS ) e2= coverageArithmeticTerm ) + // src/petascope/wcps/grammar/wcps.g:79:10: op= ( PLUS | MINUS ) e2= coverageArithmeticTerm + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=PLUS && input.LA(1)<=MINUS) ) { + input.consume(); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_coverageArithmeticTerm_in_synpred17_wcps531); + e2=coverageArithmeticTerm(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred17_wcps + + // $ANTLR start synpred19_wcps + public final void synpred19_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.coverageArithmeticFactor_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:83:10: (op= ( MULT | DIVIDE ) e2= coverageArithmeticFactor ) + // src/petascope/wcps/grammar/wcps.g:83:10: op= ( MULT | DIVIDE ) e2= coverageArithmeticFactor + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=MULT && input.LA(1)<=DIVIDE) ) { + input.consume(); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_coverageArithmeticFactor_in_synpred19_wcps582); + e2=coverageArithmeticFactor(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred19_wcps + + // $ANTLR start synpred20_wcps + public final void synpred20_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.coverageValue_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:87:10: (op= OVERLAY e2= coverageValue ) + // src/petascope/wcps/grammar/wcps.g:87:10: op= OVERLAY e2= coverageValue + { + op=(Token)match(input,OVERLAY,FOLLOW_OVERLAY_in_synpred20_wcps625); if (state.failed) return ; + pushFollow(FOLLOW_coverageValue_in_synpred20_wcps629); + e2=coverageValue(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred20_wcps + + // $ANTLR start synpred21_wcps + public final void synpred21_wcps_fragment() throws RecognitionException { + wcpsParser.subsetExpr_return e5 = null; + + + // src/petascope/wcps/grammar/wcps.g:90:7: (e5= subsetExpr ) + // src/petascope/wcps/grammar/wcps.g:90:7: e5= subsetExpr + { + pushFollow(FOLLOW_subsetExpr_in_synpred21_wcps655); + e5=subsetExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred21_wcps + + // $ANTLR start synpred22_wcps + public final void synpred22_wcps_fragment() throws RecognitionException { + wcpsParser.unaryInducedExpr_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:91:7: (e2= unaryInducedExpr ) + // src/petascope/wcps/grammar/wcps.g:91:7: e2= unaryInducedExpr + { + pushFollow(FOLLOW_unaryInducedExpr_in_synpred22_wcps668); + e2=unaryInducedExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred22_wcps + + // $ANTLR start synpred25_wcps + public final void synpred25_wcps_fragment() throws RecognitionException { + wcpsParser.scalarExpr_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:97:7: (e2= scalarExpr ) + // src/petascope/wcps/grammar/wcps.g:97:7: e2= scalarExpr + { + pushFollow(FOLLOW_scalarExpr_in_synpred25_wcps727); + e2=scalarExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred25_wcps + + // $ANTLR start synpred27_wcps + public final void synpred27_wcps_fragment() throws RecognitionException { + wcpsParser.coverageExpr_return e7 = null; + + + // src/petascope/wcps/grammar/wcps.g:99:7: ( LPAREN e7= coverageExpr RPAREN ) + // src/petascope/wcps/grammar/wcps.g:99:7: LPAREN e7= coverageExpr RPAREN + { + match(input,LPAREN,FOLLOW_LPAREN_in_synpred27_wcps749); if (state.failed) return ; + pushFollow(FOLLOW_coverageExpr_in_synpred27_wcps753); + e7=coverageExpr(); + + state._fsp--; + if (state.failed) return ; + match(input,RPAREN,FOLLOW_RPAREN_in_synpred27_wcps755); if (state.failed) return ; + + } + } + // $ANTLR end synpred27_wcps + + // $ANTLR start synpred28_wcps + public final void synpred28_wcps_fragment() throws RecognitionException { + wcpsParser.coverageConstantExpr_return e3 = null; + + + // src/petascope/wcps/grammar/wcps.g:100:7: (e3= coverageConstantExpr ) + // src/petascope/wcps/grammar/wcps.g:100:7: e3= coverageConstantExpr + { + pushFollow(FOLLOW_coverageConstantExpr_in_synpred28_wcps768); + e3=coverageConstantExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred28_wcps + + // $ANTLR start synpred29_wcps + public final void synpred29_wcps_fragment() throws RecognitionException { + wcpsParser.coverageConstructorExpr_return e4 = null; + + + // src/petascope/wcps/grammar/wcps.g:101:7: (e4= coverageConstructorExpr ) + // src/petascope/wcps/grammar/wcps.g:101:7: e4= coverageConstructorExpr + { + pushFollow(FOLLOW_coverageConstructorExpr_in_synpred29_wcps780); + e4=coverageConstructorExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred29_wcps + + // $ANTLR start synpred31_wcps + public final void synpred31_wcps_fragment() throws RecognitionException { + wcpsParser.metaDataExpr_return e1 = null; + + + // src/petascope/wcps/grammar/wcps.g:106:7: (e1= metaDataExpr ) + // src/petascope/wcps/grammar/wcps.g:106:7: e1= metaDataExpr + { + pushFollow(FOLLOW_metaDataExpr_in_synpred31_wcps830); + e1=metaDataExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred31_wcps + + // $ANTLR start synpred32_wcps + public final void synpred32_wcps_fragment() throws RecognitionException { + wcpsParser.condenseExpr_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:107:7: (e2= condenseExpr ) + // src/petascope/wcps/grammar/wcps.g:107:7: e2= condenseExpr + { + pushFollow(FOLLOW_condenseExpr_in_synpred32_wcps843); + e2=condenseExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred32_wcps + + // $ANTLR start synpred33_wcps + public final void synpred33_wcps_fragment() throws RecognitionException { + wcpsParser.booleanScalarExpr_return e3 = null; + + + // src/petascope/wcps/grammar/wcps.g:108:7: (e3= booleanScalarExpr ) + // src/petascope/wcps/grammar/wcps.g:108:7: e3= booleanScalarExpr + { + pushFollow(FOLLOW_booleanScalarExpr_in_synpred33_wcps856); + e3=booleanScalarExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred33_wcps + + // $ANTLR start synpred34_wcps + public final void synpred34_wcps_fragment() throws RecognitionException { + wcpsParser.numericScalarExpr_return e4 = null; + + + // src/petascope/wcps/grammar/wcps.g:109:7: (e4= numericScalarExpr ) + // src/petascope/wcps/grammar/wcps.g:109:7: e4= numericScalarExpr + { + pushFollow(FOLLOW_numericScalarExpr_in_synpred34_wcps870); + e4=numericScalarExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred34_wcps + + // $ANTLR start synpred35_wcps + public final void synpred35_wcps_fragment() throws RecognitionException { + wcpsParser.stringScalarExpr_return e5 = null; + + + // src/petascope/wcps/grammar/wcps.g:110:7: (e5= stringScalarExpr ) + // src/petascope/wcps/grammar/wcps.g:110:7: e5= stringScalarExpr + { + pushFollow(FOLLOW_stringScalarExpr_in_synpred35_wcps883); + e5=stringScalarExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred35_wcps + + // $ANTLR start synpred70_wcps + public final void synpred70_wcps_fragment() throws RecognitionException { + wcpsParser.fieldExpr_return e6 = null; + + + // src/petascope/wcps/grammar/wcps.g:204:7: (e6= fieldExpr ) + // src/petascope/wcps/grammar/wcps.g:204:7: e6= fieldExpr + { + pushFollow(FOLLOW_fieldExpr_in_synpred70_wcps2013); + e6=fieldExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred70_wcps + + // $ANTLR start synpred71_wcps + public final void synpred71_wcps_fragment() throws RecognitionException { + wcpsParser.unaryArithmeticExpr_return e1 = null; + + + // src/petascope/wcps/grammar/wcps.g:205:4: (e1= unaryArithmeticExpr ) + // src/petascope/wcps/grammar/wcps.g:205:4: e1= unaryArithmeticExpr + { + pushFollow(FOLLOW_unaryArithmeticExpr_in_synpred71_wcps2022); + e1=unaryArithmeticExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred71_wcps + + // $ANTLR start synpred74_wcps + public final void synpred74_wcps_fragment() throws RecognitionException { + wcpsParser.booleanExpr_return e4 = null; + + + // src/petascope/wcps/grammar/wcps.g:208:7: (e4= booleanExpr ) + // src/petascope/wcps/grammar/wcps.g:208:7: e4= booleanExpr + { + pushFollow(FOLLOW_booleanExpr_in_synpred74_wcps2058); + e4=booleanExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred74_wcps + + // $ANTLR start synpred100_wcps + public final void synpred100_wcps_fragment() throws RecognitionException { + wcpsParser.trimExpr_return e1 = null; + + + // src/petascope/wcps/grammar/wcps.g:251:4: (e1= trimExpr ) + // src/petascope/wcps/grammar/wcps.g:251:4: e1= trimExpr + { + pushFollow(FOLLOW_trimExpr_in_synpred100_wcps2575); + e1=trimExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred100_wcps + + // $ANTLR start synpred101_wcps + public final void synpred101_wcps_fragment() throws RecognitionException { + wcpsParser.sliceExpr_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:252:4: (e2= sliceExpr ) + // src/petascope/wcps/grammar/wcps.g:252:4: e2= sliceExpr + { + pushFollow(FOLLOW_sliceExpr_in_synpred101_wcps2584); + e2=sliceExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred101_wcps + + // $ANTLR start synpred115_wcps + public final void synpred115_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.booleanScalarTerm_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:280:8: (op= ( OR | XOR ) e2= booleanScalarTerm ) + // src/petascope/wcps/grammar/wcps.g:280:8: op= ( OR | XOR ) e2= booleanScalarTerm + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=OR && input.LA(1)<=XOR) ) { + input.consume(); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_booleanScalarTerm_in_synpred115_wcps2886); + e2=booleanScalarTerm(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred115_wcps + + // $ANTLR start synpred116_wcps + public final void synpred116_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.booleanScalarNegation_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:284:5: (op= AND e2= booleanScalarNegation ) + // src/petascope/wcps/grammar/wcps.g:284:5: op= AND e2= booleanScalarNegation + { + op=(Token)match(input,AND,FOLLOW_AND_in_synpred116_wcps2918); if (state.failed) return ; + pushFollow(FOLLOW_booleanScalarNegation_in_synpred116_wcps2922); + e2=booleanScalarNegation(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred116_wcps + + // $ANTLR start synpred118_wcps + public final void synpred118_wcps_fragment() throws RecognitionException { + wcpsParser.booleanScalarExpr_return e1 = null; + + + // src/petascope/wcps/grammar/wcps.g:291:4: ( LPAREN e1= booleanScalarExpr RPAREN ) + // src/petascope/wcps/grammar/wcps.g:291:4: LPAREN e1= booleanScalarExpr RPAREN + { + match(input,LPAREN,FOLLOW_LPAREN_in_synpred118_wcps2971); if (state.failed) return ; + pushFollow(FOLLOW_booleanScalarExpr_in_synpred118_wcps2975); + e1=booleanScalarExpr(); + + state._fsp--; + if (state.failed) return ; + match(input,RPAREN,FOLLOW_RPAREN_in_synpred118_wcps2977); if (state.failed) return ; + + } + } + // $ANTLR end synpred118_wcps + + // $ANTLR start synpred120_wcps + public final void synpred120_wcps_fragment() throws RecognitionException { + wcpsParser.numericScalarExpr_return n1 = null; + + wcpsParser.compOp_return cop = null; + + wcpsParser.numericScalarExpr_return n2 = null; + + + // src/petascope/wcps/grammar/wcps.g:293:4: (n1= numericScalarExpr cop= compOp n2= numericScalarExpr ) + // src/petascope/wcps/grammar/wcps.g:293:4: n1= numericScalarExpr cop= compOp n2= numericScalarExpr + { + pushFollow(FOLLOW_numericScalarExpr_in_synpred120_wcps3004); + n1=numericScalarExpr(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_compOp_in_synpred120_wcps3008); + cop=compOp(); + + state._fsp--; + if (state.failed) return ; + pushFollow(FOLLOW_numericScalarExpr_in_synpred120_wcps3012); + n2=numericScalarExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred120_wcps + + // $ANTLR start synpred122_wcps + public final void synpred122_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.numericScalarTerm_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:298:5: (op= ( PLUS | MINUS ) e2= numericScalarTerm ) + // src/petascope/wcps/grammar/wcps.g:298:5: op= ( PLUS | MINUS ) e2= numericScalarTerm + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=PLUS && input.LA(1)<=MINUS) ) { + input.consume(); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_numericScalarTerm_in_synpred122_wcps3057); + e2=numericScalarTerm(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred122_wcps + + // $ANTLR start synpred124_wcps + public final void synpred124_wcps_fragment() throws RecognitionException { + Token op=null; + wcpsParser.numericScalarFactor_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:302:4: (op= ( MULT | DIVIDE ) e2= numericScalarFactor ) + // src/petascope/wcps/grammar/wcps.g:302:4: op= ( MULT | DIVIDE ) e2= numericScalarFactor + { + op=(Token)input.LT(1); + if ( (input.LA(1)>=MULT && input.LA(1)<=DIVIDE) ) { + input.consume(); + state.errorRecovery=false;state.failed=false; + } + else { + if (state.backtracking>0) {state.failed=true; return ;} + MismatchedSetException mse = new MismatchedSetException(null,input); + throw mse; + } + + pushFollow(FOLLOW_numericScalarFactor_in_synpred124_wcps3093); + e2=numericScalarFactor(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred124_wcps + + // $ANTLR start synpred125_wcps + public final void synpred125_wcps_fragment() throws RecognitionException { + wcpsParser.numericScalarExpr_return e1 = null; + + + // src/petascope/wcps/grammar/wcps.g:305:7: ( LPAREN e1= numericScalarExpr RPAREN ) + // src/petascope/wcps/grammar/wcps.g:305:7: LPAREN e1= numericScalarExpr RPAREN + { + match(input,LPAREN,FOLLOW_LPAREN_in_synpred125_wcps3113); if (state.failed) return ; + pushFollow(FOLLOW_numericScalarExpr_in_synpred125_wcps3117); + e1=numericScalarExpr(); + + state._fsp--; + if (state.failed) return ; + match(input,RPAREN,FOLLOW_RPAREN_in_synpred125_wcps3119); if (state.failed) return ; + + } + } + // $ANTLR end synpred125_wcps + + // $ANTLR start synpred132_wcps + public final void synpred132_wcps_fragment() throws RecognitionException { + wcpsParser.complexConstant_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:312:7: (e2= complexConstant ) + // src/petascope/wcps/grammar/wcps.g:312:7: e2= complexConstant + { + pushFollow(FOLLOW_complexConstant_in_synpred132_wcps3231); + e2=complexConstant(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred132_wcps + + // $ANTLR start synpred141_wcps + public final void synpred141_wcps_fragment() throws RecognitionException { + wcpsParser.scalarExpr_return e1 = null; + + wcpsParser.scalarExpr_return e2 = null; + + + // src/petascope/wcps/grammar/wcps.g:333:7: (e1= scalarExpr COLON e2= scalarExpr ) + // src/petascope/wcps/grammar/wcps.g:333:7: e1= scalarExpr COLON e2= scalarExpr + { + pushFollow(FOLLOW_scalarExpr_in_synpred141_wcps3419); + e1=scalarExpr(); + + state._fsp--; + if (state.failed) return ; + match(input,COLON,FOLLOW_COLON_in_synpred141_wcps3421); if (state.failed) return ; + pushFollow(FOLLOW_scalarExpr_in_synpred141_wcps3425); + e2=scalarExpr(); + + state._fsp--; + if (state.failed) return ; + + } + } + // $ANTLR end synpred141_wcps + + // Delegated rules + + public final boolean synpred70_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred70_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred9_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred9_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred15_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred15_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred17_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred17_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred125_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred125_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred19_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred19_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred32_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred32_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred31_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred31_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred21_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred21_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred101_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred101_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred118_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred118_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred115_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred115_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred132_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred132_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred141_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred141_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred122_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred122_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred74_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred74_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred20_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred20_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred33_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred33_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred27_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred27_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred22_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred22_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred28_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred28_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred29_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred29_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred100_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred100_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred25_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred25_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred35_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred35_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred71_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred71_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred34_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred34_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred124_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred124_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred8_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred8_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred116_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred116_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + public final boolean synpred120_wcps() { + state.backtracking++; + int start = input.mark(); + try { + synpred120_wcps_fragment(); // can never throw exception + } catch (RecognitionException re) { + System.err.println("impossible: "+re); + } + boolean success = !state.failed; + input.rewind(start); + state.backtracking--; + state.failed=false; + return success; + } + + + protected DFA4 dfa4 = new DFA4(this); + protected DFA6 dfa6 = new DFA6(this); + protected DFA7 dfa7 = new DFA7(this); + protected DFA8 dfa8 = new DFA8(this); + protected DFA9 dfa9 = new DFA9(this); + protected DFA10 dfa10 = new DFA10(this); + protected DFA11 dfa11 = new DFA11(this); + protected DFA12 dfa12 = new DFA12(this); + protected DFA13 dfa13 = new DFA13(this); + protected DFA14 dfa14 = new DFA14(this); + protected DFA34 dfa34 = new DFA34(this); + protected DFA42 dfa42 = new DFA42(this); + protected DFA43 dfa43 = new DFA43(this); + protected DFA44 dfa44 = new DFA44(this); + protected DFA46 dfa46 = new DFA46(this); + protected DFA47 dfa47 = new DFA47(this); + protected DFA48 dfa48 = new DFA48(this); + protected DFA49 dfa49 = new DFA49(this); + protected DFA50 dfa50 = new DFA50(this); + protected DFA51 dfa51 = new DFA51(this); + protected DFA52 dfa52 = new DFA52(this); + protected DFA56 dfa56 = new DFA56(this); + static final String DFA4_eotS = + "\30\uffff"; + static final String DFA4_eofS = + "\30\uffff"; + static final String DFA4_minS = + "\1\6\27\uffff"; + static final String DFA4_maxS = + "\1\154\27\uffff"; + static final String DFA4_acceptS = + "\1\uffff\1\1\1\2\1\3\24\uffff"; + static final String DFA4_specialS = + "\30\uffff}>"; + static final String[] DFA4_transitionS = { + "\1\3\4\uffff\1\1\1\2\12\uffff\1\3\3\uffff\20\3\21\uffff\2\3"+ + "\16\uffff\1\3\1\uffff\3\3\20\uffff\2\3\11\uffff\1\3", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA4_eot = DFA.unpackEncodedString(DFA4_eotS); + static final short[] DFA4_eof = DFA.unpackEncodedString(DFA4_eofS); + static final char[] DFA4_min = DFA.unpackEncodedStringToUnsignedChars(DFA4_minS); + static final char[] DFA4_max = DFA.unpackEncodedStringToUnsignedChars(DFA4_maxS); + static final short[] DFA4_accept = DFA.unpackEncodedString(DFA4_acceptS); + static final short[] DFA4_special = DFA.unpackEncodedString(DFA4_specialS); + static final short[][] DFA4_transition; + + static { + int numStates = DFA4_transitionS.length; + DFA4_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA4_transition[i] = DFA.unpackEncodedString(DFA4_transitionS[i]); + } + } + + class DFA4 extends DFA { + + public DFA4(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 4; + this.eot = DFA4_eot; + this.eof = DFA4_eof; + this.min = DFA4_min; + this.max = DFA4_max; + this.accept = DFA4_accept; + this.special = DFA4_special; + this.transition = DFA4_transition; + } + public String getDescription() { + return "53:1: processingExpr returns [ProcessingExpr value] : (e1= encodedCoverageExpr | e2= storeExpr | e3= scalarExpr );"; + } + } + static final String DFA6_eotS = + "\77\uffff"; + static final String DFA6_eofS = + "\1\1\76\uffff"; + static final String DFA6_minS = + "\1\7\10\uffff\1\0\65\uffff"; + static final String DFA6_maxS = + "\1\140\10\uffff\1\0\65\uffff"; + static final String DFA6_acceptS = + "\1\uffff\1\2\74\uffff\1\1"; + static final String DFA6_specialS = + "\11\uffff\1\0\65\uffff}>"; + static final String[] DFA6_transitionS = { + "\2\1\1\uffff\1\1\2\uffff\2\11\14\1\21\uffff\2\1\3\uffff\1\1"+ + "\7\uffff\1\1\30\uffff\1\1\15\uffff\1\1", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA6_eot = DFA.unpackEncodedString(DFA6_eotS); + static final short[] DFA6_eof = DFA.unpackEncodedString(DFA6_eofS); + static final char[] DFA6_min = DFA.unpackEncodedStringToUnsignedChars(DFA6_minS); + static final char[] DFA6_max = DFA.unpackEncodedStringToUnsignedChars(DFA6_maxS); + static final short[] DFA6_accept = DFA.unpackEncodedString(DFA6_acceptS); + static final short[] DFA6_special = DFA.unpackEncodedString(DFA6_specialS); + static final short[][] DFA6_transition; + + static { + int numStates = DFA6_transitionS.length; + DFA6_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA6_transition[i] = DFA.unpackEncodedString(DFA6_transitionS[i]); + } + } + + class DFA6 extends DFA { + + public DFA6(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 6; + this.eot = DFA6_eot; + this.eof = DFA6_eof; + this.min = DFA6_min; + this.max = DFA6_max; + this.accept = DFA6_accept; + this.special = DFA6_special; + this.transition = DFA6_transition; + } + public String getDescription() { + return "()* loopback of 67:9: (op= ( OR | XOR ) e2= coverageLogicTerm )*"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA6_9 = input.LA(1); + + + int index6_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred8_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 1;} + + + input.seek(index6_9); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 6, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA7_eotS = + "\77\uffff"; + static final String DFA7_eofS = + "\1\1\76\uffff"; + static final String DFA7_minS = + "\1\7\10\uffff\1\0\65\uffff"; + static final String DFA7_maxS = + "\1\140\10\uffff\1\0\65\uffff"; + static final String DFA7_acceptS = + "\1\uffff\1\2\74\uffff\1\1"; + static final String DFA7_specialS = + "\11\uffff\1\0\65\uffff}>"; + static final String[] DFA7_transitionS = { + "\2\1\1\uffff\1\1\2\uffff\2\1\1\11\13\1\21\uffff\2\1\3\uffff"+ + "\1\1\7\uffff\1\1\30\uffff\1\1\15\uffff\1\1", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA7_eot = DFA.unpackEncodedString(DFA7_eotS); + static final short[] DFA7_eof = DFA.unpackEncodedString(DFA7_eofS); + static final char[] DFA7_min = DFA.unpackEncodedStringToUnsignedChars(DFA7_minS); + static final char[] DFA7_max = DFA.unpackEncodedStringToUnsignedChars(DFA7_maxS); + static final short[] DFA7_accept = DFA.unpackEncodedString(DFA7_acceptS); + static final short[] DFA7_special = DFA.unpackEncodedString(DFA7_specialS); + static final short[][] DFA7_transition; + + static { + int numStates = DFA7_transitionS.length; + DFA7_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA7_transition[i] = DFA.unpackEncodedString(DFA7_transitionS[i]); + } + } + + class DFA7 extends DFA { + + public DFA7(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 7; + this.eot = DFA7_eot; + this.eof = DFA7_eof; + this.min = DFA7_min; + this.max = DFA7_max; + this.accept = DFA7_accept; + this.special = DFA7_special; + this.transition = DFA7_transition; + } + public String getDescription() { + return "()* loopback of 71:9: (op= AND e2= coverageLogicFactor )*"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA7_9 = input.LA(1); + + + int index7_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred9_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 1;} + + + input.seek(index7_9); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 7, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA8_eotS = + "\u0107\uffff"; + static final String DFA8_eofS = + "\1\2\u0106\uffff"; + static final String DFA8_minS = + "\1\7\1\0\14\uffff\5\0\u00f4\uffff"; + static final String DFA8_maxS = + "\1\140\1\0\14\uffff\5\0\u00f4\uffff"; + static final String DFA8_acceptS = + "\2\uffff\1\2\73\uffff\1\1\u00c8\uffff"; + static final String DFA8_specialS = + "\1\uffff\1\0\14\uffff\1\1\1\2\1\3\1\4\1\5\u00f4\uffff}>"; + static final String[] DFA8_transitionS = { + "\2\2\1\uffff\1\2\2\uffff\3\2\1\1\1\16\1\17\1\20\1\21\1\22\5"+ + "\2\21\uffff\2\2\3\uffff\1\2\7\uffff\1\2\30\uffff\1\2\15\uffff"+ + "\1\2", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA8_eot = DFA.unpackEncodedString(DFA8_eotS); + static final short[] DFA8_eof = DFA.unpackEncodedString(DFA8_eofS); + static final char[] DFA8_min = DFA.unpackEncodedStringToUnsignedChars(DFA8_minS); + static final char[] DFA8_max = DFA.unpackEncodedStringToUnsignedChars(DFA8_maxS); + static final short[] DFA8_accept = DFA.unpackEncodedString(DFA8_acceptS); + static final short[] DFA8_special = DFA.unpackEncodedString(DFA8_specialS); + static final short[][] DFA8_transition; + + static { + int numStates = DFA8_transitionS.length; + DFA8_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA8_transition[i] = DFA.unpackEncodedString(DFA8_transitionS[i]); + } + } + + class DFA8 extends DFA { + + public DFA8(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 8; + this.eot = DFA8_eot; + this.eof = DFA8_eof; + this.min = DFA8_min; + this.max = DFA8_max; + this.accept = DFA8_accept; + this.special = DFA8_special; + this.transition = DFA8_transition; + } + public String getDescription() { + return "75:9: (op= ( EQUALS | NOTEQUALS | LT | GT | LTE | GTE ) e2= coverageArithmeticExpr )?"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA8_1 = input.LA(1); + + + int index8_1 = input.index(); + input.rewind(); + s = -1; + if ( (synpred15_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 2;} + + + input.seek(index8_1); + if ( s>=0 ) return s; + break; + case 1 : + int LA8_14 = input.LA(1); + + + int index8_14 = input.index(); + input.rewind(); + s = -1; + if ( (synpred15_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 2;} + + + input.seek(index8_14); + if ( s>=0 ) return s; + break; + case 2 : + int LA8_15 = input.LA(1); + + + int index8_15 = input.index(); + input.rewind(); + s = -1; + if ( (synpred15_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 2;} + + + input.seek(index8_15); + if ( s>=0 ) return s; + break; + case 3 : + int LA8_16 = input.LA(1); + + + int index8_16 = input.index(); + input.rewind(); + s = -1; + if ( (synpred15_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 2;} + + + input.seek(index8_16); + if ( s>=0 ) return s; + break; + case 4 : + int LA8_17 = input.LA(1); + + + int index8_17 = input.index(); + input.rewind(); + s = -1; + if ( (synpred15_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 2;} + + + input.seek(index8_17); + if ( s>=0 ) return s; + break; + case 5 : + int LA8_18 = input.LA(1); + + + int index8_18 = input.index(); + input.rewind(); + s = -1; + if ( (synpred15_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 2;} + + + input.seek(index8_18); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 8, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA9_eotS = + "\77\uffff"; + static final String DFA9_eofS = + "\1\1\76\uffff"; + static final String DFA9_minS = + "\1\7\10\uffff\1\0\65\uffff"; + static final String DFA9_maxS = + "\1\140\10\uffff\1\0\65\uffff"; + static final String DFA9_acceptS = + "\1\uffff\1\2\74\uffff\1\1"; + static final String DFA9_specialS = + "\11\uffff\1\0\65\uffff}>"; + static final String[] DFA9_transitionS = { + "\2\1\1\uffff\1\1\2\uffff\11\1\2\11\3\1\21\uffff\2\1\3\uffff"+ + "\1\1\7\uffff\1\1\30\uffff\1\1\15\uffff\1\1", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA9_eot = DFA.unpackEncodedString(DFA9_eotS); + static final short[] DFA9_eof = DFA.unpackEncodedString(DFA9_eofS); + static final char[] DFA9_min = DFA.unpackEncodedStringToUnsignedChars(DFA9_minS); + static final char[] DFA9_max = DFA.unpackEncodedStringToUnsignedChars(DFA9_maxS); + static final short[] DFA9_accept = DFA.unpackEncodedString(DFA9_acceptS); + static final short[] DFA9_special = DFA.unpackEncodedString(DFA9_specialS); + static final short[][] DFA9_transition; + + static { + int numStates = DFA9_transitionS.length; + DFA9_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA9_transition[i] = DFA.unpackEncodedString(DFA9_transitionS[i]); + } + } + + class DFA9 extends DFA { + + public DFA9(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 9; + this.eot = DFA9_eot; + this.eof = DFA9_eof; + this.min = DFA9_min; + this.max = DFA9_max; + this.accept = DFA9_accept; + this.special = DFA9_special; + this.transition = DFA9_transition; + } + public String getDescription() { + return "()* loopback of 79:9: (op= ( PLUS | MINUS ) e2= coverageArithmeticTerm )*"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA9_9 = input.LA(1); + + + int index9_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred17_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 1;} + + + input.seek(index9_9); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 9, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA10_eotS = + "\77\uffff"; + static final String DFA10_eofS = + "\1\1\76\uffff"; + static final String DFA10_minS = + "\1\7\10\uffff\1\0\65\uffff"; + static final String DFA10_maxS = + "\1\140\10\uffff\1\0\65\uffff"; + static final String DFA10_acceptS = + "\1\uffff\1\2\74\uffff\1\1"; + static final String DFA10_specialS = + "\11\uffff\1\0\65\uffff}>"; + static final String[] DFA10_transitionS = { + "\2\1\1\uffff\1\1\2\uffff\13\1\2\11\1\1\21\uffff\2\1\3\uffff"+ + "\1\1\7\uffff\1\1\30\uffff\1\1\15\uffff\1\1", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS); + static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS); + static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS); + static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS); + static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS); + static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS); + static final short[][] DFA10_transition; + + static { + int numStates = DFA10_transitionS.length; + DFA10_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA10_transition[i] = DFA.unpackEncodedString(DFA10_transitionS[i]); + } + } + + class DFA10 extends DFA { + + public DFA10(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 10; + this.eot = DFA10_eot; + this.eof = DFA10_eof; + this.min = DFA10_min; + this.max = DFA10_max; + this.accept = DFA10_accept; + this.special = DFA10_special; + this.transition = DFA10_transition; + } + public String getDescription() { + return "()* loopback of 83:9: (op= ( MULT | DIVIDE ) e2= coverageArithmeticFactor )*"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA10_9 = input.LA(1); + + + int index10_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred19_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 1;} + + + input.seek(index10_9); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 10, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA11_eotS = + "\77\uffff"; + static final String DFA11_eofS = + "\1\1\76\uffff"; + static final String DFA11_minS = + "\1\7\10\uffff\1\0\65\uffff"; + static final String DFA11_maxS = + "\1\140\10\uffff\1\0\65\uffff"; + static final String DFA11_acceptS = + "\1\uffff\1\2\74\uffff\1\1"; + static final String DFA11_specialS = + "\11\uffff\1\0\65\uffff}>"; + static final String[] DFA11_transitionS = { + "\2\1\1\uffff\1\1\2\uffff\15\1\1\11\21\uffff\2\1\3\uffff\1\1"+ + "\7\uffff\1\1\30\uffff\1\1\15\uffff\1\1", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS); + static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS); + static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS); + static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS); + static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS); + static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS); + static final short[][] DFA11_transition; + + static { + int numStates = DFA11_transitionS.length; + DFA11_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]); + } + } + + class DFA11 extends DFA { + + public DFA11(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 11; + this.eot = DFA11_eot; + this.eof = DFA11_eof; + this.min = DFA11_min; + this.max = DFA11_max; + this.accept = DFA11_accept; + this.special = DFA11_special; + this.transition = DFA11_transition; + } + public String getDescription() { + return "()* loopback of 87:9: (op= OVERLAY e2= coverageValue )*"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA11_9 = input.LA(1); + + + int index11_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred20_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 1;} + + + input.seek(index11_9); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 11, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA12_eotS = + "\52\uffff"; + static final String DFA12_eofS = + "\52\uffff"; + static final String DFA12_minS = + "\1\6\36\0\13\uffff"; + static final String DFA12_maxS = + "\1\154\36\0\13\uffff"; + static final String DFA12_acceptS = + "\37\uffff\1\1\2\uffff\1\2\4\uffff\1\3\1\4\1\5"; + static final String DFA12_specialS = + "\1\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+ + "\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\31"+ + "\1\32\1\33\1\34\1\35\13\uffff}>"; + static final String[] DFA12_transitionS = { + "\1\13\17\uffff\1\42\1\15\3\uffff\1\1\1\2\1\3\1\4\1\6\1\7\1\10"+ + "\1\5\7\11\1\12\3\uffff\1\27\4\uffff\1\30\1\31\1\32\1\33\1\34"+ + "\1\36\1\uffff\1\35\1\50\1\17\1\16\16\42\1\25\1\42\1\21\1\20"+ + "\1\14\1\47\2\uffff\3\37\12\uffff\1\24\1\22\10\uffff\1\26\1\23", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS); + static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS); + static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS); + static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS); + static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS); + static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS); + static final short[][] DFA12_transition; + + static { + int numStates = DFA12_transitionS.length; + DFA12_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]); + } + } + + class DFA12 extends DFA { + + public DFA12(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 12; + this.eot = DFA12_eot; + this.eof = DFA12_eof; + this.min = DFA12_min; + this.max = DFA12_max; + this.accept = DFA12_accept; + this.special = DFA12_special; + this.transition = DFA12_transition; + } + public String getDescription() { + return "89:1: coverageValue returns [CoverageExpr value] : (e5= subsetExpr | e2= unaryInducedExpr | e4= scaleExpr | e3= crsTransformExpr | e1= coverageAtom );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA12_1 = input.LA(1); + + + int index12_1 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_1); + if ( s>=0 ) return s; + break; + case 1 : + int LA12_2 = input.LA(1); + + + int index12_2 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_2); + if ( s>=0 ) return s; + break; + case 2 : + int LA12_3 = input.LA(1); + + + int index12_3 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_3); + if ( s>=0 ) return s; + break; + case 3 : + int LA12_4 = input.LA(1); + + + int index12_4 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_4); + if ( s>=0 ) return s; + break; + case 4 : + int LA12_5 = input.LA(1); + + + int index12_5 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_5); + if ( s>=0 ) return s; + break; + case 5 : + int LA12_6 = input.LA(1); + + + int index12_6 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_6); + if ( s>=0 ) return s; + break; + case 6 : + int LA12_7 = input.LA(1); + + + int index12_7 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_7); + if ( s>=0 ) return s; + break; + case 7 : + int LA12_8 = input.LA(1); + + + int index12_8 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_8); + if ( s>=0 ) return s; + break; + case 8 : + int LA12_9 = input.LA(1); + + + int index12_9 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_9); + if ( s>=0 ) return s; + break; + case 9 : + int LA12_10 = input.LA(1); + + + int index12_10 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_10); + if ( s>=0 ) return s; + break; + case 10 : + int LA12_11 = input.LA(1); + + + int index12_11 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_11); + if ( s>=0 ) return s; + break; + case 11 : + int LA12_12 = input.LA(1); + + + int index12_12 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_12); + if ( s>=0 ) return s; + break; + case 12 : + int LA12_13 = input.LA(1); + + + int index12_13 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_13); + if ( s>=0 ) return s; + break; + case 13 : + int LA12_14 = input.LA(1); + + + int index12_14 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_14); + if ( s>=0 ) return s; + break; + case 14 : + int LA12_15 = input.LA(1); + + + int index12_15 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_15); + if ( s>=0 ) return s; + break; + case 15 : + int LA12_16 = input.LA(1); + + + int index12_16 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_16); + if ( s>=0 ) return s; + break; + case 16 : + int LA12_17 = input.LA(1); + + + int index12_17 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_17); + if ( s>=0 ) return s; + break; + case 17 : + int LA12_18 = input.LA(1); + + + int index12_18 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_18); + if ( s>=0 ) return s; + break; + case 18 : + int LA12_19 = input.LA(1); + + + int index12_19 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_19); + if ( s>=0 ) return s; + break; + case 19 : + int LA12_20 = input.LA(1); + + + int index12_20 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_20); + if ( s>=0 ) return s; + break; + case 20 : + int LA12_21 = input.LA(1); + + + int index12_21 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_21); + if ( s>=0 ) return s; + break; + case 21 : + int LA12_22 = input.LA(1); + + + int index12_22 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_22); + if ( s>=0 ) return s; + break; + case 22 : + int LA12_23 = input.LA(1); + + + int index12_23 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_23); + if ( s>=0 ) return s; + break; + case 23 : + int LA12_24 = input.LA(1); + + + int index12_24 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_24); + if ( s>=0 ) return s; + break; + case 24 : + int LA12_25 = input.LA(1); + + + int index12_25 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_25); + if ( s>=0 ) return s; + break; + case 25 : + int LA12_26 = input.LA(1); + + + int index12_26 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_26); + if ( s>=0 ) return s; + break; + case 26 : + int LA12_27 = input.LA(1); + + + int index12_27 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_27); + if ( s>=0 ) return s; + break; + case 27 : + int LA12_28 = input.LA(1); + + + int index12_28 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_28); + if ( s>=0 ) return s; + break; + case 28 : + int LA12_29 = input.LA(1); + + + int index12_29 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_29); + if ( s>=0 ) return s; + break; + case 29 : + int LA12_30 = input.LA(1); + + + int index12_30 = input.index(); + input.rewind(); + s = -1; + if ( (synpred21_wcps()) ) {s = 31;} + + else if ( (synpred22_wcps()) ) {s = 34;} + + else if ( (true) ) {s = 41;} + + + input.seek(index12_30); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 12, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA13_eotS = + "\112\uffff"; + static final String DFA13_eofS = + "\112\uffff"; + static final String DFA13_minS = + "\1\6\12\uffff\1\6\13\uffff\1\116\7\uffff\25\0\23\uffff\1\0\2\uffff"; + static final String DFA13_maxS = + "\1\154\12\uffff\1\154\13\uffff\1\153\7\uffff\25\0\23\uffff\1\0\2"+ + "\uffff"; + static final String DFA13_acceptS = + "\1\uffff\1\1\24\uffff\1\2\1\uffff\1\6\4\uffff\1\7\26\uffff\1\3\23"+ + "\uffff\1\4\1\5"; + static final String DFA13_specialS = + "\37\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1"+ + "\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\23\uffff\1\25\2\uffff}>"; + static final String[] DFA13_transitionS = { + "\1\13\20\uffff\1\1\3\uffff\20\1\3\uffff\1\27\4\uffff\5\30\1"+ + "\35\1\uffff\1\35\1\uffff\2\1\16\uffff\1\1\1\uffff\3\1\20\uffff"+ + "\2\1\10\uffff\1\26\1\1", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\52\17\uffff\1\64\1\54\3\uffff\1\40\1\41\1\42\1\43\1\45\1"+ + "\46\1\47\1\44\7\50\1\51\3\uffff\1\64\4\uffff\6\64\1\uffff\2"+ + "\64\1\56\1\55\16\64\1\63\1\64\1\60\1\57\1\53\1\64\2\uffff\3"+ + "\64\12\uffff\1\62\1\37\10\uffff\1\64\1\61", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\107\1\uffff\1\107\32\uffff\1\107", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "" + }; + + static final short[] DFA13_eot = DFA.unpackEncodedString(DFA13_eotS); + static final short[] DFA13_eof = DFA.unpackEncodedString(DFA13_eofS); + static final char[] DFA13_min = DFA.unpackEncodedStringToUnsignedChars(DFA13_minS); + static final char[] DFA13_max = DFA.unpackEncodedStringToUnsignedChars(DFA13_maxS); + static final short[] DFA13_accept = DFA.unpackEncodedString(DFA13_acceptS); + static final short[] DFA13_special = DFA.unpackEncodedString(DFA13_specialS); + static final short[][] DFA13_transition; + + static { + int numStates = DFA13_transitionS.length; + DFA13_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA13_transition[i] = DFA.unpackEncodedString(DFA13_transitionS[i]); + } + } + + class DFA13 extends DFA { + + public DFA13(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 13; + this.eot = DFA13_eot; + this.eof = DFA13_eof; + this.min = DFA13_min; + this.max = DFA13_max; + this.accept = DFA13_accept; + this.special = DFA13_special; + this.transition = DFA13_transition; + } + public String getDescription() { + return "96:1: coverageAtom returns [CoverageExpr value] : (e2= scalarExpr | e1= coverageVariable | LPAREN e7= coverageExpr RPAREN | e3= coverageConstantExpr | e4= coverageConstructorExpr | e5= setMetaDataExpr | e6= rangeConstructorExpr );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA13_31 = input.LA(1); + + + int index13_31 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_31); + if ( s>=0 ) return s; + break; + case 1 : + int LA13_32 = input.LA(1); + + + int index13_32 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_32); + if ( s>=0 ) return s; + break; + case 2 : + int LA13_33 = input.LA(1); + + + int index13_33 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_33); + if ( s>=0 ) return s; + break; + case 3 : + int LA13_34 = input.LA(1); + + + int index13_34 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_34); + if ( s>=0 ) return s; + break; + case 4 : + int LA13_35 = input.LA(1); + + + int index13_35 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_35); + if ( s>=0 ) return s; + break; + case 5 : + int LA13_36 = input.LA(1); + + + int index13_36 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_36); + if ( s>=0 ) return s; + break; + case 6 : + int LA13_37 = input.LA(1); + + + int index13_37 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_37); + if ( s>=0 ) return s; + break; + case 7 : + int LA13_38 = input.LA(1); + + + int index13_38 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_38); + if ( s>=0 ) return s; + break; + case 8 : + int LA13_39 = input.LA(1); + + + int index13_39 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_39); + if ( s>=0 ) return s; + break; + case 9 : + int LA13_40 = input.LA(1); + + + int index13_40 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_40); + if ( s>=0 ) return s; + break; + case 10 : + int LA13_41 = input.LA(1); + + + int index13_41 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_41); + if ( s>=0 ) return s; + break; + case 11 : + int LA13_42 = input.LA(1); + + + int index13_42 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_42); + if ( s>=0 ) return s; + break; + case 12 : + int LA13_43 = input.LA(1); + + + int index13_43 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_43); + if ( s>=0 ) return s; + break; + case 13 : + int LA13_44 = input.LA(1); + + + int index13_44 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_44); + if ( s>=0 ) return s; + break; + case 14 : + int LA13_45 = input.LA(1); + + + int index13_45 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_45); + if ( s>=0 ) return s; + break; + case 15 : + int LA13_46 = input.LA(1); + + + int index13_46 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_46); + if ( s>=0 ) return s; + break; + case 16 : + int LA13_47 = input.LA(1); + + + int index13_47 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_47); + if ( s>=0 ) return s; + break; + case 17 : + int LA13_48 = input.LA(1); + + + int index13_48 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_48); + if ( s>=0 ) return s; + break; + case 18 : + int LA13_49 = input.LA(1); + + + int index13_49 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_49); + if ( s>=0 ) return s; + break; + case 19 : + int LA13_50 = input.LA(1); + + + int index13_50 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_50); + if ( s>=0 ) return s; + break; + case 20 : + int LA13_51 = input.LA(1); + + + int index13_51 = input.index(); + input.rewind(); + s = -1; + if ( (synpred25_wcps()) ) {s = 1;} + + else if ( (synpred27_wcps()) ) {s = 52;} + + + input.seek(index13_51); + if ( s>=0 ) return s; + break; + case 21 : + int LA13_71 = input.LA(1); + + + int index13_71 = input.index(); + input.rewind(); + s = -1; + if ( (synpred28_wcps()) ) {s = 72;} + + else if ( (synpred29_wcps()) ) {s = 73;} + + + input.seek(index13_71); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 13, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA14_eotS = + "\u0091\uffff"; + static final String DFA14_eofS = + "\14\uffff\1\56\u0084\uffff"; + static final String DFA14_minS = + "\2\6\7\uffff\1\6\1\15\1\6\1\7\4\6\3\0\2\uffff\16\0\7\uffff\3\0\4"+ + "\uffff\1\0\4\uffff\5\0\7\uffff\15\0\101\uffff"; + static final String DFA14_maxS = + "\1\154\1\6\7\uffff\1\6\1\51\1\154\1\140\1\154\3\6\3\0\2\uffff\16"+ + "\0\7\uffff\3\0\4\uffff\1\0\4\uffff\5\0\7\uffff\15\0\101\uffff"; + static final String DFA14_acceptS = + "\2\uffff\1\1\21\uffff\1\3\17\uffff\1\6\11\uffff\1\5\66\uffff\1\4"+ + "\52\uffff\1\2"; + static final String DFA14_specialS = + "\21\uffff\1\0\1\1\1\2\2\uffff\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12"+ + "\1\13\1\14\1\15\1\16\1\17\1\20\7\uffff\1\21\1\22\1\23\4\uffff\1"+ + "\24\4\uffff\1\25\1\26\1\27\1\30\1\31\7\uffff\1\32\1\33\1\34\1\35"+ + "\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46\101\uffff}>"; + static final String[] DFA14_transitionS = { + "\1\13\20\uffff\1\15\3\uffff\1\1\7\2\7\11\1\12\21\uffff\1\17"+ + "\1\16\16\uffff\1\24\1\uffff\1\21\1\20\1\14\20\uffff\1\24\1\22"+ + "\11\uffff\1\23", + "\1\26", + "", + "", + "", + "", + "", + "", + "", + "\1\27", + "\1\30\1\uffff\1\30\6\uffff\1\30\1\uffff\1\30\17\uffff\2\30", + "\1\32\20\uffff\1\33\3\uffff\1\43\7\44\7\40\1\41\21\uffff\1"+ + "\35\1\34\16\uffff\1\55\1\uffff\1\37\1\36\1\53\20\uffff\1\54"+ + "\1\31\11\uffff\1\42", + "\2\56\1\uffff\1\56\2\uffff\3\56\1\62\1\67\1\70\1\71\1\72\1"+ + "\73\5\56\21\uffff\2\56\3\uffff\1\56\7\uffff\1\56\30\uffff\1"+ + "\56\15\uffff\1\56", + "\1\103\20\uffff\1\104\13\uffff\7\112\1\113\21\uffff\1\106\1"+ + "\105\20\uffff\1\110\1\107\22\uffff\1\111\11\uffff\1\114", + "\1\115", + "\1\116", + "\1\117", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS); + static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS); + static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS); + static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS); + static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS); + static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS); + static final short[][] DFA14_transition; + + static { + int numStates = DFA14_transitionS.length; + DFA14_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA14_transition[i] = DFA.unpackEncodedString(DFA14_transitionS[i]); + } + } + + class DFA14 extends DFA { + + public DFA14(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 14; + this.eot = DFA14_eot; + this.eof = DFA14_eof; + this.min = DFA14_min; + this.max = DFA14_max; + this.accept = DFA14_accept; + this.special = DFA14_special; + this.transition = DFA14_transition; + } + public String getDescription() { + return "105:1: scalarExpr returns [ScalarExpr value] : (e1= metaDataExpr | e2= condenseExpr | e3= booleanScalarExpr | e4= numericScalarExpr | e5= stringScalarExpr | LPAREN e6= scalarExpr RPAREN );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA14_17 = input.LA(1); + + + int index14_17 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_17); + if ( s>=0 ) return s; + break; + case 1 : + int LA14_18 = input.LA(1); + + + int index14_18 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_18); + if ( s>=0 ) return s; + break; + case 2 : + int LA14_19 = input.LA(1); + + + int index14_19 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_19); + if ( s>=0 ) return s; + break; + case 3 : + int LA14_22 = input.LA(1); + + + int index14_22 = input.index(); + input.rewind(); + s = -1; + if ( (synpred31_wcps()) ) {s = 2;} + + else if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred35_wcps()) ) {s = 46;} + + + input.seek(index14_22); + if ( s>=0 ) return s; + break; + case 4 : + int LA14_23 = input.LA(1); + + + int index14_23 = input.index(); + input.rewind(); + s = -1; + if ( (synpred32_wcps()) ) {s = 144;} + + else if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_23); + if ( s>=0 ) return s; + break; + case 5 : + int LA14_24 = input.LA(1); + + + int index14_24 = input.index(); + input.rewind(); + s = -1; + if ( (synpred32_wcps()) ) {s = 144;} + + else if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_24); + if ( s>=0 ) return s; + break; + case 6 : + int LA14_25 = input.LA(1); + + + int index14_25 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_25); + if ( s>=0 ) return s; + break; + case 7 : + int LA14_26 = input.LA(1); + + + int index14_26 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_26); + if ( s>=0 ) return s; + break; + case 8 : + int LA14_27 = input.LA(1); + + + int index14_27 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_27); + if ( s>=0 ) return s; + break; + case 9 : + int LA14_28 = input.LA(1); + + + int index14_28 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_28); + if ( s>=0 ) return s; + break; + case 10 : + int LA14_29 = input.LA(1); + + + int index14_29 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_29); + if ( s>=0 ) return s; + break; + case 11 : + int LA14_30 = input.LA(1); + + + int index14_30 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_30); + if ( s>=0 ) return s; + break; + case 12 : + int LA14_31 = input.LA(1); + + + int index14_31 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_31); + if ( s>=0 ) return s; + break; + case 13 : + int LA14_32 = input.LA(1); + + + int index14_32 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_32); + if ( s>=0 ) return s; + break; + case 14 : + int LA14_33 = input.LA(1); + + + int index14_33 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_33); + if ( s>=0 ) return s; + break; + case 15 : + int LA14_34 = input.LA(1); + + + int index14_34 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_34); + if ( s>=0 ) return s; + break; + case 16 : + int LA14_35 = input.LA(1); + + + int index14_35 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_35); + if ( s>=0 ) return s; + break; + case 17 : + int LA14_43 = input.LA(1); + + + int index14_43 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_43); + if ( s>=0 ) return s; + break; + case 18 : + int LA14_44 = input.LA(1); + + + int index14_44 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_44); + if ( s>=0 ) return s; + break; + case 19 : + int LA14_45 = input.LA(1); + + + int index14_45 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (true) ) {s = 36;} + + + input.seek(index14_45); + if ( s>=0 ) return s; + break; + case 20 : + int LA14_50 = input.LA(1); + + + int index14_50 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred35_wcps()) ) {s = 46;} + + + input.seek(index14_50); + if ( s>=0 ) return s; + break; + case 21 : + int LA14_55 = input.LA(1); + + + int index14_55 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred35_wcps()) ) {s = 46;} + + + input.seek(index14_55); + if ( s>=0 ) return s; + break; + case 22 : + int LA14_56 = input.LA(1); + + + int index14_56 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred35_wcps()) ) {s = 46;} + + + input.seek(index14_56); + if ( s>=0 ) return s; + break; + case 23 : + int LA14_57 = input.LA(1); + + + int index14_57 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred35_wcps()) ) {s = 46;} + + + input.seek(index14_57); + if ( s>=0 ) return s; + break; + case 24 : + int LA14_58 = input.LA(1); + + + int index14_58 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred35_wcps()) ) {s = 46;} + + + input.seek(index14_58); + if ( s>=0 ) return s; + break; + case 25 : + int LA14_59 = input.LA(1); + + + int index14_59 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred35_wcps()) ) {s = 46;} + + + input.seek(index14_59); + if ( s>=0 ) return s; + break; + case 26 : + int LA14_67 = input.LA(1); + + + int index14_67 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_67); + if ( s>=0 ) return s; + break; + case 27 : + int LA14_68 = input.LA(1); + + + int index14_68 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_68); + if ( s>=0 ) return s; + break; + case 28 : + int LA14_69 = input.LA(1); + + + int index14_69 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_69); + if ( s>=0 ) return s; + break; + case 29 : + int LA14_70 = input.LA(1); + + + int index14_70 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_70); + if ( s>=0 ) return s; + break; + case 30 : + int LA14_71 = input.LA(1); + + + int index14_71 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_71); + if ( s>=0 ) return s; + break; + case 31 : + int LA14_72 = input.LA(1); + + + int index14_72 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_72); + if ( s>=0 ) return s; + break; + case 32 : + int LA14_73 = input.LA(1); + + + int index14_73 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_73); + if ( s>=0 ) return s; + break; + case 33 : + int LA14_74 = input.LA(1); + + + int index14_74 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_74); + if ( s>=0 ) return s; + break; + case 34 : + int LA14_75 = input.LA(1); + + + int index14_75 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_75); + if ( s>=0 ) return s; + break; + case 35 : + int LA14_76 = input.LA(1); + + + int index14_76 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_76); + if ( s>=0 ) return s; + break; + case 36 : + int LA14_77 = input.LA(1); + + + int index14_77 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_77); + if ( s>=0 ) return s; + break; + case 37 : + int LA14_78 = input.LA(1); + + + int index14_78 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_78); + if ( s>=0 ) return s; + break; + case 38 : + int LA14_79 = input.LA(1); + + + int index14_79 = input.index(); + input.rewind(); + s = -1; + if ( (synpred33_wcps()) ) {s = 20;} + + else if ( (synpred34_wcps()) ) {s = 101;} + + + input.seek(index14_79); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 14, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA34_eotS = + "\u0099\uffff"; + static final String DFA34_eofS = + "\u0099\uffff"; + static final String DFA34_minS = + "\1\6\12\uffff\1\6\1\uffff\3\6\5\uffff\1\6\7\uffff\1\70\1\116\57"+ + "\uffff\12\0\24\uffff\3\0\7\uffff\14\0\24\uffff\2\0\1\uffff"; + static final String DFA34_maxS = + "\1\154\12\uffff\1\154\1\uffff\1\154\2\6\5\uffff\1\154\7\uffff\1"+ + "\70\1\153\57\uffff\12\0\24\uffff\3\0\7\uffff\14\0\24\uffff\2\0\1"+ + "\uffff"; + static final String DFA34_acceptS = + "\1\uffff\1\1\35\uffff\1\2\1\uffff\1\3\1\4\1\5\16\uffff\1\6\145\uffff"+ + "\1\7"; + static final String DFA34_specialS = + "\116\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\24\uffff\1"+ + "\12\1\13\1\14\7\uffff\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1"+ + "\25\1\26\1\27\1\30\24\uffff\1\31\1\32\1\uffff}>"; + static final String[] DFA34_transitionS = { + "\1\13\17\uffff\1\37\1\15\3\uffff\20\1\3\uffff\1\1\4\uffff\5"+ + "\1\1\36\1\uffff\1\35\1\uffff\1\17\1\16\2\37\3\41\11\42\1\25"+ + "\1\43\3\1\20\uffff\2\1\10\uffff\2\1", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\1\17\uffff\2\1\3\uffff\20\1\3\uffff\1\1\4\uffff\6\1\1\uffff"+ + "\30\1\2\uffff\3\1\11\62\1\uffff\2\1\10\uffff\2\1", + "", + "\1\116\20\uffff\1\117\3\uffff\10\37\7\125\1\126\3\uffff\1\37"+ + "\4\uffff\6\37\1\uffff\1\37\1\uffff\1\121\1\120\16\uffff\1\37"+ + "\1\uffff\1\123\1\122\1\37\20\uffff\1\37\1\124\10\uffff\1\37"+ + "\1\127", + "\1\154", + "\1\155", + "", + "", + "", + "", + "", + "\1\170\17\uffff\1\43\1\172\3\uffff\1\156\7\43\7\166\1\167\3"+ + "\uffff\1\43\4\uffff\6\43\1\uffff\2\43\1\174\1\173\20\43\1\176"+ + "\1\175\1\171\1\43\2\uffff\3\43\12\uffff\1\u0081\1\177\10\uffff"+ + "\1\43\1\u0080", + "", + "", + "", + "", + "", + "", + "", + "\1\u0096", + "\1\u0097\1\uffff\1\u0097\32\uffff\1\u0097", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "" + }; + + static final short[] DFA34_eot = DFA.unpackEncodedString(DFA34_eotS); + static final short[] DFA34_eof = DFA.unpackEncodedString(DFA34_eofS); + static final char[] DFA34_min = DFA.unpackEncodedStringToUnsignedChars(DFA34_minS); + static final char[] DFA34_max = DFA.unpackEncodedStringToUnsignedChars(DFA34_maxS); + static final short[] DFA34_accept = DFA.unpackEncodedString(DFA34_acceptS); + static final short[] DFA34_special = DFA.unpackEncodedString(DFA34_specialS); + static final short[][] DFA34_transition; + + static { + int numStates = DFA34_transitionS.length; + DFA34_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA34_transition[i] = DFA.unpackEncodedString(DFA34_transitionS[i]); + } + } + + class DFA34 extends DFA { + + public DFA34(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 34; + this.eot = DFA34_eot; + this.eof = DFA34_eof; + this.min = DFA34_min; + this.max = DFA34_max; + this.accept = DFA34_accept; + this.special = DFA34_special; + this.transition = DFA34_transition; + } + public String getDescription() { + return "203:1: unaryInducedExpr returns [CoverageExpr value] : (e6= fieldExpr | e1= unaryArithmeticExpr | e2= exponentialExpr | e3= trigonometricExpr | e4= booleanExpr | e5= castExpr | e7= rangeConstructorExpr );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA34_78 = input.LA(1); + + + int index34_78 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_78); + if ( s>=0 ) return s; + break; + case 1 : + int LA34_79 = input.LA(1); + + + int index34_79 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_79); + if ( s>=0 ) return s; + break; + case 2 : + int LA34_80 = input.LA(1); + + + int index34_80 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_80); + if ( s>=0 ) return s; + break; + case 3 : + int LA34_81 = input.LA(1); + + + int index34_81 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_81); + if ( s>=0 ) return s; + break; + case 4 : + int LA34_82 = input.LA(1); + + + int index34_82 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_82); + if ( s>=0 ) return s; + break; + case 5 : + int LA34_83 = input.LA(1); + + + int index34_83 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_83); + if ( s>=0 ) return s; + break; + case 6 : + int LA34_84 = input.LA(1); + + + int index34_84 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_84); + if ( s>=0 ) return s; + break; + case 7 : + int LA34_85 = input.LA(1); + + + int index34_85 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_85); + if ( s>=0 ) return s; + break; + case 8 : + int LA34_86 = input.LA(1); + + + int index34_86 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_86); + if ( s>=0 ) return s; + break; + case 9 : + int LA34_87 = input.LA(1); + + + int index34_87 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_87); + if ( s>=0 ) return s; + break; + case 10 : + int LA34_108 = input.LA(1); + + + int index34_108 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_108); + if ( s>=0 ) return s; + break; + case 11 : + int LA34_109 = input.LA(1); + + + int index34_109 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred71_wcps()) ) {s = 31;} + + + input.seek(index34_109); + if ( s>=0 ) return s; + break; + case 12 : + int LA34_110 = input.LA(1); + + + int index34_110 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_110); + if ( s>=0 ) return s; + break; + case 13 : + int LA34_118 = input.LA(1); + + + int index34_118 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_118); + if ( s>=0 ) return s; + break; + case 14 : + int LA34_119 = input.LA(1); + + + int index34_119 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_119); + if ( s>=0 ) return s; + break; + case 15 : + int LA34_120 = input.LA(1); + + + int index34_120 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_120); + if ( s>=0 ) return s; + break; + case 16 : + int LA34_121 = input.LA(1); + + + int index34_121 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_121); + if ( s>=0 ) return s; + break; + case 17 : + int LA34_122 = input.LA(1); + + + int index34_122 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_122); + if ( s>=0 ) return s; + break; + case 18 : + int LA34_123 = input.LA(1); + + + int index34_123 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_123); + if ( s>=0 ) return s; + break; + case 19 : + int LA34_124 = input.LA(1); + + + int index34_124 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_124); + if ( s>=0 ) return s; + break; + case 20 : + int LA34_125 = input.LA(1); + + + int index34_125 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_125); + if ( s>=0 ) return s; + break; + case 21 : + int LA34_126 = input.LA(1); + + + int index34_126 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_126); + if ( s>=0 ) return s; + break; + case 22 : + int LA34_127 = input.LA(1); + + + int index34_127 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_127); + if ( s>=0 ) return s; + break; + case 23 : + int LA34_128 = input.LA(1); + + + int index34_128 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_128); + if ( s>=0 ) return s; + break; + case 24 : + int LA34_129 = input.LA(1); + + + int index34_129 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (synpred74_wcps()) ) {s = 35;} + + + input.seek(index34_129); + if ( s>=0 ) return s; + break; + case 25 : + int LA34_150 = input.LA(1); + + + int index34_150 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (true) ) {s = 152;} + + + input.seek(index34_150); + if ( s>=0 ) return s; + break; + case 26 : + int LA34_151 = input.LA(1); + + + int index34_151 = input.index(); + input.rewind(); + s = -1; + if ( (synpred70_wcps()) ) {s = 1;} + + else if ( (true) ) {s = 152;} + + + input.seek(index34_151); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 34, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA42_eotS = + "\u009c\uffff"; + static final String DFA42_eofS = + "\u009c\uffff"; + static final String DFA42_minS = + "\12\6\1\15\1\6\1\20\4\6\3\20\1\15\1\6\1\122\1\116\5\6\1\70\1\116"+ + "\3\uffff\172\0"; + static final String DFA42_maxS = + "\1\154\11\6\1\51\1\154\1\122\1\154\3\6\4\122\1\154\1\122\1\153\5"+ + "\6\1\70\1\153\3\uffff\172\0"; + static final String DFA42_acceptS = + "\37\uffff\1\1\1\2\1\3\172\uffff"; + static final String DFA42_specialS = + "\42\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1"+ + "\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30"+ + "\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45"+ + "\1\46\1\47\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\62"+ + "\1\63\1\64\1\65\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77"+ + "\1\100\1\101\1\102\1\103\1\104\1\105\1\106\1\107\1\110\1\111\1\112"+ + "\1\113\1\114\1\115\1\116\1\117\1\120\1\121\1\122\1\123\1\124\1\125"+ + "\1\126\1\127\1\130\1\131\1\132\1\133\1\134\1\135\1\136\1\137\1\140"+ + "\1\141\1\142\1\143\1\144\1\145\1\146\1\147\1\150\1\151\1\152\1\153"+ + "\1\154\1\155\1\156\1\157\1\160\1\161\1\162\1\163\1\164\1\165\1\166"+ + "\1\167\1\170\1\171}>"; + static final String[] DFA42_transitionS = { + "\1\13\20\uffff\1\15\3\uffff\1\1\1\2\1\3\1\4\1\6\1\7\1\10\1\5"+ + "\7\11\1\12\3\uffff\1\27\4\uffff\1\30\1\31\1\32\1\33\1\34\1\36"+ + "\1\uffff\1\35\1\uffff\1\17\1\16\16\uffff\1\25\1\uffff\1\21\1"+ + "\20\1\14\3\uffff\1\37\1\40\1\41\12\uffff\1\24\1\22\10\uffff"+ + "\1\26\1\23", + "\1\42", + "\1\43", + "\1\44", + "\1\45", + "\1\46", + "\1\47", + "\1\50", + "\1\51", + "\1\52", + "\1\53\1\uffff\1\53\6\uffff\1\53\1\uffff\1\53\17\uffff\2\53", + "\1\55\17\uffff\1\115\1\56\3\uffff\1\66\1\72\1\73\1\74\1\76"+ + "\1\77\1\100\1\75\7\63\1\64\3\uffff\1\102\4\uffff\1\103\1\104"+ + "\1\105\1\106\1\107\1\111\1\uffff\1\110\1\123\1\60\1\57\2\116"+ + "\3\117\11\120\1\71\1\121\1\62\1\61\1\67\1\122\2\uffff\1\112"+ + "\1\113\1\114\12\uffff\1\70\1\54\10\uffff\1\101\1\65", + "\1\124\1\125\1\126\1\127\1\130\1\131\74\uffff\1\132", + "\1\133\20\uffff\1\134\13\uffff\7\142\1\143\21\uffff\1\136\1"+ + "\135\20\uffff\1\140\1\137\22\uffff\1\141\11\uffff\1\144", + "\1\145", + "\1\146", + "\1\147", + "\1\152\1\153\1\154\1\155\1\156\1\157\2\151\2\150\70\uffff\1"+ + "\160", + "\1\164\1\165\1\166\1\167\1\170\1\171\2\162\2\161\70\uffff\1"+ + "\163", + "\1\175\1\176\1\177\1\u0080\1\u0081\1\u0082\2\173\2\172\70\uffff"+ + "\1\174", + "\2\u0084\1\u0083\102\uffff\1\u0085", + "\1\u0086\20\uffff\1\u0089\3\uffff\1\u0087\7\uffff\7\u008f\1"+ + "\u0090\21\uffff\1\u008b\1\u008a\20\uffff\1\u008d\1\u008c\1\u0088"+ + "\20\uffff\1\u0092\1\u008e\11\uffff\1\u0091", + "\1\u0093", + "\1\u0094\1\uffff\1\u0094\32\uffff\1\u0094", + "\1\u0095", + "\1\u0096", + "\1\u0097", + "\1\u0098", + "\1\u0099", + "\1\u009a", + "\1\u009b\1\uffff\1\u009b\32\uffff\1\u009b", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff" + }; + + static final short[] DFA42_eot = DFA.unpackEncodedString(DFA42_eotS); + static final short[] DFA42_eof = DFA.unpackEncodedString(DFA42_eofS); + static final char[] DFA42_min = DFA.unpackEncodedStringToUnsignedChars(DFA42_minS); + static final char[] DFA42_max = DFA.unpackEncodedStringToUnsignedChars(DFA42_maxS); + static final short[] DFA42_accept = DFA.unpackEncodedString(DFA42_acceptS); + static final short[] DFA42_special = DFA.unpackEncodedString(DFA42_specialS); + static final short[][] DFA42_transition; + + static { + int numStates = DFA42_transitionS.length; + DFA42_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA42_transition[i] = DFA.unpackEncodedString(DFA42_transitionS[i]); + } + } + + class DFA42 extends DFA { + + public DFA42(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 42; + this.eot = DFA42_eot; + this.eof = DFA42_eof; + this.min = DFA42_min; + this.max = DFA42_max; + this.accept = DFA42_accept; + this.special = DFA42_special; + this.transition = DFA42_transition; + } + public String getDescription() { + return "250:1: subsetExpr returns [SubsetExpr value] : (e1= trimExpr | e2= sliceExpr | e3= extendExpr );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA42_34 = input.LA(1); + + + int index42_34 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_34); + if ( s>=0 ) return s; + break; + case 1 : + int LA42_35 = input.LA(1); + + + int index42_35 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_35); + if ( s>=0 ) return s; + break; + case 2 : + int LA42_36 = input.LA(1); + + + int index42_36 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_36); + if ( s>=0 ) return s; + break; + case 3 : + int LA42_37 = input.LA(1); + + + int index42_37 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_37); + if ( s>=0 ) return s; + break; + case 4 : + int LA42_38 = input.LA(1); + + + int index42_38 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_38); + if ( s>=0 ) return s; + break; + case 5 : + int LA42_39 = input.LA(1); + + + int index42_39 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_39); + if ( s>=0 ) return s; + break; + case 6 : + int LA42_40 = input.LA(1); + + + int index42_40 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_40); + if ( s>=0 ) return s; + break; + case 7 : + int LA42_41 = input.LA(1); + + + int index42_41 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_41); + if ( s>=0 ) return s; + break; + case 8 : + int LA42_42 = input.LA(1); + + + int index42_42 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_42); + if ( s>=0 ) return s; + break; + case 9 : + int LA42_43 = input.LA(1); + + + int index42_43 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_43); + if ( s>=0 ) return s; + break; + case 10 : + int LA42_44 = input.LA(1); + + + int index42_44 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_44); + if ( s>=0 ) return s; + break; + case 11 : + int LA42_45 = input.LA(1); + + + int index42_45 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_45); + if ( s>=0 ) return s; + break; + case 12 : + int LA42_46 = input.LA(1); + + + int index42_46 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_46); + if ( s>=0 ) return s; + break; + case 13 : + int LA42_47 = input.LA(1); + + + int index42_47 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_47); + if ( s>=0 ) return s; + break; + case 14 : + int LA42_48 = input.LA(1); + + + int index42_48 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_48); + if ( s>=0 ) return s; + break; + case 15 : + int LA42_49 = input.LA(1); + + + int index42_49 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_49); + if ( s>=0 ) return s; + break; + case 16 : + int LA42_50 = input.LA(1); + + + int index42_50 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_50); + if ( s>=0 ) return s; + break; + case 17 : + int LA42_51 = input.LA(1); + + + int index42_51 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_51); + if ( s>=0 ) return s; + break; + case 18 : + int LA42_52 = input.LA(1); + + + int index42_52 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_52); + if ( s>=0 ) return s; + break; + case 19 : + int LA42_53 = input.LA(1); + + + int index42_53 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_53); + if ( s>=0 ) return s; + break; + case 20 : + int LA42_54 = input.LA(1); + + + int index42_54 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_54); + if ( s>=0 ) return s; + break; + case 21 : + int LA42_55 = input.LA(1); + + + int index42_55 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_55); + if ( s>=0 ) return s; + break; + case 22 : + int LA42_56 = input.LA(1); + + + int index42_56 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_56); + if ( s>=0 ) return s; + break; + case 23 : + int LA42_57 = input.LA(1); + + + int index42_57 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_57); + if ( s>=0 ) return s; + break; + case 24 : + int LA42_58 = input.LA(1); + + + int index42_58 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_58); + if ( s>=0 ) return s; + break; + case 25 : + int LA42_59 = input.LA(1); + + + int index42_59 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_59); + if ( s>=0 ) return s; + break; + case 26 : + int LA42_60 = input.LA(1); + + + int index42_60 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_60); + if ( s>=0 ) return s; + break; + case 27 : + int LA42_61 = input.LA(1); + + + int index42_61 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_61); + if ( s>=0 ) return s; + break; + case 28 : + int LA42_62 = input.LA(1); + + + int index42_62 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_62); + if ( s>=0 ) return s; + break; + case 29 : + int LA42_63 = input.LA(1); + + + int index42_63 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_63); + if ( s>=0 ) return s; + break; + case 30 : + int LA42_64 = input.LA(1); + + + int index42_64 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_64); + if ( s>=0 ) return s; + break; + case 31 : + int LA42_65 = input.LA(1); + + + int index42_65 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_65); + if ( s>=0 ) return s; + break; + case 32 : + int LA42_66 = input.LA(1); + + + int index42_66 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_66); + if ( s>=0 ) return s; + break; + case 33 : + int LA42_67 = input.LA(1); + + + int index42_67 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_67); + if ( s>=0 ) return s; + break; + case 34 : + int LA42_68 = input.LA(1); + + + int index42_68 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_68); + if ( s>=0 ) return s; + break; + case 35 : + int LA42_69 = input.LA(1); + + + int index42_69 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_69); + if ( s>=0 ) return s; + break; + case 36 : + int LA42_70 = input.LA(1); + + + int index42_70 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_70); + if ( s>=0 ) return s; + break; + case 37 : + int LA42_71 = input.LA(1); + + + int index42_71 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_71); + if ( s>=0 ) return s; + break; + case 38 : + int LA42_72 = input.LA(1); + + + int index42_72 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_72); + if ( s>=0 ) return s; + break; + case 39 : + int LA42_73 = input.LA(1); + + + int index42_73 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_73); + if ( s>=0 ) return s; + break; + case 40 : + int LA42_74 = input.LA(1); + + + int index42_74 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_74); + if ( s>=0 ) return s; + break; + case 41 : + int LA42_75 = input.LA(1); + + + int index42_75 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_75); + if ( s>=0 ) return s; + break; + case 42 : + int LA42_76 = input.LA(1); + + + int index42_76 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_76); + if ( s>=0 ) return s; + break; + case 43 : + int LA42_77 = input.LA(1); + + + int index42_77 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_77); + if ( s>=0 ) return s; + break; + case 44 : + int LA42_78 = input.LA(1); + + + int index42_78 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_78); + if ( s>=0 ) return s; + break; + case 45 : + int LA42_79 = input.LA(1); + + + int index42_79 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_79); + if ( s>=0 ) return s; + break; + case 46 : + int LA42_80 = input.LA(1); + + + int index42_80 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_80); + if ( s>=0 ) return s; + break; + case 47 : + int LA42_81 = input.LA(1); + + + int index42_81 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_81); + if ( s>=0 ) return s; + break; + case 48 : + int LA42_82 = input.LA(1); + + + int index42_82 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_82); + if ( s>=0 ) return s; + break; + case 49 : + int LA42_83 = input.LA(1); + + + int index42_83 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_83); + if ( s>=0 ) return s; + break; + case 50 : + int LA42_84 = input.LA(1); + + + int index42_84 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_84); + if ( s>=0 ) return s; + break; + case 51 : + int LA42_85 = input.LA(1); + + + int index42_85 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_85); + if ( s>=0 ) return s; + break; + case 52 : + int LA42_86 = input.LA(1); + + + int index42_86 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_86); + if ( s>=0 ) return s; + break; + case 53 : + int LA42_87 = input.LA(1); + + + int index42_87 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_87); + if ( s>=0 ) return s; + break; + case 54 : + int LA42_88 = input.LA(1); + + + int index42_88 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_88); + if ( s>=0 ) return s; + break; + case 55 : + int LA42_89 = input.LA(1); + + + int index42_89 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_89); + if ( s>=0 ) return s; + break; + case 56 : + int LA42_90 = input.LA(1); + + + int index42_90 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_90); + if ( s>=0 ) return s; + break; + case 57 : + int LA42_91 = input.LA(1); + + + int index42_91 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_91); + if ( s>=0 ) return s; + break; + case 58 : + int LA42_92 = input.LA(1); + + + int index42_92 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_92); + if ( s>=0 ) return s; + break; + case 59 : + int LA42_93 = input.LA(1); + + + int index42_93 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_93); + if ( s>=0 ) return s; + break; + case 60 : + int LA42_94 = input.LA(1); + + + int index42_94 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_94); + if ( s>=0 ) return s; + break; + case 61 : + int LA42_95 = input.LA(1); + + + int index42_95 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_95); + if ( s>=0 ) return s; + break; + case 62 : + int LA42_96 = input.LA(1); + + + int index42_96 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_96); + if ( s>=0 ) return s; + break; + case 63 : + int LA42_97 = input.LA(1); + + + int index42_97 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_97); + if ( s>=0 ) return s; + break; + case 64 : + int LA42_98 = input.LA(1); + + + int index42_98 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_98); + if ( s>=0 ) return s; + break; + case 65 : + int LA42_99 = input.LA(1); + + + int index42_99 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_99); + if ( s>=0 ) return s; + break; + case 66 : + int LA42_100 = input.LA(1); + + + int index42_100 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_100); + if ( s>=0 ) return s; + break; + case 67 : + int LA42_101 = input.LA(1); + + + int index42_101 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_101); + if ( s>=0 ) return s; + break; + case 68 : + int LA42_102 = input.LA(1); + + + int index42_102 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_102); + if ( s>=0 ) return s; + break; + case 69 : + int LA42_103 = input.LA(1); + + + int index42_103 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_103); + if ( s>=0 ) return s; + break; + case 70 : + int LA42_104 = input.LA(1); + + + int index42_104 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_104); + if ( s>=0 ) return s; + break; + case 71 : + int LA42_105 = input.LA(1); + + + int index42_105 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_105); + if ( s>=0 ) return s; + break; + case 72 : + int LA42_106 = input.LA(1); + + + int index42_106 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_106); + if ( s>=0 ) return s; + break; + case 73 : + int LA42_107 = input.LA(1); + + + int index42_107 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_107); + if ( s>=0 ) return s; + break; + case 74 : + int LA42_108 = input.LA(1); + + + int index42_108 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_108); + if ( s>=0 ) return s; + break; + case 75 : + int LA42_109 = input.LA(1); + + + int index42_109 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_109); + if ( s>=0 ) return s; + break; + case 76 : + int LA42_110 = input.LA(1); + + + int index42_110 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_110); + if ( s>=0 ) return s; + break; + case 77 : + int LA42_111 = input.LA(1); + + + int index42_111 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_111); + if ( s>=0 ) return s; + break; + case 78 : + int LA42_112 = input.LA(1); + + + int index42_112 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_112); + if ( s>=0 ) return s; + break; + case 79 : + int LA42_113 = input.LA(1); + + + int index42_113 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_113); + if ( s>=0 ) return s; + break; + case 80 : + int LA42_114 = input.LA(1); + + + int index42_114 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_114); + if ( s>=0 ) return s; + break; + case 81 : + int LA42_115 = input.LA(1); + + + int index42_115 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_115); + if ( s>=0 ) return s; + break; + case 82 : + int LA42_116 = input.LA(1); + + + int index42_116 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_116); + if ( s>=0 ) return s; + break; + case 83 : + int LA42_117 = input.LA(1); + + + int index42_117 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_117); + if ( s>=0 ) return s; + break; + case 84 : + int LA42_118 = input.LA(1); + + + int index42_118 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_118); + if ( s>=0 ) return s; + break; + case 85 : + int LA42_119 = input.LA(1); + + + int index42_119 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_119); + if ( s>=0 ) return s; + break; + case 86 : + int LA42_120 = input.LA(1); + + + int index42_120 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_120); + if ( s>=0 ) return s; + break; + case 87 : + int LA42_121 = input.LA(1); + + + int index42_121 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_121); + if ( s>=0 ) return s; + break; + case 88 : + int LA42_122 = input.LA(1); + + + int index42_122 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_122); + if ( s>=0 ) return s; + break; + case 89 : + int LA42_123 = input.LA(1); + + + int index42_123 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_123); + if ( s>=0 ) return s; + break; + case 90 : + int LA42_124 = input.LA(1); + + + int index42_124 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_124); + if ( s>=0 ) return s; + break; + case 91 : + int LA42_125 = input.LA(1); + + + int index42_125 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_125); + if ( s>=0 ) return s; + break; + case 92 : + int LA42_126 = input.LA(1); + + + int index42_126 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_126); + if ( s>=0 ) return s; + break; + case 93 : + int LA42_127 = input.LA(1); + + + int index42_127 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_127); + if ( s>=0 ) return s; + break; + case 94 : + int LA42_128 = input.LA(1); + + + int index42_128 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_128); + if ( s>=0 ) return s; + break; + case 95 : + int LA42_129 = input.LA(1); + + + int index42_129 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_129); + if ( s>=0 ) return s; + break; + case 96 : + int LA42_130 = input.LA(1); + + + int index42_130 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_130); + if ( s>=0 ) return s; + break; + case 97 : + int LA42_131 = input.LA(1); + + + int index42_131 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_131); + if ( s>=0 ) return s; + break; + case 98 : + int LA42_132 = input.LA(1); + + + int index42_132 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_132); + if ( s>=0 ) return s; + break; + case 99 : + int LA42_133 = input.LA(1); + + + int index42_133 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_133); + if ( s>=0 ) return s; + break; + case 100 : + int LA42_134 = input.LA(1); + + + int index42_134 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_134); + if ( s>=0 ) return s; + break; + case 101 : + int LA42_135 = input.LA(1); + + + int index42_135 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_135); + if ( s>=0 ) return s; + break; + case 102 : + int LA42_136 = input.LA(1); + + + int index42_136 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_136); + if ( s>=0 ) return s; + break; + case 103 : + int LA42_137 = input.LA(1); + + + int index42_137 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_137); + if ( s>=0 ) return s; + break; + case 104 : + int LA42_138 = input.LA(1); + + + int index42_138 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_138); + if ( s>=0 ) return s; + break; + case 105 : + int LA42_139 = input.LA(1); + + + int index42_139 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_139); + if ( s>=0 ) return s; + break; + case 106 : + int LA42_140 = input.LA(1); + + + int index42_140 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_140); + if ( s>=0 ) return s; + break; + case 107 : + int LA42_141 = input.LA(1); + + + int index42_141 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_141); + if ( s>=0 ) return s; + break; + case 108 : + int LA42_142 = input.LA(1); + + + int index42_142 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_142); + if ( s>=0 ) return s; + break; + case 109 : + int LA42_143 = input.LA(1); + + + int index42_143 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_143); + if ( s>=0 ) return s; + break; + case 110 : + int LA42_144 = input.LA(1); + + + int index42_144 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_144); + if ( s>=0 ) return s; + break; + case 111 : + int LA42_145 = input.LA(1); + + + int index42_145 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_145); + if ( s>=0 ) return s; + break; + case 112 : + int LA42_146 = input.LA(1); + + + int index42_146 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_146); + if ( s>=0 ) return s; + break; + case 113 : + int LA42_147 = input.LA(1); + + + int index42_147 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_147); + if ( s>=0 ) return s; + break; + case 114 : + int LA42_148 = input.LA(1); + + + int index42_148 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_148); + if ( s>=0 ) return s; + break; + case 115 : + int LA42_149 = input.LA(1); + + + int index42_149 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_149); + if ( s>=0 ) return s; + break; + case 116 : + int LA42_150 = input.LA(1); + + + int index42_150 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_150); + if ( s>=0 ) return s; + break; + case 117 : + int LA42_151 = input.LA(1); + + + int index42_151 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_151); + if ( s>=0 ) return s; + break; + case 118 : + int LA42_152 = input.LA(1); + + + int index42_152 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_152); + if ( s>=0 ) return s; + break; + case 119 : + int LA42_153 = input.LA(1); + + + int index42_153 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_153); + if ( s>=0 ) return s; + break; + case 120 : + int LA42_154 = input.LA(1); + + + int index42_154 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_154); + if ( s>=0 ) return s; + break; + case 121 : + int LA42_155 = input.LA(1); + + + int index42_155 = input.index(); + input.rewind(); + s = -1; + if ( (synpred100_wcps()) ) {s = 31;} + + else if ( (synpred101_wcps()) ) {s = 32;} + + + input.seek(index42_155); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 42, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA43_eotS = + "\40\uffff"; + static final String DFA43_eofS = + "\40\uffff"; + static final String DFA43_minS = + "\1\6\37\uffff"; + static final String DFA43_maxS = + "\1\154\37\uffff"; + static final String DFA43_acceptS = + "\1\uffff\1\1\35\uffff\1\2"; + static final String DFA43_specialS = + "\40\uffff}>"; + static final String[] DFA43_transitionS = { + "\1\1\20\uffff\1\1\3\uffff\20\1\3\uffff\1\1\4\uffff\6\1\1\uffff"+ + "\1\1\1\uffff\2\1\16\uffff\1\1\1\uffff\3\1\3\uffff\1\37\14\uffff"+ + "\2\1\10\uffff\2\1", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA43_eot = DFA.unpackEncodedString(DFA43_eotS); + static final short[] DFA43_eof = DFA.unpackEncodedString(DFA43_eofS); + static final char[] DFA43_min = DFA.unpackEncodedStringToUnsignedChars(DFA43_minS); + static final char[] DFA43_max = DFA.unpackEncodedStringToUnsignedChars(DFA43_maxS); + static final short[] DFA43_accept = DFA.unpackEncodedString(DFA43_acceptS); + static final short[] DFA43_special = DFA.unpackEncodedString(DFA43_specialS); + static final short[][] DFA43_transition; + + static { + int numStates = DFA43_transitionS.length; + DFA43_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA43_transition[i] = DFA.unpackEncodedString(DFA43_transitionS[i]); + } + } + + class DFA43 extends DFA { + + public DFA43(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 43; + this.eot = DFA43_eot; + this.eof = DFA43_eof; + this.min = DFA43_min; + this.max = DFA43_max; + this.accept = DFA43_accept; + this.special = DFA43_special; + this.transition = DFA43_transition; + } + public String getDescription() { + return "255:1: trimExpr returns [TrimExpr value] : (e1= coverageAtom LBRACKET dil= dimensionIntervalList RBRACKET | TRIM LPAREN e2= coverageExpr COMMA LBRACE dil= dimensionIntervalList RBRACE RPAREN );"; + } + } + static final String DFA44_eotS = + "\40\uffff"; + static final String DFA44_eofS = + "\40\uffff"; + static final String DFA44_minS = + "\1\6\37\uffff"; + static final String DFA44_maxS = + "\1\154\37\uffff"; + static final String DFA44_acceptS = + "\1\uffff\1\1\35\uffff\1\2"; + static final String DFA44_specialS = + "\40\uffff}>"; + static final String[] DFA44_transitionS = { + "\1\1\20\uffff\1\1\3\uffff\20\1\3\uffff\1\1\4\uffff\6\1\1\uffff"+ + "\1\1\1\uffff\2\1\16\uffff\1\1\1\uffff\3\1\4\uffff\1\37\13\uffff"+ + "\2\1\10\uffff\2\1", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA44_eot = DFA.unpackEncodedString(DFA44_eotS); + static final short[] DFA44_eof = DFA.unpackEncodedString(DFA44_eofS); + static final char[] DFA44_min = DFA.unpackEncodedStringToUnsignedChars(DFA44_minS); + static final char[] DFA44_max = DFA.unpackEncodedStringToUnsignedChars(DFA44_maxS); + static final short[] DFA44_accept = DFA.unpackEncodedString(DFA44_acceptS); + static final short[] DFA44_special = DFA.unpackEncodedString(DFA44_specialS); + static final short[][] DFA44_transition; + + static { + int numStates = DFA44_transitionS.length; + DFA44_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA44_transition[i] = DFA.unpackEncodedString(DFA44_transitionS[i]); + } + } + + class DFA44 extends DFA { + + public DFA44(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 44; + this.eot = DFA44_eot; + this.eof = DFA44_eof; + this.min = DFA44_min; + this.max = DFA44_max; + this.accept = DFA44_accept; + this.special = DFA44_special; + this.transition = DFA44_transition; + } + public String getDescription() { + return "259:1: sliceExpr returns [SliceExpr value] : (e1= coverageAtom LBRACKET dpl= dimensionPointList RBRACKET | SLICE LPAREN e2= coverageExpr COMMA LBRACE dpl= dimensionPointList RBRACE RPAREN );"; + } + } + static final String DFA46_eotS = + "\77\uffff"; + static final String DFA46_eofS = + "\1\1\76\uffff"; + static final String DFA46_minS = + "\1\7\7\uffff\1\0\66\uffff"; + static final String DFA46_maxS = + "\1\140\7\uffff\1\0\66\uffff"; + static final String DFA46_acceptS = + "\1\uffff\1\2\74\uffff\1\1"; + static final String DFA46_specialS = + "\10\uffff\1\0\66\uffff}>"; + static final String[] DFA46_transitionS = { + "\2\1\1\uffff\1\1\2\uffff\2\10\14\1\21\uffff\2\1\3\uffff\1\1"+ + "\7\uffff\1\1\30\uffff\1\1\15\uffff\1\1", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA46_eot = DFA.unpackEncodedString(DFA46_eotS); + static final short[] DFA46_eof = DFA.unpackEncodedString(DFA46_eofS); + static final char[] DFA46_min = DFA.unpackEncodedStringToUnsignedChars(DFA46_minS); + static final char[] DFA46_max = DFA.unpackEncodedStringToUnsignedChars(DFA46_maxS); + static final short[] DFA46_accept = DFA.unpackEncodedString(DFA46_acceptS); + static final short[] DFA46_special = DFA.unpackEncodedString(DFA46_specialS); + static final short[][] DFA46_transition; + + static { + int numStates = DFA46_transitionS.length; + DFA46_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA46_transition[i] = DFA.unpackEncodedString(DFA46_transitionS[i]); + } + } + + class DFA46 extends DFA { + + public DFA46(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 46; + this.eot = DFA46_eot; + this.eof = DFA46_eof; + this.min = DFA46_min; + this.max = DFA46_max; + this.accept = DFA46_accept; + this.special = DFA46_special; + this.transition = DFA46_transition; + } + public String getDescription() { + return "()* loopback of 280:7: (op= ( OR | XOR ) e2= booleanScalarTerm )*"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA46_8 = input.LA(1); + + + int index46_8 = input.index(); + input.rewind(); + s = -1; + if ( (synpred115_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 1;} + + + input.seek(index46_8); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 46, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA47_eotS = + "\77\uffff"; + static final String DFA47_eofS = + "\1\1\76\uffff"; + static final String DFA47_minS = + "\1\7\7\uffff\1\0\66\uffff"; + static final String DFA47_maxS = + "\1\140\7\uffff\1\0\66\uffff"; + static final String DFA47_acceptS = + "\1\uffff\1\2\74\uffff\1\1"; + static final String DFA47_specialS = + "\10\uffff\1\0\66\uffff}>"; + static final String[] DFA47_transitionS = { + "\2\1\1\uffff\1\1\2\uffff\2\1\1\10\13\1\21\uffff\2\1\3\uffff"+ + "\1\1\7\uffff\1\1\30\uffff\1\1\15\uffff\1\1", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA47_eot = DFA.unpackEncodedString(DFA47_eotS); + static final short[] DFA47_eof = DFA.unpackEncodedString(DFA47_eofS); + static final char[] DFA47_min = DFA.unpackEncodedStringToUnsignedChars(DFA47_minS); + static final char[] DFA47_max = DFA.unpackEncodedStringToUnsignedChars(DFA47_maxS); + static final short[] DFA47_accept = DFA.unpackEncodedString(DFA47_acceptS); + static final short[] DFA47_special = DFA.unpackEncodedString(DFA47_specialS); + static final short[][] DFA47_transition; + + static { + int numStates = DFA47_transitionS.length; + DFA47_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA47_transition[i] = DFA.unpackEncodedString(DFA47_transitionS[i]); + } + } + + class DFA47 extends DFA { + + public DFA47(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 47; + this.eot = DFA47_eot; + this.eof = DFA47_eof; + this.min = DFA47_min; + this.max = DFA47_max; + this.accept = DFA47_accept; + this.special = DFA47_special; + this.transition = DFA47_transition; + } + public String getDescription() { + return "()* loopback of 284:4: (op= AND e2= booleanScalarNegation )*"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA47_8 = input.LA(1); + + + int index47_8 = input.index(); + input.rewind(); + s = -1; + if ( (synpred116_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 1;} + + + input.seek(index47_8); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 47, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA48_eotS = + "\17\uffff"; + static final String DFA48_eofS = + "\17\uffff"; + static final String DFA48_minS = + "\1\6\16\uffff"; + static final String DFA48_maxS = + "\1\154\16\uffff"; + static final String DFA48_acceptS = + "\1\uffff\1\1\14\uffff\1\2"; + static final String DFA48_specialS = + "\17\uffff}>"; + static final String[] DFA48_transitionS = { + "\1\1\20\uffff\1\1\3\uffff\1\1\7\uffff\10\1\21\uffff\2\1\16\uffff"+ + "\1\16\1\uffff\3\1\20\uffff\2\1\11\uffff\1\1", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA48_eot = DFA.unpackEncodedString(DFA48_eotS); + static final short[] DFA48_eof = DFA.unpackEncodedString(DFA48_eofS); + static final char[] DFA48_min = DFA.unpackEncodedStringToUnsignedChars(DFA48_minS); + static final char[] DFA48_max = DFA.unpackEncodedStringToUnsignedChars(DFA48_maxS); + static final short[] DFA48_accept = DFA.unpackEncodedString(DFA48_acceptS); + static final short[] DFA48_special = DFA.unpackEncodedString(DFA48_specialS); + static final short[][] DFA48_transition; + + static { + int numStates = DFA48_transitionS.length; + DFA48_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA48_transition[i] = DFA.unpackEncodedString(DFA48_transitionS[i]); + } + } + + class DFA48 extends DFA { + + public DFA48(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 48; + this.eot = DFA48_eot; + this.eof = DFA48_eof; + this.min = DFA48_min; + this.max = DFA48_max; + this.accept = DFA48_accept; + this.special = DFA48_special; + this.transition = DFA48_transition; + } + public String getDescription() { + return "286:1: booleanScalarNegation returns [BooleanScalarExpr value] : (e1= booleanScalarAtom | op= NOT e1= booleanScalarAtom );"; + } + } + static final String DFA49_eotS = + "\34\uffff"; + static final String DFA49_eofS = + "\34\uffff"; + static final String DFA49_minS = + "\2\6\14\uffff\12\0\4\uffff"; + static final String DFA49_maxS = + "\2\154\14\uffff\12\0\4\uffff"; + static final String DFA49_acceptS = + "\2\uffff\1\2\1\uffff\1\3\10\uffff\1\4\12\uffff\1\1\3\uffff"; + static final String DFA49_specialS = + "\16\uffff\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\4\uffff}>"; + static final String[] DFA49_transitionS = { + "\1\1\20\uffff\1\4\3\uffff\1\2\7\uffff\10\4\21\uffff\2\4\20\uffff"+ + "\2\4\1\2\20\uffff\1\15\1\4\11\uffff\1\4", + "\1\17\20\uffff\1\20\3\uffff\1\30\7\uffff\7\25\1\26\21\uffff"+ + "\1\22\1\21\16\uffff\1\30\1\uffff\1\24\1\23\1\30\20\uffff\1\30"+ + "\1\16\11\uffff\1\27", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "\1\uffff", + "", + "", + "", + "" + }; + + static final short[] DFA49_eot = DFA.unpackEncodedString(DFA49_eotS); + static final short[] DFA49_eof = DFA.unpackEncodedString(DFA49_eofS); + static final char[] DFA49_min = DFA.unpackEncodedStringToUnsignedChars(DFA49_minS); + static final char[] DFA49_max = DFA.unpackEncodedStringToUnsignedChars(DFA49_maxS); + static final short[] DFA49_accept = DFA.unpackEncodedString(DFA49_acceptS); + static final short[] DFA49_special = DFA.unpackEncodedString(DFA49_specialS); + static final short[][] DFA49_transition; + + static { + int numStates = DFA49_transitionS.length; + DFA49_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA49_transition[i] = DFA.unpackEncodedString(DFA49_transitionS[i]); + } + } + + class DFA49 extends DFA { + + public DFA49(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 49; + this.eot = DFA49_eot; + this.eof = DFA49_eof; + this.min = DFA49_min; + this.max = DFA49_max; + this.accept = DFA49_accept; + this.special = DFA49_special; + this.transition = DFA49_transition; + } + public String getDescription() { + return "290:1: booleanScalarAtom returns [BooleanScalarExpr value] : ( LPAREN e1= booleanScalarExpr RPAREN | s1= stringScalarExpr cop= compOp s2= stringScalarExpr | n1= numericScalarExpr cop= compOp n2= numericScalarExpr | e= BOOLEANCONSTANT );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA49_14 = input.LA(1); + + + int index49_14 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_14); + if ( s>=0 ) return s; + break; + case 1 : + int LA49_15 = input.LA(1); + + + int index49_15 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_15); + if ( s>=0 ) return s; + break; + case 2 : + int LA49_16 = input.LA(1); + + + int index49_16 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_16); + if ( s>=0 ) return s; + break; + case 3 : + int LA49_17 = input.LA(1); + + + int index49_17 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_17); + if ( s>=0 ) return s; + break; + case 4 : + int LA49_18 = input.LA(1); + + + int index49_18 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_18); + if ( s>=0 ) return s; + break; + case 5 : + int LA49_19 = input.LA(1); + + + int index49_19 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_19); + if ( s>=0 ) return s; + break; + case 6 : + int LA49_20 = input.LA(1); + + + int index49_20 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_20); + if ( s>=0 ) return s; + break; + case 7 : + int LA49_21 = input.LA(1); + + + int index49_21 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_21); + if ( s>=0 ) return s; + break; + case 8 : + int LA49_22 = input.LA(1); + + + int index49_22 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_22); + if ( s>=0 ) return s; + break; + case 9 : + int LA49_23 = input.LA(1); + + + int index49_23 = input.index(); + input.rewind(); + s = -1; + if ( (synpred118_wcps()) ) {s = 24;} + + else if ( (synpred120_wcps()) ) {s = 4;} + + + input.seek(index49_23); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 49, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA50_eotS = + "\77\uffff"; + static final String DFA50_eofS = + "\1\1\76\uffff"; + static final String DFA50_minS = + "\1\7\3\uffff\1\0\72\uffff"; + static final String DFA50_maxS = + "\1\140\3\uffff\1\0\72\uffff"; + static final String DFA50_acceptS = + "\1\uffff\1\2\74\uffff\1\1"; + static final String DFA50_specialS = + "\4\uffff\1\0\72\uffff}>"; + static final String[] DFA50_transitionS = { + "\2\1\1\uffff\1\1\2\uffff\11\1\2\4\3\1\21\uffff\2\1\3\uffff\1"+ + "\1\7\uffff\1\1\30\uffff\1\1\15\uffff\1\1", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA50_eot = DFA.unpackEncodedString(DFA50_eotS); + static final short[] DFA50_eof = DFA.unpackEncodedString(DFA50_eofS); + static final char[] DFA50_min = DFA.unpackEncodedStringToUnsignedChars(DFA50_minS); + static final char[] DFA50_max = DFA.unpackEncodedStringToUnsignedChars(DFA50_maxS); + static final short[] DFA50_accept = DFA.unpackEncodedString(DFA50_acceptS); + static final short[] DFA50_special = DFA.unpackEncodedString(DFA50_specialS); + static final short[][] DFA50_transition; + + static { + int numStates = DFA50_transitionS.length; + DFA50_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA50_transition[i] = DFA.unpackEncodedString(DFA50_transitionS[i]); + } + } + + class DFA50 extends DFA { + + public DFA50(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 50; + this.eot = DFA50_eot; + this.eof = DFA50_eof; + this.min = DFA50_min; + this.max = DFA50_max; + this.accept = DFA50_accept; + this.special = DFA50_special; + this.transition = DFA50_transition; + } + public String getDescription() { + return "()* loopback of 298:4: (op= ( PLUS | MINUS ) e2= numericScalarTerm )*"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA50_4 = input.LA(1); + + + int index50_4 = input.index(); + input.rewind(); + s = -1; + if ( (synpred122_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 1;} + + + input.seek(index50_4); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 50, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA51_eotS = + "\77\uffff"; + static final String DFA51_eofS = + "\1\1\76\uffff"; + static final String DFA51_minS = + "\1\7\3\uffff\1\0\72\uffff"; + static final String DFA51_maxS = + "\1\140\3\uffff\1\0\72\uffff"; + static final String DFA51_acceptS = + "\1\uffff\1\2\74\uffff\1\1"; + static final String DFA51_specialS = + "\4\uffff\1\0\72\uffff}>"; + static final String[] DFA51_transitionS = { + "\2\1\1\uffff\1\1\2\uffff\13\1\2\4\1\1\21\uffff\2\1\3\uffff\1"+ + "\1\7\uffff\1\1\30\uffff\1\1\15\uffff\1\1", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA51_eot = DFA.unpackEncodedString(DFA51_eotS); + static final short[] DFA51_eof = DFA.unpackEncodedString(DFA51_eofS); + static final char[] DFA51_min = DFA.unpackEncodedStringToUnsignedChars(DFA51_minS); + static final char[] DFA51_max = DFA.unpackEncodedStringToUnsignedChars(DFA51_maxS); + static final short[] DFA51_accept = DFA.unpackEncodedString(DFA51_acceptS); + static final short[] DFA51_special = DFA.unpackEncodedString(DFA51_specialS); + static final short[][] DFA51_transition; + + static { + int numStates = DFA51_transitionS.length; + DFA51_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA51_transition[i] = DFA.unpackEncodedString(DFA51_transitionS[i]); + } + } + + class DFA51 extends DFA { + + public DFA51(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 51; + this.eot = DFA51_eot; + this.eof = DFA51_eof; + this.min = DFA51_min; + this.max = DFA51_max; + this.accept = DFA51_accept; + this.special = DFA51_special; + this.transition = DFA51_transition; + } + public String getDescription() { + return "()* loopback of 302:3: (op= ( MULT | DIVIDE ) e2= numericScalarFactor )*"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA51_4 = input.LA(1); + + + int index51_4 = input.index(); + input.rewind(); + s = -1; + if ( (synpred124_wcps()) ) {s = 62;} + + else if ( (true) ) {s = 1;} + + + input.seek(index51_4); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 51, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA52_eotS = + "\26\uffff"; + static final String DFA52_eofS = + "\26\uffff"; + static final String DFA52_minS = + "\2\6\11\uffff\1\0\12\uffff"; + static final String DFA52_maxS = + "\2\154\11\uffff\1\0\12\uffff"; + static final String DFA52_acceptS = + "\2\uffff\1\2\1\3\1\4\1\5\1\6\1\7\1\11\1\uffff\1\12\1\uffff\1\1\10"+ + "\uffff\1\10"; + static final String DFA52_specialS = + "\13\uffff\1\0\12\uffff}>"; + static final String[] DFA52_transitionS = { + "\1\1\20\uffff\1\2\13\uffff\10\10\21\uffff\1\4\1\3\20\uffff\1"+ + "\6\1\5\22\uffff\1\7\11\uffff\1\12", + "\1\14\20\uffff\1\14\13\uffff\10\14\21\uffff\2\14\20\uffff\2"+ + "\14\22\uffff\1\13\11\uffff\1\14", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + }; + + static final short[] DFA52_eot = DFA.unpackEncodedString(DFA52_eotS); + static final short[] DFA52_eof = DFA.unpackEncodedString(DFA52_eofS); + static final char[] DFA52_min = DFA.unpackEncodedStringToUnsignedChars(DFA52_minS); + static final char[] DFA52_max = DFA.unpackEncodedStringToUnsignedChars(DFA52_maxS); + static final short[] DFA52_accept = DFA.unpackEncodedString(DFA52_acceptS); + static final short[] DFA52_special = DFA.unpackEncodedString(DFA52_specialS); + static final short[][] DFA52_transition; + + static { + int numStates = DFA52_transitionS.length; + DFA52_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA52_transition[i] = DFA.unpackEncodedString(DFA52_transitionS[i]); + } + } + + class DFA52 extends DFA { + + public DFA52(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 52; + this.eot = DFA52_eot; + this.eof = DFA52_eof; + this.min = DFA52_min; + this.max = DFA52_max; + this.accept = DFA52_accept; + this.special = DFA52_special; + this.transition = DFA52_transition; + } + public String getDescription() { + return "304:1: numericScalarFactor returns [NumericScalarExpr value] : ( LPAREN e1= numericScalarExpr RPAREN | op= MINUS e10= numericScalarFactor | op= ABS LPAREN e12= numericScalarExpr RPAREN | op= SQRT LPAREN e11= numericScalarExpr RPAREN | op= ROUND LPAREN e1= numericScalarExpr RPAREN | e= INTEGERCONSTANT | e= FLOATCONSTANT | e2= complexConstant | e3= condenseExpr | e4= variableName );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA52_11 = input.LA(1); + + + int index52_11 = input.index(); + input.rewind(); + s = -1; + if ( (synpred125_wcps()) ) {s = 12;} + + else if ( (synpred132_wcps()) ) {s = 21;} + + + input.seek(index52_11); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 52, _s, input); + error(nvae); + throw nvae; + } + } + static final String DFA56_eotS = + "\30\uffff"; + static final String DFA56_eofS = + "\30\uffff"; + static final String DFA56_minS = + "\1\6\4\uffff\1\6\20\uffff\1\0\1\uffff"; + static final String DFA56_maxS = + "\1\154\4\uffff\1\6\20\uffff\1\0\1\uffff"; + static final String DFA56_acceptS = + "\1\uffff\1\1\25\uffff\1\2"; + static final String DFA56_specialS = + "\26\uffff\1\0\1\uffff}>"; + static final String[] DFA56_transitionS = { + "\1\1\20\uffff\1\1\3\uffff\7\1\1\5\10\1\21\uffff\2\1\16\uffff"+ + "\1\1\1\uffff\3\1\20\uffff\2\1\11\uffff\1\1", + "", + "", + "", + "", + "\1\26", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "\1\uffff", + "" + }; + + static final short[] DFA56_eot = DFA.unpackEncodedString(DFA56_eotS); + static final short[] DFA56_eof = DFA.unpackEncodedString(DFA56_eofS); + static final char[] DFA56_min = DFA.unpackEncodedStringToUnsignedChars(DFA56_minS); + static final char[] DFA56_max = DFA.unpackEncodedStringToUnsignedChars(DFA56_maxS); + static final short[] DFA56_accept = DFA.unpackEncodedString(DFA56_acceptS); + static final short[] DFA56_special = DFA.unpackEncodedString(DFA56_specialS); + static final short[][] DFA56_transition; + + static { + int numStates = DFA56_transitionS.length; + DFA56_transition = new short[numStates][]; + for (int i=0; i<numStates; i++) { + DFA56_transition[i] = DFA.unpackEncodedString(DFA56_transitionS[i]); + } + } + + class DFA56 extends DFA { + + public DFA56(BaseRecognizer recognizer) { + this.recognizer = recognizer; + this.decisionNumber = 56; + this.eot = DFA56_eot; + this.eof = DFA56_eof; + this.min = DFA56_min; + this.max = DFA56_max; + this.accept = DFA56_accept; + this.special = DFA56_special; + this.transition = DFA56_transition; + } + public String getDescription() { + return "332:1: dimensionIntervalExpr returns [DimensionIntervalExpr value] : (e1= scalarExpr COLON e2= scalarExpr | DOMAIN LPAREN e3= coverageName COLON e4= axisName COLON e5= crsName RPAREN );"; + } + public int specialStateTransition(int s, IntStream _input) throws NoViableAltException { + TokenStream input = (TokenStream)_input; + int _s = s; + switch ( s ) { + case 0 : + int LA56_22 = input.LA(1); + + + int index56_22 = input.index(); + input.rewind(); + s = -1; + if ( (synpred141_wcps()) ) {s = 1;} + + else if ( (true) ) {s = 23;} + + + input.seek(index56_22); + if ( s>=0 ) return s; + break; + } + if (state.backtracking>0) {state.failed=true; return -1;} + NoViableAltException nvae = + new NoViableAltException(getDescription(), 56, _s, input); + error(nvae); + throw nvae; + } + } + + + public static final BitSet FOLLOW_forClause_in_wcpsRequest63 = new BitSet(new long[]{0x0000000000000600L}); + public static final BitSet FOLLOW_whereClause_in_wcpsRequest72 = new BitSet(new long[]{0x0000000000000600L}); + public static final BitSet FOLLOW_returnClause_in_wcpsRequest83 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FOR_in_forClause98 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L}); + public static final BitSet FOLLOW_coverageVariable_in_forClause102 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_IN_in_forClause104 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_forClause106 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_coverageList_in_forClause110 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_forClause112 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_COMMA_in_forClause122 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L}); + public static final BitSet FOLLOW_coverageVariable_in_forClause126 = new BitSet(new long[]{0x0000000000000020L}); + public static final BitSet FOLLOW_IN_in_forClause128 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_forClause130 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_coverageList_in_forClause134 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_forClause136 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_WHERE_in_whereClause157 = new BitSet(new long[]{0x300007F808800040L,0x000010060001D000L}); + public static final BitSet FOLLOW_booleanScalarExpr_in_whereClause161 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_RETURN_in_returnClause176 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_processingExpr_in_returnClause180 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageName_in_coverageList197 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_COMMA_in_coverageList204 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_coverageName_in_coverageList208 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_encodedCoverageExpr_in_processingExpr230 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_storeExpr_in_processingExpr242 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_scalarExpr_in_processingExpr254 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ENCODE_in_encodedCoverageExpr272 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_encodedCoverageExpr274 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_encodedCoverageExpr278 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_encodedCoverageExpr280 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_stringConstant_in_encodedCoverageExpr284 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_COMMA_in_encodedCoverageExpr291 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_stringConstant_in_encodedCoverageExpr295 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_encodedCoverageExpr302 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STORE_in_storeExpr319 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_storeExpr321 = new BitSet(new long[]{0x0000000000000800L}); + public static final BitSet FOLLOW_encodedCoverageExpr_in_storeExpr325 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_storeExpr327 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageLogicTerm_in_coverageExpr350 = new BitSet(new long[]{0x0000000000006002L}); + public static final BitSet FOLLOW_set_in_coverageExpr366 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageLogicTerm_in_coverageExpr374 = new BitSet(new long[]{0x0000000000006002L}); + public static final BitSet FOLLOW_coverageLogicFactor_in_coverageLogicTerm400 = new BitSet(new long[]{0x0000000000008002L}); + public static final BitSet FOLLOW_AND_in_coverageLogicTerm416 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageLogicFactor_in_coverageLogicTerm420 = new BitSet(new long[]{0x0000000000008002L}); + public static final BitSet FOLLOW_coverageArithmeticExpr_in_coverageLogicFactor447 = new BitSet(new long[]{0x00000000003F0002L}); + public static final BitSet FOLLOW_set_in_coverageLogicFactor463 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageArithmeticExpr_in_coverageLogicFactor479 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageArithmeticTerm_in_coverageArithmeticExpr507 = new BitSet(new long[]{0x0000000000C00002L}); + public static final BitSet FOLLOW_set_in_coverageArithmeticExpr523 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageArithmeticTerm_in_coverageArithmeticExpr531 = new BitSet(new long[]{0x0000000000C00002L}); + public static final BitSet FOLLOW_coverageArithmeticFactor_in_coverageArithmeticTerm559 = new BitSet(new long[]{0x0000000003000002L}); + public static final BitSet FOLLOW_set_in_coverageArithmeticTerm574 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageArithmeticFactor_in_coverageArithmeticTerm582 = new BitSet(new long[]{0x0000000003000002L}); + public static final BitSet FOLLOW_coverageValue_in_coverageArithmeticFactor610 = new BitSet(new long[]{0x0000000004000002L}); + public static final BitSet FOLLOW_OVERLAY_in_coverageArithmeticFactor625 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageValue_in_coverageArithmeticFactor629 = new BitSet(new long[]{0x0000000004000002L}); + public static final BitSet FOLLOW_subsetExpr_in_coverageValue655 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_unaryInducedExpr_in_coverageValue668 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_scaleExpr_in_coverageValue680 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_crsTransformExpr_in_coverageValue692 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageAtom_in_coverageValue704 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_scalarExpr_in_coverageAtom727 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageVariable_in_coverageAtom739 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_coverageAtom749 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_coverageAtom753 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_coverageAtom755 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageConstantExpr_in_coverageAtom768 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageConstructorExpr_in_coverageAtom780 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_setMetaDataExpr_in_coverageAtom793 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rangeConstructorExpr_in_coverageAtom806 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_metaDataExpr_in_scalarExpr830 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_condenseExpr_in_scalarExpr843 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_booleanScalarExpr_in_scalarExpr856 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_numericScalarExpr_in_scalarExpr870 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_stringScalarExpr_in_scalarExpr883 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_scalarExpr894 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_scalarExpr_in_scalarExpr898 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_scalarExpr900 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_metaDataExpr924 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_metaDataExpr926 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_metaDataExpr930 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_metaDataExpr932 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IMAGECRS_in_metaDataExpr944 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_metaDataExpr946 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_metaDataExpr950 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_metaDataExpr952 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IMAGECRSDOMAIN_in_metaDataExpr964 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_metaDataExpr966 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_metaDataExpr970 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_COMMA_in_metaDataExpr973 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_axisName_in_metaDataExpr977 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_metaDataExpr981 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CRSSET_in_metaDataExpr993 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_metaDataExpr995 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_metaDataExpr999 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_metaDataExpr1001 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_domainExpr_in_metaDataExpr1013 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NULLSET_in_metaDataExpr1025 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_metaDataExpr1027 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_metaDataExpr1031 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_metaDataExpr1033 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INTERPOLATIONDEFAULT_in_metaDataExpr1045 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_metaDataExpr1047 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_metaDataExpr1051 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_metaDataExpr1053 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldName_in_metaDataExpr1057 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_metaDataExpr1059 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INTERPOLATIONSET_in_metaDataExpr1071 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_metaDataExpr1073 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_metaDataExpr1077 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_metaDataExpr1079 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldName_in_metaDataExpr1083 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_metaDataExpr1085 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DOMAIN_in_domainExpr1104 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_domainExpr1106 = new BitSet(new long[]{0x0000000000000000L,0x0000080000000000L}); + public static final BitSet FOLLOW_coverageVariable_in_domainExpr1110 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_domainExpr1112 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_axisName_in_domainExpr1116 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_domainExpr1118 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_crsName_in_domainExpr1122 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_domainExpr1124 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_reduceExpr_in_condenseExpr1141 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_generalCondenseExpr_in_condenseExpr1150 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_reduceExpr1167 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_reduceExpr1183 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_reduceExpr1187 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_reduceExpr1189 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CONDENSE_in_generalCondenseExpr1204 = new BitSet(new long[]{0x000003000140A000L}); + public static final BitSet FOLLOW_condenseOpType_in_generalCondenseExpr1208 = new BitSet(new long[]{0x0000080000000000L}); + public static final BitSet FOLLOW_OVER_in_generalCondenseExpr1210 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_axisIteratorList_in_generalCondenseExpr1214 = new BitSet(new long[]{0x0000100000000200L}); + public static final BitSet FOLLOW_WHERE_in_generalCondenseExpr1221 = new BitSet(new long[]{0x300007F808800040L,0x000010060001D000L}); + public static final BitSet FOLLOW_booleanScalarExpr_in_generalCondenseExpr1225 = new BitSet(new long[]{0x0000100000000000L}); + public static final BitSet FOLLOW_USING_in_generalCondenseExpr1233 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_generalCondenseExpr1237 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_variableName_in_axisIteratorList1254 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_axisName_in_axisIteratorList1258 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_axisIteratorList1260 = new BitSet(new long[]{0x0000000020000040L,0x000000000000C000L}); + public static final BitSet FOLLOW_intervalExpr_in_axisIteratorList1264 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_axisIteratorList1266 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_COMMA_in_axisIteratorList1274 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_variableName_in_axisIteratorList1278 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_axisName_in_axisIteratorList1282 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_axisIteratorList1284 = new BitSet(new long[]{0x0000000020000040L,0x000000000000C000L}); + public static final BitSet FOLLOW_intervalExpr_in_axisIteratorList1288 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_axisIteratorList1290 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_indexExpr_in_intervalExpr1314 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_intervalExpr1316 = new BitSet(new long[]{0x0000000000000040L,0x000000000000C000L}); + public static final BitSet FOLLOW_indexExpr_in_intervalExpr1320 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IMAGECRSDOMAIN_in_intervalExpr1335 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_intervalExpr1337 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_coverageName_in_intervalExpr1341 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_intervalExpr1343 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_axisName_in_intervalExpr1347 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_intervalExpr1349 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_COVERAGE_in_coverageConstantExpr1375 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_coverageName_in_coverageConstantExpr1379 = new BitSet(new long[]{0x0000080000000000L}); + public static final BitSet FOLLOW_OVER_in_coverageConstantExpr1381 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_axisIteratorList_in_coverageConstantExpr1385 = new BitSet(new long[]{0x0000800000000000L}); + public static final BitSet FOLLOW_VALUE_in_coverageConstantExpr1387 = new BitSet(new long[]{0x0001000000000000L}); + public static final BitSet FOLLOW_LIST_in_coverageConstantExpr1389 = new BitSet(new long[]{0x0000000000040000L}); + public static final BitSet FOLLOW_LT_in_coverageConstantExpr1391 = new BitSet(new long[]{0x0000000000000040L,0x0000000600014000L}); + public static final BitSet FOLLOW_constantList_in_coverageConstantExpr1395 = new BitSet(new long[]{0x0000000000080000L}); + public static final BitSet FOLLOW_GT_in_coverageConstantExpr1397 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_constant_in_constantList1428 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_SEMICOLON_in_constantList1433 = new BitSet(new long[]{0x0000000000000040L,0x0000000600014000L}); + public static final BitSet FOLLOW_constant_in_constantList1437 = new BitSet(new long[]{0x0002000000000002L}); + public static final BitSet FOLLOW_COVERAGE_in_coverageConstructorExpr1457 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_coverageName_in_coverageConstructorExpr1461 = new BitSet(new long[]{0x0000080000000000L}); + public static final BitSet FOLLOW_OVER_in_coverageConstructorExpr1463 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_axisIteratorList_in_coverageConstructorExpr1467 = new BitSet(new long[]{0x0004000000000000L}); + public static final BitSet FOLLOW_VALUES_in_coverageConstructorExpr1469 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_scalarExpr_in_coverageConstructorExpr1473 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SETIDENTIFIER_in_setMetaDataExpr1495 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_setMetaDataExpr1497 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_stringConstant_in_setMetaDataExpr1501 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_setMetaDataExpr1503 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_setMetaDataExpr1507 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_setMetaDataExpr1509 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SETCRSSET_in_setMetaDataExpr1522 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_setMetaDataExpr1524 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_setMetaDataExpr1528 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_setMetaDataExpr1530 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_crsList_in_setMetaDataExpr1534 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_setMetaDataExpr1536 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SETNULLSET_in_setMetaDataExpr1553 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_setMetaDataExpr1555 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_setMetaDataExpr1559 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_setMetaDataExpr1561 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_rangeExprList_in_setMetaDataExpr1565 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_setMetaDataExpr1567 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SETINTERPOLATIONDEFAULT_in_setMetaDataExpr1584 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_setMetaDataExpr1586 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_setMetaDataExpr1590 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_setMetaDataExpr1592 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldName_in_setMetaDataExpr1596 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_setMetaDataExpr1598 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_interpolationMethod_in_setMetaDataExpr1602 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_setMetaDataExpr1604 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SETINTERPOLATIONSET_in_setMetaDataExpr1624 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_setMetaDataExpr1626 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_setMetaDataExpr1630 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_setMetaDataExpr1632 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldName_in_setMetaDataExpr1636 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_setMetaDataExpr1638 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_interpolationMethodList_in_setMetaDataExpr1642 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_setMetaDataExpr1644 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LBRACE_in_crsList1673 = new BitSet(new long[]{0x0200000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_crsName_in_crsList1680 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_COMMA_in_crsList1685 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_crsName_in_crsList1689 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_RBRACE_in_crsList1698 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LBRACE_in_rangeExprList1717 = new BitSet(new long[]{0x0600000000000000L}); + public static final BitSet FOLLOW_rangeExpr_in_rangeExprList1724 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_COMMA_in_rangeExprList1729 = new BitSet(new long[]{0x0400000000000000L}); + public static final BitSet FOLLOW_rangeExpr_in_rangeExprList1733 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_RBRACE_in_rangeExprList1742 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LBRACE_in_interpolationMethodList1758 = new BitSet(new long[]{0x0200000000000040L}); + public static final BitSet FOLLOW_interpolationMethod_in_interpolationMethodList1765 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_COMMA_in_interpolationMethodList1770 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_interpolationMethod_in_interpolationMethodList1774 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_RBRACE_in_interpolationMethodList1782 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRUCT_in_rangeExpr1795 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_LBRACE_in_rangeExpr1797 = new BitSet(new long[]{0x0200000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldName_in_rangeExpr1805 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_rangeExpr1807 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_scalarExpr_in_rangeExpr1811 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_COMMA_in_rangeExpr1818 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldName_in_rangeExpr1822 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_rangeExpr1824 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_scalarExpr_in_rangeExpr1828 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_RBRACE_in_rangeExpr1839 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRUCT_in_rangeConstructorExpr1856 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_LBRACE_in_rangeConstructorExpr1860 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldName_in_rangeConstructorExpr1864 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_rangeConstructorExpr1866 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_rangeConstructorExpr1870 = new BitSet(new long[]{0x0202000000000000L}); + public static final BitSet FOLLOW_SEMICOLON_in_rangeConstructorExpr1883 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldName_in_rangeConstructorExpr1887 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_rangeConstructorExpr1889 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_rangeConstructorExpr1893 = new BitSet(new long[]{0x0202000000000000L}); + public static final BitSet FOLLOW_RBRACE_in_rangeConstructorExpr1899 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_CRSTRANSFORM_in_crsTransformExpr1915 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_crsTransformExpr1917 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_crsTransformExpr1921 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_crsTransformExpr1923 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_dimensionIntervalList_in_crsTransformExpr1927 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_crsTransformExpr1929 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_fieldInterpolationList_in_crsTransformExpr1933 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_crsTransformExpr1935 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LBRACE_in_fieldInterpolationList1952 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldInterpolationElement_in_fieldInterpolationList1956 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_COMMA_in_fieldInterpolationList1963 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldInterpolationElement_in_fieldInterpolationList1967 = new BitSet(new long[]{0x0200000000000100L}); + public static final BitSet FOLLOW_RBRACE_in_fieldInterpolationList1974 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldName_in_fieldInterpolationElement1989 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_interpolationMethod_in_fieldInterpolationElement1993 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldExpr_in_unaryInducedExpr2013 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_unaryArithmeticExpr_in_unaryInducedExpr2022 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_exponentialExpr_in_unaryInducedExpr2034 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_trigonometricExpr_in_unaryInducedExpr2046 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_booleanExpr_in_unaryInducedExpr2058 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_castExpr_in_unaryInducedExpr2070 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_rangeConstructorExpr_in_unaryInducedExpr2082 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_unaryArithmeticExpr2105 = new BitSet(new long[]{0x35F847FFF8801840L,0x000018060001D000L}); + public static final BitSet FOLLOW_coverageAtom_in_unaryArithmeticExpr2113 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_unaryArithmeticExpr2125 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_unaryArithmeticExpr2135 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_unaryArithmeticExpr2139 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_unaryArithmeticExpr2141 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_exponentialExpr2164 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_exponentialExpr2172 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_exponentialExpr2176 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_exponentialExpr2178 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_trigonometricExpr2201 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_trigonometricExpr2221 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_trigonometricExpr2225 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_trigonometricExpr2227 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_booleanExpr2250 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_booleanExpr2254 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BIT_in_booleanExpr2266 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_booleanExpr2268 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_booleanExpr2272 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_booleanExpr2274 = new BitSet(new long[]{0x0000000000000040L,0x000000000000C000L}); + public static final BitSet FOLLOW_indexExpr_in_booleanExpr2278 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_booleanExpr2280 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_indexTerm_in_indexExpr2303 = new BitSet(new long[]{0x0000000000C00002L}); + public static final BitSet FOLLOW_set_in_indexExpr2313 = new BitSet(new long[]{0x0000000000000040L,0x000000000000C000L}); + public static final BitSet FOLLOW_indexTerm_in_indexExpr2321 = new BitSet(new long[]{0x0000000000C00002L}); + public static final BitSet FOLLOW_indexFactor_in_indexTerm2346 = new BitSet(new long[]{0x0000000003000002L}); + public static final BitSet FOLLOW_set_in_indexTerm2359 = new BitSet(new long[]{0x0000000000000040L,0x000000000000C000L}); + public static final BitSet FOLLOW_indexFactor_in_indexTerm2367 = new BitSet(new long[]{0x0000000003000002L}); + public static final BitSet FOLLOW_INTEGERCONSTANT_in_indexFactor2394 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ROUND_in_indexFactor2407 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_indexFactor2409 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarExpr_in_indexFactor2413 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_indexFactor2415 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_indexFactor2427 = new BitSet(new long[]{0x0000000000000040L,0x000000000000C000L}); + public static final BitSet FOLLOW_indexExpr_in_indexFactor2431 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_indexFactor2433 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_IDENTIFIER_in_stringScalarExpr2460 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_stringScalarExpr2462 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_stringScalarExpr2466 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_stringScalarExpr2468 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_in_stringScalarExpr2481 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SCALE_in_scaleExpr2499 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_scaleExpr2501 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_scaleExpr2505 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_scaleExpr2507 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_dimensionIntervalList_in_scaleExpr2511 = new BitSet(new long[]{0x0000000000000180L}); + public static final BitSet FOLLOW_COMMA_in_scaleExpr2528 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_fieldInterpolationList_in_scaleExpr2532 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_scaleExpr2557 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_trimExpr_in_subsetExpr2575 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_sliceExpr_in_subsetExpr2584 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_extendExpr_in_subsetExpr2593 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageAtom_in_trimExpr2610 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L}); + public static final BitSet FOLLOW_LBRACKET_in_trimExpr2612 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_dimensionIntervalList_in_trimExpr2616 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L}); + public static final BitSet FOLLOW_RBRACKET_in_trimExpr2618 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_TRIM_in_trimExpr2627 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_trimExpr2629 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_trimExpr2633 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_trimExpr2635 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_LBRACE_in_trimExpr2637 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_dimensionIntervalList_in_trimExpr2641 = new BitSet(new long[]{0x0200000000000000L}); + public static final BitSet FOLLOW_RBRACE_in_trimExpr2643 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_trimExpr2645 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageAtom_in_sliceExpr2662 = new BitSet(new long[]{0x0000000000000000L,0x0000000000040000L}); + public static final BitSet FOLLOW_LBRACKET_in_sliceExpr2664 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_dimensionPointList_in_sliceExpr2668 = new BitSet(new long[]{0x0000000000000000L,0x0000000000080000L}); + public static final BitSet FOLLOW_RBRACKET_in_sliceExpr2670 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SLICE_in_sliceExpr2677 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_sliceExpr2679 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_sliceExpr2683 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_sliceExpr2685 = new BitSet(new long[]{0x0100000000000000L}); + public static final BitSet FOLLOW_LBRACE_in_sliceExpr2687 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_dimensionPointList_in_sliceExpr2691 = new BitSet(new long[]{0x0200000000000000L}); + public static final BitSet FOLLOW_RBRACE_in_sliceExpr2693 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_sliceExpr2695 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EXTEND_in_extendExpr2710 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_extendExpr2712 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_extendExpr2716 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_extendExpr2718 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_dimensionIntervalList_in_extendExpr2722 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_extendExpr2724 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_castExpr2742 = new BitSet(new long[]{0x0000000000000000L,0x00000000FF800000L}); + public static final BitSet FOLLOW_rangeType_in_castExpr2746 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_castExpr2748 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_castExpr2752 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_rangeType2775 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_UNSIGNED_in_rangeType2801 = new BitSet(new long[]{0x0000000000000000L,0x0000000007000000L}); + public static final BitSet FOLLOW_set_in_rangeType2805 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageAtom_in_fieldExpr2834 = new BitSet(new long[]{0x0000000000000000L,0x0000000100000000L}); + public static final BitSet FOLLOW_DOT_in_fieldExpr2836 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_fieldName_in_fieldExpr2840 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_booleanScalarTerm_in_booleanScalarExpr2865 = new BitSet(new long[]{0x0000000000006002L}); + public static final BitSet FOLLOW_set_in_booleanScalarExpr2878 = new BitSet(new long[]{0x300007F808800040L,0x000010060001D000L}); + public static final BitSet FOLLOW_booleanScalarTerm_in_booleanScalarExpr2886 = new BitSet(new long[]{0x0000000000006002L}); + public static final BitSet FOLLOW_booleanScalarNegation_in_booleanScalarTerm2908 = new BitSet(new long[]{0x0000000000008002L}); + public static final BitSet FOLLOW_AND_in_booleanScalarTerm2918 = new BitSet(new long[]{0x300007F808800040L,0x000010060001D000L}); + public static final BitSet FOLLOW_booleanScalarNegation_in_booleanScalarTerm2922 = new BitSet(new long[]{0x0000000000008002L}); + public static final BitSet FOLLOW_booleanScalarAtom_in_booleanScalarNegation2943 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOT_in_booleanScalarNegation2952 = new BitSet(new long[]{0x300007F808800040L,0x000010060001C000L}); + public static final BitSet FOLLOW_booleanScalarAtom_in_booleanScalarNegation2956 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_booleanScalarAtom2971 = new BitSet(new long[]{0x300007F808800040L,0x000010060001D000L}); + public static final BitSet FOLLOW_booleanScalarExpr_in_booleanScalarAtom2975 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_booleanScalarAtom2977 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_stringScalarExpr_in_booleanScalarAtom2986 = new BitSet(new long[]{0x00000000003F0000L}); + public static final BitSet FOLLOW_compOp_in_booleanScalarAtom2990 = new BitSet(new long[]{0x0000000008000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_stringScalarExpr_in_booleanScalarAtom2994 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_numericScalarExpr_in_booleanScalarAtom3004 = new BitSet(new long[]{0x00000000003F0000L}); + public static final BitSet FOLLOW_compOp_in_booleanScalarAtom3008 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarExpr_in_booleanScalarAtom3012 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_BOOLEANCONSTANT_in_booleanScalarAtom3022 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_numericScalarTerm_in_numericScalarExpr3039 = new BitSet(new long[]{0x0000000000C00002L}); + public static final BitSet FOLLOW_set_in_numericScalarExpr3049 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarTerm_in_numericScalarExpr3057 = new BitSet(new long[]{0x0000000000C00002L}); + public static final BitSet FOLLOW_numericScalarFactor_in_numericScalarTerm3076 = new BitSet(new long[]{0x0000000003000002L}); + public static final BitSet FOLLOW_set_in_numericScalarTerm3085 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarFactor_in_numericScalarTerm3093 = new BitSet(new long[]{0x0000000003000002L}); + public static final BitSet FOLLOW_LPAREN_in_numericScalarFactor3113 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarExpr_in_numericScalarFactor3117 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_numericScalarFactor3119 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_MINUS_in_numericScalarFactor3131 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarFactor_in_numericScalarFactor3135 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ABS_in_numericScalarFactor3147 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_numericScalarFactor3149 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarExpr_in_numericScalarFactor3153 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_numericScalarFactor3155 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_SQRT_in_numericScalarFactor3167 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_numericScalarFactor3169 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarExpr_in_numericScalarFactor3173 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_numericScalarFactor3175 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_ROUND_in_numericScalarFactor3187 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_numericScalarFactor3189 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarExpr_in_numericScalarFactor3193 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_numericScalarFactor3195 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_INTEGERCONSTANT_in_numericScalarFactor3207 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_FLOATCONSTANT_in_numericScalarFactor3219 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_complexConstant_in_numericScalarFactor3231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_condenseExpr_in_numericScalarFactor3243 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_variableName_in_numericScalarFactor3255 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_EQUALS_in_compOp3273 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NOTEQUALS_in_compOp3280 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LT_in_compOp3287 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_GT_in_compOp3294 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LTE_in_compOp3301 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_GTE_in_compOp3308 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_dimensionIntervalElement_in_dimensionIntervalList3328 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_COMMA_in_dimensionIntervalList3341 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_dimensionIntervalElement_in_dimensionIntervalList3345 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_axisName_in_dimensionIntervalElement3370 = new BitSet(new long[]{0x0000200000000040L}); + public static final BitSet FOLLOW_COLON_in_dimensionIntervalElement3375 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_crsName_in_dimensionIntervalElement3379 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_dimensionIntervalElement3390 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_dimensionIntervalExpr_in_dimensionIntervalElement3394 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_dimensionIntervalElement3396 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_scalarExpr_in_dimensionIntervalExpr3419 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_dimensionIntervalExpr3421 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_scalarExpr_in_dimensionIntervalExpr3425 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_DOMAIN_in_dimensionIntervalExpr3435 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_dimensionIntervalExpr3437 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_coverageName_in_dimensionIntervalExpr3441 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_dimensionIntervalExpr3443 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_axisName_in_dimensionIntervalExpr3447 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_dimensionIntervalExpr3449 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_crsName_in_dimensionIntervalExpr3453 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_dimensionIntervalExpr3455 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_dimensionPointElement_in_dimensionPointList3478 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_COMMA_in_dimensionPointList3488 = new BitSet(new long[]{0x0000000000000000L,0x0000080000014000L}); + public static final BitSet FOLLOW_dimensionPointElement_in_dimensionPointList3492 = new BitSet(new long[]{0x0000000000000102L}); + public static final BitSet FOLLOW_axisName_in_dimensionPointElement3517 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_dimensionPointElement3519 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_dimensionPoint_in_dimensionPointElement3523 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_dimensionPointElement3525 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_axisName_in_dimensionPointElement3537 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_dimensionPointElement3539 = new BitSet(new long[]{0x0000000000000000L,0x0000000000010000L}); + public static final BitSet FOLLOW_crsName_in_dimensionPointElement3543 = new BitSet(new long[]{0x0000000000000040L}); + public static final BitSet FOLLOW_LPAREN_in_dimensionPointElement3545 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_dimensionPoint_in_dimensionPointElement3549 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_dimensionPointElement3551 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_scalarExpr_in_dimensionPoint3574 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_interpolationMethod3592 = new BitSet(new long[]{0x0000000000000000L,0x0000007800000000L}); + public static final BitSet FOLLOW_interpolationType_in_interpolationMethod3596 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_interpolationMethod3598 = new BitSet(new long[]{0x0000000000000000L,0x0000078000000000L}); + public static final BitSet FOLLOW_nullResistence_in_interpolationMethod3602 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_interpolationMethod3604 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_interpolationType3621 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_nullResistence3646 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_condenseOpType3671 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_name_in_fieldName3698 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_constant3715 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_complexConstant_in_constant3732 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_complexConstant3747 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L}); + public static final BitSet FOLLOW_FLOATCONSTANT_in_complexConstant3751 = new BitSet(new long[]{0x0000000000000100L}); + public static final BitSet FOLLOW_COMMA_in_complexConstant3753 = new BitSet(new long[]{0x0000000000000000L,0x0000000400000000L}); + public static final BitSet FOLLOW_FLOATCONSTANT_in_complexConstant3757 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_complexConstant3759 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_STRING_in_stringConstant3776 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_name3793 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_stringConstant_in_crsName3820 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_name_in_axisName3837 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_VARIABLE_DOLLAR_in_variableName3854 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_NAME_in_coverageVariable3871 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_name_in_coverageName3886 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred8_wcps366 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageLogicTerm_in_synpred8_wcps374 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AND_in_synpred9_wcps416 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageLogicFactor_in_synpred9_wcps420 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred15_wcps463 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageArithmeticExpr_in_synpred15_wcps479 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred17_wcps523 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageArithmeticTerm_in_synpred17_wcps531 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred19_wcps574 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageArithmeticFactor_in_synpred19_wcps582 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_OVERLAY_in_synpred20_wcps625 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageValue_in_synpred20_wcps629 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_subsetExpr_in_synpred21_wcps655 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_unaryInducedExpr_in_synpred22_wcps668 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_scalarExpr_in_synpred25_wcps727 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_synpred27_wcps749 = new BitSet(new long[]{0xFDF847FFF8C01840L,0x000018060073FFFFL}); + public static final BitSet FOLLOW_coverageExpr_in_synpred27_wcps753 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_synpred27_wcps755 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageConstantExpr_in_synpred28_wcps768 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_coverageConstructorExpr_in_synpred29_wcps780 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_metaDataExpr_in_synpred31_wcps830 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_condenseExpr_in_synpred32_wcps843 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_booleanScalarExpr_in_synpred33_wcps856 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_numericScalarExpr_in_synpred34_wcps870 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_stringScalarExpr_in_synpred35_wcps883 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_fieldExpr_in_synpred70_wcps2013 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_unaryArithmeticExpr_in_synpred71_wcps2022 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_booleanExpr_in_synpred74_wcps2058 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_trimExpr_in_synpred100_wcps2575 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_sliceExpr_in_synpred101_wcps2584 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred115_wcps2878 = new BitSet(new long[]{0x300007F808800040L,0x000010060001D000L}); + public static final BitSet FOLLOW_booleanScalarTerm_in_synpred115_wcps2886 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_AND_in_synpred116_wcps2918 = new BitSet(new long[]{0x300007F808800040L,0x000010060001D000L}); + public static final BitSet FOLLOW_booleanScalarNegation_in_synpred116_wcps2922 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_synpred118_wcps2971 = new BitSet(new long[]{0x300007F808800040L,0x000010060001D000L}); + public static final BitSet FOLLOW_booleanScalarExpr_in_synpred118_wcps2975 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_synpred118_wcps2977 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_numericScalarExpr_in_synpred120_wcps3004 = new BitSet(new long[]{0x00000000003F0000L}); + public static final BitSet FOLLOW_compOp_in_synpred120_wcps3008 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarExpr_in_synpred120_wcps3012 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred122_wcps3049 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarTerm_in_synpred122_wcps3057 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_set_in_synpred124_wcps3085 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarFactor_in_synpred124_wcps3093 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_LPAREN_in_synpred125_wcps3113 = new BitSet(new long[]{0x300007F800800040L,0x000010040000C000L}); + public static final BitSet FOLLOW_numericScalarExpr_in_synpred125_wcps3117 = new BitSet(new long[]{0x0000000000000080L}); + public static final BitSet FOLLOW_RPAREN_in_synpred125_wcps3119 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_complexConstant_in_synpred132_wcps3231 = new BitSet(new long[]{0x0000000000000002L}); + public static final BitSet FOLLOW_scalarExpr_in_synpred141_wcps3419 = new BitSet(new long[]{0x0000200000000000L}); + public static final BitSet FOLLOW_COLON_in_synpred141_wcps3421 = new BitSet(new long[]{0x300007FFF8801840L,0x000010060001D000L}); + public static final BitSet FOLLOW_scalarExpr_in_synpred141_wcps3425 = new BitSet(new long[]{0x0000000000000002L}); + +}
\ No newline at end of file diff --git a/petascope/src/petascope/wcps/grammar/wcps_no_actions.g b/petascope/src/petascope/wcps/grammar/wcps_no_actions.g new file mode 100644 index 0000000..331ea0b --- /dev/null +++ b/petascope/src/petascope/wcps/grammar/wcps_no_actions.g @@ -0,0 +1,491 @@ +/* +Author: Sorin Stancu-Mara, Andrei Aiordachioaie +History: +07 02 2007 smsorin Updated to WCPS 1.0.0 +27 01 2009 smsorin Moved to ANTLR +11 02 2009 andreia Updated to new grammar (spec 08-068r2) +13 02 2009 andreia Fixed small bugs in grammar. Now it can fully compile. +21 04 2009 andreia Removed comments. +04 05 2009 andreia Fixed bugs in integer declaration. +19 05 2009 andreia Fixed some other weird bugs. Grammar passes all tests now. +28 05 2009 andreia Updated class actions names. +02 06 2009 andreia Removed brackets around "and" binary operator in CoverageExpr +03 06 2009 andreia Complex expressions introduced in the "using" clause of general condense operations +05 08 2009 andreia Fixed definition of integer and floating-point numbers. +*/ +grammar wcps_no_actions; +options{ +backtrack=true; +memoize=true; +k=2; +language=Java; +output=AST; +} + +/* Parser Rules */ + +wcpsRequest + : e1=forClause + (e2=whereClause )? + e3=returnClause + ; +forClause + : FOR v=coverageVariable IN LPAREN list=coverageList RPAREN + + (COMMA v=coverageVariable IN LPAREN list=coverageList RPAREN + )* + ; +whereClause + : WHERE e1=booleanScalarExpr + ; +returnClause + : RETURN e1=processingExpr + ; +coverageList + : cname=coverageName + (COMMA next=coverageName )* + ; +processingExpr + : e1=encodedCoverageExpr + | e2=storeExpr + | e3=scalarExpr + ; +encodedCoverageExpr + : ENCODE LPAREN cov=coverageExpr COMMA format=stringConstant + (COMMA params=stringConstant )? RPAREN + ; +storeExpr + : STORE LPAREN e1=encodedCoverageExpr RPAREN + ; +coverageExpr + : e1=coverageLogicTerm + (op=(OR|XOR) e2=coverageLogicTerm )* + ; +coverageLogicTerm + : e1=coverageLogicFactor + (op=AND e2=coverageLogicFactor )* + ; +coverageLogicFactor + : e1=coverageArithmeticExpr + (op=(EQUALS|NOTEQUALS|LT|GT|LTE|GTE) e2=coverageArithmeticExpr )? + ; +coverageArithmeticExpr + : e1=coverageArithmeticTerm + (op=(PLUS|MINUS) e2=coverageArithmeticTerm )* + ; +coverageArithmeticTerm + : e1=coverageArithmeticFactor + (op=(MULT|DIVIDE) e2=coverageArithmeticFactor )* + ; +coverageArithmeticFactor + : e1=coverageValue + (op=OVERLAY e2=coverageValue )* + ; +coverageValue + : e5=subsetExpr + | e2=unaryInducedExpr + | e4=scaleExpr + | e3=crsTransformExpr + | e1=coverageAtom + ; +coverageAtom + : e2=scalarExpr + | e1=coverageVariable + | LPAREN e7=coverageExpr RPAREN + | e3=coverageConstantExpr + | e4=coverageConstructorExpr + | e5=setMetaDataExpr + | e6=rangeConstructorExpr + ; +scalarExpr + : e1=metaDataExpr + | e2=condenseExpr + | e3=booleanScalarExpr + | e4=numericScalarExpr + | e5=stringScalarExpr + | LPAREN e6=scalarExpr RPAREN + ; +metaDataExpr + : op=IDENTIFIER LPAREN e1=coverageExpr RPAREN + | op=IMAGECRS LPAREN e1=coverageExpr RPAREN + | op=IMAGECRSDOMAIN LPAREN e1=coverageExpr (COMMA e2=axisName)? RPAREN + | op=CRSSET LPAREN e1=coverageExpr RPAREN + | de=domainExpr + | op=NULLSET LPAREN e1=coverageExpr RPAREN + | op=INTERPOLATIONDEFAULT LPAREN e1=coverageExpr COMMA f1=fieldName RPAREN + | op=INTERPOLATIONSET LPAREN e1=coverageExpr COMMA f1=fieldName RPAREN + ; +domainExpr + : DOMAIN LPAREN var=coverageVariable COMMA axis=axisName COMMA crs=crsName RPAREN + ; +condenseExpr + : e1=reduceExpr + | e2=generalCondenseExpr + ; +reduceExpr + : op=(ALL|SOME|COUNT|ADD|AVG|MIN|MAX) LPAREN e1=coverageExpr RPAREN + ; +generalCondenseExpr + : CONDENSE op=condenseOpType OVER ail=axisIteratorList + (WHERE cond=booleanScalarExpr )? + (USING ce=coverageExpr) + ; +axisIteratorList + : vn=variableName an=axisName LPAREN ie=intervalExpr RPAREN + + (COMMA vn2=variableName an2=axisName LPAREN ie2=intervalExpr RPAREN + )* + ; +intervalExpr + : lo=indexExpr COLON hi=indexExpr + + | IMAGECRSDOMAIN LPAREN e1=coverageName COMMA e2=axisName RPAREN + + ; +coverageConstantExpr + : COVERAGE aname=coverageName OVER iter=axisIteratorList VALUE LIST LT values=constantList GT + + ; +constantList + : c=constant (SEMICOLON c=constant )* + ; +coverageConstructorExpr + : COVERAGE coverage=coverageName OVER ail=axisIteratorList VALUES se=scalarExpr + + ; +setMetaDataExpr + : op=SETIDENTIFIER LPAREN s=stringConstant COMMA e1=coverageExpr RPAREN + + | op=SETCRSSET LPAREN e1=coverageExpr COMMA crs=crsList RPAREN + + | op=SETNULLSET LPAREN e1=coverageExpr COMMA rel=rangeExprList RPAREN + + | op=SETINTERPOLATIONDEFAULT LPAREN e1=coverageExpr COMMA fn=fieldName COMMA im=interpolationMethod RPAREN + + | op=SETINTERPOLATIONSET LPAREN e1=coverageExpr COMMA fn=fieldName COMMA iml=interpolationMethodList RPAREN + + ; +crsList + : LBRACE (crs=crsName (COMMA crs=crsName )* )? RBRACE + ; +rangeExprList + : LBRACE (re1=rangeExpr (COMMA re2=rangeExpr )* )? RBRACE + ; +interpolationMethodList + : LBRACE (e=interpolationMethod (COMMA e=interpolationMethod )*)? RBRACE + ; +rangeExpr + : STRUCT LBRACE + (field=fieldName COLON expr=scalarExpr + (COLON field=fieldName COLON expr=scalarExpr )* + )? RBRACE + ; +rangeConstructorExpr + : (STRUCT)? LBRACE field=fieldName COLON expr=coverageExpr + (SEMICOLON field=fieldName COLON expr=coverageExpr )* RBRACE + ; +crsTransformExpr + : CRSTRANSFORM LPAREN e1=coverageExpr COMMA dcl=dimensionIntervalList COMMA fil=fieldInterpolationList RPAREN + + ; +fieldInterpolationList + : LBRACE elem=fieldInterpolationElement + (COMMA elem=fieldInterpolationElement ) * RBRACE + ; +fieldInterpolationElement + : aname=fieldName method=interpolationMethod + ; +unaryInducedExpr + : e6=fieldExpr + | e1=unaryArithmeticExpr + | e2=exponentialExpr + | e3=trigonometricExpr + | e4=booleanExpr + | e5=castExpr + | e7=rangeConstructorExpr + ; +unaryArithmeticExpr + : op=(MINUS|PLUS) e1=coverageAtom + | op=(SQRT|ABS|RE|IM) LPAREN e2=coverageExpr RPAREN + ; +exponentialExpr + : op=(EXP|LOG|LN) LPAREN e1=coverageExpr RPAREN + ; +trigonometricExpr + : op=(SIN|COS|TAN|SINH|COSH|TANH|ARCSIN|ARCCOS|ARCTAN) LPAREN e1=coverageExpr RPAREN + ; +booleanExpr + : op=NOT e1=coverageExpr + | op=BIT LPAREN e1=coverageExpr COMMA e2=indexExpr RPAREN + ; +indexExpr + : e1=indexTerm + (op=(PLUS|MINUS) e2=indexTerm )* + ; +indexTerm + : e1=indexFactor + ((op=(MULT|DIVIDE) e2=indexFactor ))* + ; +indexFactor + : e=INTEGERCONSTANT + | op=ROUND LPAREN e1=numericScalarExpr RPAREN + | (LPAREN e2=indexExpr RPAREN ) + ; +stringScalarExpr +// The first rule should be "metaDataExpr", but currently only a variable "identifier" is allowed. + : op=IDENTIFIER LPAREN e1=coverageExpr RPAREN + | e=STRING + ; +scaleExpr + : SCALE LPAREN e1=coverageExpr COMMA dil=dimensionIntervalList COMMA fil=fieldInterpolationList RPAREN + + ; +subsetExpr + : e1=trimExpr + | e2=sliceExpr + | e3=extendExpr + ; +trimExpr + : e1=coverageAtom LBRACKET dil=dimensionIntervalList RBRACKET + | TRIM LPAREN e2=coverageExpr COMMA LBRACE dil=dimensionIntervalList RBRACE RPAREN + ; +sliceExpr + : e1=coverageAtom LBRACKET dpl=dimensionPointList RBRACKET + | SLICE LPAREN e2=coverageExpr COMMA LBRACE dpl=dimensionPointList RBRACE RPAREN + ; +extendExpr + : EXTEND LPAREN e1=coverageExpr COMMA dil=dimensionIntervalList RPAREN + ; +castExpr + : LPAREN e1=rangeType RPAREN e2=coverageExpr + ; +rangeType + : type=(BOOLEAN|CHAR|SHORT|LONG|FLOAT|DOUBLE|COMPLEX|COMPLEX2) + | UNSIGNED type=(CHAR|SHORT|LONG) + ; +fieldExpr + : e1=coverageAtom DOT e2=fieldName + ; +// NOTE: The following boolean rules are equivalent to the grammar rules in document 08-068r2 +// They have been rewritten in order to prioritize the boolean operators +booleanScalarExpr + : e1=booleanScalarTerm + (op=(OR|XOR) e2=booleanScalarTerm )* + ; +booleanScalarTerm + : e1=booleanScalarNegation + (op=AND e2=booleanScalarNegation )* + ; +booleanScalarNegation + : e1=booleanScalarAtom + | op=NOT e1=booleanScalarAtom + ; +booleanScalarAtom + : LPAREN e1=booleanScalarExpr RPAREN + | s1=stringScalarExpr cop=compOp s2=stringScalarExpr + | n1=numericScalarExpr cop=compOp n2=numericScalarExpr + | e=BOOLEANCONSTANT + ; +numericScalarExpr + : e1=numericScalarTerm + (op=(PLUS|MINUS) e2=numericScalarTerm )* + ; +numericScalarTerm + : e1=numericScalarFactor + (op=(MULT|DIVIDE) e2=numericScalarFactor )* + ; +numericScalarFactor + : LPAREN e1=numericScalarExpr RPAREN + | op=MINUS e10=numericScalarFactor + | op=ROUND LPAREN e1=numericScalarExpr RPAREN + | e=INTEGERCONSTANT + | e=FLOATCONSTANT + | e2=complexConstant + | e3=condenseExpr + | e4=variableName + ; +compOp + : EQUALS + | NOTEQUALS + | LT + | GT + | LTE + | GTE + ; +dimensionIntervalList + : elem=dimensionIntervalElement + (COMMA elem=dimensionIntervalElement )* + ; +dimensionIntervalElement + : aname=axisName (COLON crs=crsName )? + LPAREN die=dimensionIntervalExpr RPAREN + ; +dimensionIntervalExpr + : e1=scalarExpr COLON e2=scalarExpr + | DOMAIN LPAREN e3=coverageName COLON e4=axisName COLON e5=crsName RPAREN + ; +dimensionPointList + : elem1=dimensionPointElement + (COMMA elem2=dimensionPointElement )* + ; +dimensionPointElement + : aname=axisName LPAREN dpe=dimensionPoint RPAREN + | aname=axisName COLON crs=crsName LPAREN dpe=dimensionPoint RPAREN + ; +dimensionPoint + : e1=scalarExpr + ; +interpolationMethod + : LPAREN type=interpolationType COLON res=nullResistence RPAREN + ; +interpolationType + : type=(NEAREST|LINEAR|QUADRATIC|CUBIC) + ; +nullResistence + : resistance=(FULL|NONE|HALF|OTHER) + ; +condenseOpType + : op=(PLUS|MULT|MAX|MIN|AND|OR) + ; +fieldName + : name + ; +constant + : e=(STRING|BOOLEANCONSTANT|INTEGERCONSTANT|FLOATCONSTANT) + | e1=complexConstant + ; +complexConstant + : LPAREN re1=FLOATCONSTANT COMMA im1=FLOATCONSTANT RPAREN + ; +stringConstant + : s=STRING + ; +name + : var=(NAME | STRING | INTEGERCONSTANT) + ; +crsName + : s=stringConstant + ; +axisName + : type1=name + ; +variableName + : var=VARIABLE_DOLLAR + ; +coverageVariable + : var=NAME + ; +coverageName + : name + ; + + +/* Lexer rules */ +PLUS: '+'; +MINUS: '-'; +DIVIDE: '/'; +MULT: '*'; +EQUALS: '='; +NOTEQUALS: '!='; +LT: '<'; +GT: '>'; +LTE: '<='; +GTE: '>='; +DOT: '.'; +LPAREN: '('; +RPAREN: ')'; +LBRACKET: '['; +RBRACKET: ']'; +LBRACE: '{'; +RBRACE: '}'; +COMMA: ','; +COLON: ':'; +SEMICOLON: ';'; +FOR: ('f'|'F')('o'|'O')('r'|'R'); +IN: ('i'|'I')('n'|'N'); +WHERE: ('w'|'W')('h'|'H')('e'|'E')('r'|'R')('e'|'E'); +RETURN: ('r'|'R')('e'|'E')('t'|'T')('u'|'U')('r'|'R')('n'|'N'); +STORE: ('s'|'S')('t'|'T')('o'|'O')('r'|'R')('e'|'E'); +ENCODE: ('e'|'E')('n'|'N')('c'|'C')('o'|'O')('d'|'D')('e'|'E'); +SQRT: ('s'|'S')('q'|'Q')('r'|'R')('t'|'T'); +SIN: ('s'|'S')('i'|'I')('n'|'N'); +COS: ('c'|'C')('o'|'O')('s'|'S'); +TAN: ('t'|'T')('a'|'A')('n'|'N'); +SINH: ('s'|'S')('i'|'I')('n'|'N')('h'|'H'); +COSH: ('c'|'C')('o'|'O')('s'|'S')('h'|'H'); +TANH: ('t'|'T')('a'|'A')('n'|'N')('h'|'H'); +ARCSIN: ('a'|'A')('r'|'R')('c'|'C')('s'|'S')('i'|'I')('n'|'N'); +ARCCOS: ('a'|'A')('r'|'R')('c'|'C')('c'|'C')('o'|'O')('s'|'S'); +ARCTAN: ('a'|'A')('r'|'R')('c'|'C')('t'|'T')('a'|'A')('n'|'N'); +EXP: ('e'|'E')('x'|'X')('p'|'P'); +LN: ('l'|'L')('n'|'N'); +LOG: ('l'|'L')('o'|'O')('g'|'G'); +ROUND: ('r'|'R')('o'|'O')('u'|'U')('n'|'N')('d'|'D'); +ABS: ('a'|'A')('b'|'B')('s'|'S'); +OVERLAY: ('o'|'O')('v'|'V')('e'|'E')('r'|'R')('l'|'L')('a'|'A')('y'|'Y'); +STRUCT: ('s'|'S')('t'|'T')('r'|'R')('u'|'U')('c'|'C')('t'|'T'); +RE: ('r'|'R')('e'|'E'); +IM: ('i'|'I')('m'|'M'); +AND: ('a'|'A')('n'|'N')('d'|'D'); +OR: ('o'|'O')('r'|'R'); +XOR: ('x'|'X')('o'|'O')('r'|'R'); +NOT: ('n'|'N')('o'|'O')('t'|'T'); +IDENTIFIER: ('i'|'I')('d'|'D')('e'|'E')('n'|'N')('t'|'T')('i'|'I')('f'|'F')('i'|'I')('e'|'E')('r'|'R'); +IMAGECRS: ('i'|'I')('m'|'M')('a'|'A')('g'|'G')('e'|'E')('c'|'C')('r'|'R')('s'|'S'); +IMAGECRSDOMAIN: ('i'|'I')('m'|'M')('a'|'A')('g'|'G')('e'|'E')('c'|'C')('r'|'R')('s'|'S')('d'|'D')('o'|'O')('m'|'M')('a'|'A')('i'|'I')('n'|'N'); +CRSSET: ('c'|'C')('r'|'R')('s'|'S')('s'|'S')('e'|'E')('t'|'T'); +DOMAIN: ('d'|'D')('o'|'O')('m'|'M')('a'|'A')('i'|'I')('n'|'N'); +NULLSET: ('n'|'N')('u'|'U')('l'|'L')('l'|'L')('s'|'S')('e'|'E')('t'|'T'); +NULLDEFAULT: ('n'|'N')('u'|'U')('l'|'L')('l'|'L')('d'|'D')('e'|'E')('f'|'F')('a'|'A')('u'|'U')('l'|'L')('t'|'T'); +INTERPOLATIONDEFAULT: ('i'|'I')('n'|'N')('t'|'T')('e'|'E')('r'|'R')('p'|'P')('o'|'O')('l'|'L')('a'|'A')('t'|'T')('i'|'I')('o'|'O')('n'|'N')('d'|'D')('e'|'E')('f'|'F')('a'|'A')('u'|'U')('l'|'L')('t'|'T'); +INTERPOLATIONSET: ('i'|'I')('n'|'N')('t'|'T')('e'|'E')('r'|'R')('p'|'P')('o'|'O')('l'|'L')('a'|'A')('t'|'T')('i'|'I')('o'|'O')('n'|'N')('s'|'S')('e'|'E')('t'|'T'); +SETIDENTIFIER: ('s'|'S')('e'|'E')('t'|'T')('i'|'I')('d'|'D')('e'|'E')('n'|'N')('t'|'T')('i'|'I')('f'|'F')('i'|'I')('e'|'E')('r'|'R'); +SETNULLSET: ('s'|'S')('e'|'E')('t'|'T')('n'|'N')('u'|'U')('l'|'L')('l'|'L')('s'|'S')('e'|'E')('t'|'T'); +SETINTERPOLATIONDEFAULT: ('s'|'S')('e'|'E')('t'|'T')('i'|'I')('n'|'N')('t'|'T')('e'|'E')('r'|'R')('p'|'P')('o'|'O')('l'|'L')('a'|'A')('t'|'T')('i'|'I')('o'|'O')('n'|'N')('d'|'D')('e'|'E')('f'|'F')('a'|'A')('u'|'U')('l'|'L')('t'|'T'); +SETINTERPOLATIONSET:('s'|'S')('e'|'E')('t'|'T')('i'|'I')('n'|'N')('t'|'T')('e'|'E')('r'|'R')('p'|'P')('o'|'O')('l'|'L')('a'|'A')('t'|'T')('i'|'I')('o'|'O')('n'|'N')('s'|'S')('e'|'E')('t'|'T'); +SETCRSSET: ('s'|'S')('e'|'E')('t'|'T')('c'|'C')('r'|'R')('s'|'S')('s'|'S')('e'|'E')('t'|'T'); +TRIM: ('t'|'T')('r'|'R')('i'|'I')('m'|'M'); +SLICE: ('s'|'S')('l'|'L')('i'|'I')('c'|'C')('e'|'E'); +EXTEND: ('e'|'E')('x'|'X')('t'|'T')('e'|'E')('n'|'N')('d'|'D'); +SCALE: ('s'|'S')('c'|'C')('a'|'A')('l'|'L')('e'|'E'); +CRSTRANSFORM: ('c'|'C')('r'|'R')('s'|'S')('t'|'T')('r'|'R')('a'|'A')('n'|'N')('s'|'S')('f'|'F')('o'|'O')('r'|'R')('m'|'M'); +COUNT: ('c'|'C')('o'|'O')('u'|'U')('n'|'N')('t'|'T'); +ADD: ('a'|'A')('d'|'D')('d'|'D'); +AVG: ('a'|'A')('v'|'V')('g'|'G'); +MAX: ('m'|'M')('a'|'A')('x'|'X'); +MIN: ('m'|'M')('i'|'I')('n'|'N'); +SOME: ('s'|'S')('o'|'O')('m'|'M')('e'|'E'); +ALL: ('a'|'A')('l'|'L')('l'|'L'); +COVERAGE: ('c'|'C')('o'|'O')('v'|'V')('e'|'E')('r'|'R')('a'|'A')('g'|'G')('e'|'E'); +OVER: ('o'|'O')('v'|'V')('e'|'E')('r'|'R'); +VALUE: ('v'|'V')('a'|'A')('l'|'L')('u'|'U')('e'|'E'); +VALUES: ('v'|'V')('a'|'A')('l'|'L')('u'|'U')('e'|'E')('s'|'S'); +LIST: ('l'|'L')('i'|'I')('s'|'S')('t'|'T'); +CONDENSE: ('c'|'C')('o'|'O')('n'|'N')('d'|'D')('e'|'E')('n'|'N')('s'|'S')('e'|'E'); +USING: ('u'|'U')('s'|'S')('i'|'I')('n'|'N')('g'|'G'); +NEAREST: ('n'|'N')('e'|'E')('a'|'A')('r'|'R')('e'|'E')('s'|'S')('t'|'T'); +LINEAR: ('l'|'L')('i'|'I')('n'|'N')('e'|'E')('a'|'A')('r'|'R'); +QUADRATIC: ('q'|'Q')('u'|'U')('a'|'A')('d'|'D')('r'|'R')('a'|'A')('t'|'T')('i'|'I')('c'|'C'); +CUBIC: ('c'|'C')('u'|'U')('b'|'B')('i'|'I')('c'|'C'); +FULL: ('f'|'F')('u'|'U')('l'|'L')('l'|'L'); +NONE: ('n'|'N')('o'|'O')('n'|'N')('e'|'E'); +HALF: ('h'|'H')('a'|'A')('l'|'L')('f'|'F'); +OTHER: ('o'|'O')('t'|'T')('h'|'H')('e'|'E')('r'|'R'); +PHI: ('p'|'P')('h'|'H')('i'|'I'); +BIT: ('b'|'B')('i'|'I')('t'|'T'); +UNSIGNED: ('u'|'U')('n'|'N')('s'|'S')('i'|'I')('g'|'G')('n'|'N')('e'|'E')('d'|'D'); +BOOLEAN: ('b'|'B')('o'|'O')('o'|'O')('l'|'L')('e'|'E')('a'|'A')('n'|'N'); +CHAR: ('c'|'C')('h'|'H')('a'|'A')('r'|'R'); +SHORT: ('s'|'S')('h'|'H')('o'|'O')('r'|'R')('t'|'T'); +LONG: ('l'|'L')('o'|'O')('n'|'N')('g'|'G'); +FLOAT: ('f'|'F')('l'|'L')('o'|'O')('a'|'A')('t'|'T'); +DOUBLE: ('d'|'D')('o'|'O')('u'|'U')('b'|'B')('l'|'L')('e'|'E'); +COMPLEX: ('c'|'C')('o'|'O')('m'|'M')('p'|'P')('l'|'L')('e'|'E')('x'|'X'); +COMPLEX2: ('c'|'C')('o'|'O')('m'|'M')('p'|'P')('l'|'L')('e'|'E')('x'|'X')'2'; +BOOLEANCONSTANT: (('t'|'T')('r'|'R')('u'|'U')('e'|'E'))|(('f'|'F')('a'|'A')('l'|'L')('s'|'S')('e'|'E')); +INTEGERCONSTANT: (PLUS|MINUS)? ('0'..'9')+; +FLOATCONSTANT: INTEGERCONSTANT ('.')('0'..'9'+)(('e'|'E')(('-'|'+')?)('0'..'9'+))?; +STRING: '"' ( options {greedy=false;} : . )* '"' {setText(getText().substring(1, getText().length()-1));}; +NAME: ('a'..'z'|'A'..'Z'|'_')(('a'..'z'|'A'..'Z'|'0'..'9'|'_')*); +VARIABLE_DOLLAR: '$'(('a'..'z'|'A'..'Z'|'0'..'9'|'_')*) {setText(getText().substring(1, getText().length())); } ; +WHITESPACE: (' ' | '\t' | '\r' | '\n' | '\u000C')+ { skip(); } ; |