/* Generated By:JJTree&JavaCC: Do not edit this line. ExpressionParser.java */
/*****************************************************************
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
****************************************************************/
package org.apache.cayenne.exp.parser;
import org.apache.cayenne.exp.Expression;
/**
* Parser of Cayenne Expressions.
*
* @since 1.1
*/
public class ExpressionParser/*@bgen(jjtree)*/implements ExpressionParserTreeConstants, ExpressionParserConstants {/*@bgen(jjtree)*/
protected JJTExpressionParserState jjtree = new JJTExpressionParserState();
final public Expression expression() throws ParseException {
orCondition();
jj_consume_token(0);
{if (true) return (Expression) jjtree.rootNode();}
throw new Error("Missing return statement in function");
}
final public void orCondition() throws ParseException {
andCondition();
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 1:
;
break;
default:
jj_la1[0] = jj_gen;
break label_1;
}
jj_consume_token(1);
ASTOr jjtn001 = new ASTOr(JJTOR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
andCondition();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
}
}
}
}
final public void andCondition() throws ParseException {
notCondition();
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 2:
;
break;
default:
jj_la1[1] = jj_gen;
break label_2;
}
jj_consume_token(2);
ASTAnd jjtn001 = new ASTAnd(JJTAND);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
notCondition();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
}
}
}
}
final public void notCondition() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 3:
case 4:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 3:
jj_consume_token(3);
break;
case 4:
jj_consume_token(4);
break;
default:
jj_la1[2] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
ASTNot jjtn001 = new ASTNot(JJTNOT);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
simpleCondition();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 1);
}
}
break;
case 16:
case 25:
case 26:
case 28:
case NULL:
case TRUE:
case FALSE:
case AVG:
case MIN:
case MAX:
case SUM:
case COUNT:
case CONCAT:
case SUBSTRING:
case TRIM:
case LOWER:
case UPPER:
case LENGTH:
case LOCATE:
case ABS:
case SQRT:
case MOD:
case CURRENT_DATE:
case CURRENT_TIME:
case CURRENT_TIMESTAMP:
case YEAR:
case MONTH:
case WEEK:
case DAY_OF_YEAR:
case DAY:
case DAY_OF_MONTH:
case DAY_OF_WEEK:
case HOUR:
case MINUTE:
case SECOND:
case 64:
case 65:
case 66:
case 67:
case PROPERTY_PATH:
case SINGLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
case INT_LITERAL:
case FLOAT_LITERAL:
simpleCondition();
break;
default:
jj_la1[3] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void simpleCondition() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case TRUE:
ASTTrue jjtn001 = new ASTTrue(JJTTRUE);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jj_consume_token(TRUE);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, true);
}
}
break;
case FALSE:
ASTFalse jjtn002 = new ASTFalse(JJTFALSE);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
jj_consume_token(FALSE);
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, true);
}
}
break;
case 16:
case 25:
case 26:
case 28:
case NULL:
case AVG:
case MIN:
case MAX:
case SUM:
case COUNT:
case CONCAT:
case SUBSTRING:
case TRIM:
case LOWER:
case UPPER:
case LENGTH:
case LOCATE:
case ABS:
case SQRT:
case MOD:
case CURRENT_DATE:
case CURRENT_TIME:
case CURRENT_TIMESTAMP:
case YEAR:
case MONTH:
case WEEK:
case DAY_OF_YEAR:
case DAY:
case DAY_OF_MONTH:
case DAY_OF_WEEK:
case HOUR:
case MINUTE:
case SECOND:
case 64:
case 65:
case 66:
case 67:
case PROPERTY_PATH:
case SINGLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
case INT_LITERAL:
case FLOAT_LITERAL:
conditionExpression();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
case 18:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 5:
case 6:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 5:
jj_consume_token(5);
break;
case 6:
jj_consume_token(6);
break;
default:
jj_la1[4] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
ASTEqual jjtn003 = new ASTEqual(JJTEQUAL);
boolean jjtc003 = true;
jjtree.openNodeScope(jjtn003);
try {
scalarExpression();
} catch (Throwable jjte003) {
if (jjtc003) {
jjtree.clearNodeScope(jjtn003);
jjtc003 = false;
} else {
jjtree.popNode();
}
if (jjte003 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte003;}
}
if (jjte003 instanceof ParseException) {
{if (true) throw (ParseException)jjte003;}
}
{if (true) throw (Error)jjte003;}
} finally {
if (jjtc003) {
jjtree.closeNodeScope(jjtn003, 2);
}
}
break;
case 7:
case 8:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 7:
jj_consume_token(7);
break;
case 8:
jj_consume_token(8);
break;
default:
jj_la1[5] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
ASTNotEqual jjtn004 = new ASTNotEqual(JJTNOTEQUAL);
boolean jjtc004 = true;
jjtree.openNodeScope(jjtn004);
try {
scalarExpression();
} catch (Throwable jjte004) {
if (jjtc004) {
jjtree.clearNodeScope(jjtn004);
jjtc004 = false;
} else {
jjtree.popNode();
}
if (jjte004 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte004;}
}
if (jjte004 instanceof ParseException) {
{if (true) throw (ParseException)jjte004;}
}
{if (true) throw (Error)jjte004;}
} finally {
if (jjtc004) {
jjtree.closeNodeScope(jjtn004, 2);
}
}
break;
case 9:
jj_consume_token(9);
ASTLessOrEqual jjtn005 = new ASTLessOrEqual(JJTLESSOREQUAL);
boolean jjtc005 = true;
jjtree.openNodeScope(jjtn005);
try {
scalarExpression();
} catch (Throwable jjte005) {
if (jjtc005) {
jjtree.clearNodeScope(jjtn005);
jjtc005 = false;
} else {
jjtree.popNode();
}
if (jjte005 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte005;}
}
if (jjte005 instanceof ParseException) {
{if (true) throw (ParseException)jjte005;}
}
{if (true) throw (Error)jjte005;}
} finally {
if (jjtc005) {
jjtree.closeNodeScope(jjtn005, 2);
}
}
break;
case 10:
jj_consume_token(10);
ASTLess jjtn006 = new ASTLess(JJTLESS);
boolean jjtc006 = true;
jjtree.openNodeScope(jjtn006);
try {
scalarExpression();
} catch (Throwable jjte006) {
if (jjtc006) {
jjtree.clearNodeScope(jjtn006);
jjtc006 = false;
} else {
jjtree.popNode();
}
if (jjte006 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte006;}
}
if (jjte006 instanceof ParseException) {
{if (true) throw (ParseException)jjte006;}
}
{if (true) throw (Error)jjte006;}
} finally {
if (jjtc006) {
jjtree.closeNodeScope(jjtn006, 2);
}
}
break;
case 11:
jj_consume_token(11);
ASTGreater jjtn007 = new ASTGreater(JJTGREATER);
boolean jjtc007 = true;
jjtree.openNodeScope(jjtn007);
try {
scalarExpression();
} catch (Throwable jjte007) {
if (jjtc007) {
jjtree.clearNodeScope(jjtn007);
jjtc007 = false;
} else {
jjtree.popNode();
}
if (jjte007 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte007;}
}
if (jjte007 instanceof ParseException) {
{if (true) throw (ParseException)jjte007;}
}
{if (true) throw (Error)jjte007;}
} finally {
if (jjtc007) {
jjtree.closeNodeScope(jjtn007, 2);
}
}
break;
case 12:
jj_consume_token(12);
ASTGreaterOrEqual jjtn008 = new ASTGreaterOrEqual(JJTGREATEROREQUAL);
boolean jjtc008 = true;
jjtree.openNodeScope(jjtn008);
try {
scalarExpression();
} catch (Throwable jjte008) {
if (jjtc008) {
jjtree.clearNodeScope(jjtn008);
jjtc008 = false;
} else {
jjtree.popNode();
}
if (jjte008 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte008;}
}
if (jjte008 instanceof ParseException) {
{if (true) throw (ParseException)jjte008;}
}
{if (true) throw (Error)jjte008;}
} finally {
if (jjtc008) {
jjtree.closeNodeScope(jjtn008, 2);
}
}
break;
case 13:
jj_consume_token(13);
ASTLike jjtn009 = new ASTLike(JJTLIKE);
boolean jjtc009 = true;
jjtree.openNodeScope(jjtn009);
try {
scalarExpression();
} catch (Throwable jjte009) {
if (jjtc009) {
jjtree.clearNodeScope(jjtn009);
jjtc009 = false;
} else {
jjtree.popNode();
}
if (jjte009 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte009;}
}
if (jjte009 instanceof ParseException) {
{if (true) throw (ParseException)jjte009;}
}
{if (true) throw (Error)jjte009;}
} finally {
if (jjtc009) {
jjtree.closeNodeScope(jjtn009, 2);
}
}
break;
case 14:
jj_consume_token(14);
ASTLikeIgnoreCase jjtn010 = new ASTLikeIgnoreCase(JJTLIKEIGNORECASE);
boolean jjtc010 = true;
jjtree.openNodeScope(jjtn010);
try {
scalarExpression();
} catch (Throwable jjte010) {
if (jjtc010) {
jjtree.clearNodeScope(jjtn010);
jjtc010 = false;
} else {
jjtree.popNode();
}
if (jjte010 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte010;}
}
if (jjte010 instanceof ParseException) {
{if (true) throw (ParseException)jjte010;}
}
{if (true) throw (Error)jjte010;}
} finally {
if (jjtc010) {
jjtree.closeNodeScope(jjtn010, 2);
}
}
break;
case 15:
jj_consume_token(15);
ASTIn jjtn011 = new ASTIn(JJTIN);
boolean jjtc011 = true;
jjtree.openNodeScope(jjtn011);
try {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 64:
namedParameter();
break;
case 16:
jj_consume_token(16);
scalarCommaList();
jj_consume_token(17);
break;
default:
jj_la1[6] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
} catch (Throwable jjte011) {
if (jjtc011) {
jjtree.clearNodeScope(jjtn011);
jjtc011 = false;
} else {
jjtree.popNode();
}
if (jjte011 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte011;}
}
if (jjte011 instanceof ParseException) {
{if (true) throw (ParseException)jjte011;}
}
{if (true) throw (Error)jjte011;}
} finally {
if (jjtc011) {
jjtree.closeNodeScope(jjtn011, 2);
}
}
break;
case 18:
jj_consume_token(18);
scalarExpression();
jj_consume_token(2);
ASTBetween jjtn012 = new ASTBetween(JJTBETWEEN);
boolean jjtc012 = true;
jjtree.openNodeScope(jjtn012);
try {
scalarExpression();
} catch (Throwable jjte012) {
if (jjtc012) {
jjtree.clearNodeScope(jjtn012);
jjtc012 = false;
} else {
jjtree.popNode();
}
if (jjte012 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte012;}
}
if (jjte012 instanceof ParseException) {
{if (true) throw (ParseException)jjte012;}
}
{if (true) throw (Error)jjte012;}
} finally {
if (jjtc012) {
jjtree.closeNodeScope(jjtn012, 3);
}
}
break;
case 3:
case 4:
simpleNotCondition();
break;
default:
jj_la1[7] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
jj_la1[8] = jj_gen;
;
}
break;
default:
jj_la1[9] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void simpleNotCondition() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 3:
jj_consume_token(3);
break;
case 4:
jj_consume_token(4);
break;
default:
jj_la1[10] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 13:
jj_consume_token(13);
ASTNotLike jjtn001 = new ASTNotLike(JJTNOTLIKE);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
scalarExpression();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
}
}
break;
case 14:
jj_consume_token(14);
ASTNotLikeIgnoreCase jjtn002 = new ASTNotLikeIgnoreCase(JJTNOTLIKEIGNORECASE);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
scalarExpression();
} catch (Throwable jjte002) {
if (jjtc002) {
jjtree.clearNodeScope(jjtn002);
jjtc002 = false;
} else {
jjtree.popNode();
}
if (jjte002 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte002;}
}
if (jjte002 instanceof ParseException) {
{if (true) throw (ParseException)jjte002;}
}
{if (true) throw (Error)jjte002;}
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 2);
}
}
break;
case 15:
jj_consume_token(15);
ASTNotIn jjtn003 = new ASTNotIn(JJTNOTIN);
boolean jjtc003 = true;
jjtree.openNodeScope(jjtn003);
try {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 64:
namedParameter();
break;
case 16:
jj_consume_token(16);
scalarCommaList();
jj_consume_token(17);
break;
default:
jj_la1[11] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
} catch (Throwable jjte003) {
if (jjtc003) {
jjtree.clearNodeScope(jjtn003);
jjtc003 = false;
} else {
jjtree.popNode();
}
if (jjte003 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte003;}
}
if (jjte003 instanceof ParseException) {
{if (true) throw (ParseException)jjte003;}
}
{if (true) throw (Error)jjte003;}
} finally {
if (jjtc003) {
jjtree.closeNodeScope(jjtn003, 2);
}
}
break;
case 18:
jj_consume_token(18);
scalarExpression();
jj_consume_token(2);
ASTNotBetween jjtn004 = new ASTNotBetween(JJTNOTBETWEEN);
boolean jjtc004 = true;
jjtree.openNodeScope(jjtn004);
try {
scalarExpression();
} catch (Throwable jjte004) {
if (jjtc004) {
jjtree.clearNodeScope(jjtn004);
jjtc004 = false;
} else {
jjtree.popNode();
}
if (jjte004 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte004;}
}
if (jjte004 instanceof ParseException) {
{if (true) throw (ParseException)jjte004;}
}
{if (true) throw (Error)jjte004;}
} finally {
if (jjtc004) {
jjtree.closeNodeScope(jjtn004, 3);
}
}
break;
default:
jj_la1[12] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void scalarCommaList() throws ParseException {
ASTList jjtn001 = new ASTList(JJTLIST);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
scalarConstExpression();
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 19:
;
break;
default:
jj_la1[13] = jj_gen;
break label_3;
}
jj_consume_token(19);
scalarConstExpression();
}
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, true);
}
}
}
final public void conditionExpression() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 16:
case 25:
case 26:
case 28:
case LENGTH:
case LOCATE:
case ABS:
case SQRT:
case MOD:
case YEAR:
case MONTH:
case WEEK:
case DAY_OF_YEAR:
case DAY:
case DAY_OF_MONTH:
case DAY_OF_WEEK:
case HOUR:
case MINUTE:
case SECOND:
case 64:
case 65:
case 66:
case 67:
case PROPERTY_PATH:
case INT_LITERAL:
case FLOAT_LITERAL:
numericExpression();
break;
case CONCAT:
case SUBSTRING:
case TRIM:
case LOWER:
case UPPER:
case SINGLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
stringExpression();
break;
case NULL:
ASTScalar jjtn001 = new ASTScalar(JJTSCALAR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jj_consume_token(NULL);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
break;
case AVG:
case MIN:
case MAX:
case SUM:
case COUNT:
aggregateExpression();
break;
case CURRENT_DATE:
case CURRENT_TIME:
case CURRENT_TIMESTAMP:
dateTimeFunction();
break;
default:
jj_la1[14] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void stringParameter() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 65:
case 66:
case 67:
case PROPERTY_PATH:
pathExpression();
break;
case CONCAT:
case SUBSTRING:
case TRIM:
case LOWER:
case UPPER:
case SINGLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
stringExpression();
break;
default:
jj_la1[15] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void stringExpression() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SINGLE_QUOTED_STRING:
jj_consume_token(SINGLE_QUOTED_STRING);
ASTScalar jjtn001 = new ASTScalar(JJTSCALAR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jjtree.closeNodeScope(jjtn001, 0);
jjtc001 = false;
jjtn001.setValue(token_source.literalValue);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
break;
case DOUBLE_QUOTED_STRING:
jj_consume_token(DOUBLE_QUOTED_STRING);
ASTScalar jjtn002 = new ASTScalar(JJTSCALAR);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
jjtree.closeNodeScope(jjtn002, 0);
jjtc002 = false;
jjtn002.setValue(token_source.literalValue);
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 0);
}
}
break;
case CONCAT:
case SUBSTRING:
case TRIM:
case LOWER:
case UPPER:
functionsReturningStrings();
break;
default:
jj_la1[16] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void scalarExpression() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 16:
case 25:
case 26:
case 28:
case NULL:
case AVG:
case MIN:
case MAX:
case SUM:
case COUNT:
case CONCAT:
case SUBSTRING:
case TRIM:
case LOWER:
case UPPER:
case LENGTH:
case LOCATE:
case ABS:
case SQRT:
case MOD:
case CURRENT_DATE:
case CURRENT_TIME:
case CURRENT_TIMESTAMP:
case YEAR:
case MONTH:
case WEEK:
case DAY_OF_YEAR:
case DAY:
case DAY_OF_MONTH:
case DAY_OF_WEEK:
case HOUR:
case MINUTE:
case SECOND:
case 64:
case 65:
case 66:
case 67:
case PROPERTY_PATH:
case SINGLE_QUOTED_STRING:
case DOUBLE_QUOTED_STRING:
case INT_LITERAL:
case FLOAT_LITERAL:
conditionExpression();
break;
case TRUE:
jj_consume_token(TRUE);
ASTScalar jjtn001 = new ASTScalar(JJTSCALAR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jjtree.closeNodeScope(jjtn001, 0);
jjtc001 = false;
jjtn001.setValue(true);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
break;
case FALSE:
jj_consume_token(FALSE);
ASTScalar jjtn002 = new ASTScalar(JJTSCALAR);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
jjtree.closeNodeScope(jjtn002, 0);
jjtc002 = false;
jjtn002.setValue(false);
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 0);
}
}
break;
default:
jj_la1[17] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void scalarConstExpression() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SINGLE_QUOTED_STRING:
jj_consume_token(SINGLE_QUOTED_STRING);
ASTScalar jjtn001 = new ASTScalar(JJTSCALAR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jjtree.closeNodeScope(jjtn001, 0);
jjtc001 = false;
jjtn001.setValue(token_source.literalValue);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
break;
case DOUBLE_QUOTED_STRING:
jj_consume_token(DOUBLE_QUOTED_STRING);
ASTScalar jjtn002 = new ASTScalar(JJTSCALAR);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
jjtree.closeNodeScope(jjtn002, 0);
jjtc002 = false;
jjtn002.setValue(token_source.literalValue);
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 0);
}
}
break;
case 64:
namedParameter();
break;
case INT_LITERAL:
jj_consume_token(INT_LITERAL);
ASTScalar jjtn003 = new ASTScalar(JJTSCALAR);
boolean jjtc003 = true;
jjtree.openNodeScope(jjtn003);
try {
jjtree.closeNodeScope(jjtn003, 0);
jjtc003 = false;
jjtn003.setValue(token_source.literalValue);
} finally {
if (jjtc003) {
jjtree.closeNodeScope(jjtn003, 0);
}
}
break;
case FLOAT_LITERAL:
jj_consume_token(FLOAT_LITERAL);
ASTScalar jjtn004 = new ASTScalar(JJTSCALAR);
boolean jjtc004 = true;
jjtree.openNodeScope(jjtn004);
try {
jjtree.closeNodeScope(jjtn004, 0);
jjtc004 = false;
jjtn004.setValue(token_source.literalValue);
} finally {
if (jjtc004) {
jjtree.closeNodeScope(jjtn004, 0);
}
}
break;
case TRUE:
jj_consume_token(TRUE);
ASTScalar jjtn005 = new ASTScalar(JJTSCALAR);
boolean jjtc005 = true;
jjtree.openNodeScope(jjtn005);
try {
jjtree.closeNodeScope(jjtn005, 0);
jjtc005 = false;
jjtn005.setValue(true);
} finally {
if (jjtc005) {
jjtree.closeNodeScope(jjtn005, 0);
}
}
break;
case FALSE:
jj_consume_token(FALSE);
ASTScalar jjtn006 = new ASTScalar(JJTSCALAR);
boolean jjtc006 = true;
jjtree.openNodeScope(jjtn006);
try {
jjtree.closeNodeScope(jjtn006, 0);
jjtc006 = false;
jjtn006.setValue(false);
} finally {
if (jjtc006) {
jjtree.closeNodeScope(jjtn006, 0);
}
}
break;
default:
jj_la1[18] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void numericExpression() throws ParseException {
bitwiseOr();
}
final public void bitwiseOr() throws ParseException {
bitwiseXor();
label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 20:
;
break;
default:
jj_la1[19] = jj_gen;
break label_4;
}
jj_consume_token(20);
ASTBitwiseOr jjtn001 = new ASTBitwiseOr(JJTBITWISEOR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
bitwiseXor();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
}
}
}
}
final public void bitwiseXor() throws ParseException {
bitwiseAnd();
label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 21:
;
break;
default:
jj_la1[20] = jj_gen;
break label_5;
}
jj_consume_token(21);
ASTBitwiseXor jjtn001 = new ASTBitwiseXor(JJTBITWISEXOR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
bitwiseAnd();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
}
}
}
}
final public void bitwiseAnd() throws ParseException {
bitwiseShift();
label_6:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 22:
;
break;
default:
jj_la1[21] = jj_gen;
break label_6;
}
jj_consume_token(22);
ASTBitwiseAnd jjtn001 = new ASTBitwiseAnd(JJTBITWISEAND);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
bitwiseShift();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
}
}
}
}
final public void bitwiseShift() throws ParseException {
arithmeticExp();
label_7:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 23:
case 24:
;
break;
default:
jj_la1[22] = jj_gen;
break label_7;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 23:
jj_consume_token(23);
ASTBitwiseLeftShift jjtn001 = new ASTBitwiseLeftShift(JJTBITWISELEFTSHIFT);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
arithmeticExp();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
}
}
break;
case 24:
jj_consume_token(24);
ASTBitwiseRightShift jjtn002 = new ASTBitwiseRightShift(JJTBITWISERIGHTSHIFT);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
arithmeticExp();
} catch (Throwable jjte002) {
if (jjtc002) {
jjtree.clearNodeScope(jjtn002);
jjtc002 = false;
} else {
jjtree.popNode();
}
if (jjte002 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte002;}
}
if (jjte002 instanceof ParseException) {
{if (true) throw (ParseException)jjte002;}
}
{if (true) throw (Error)jjte002;}
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 2);
}
}
break;
default:
jj_la1[23] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
final public void arithmeticExp() throws ParseException {
multiplySubtractExp();
label_8:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 25:
case 26:
;
break;
default:
jj_la1[24] = jj_gen;
break label_8;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 25:
jj_consume_token(25);
ASTAdd jjtn001 = new ASTAdd(JJTADD);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
multiplySubtractExp();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
}
}
break;
case 26:
jj_consume_token(26);
ASTSubtract jjtn002 = new ASTSubtract(JJTSUBTRACT);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
multiplySubtractExp();
} catch (Throwable jjte002) {
if (jjtc002) {
jjtree.clearNodeScope(jjtn002);
jjtc002 = false;
} else {
jjtree.popNode();
}
if (jjte002 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte002;}
}
if (jjte002 instanceof ParseException) {
{if (true) throw (ParseException)jjte002;}
}
{if (true) throw (Error)jjte002;}
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 2);
}
}
break;
default:
jj_la1[25] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
final public void multiplySubtractExp() throws ParseException {
numericTermExt();
label_9:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 27:
case ASTERISK:
;
break;
default:
jj_la1[26] = jj_gen;
break label_9;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ASTERISK:
jj_consume_token(ASTERISK);
ASTMultiply jjtn001 = new ASTMultiply(JJTMULTIPLY);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
numericTermExt();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 2);
}
}
break;
case 27:
jj_consume_token(27);
ASTDivide jjtn002 = new ASTDivide(JJTDIVIDE);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
numericTermExt();
} catch (Throwable jjte002) {
if (jjtc002) {
jjtree.clearNodeScope(jjtn002);
jjtc002 = false;
} else {
jjtree.popNode();
}
if (jjte002 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte002;}
}
if (jjte002 instanceof ParseException) {
{if (true) throw (ParseException)jjte002;}
}
{if (true) throw (Error)jjte002;}
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 2);
}
}
break;
default:
jj_la1[27] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
}
final public void numericTermExt() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 16:
case 25:
case 26:
case LENGTH:
case LOCATE:
case ABS:
case SQRT:
case MOD:
case YEAR:
case MONTH:
case WEEK:
case DAY_OF_YEAR:
case DAY:
case DAY_OF_MONTH:
case DAY_OF_WEEK:
case HOUR:
case MINUTE:
case SECOND:
case 64:
case 65:
case 66:
case 67:
case PROPERTY_PATH:
case INT_LITERAL:
case FLOAT_LITERAL:
numericTerm();
break;
case 28:
jj_consume_token(28);
ASTBitwiseNot jjtn001 = new ASTBitwiseNot(JJTBITWISENOT);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
numericTerm();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 1);
}
}
break;
default:
jj_la1[28] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void numericTerm() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 16:
case 25:
case LENGTH:
case LOCATE:
case ABS:
case SQRT:
case MOD:
case YEAR:
case MONTH:
case WEEK:
case DAY_OF_YEAR:
case DAY:
case DAY_OF_MONTH:
case DAY_OF_WEEK:
case HOUR:
case MINUTE:
case SECOND:
case 64:
case 65:
case 66:
case 67:
case PROPERTY_PATH:
case INT_LITERAL:
case FLOAT_LITERAL:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 25:
jj_consume_token(25);
break;
default:
jj_la1[29] = jj_gen;
;
}
numericPrimary();
break;
case 26:
jj_consume_token(26);
ASTNegate jjtn001 = new ASTNegate(JJTNEGATE);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
numericTerm();
} catch (Throwable jjte001) {
if (jjtc001) {
jjtree.clearNodeScope(jjtn001);
jjtc001 = false;
} else {
jjtree.popNode();
}
if (jjte001 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte001;}
}
if (jjte001 instanceof ParseException) {
{if (true) throw (ParseException)jjte001;}
}
{if (true) throw (Error)jjte001;}
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 1);
}
}
break;
default:
jj_la1[30] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void numericPrimary() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 16:
jj_consume_token(16);
orCondition();
jj_consume_token(17);
break;
case INT_LITERAL:
jj_consume_token(INT_LITERAL);
ASTScalar jjtn001 = new ASTScalar(JJTSCALAR);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jjtree.closeNodeScope(jjtn001, 0);
jjtc001 = false;
jjtn001.setValue(token_source.literalValue);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
break;
case FLOAT_LITERAL:
jj_consume_token(FLOAT_LITERAL);
ASTScalar jjtn002 = new ASTScalar(JJTSCALAR);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
jjtree.closeNodeScope(jjtn002, 0);
jjtc002 = false;
jjtn002.setValue(token_source.literalValue);
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 0);
}
}
break;
case 64:
namedParameter();
break;
case LENGTH:
case LOCATE:
case ABS:
case SQRT:
case MOD:
case YEAR:
case MONTH:
case WEEK:
case DAY_OF_YEAR:
case DAY:
case DAY_OF_MONTH:
case DAY_OF_WEEK:
case HOUR:
case MINUTE:
case SECOND:
functionsReturningNumerics();
break;
case 65:
case 66:
case 67:
case PROPERTY_PATH:
pathExpression();
break;
default:
jj_la1[31] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void functionsReturningStrings() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case CONCAT:
concat();
break;
case SUBSTRING:
substring();
break;
case TRIM:
trim();
break;
case LOWER:
lower();
break;
case UPPER:
upper();
break;
default:
jj_la1[32] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void concat() throws ParseException {
/*@bgen(jjtree) Concat */
ASTConcat jjtn000 = new ASTConcat(JJTCONCAT);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(CONCAT);
jj_consume_token(16);
stringParameter();
label_10:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 19:
;
break;
default:
jj_la1[33] = jj_gen;
break label_10;
}
jj_consume_token(19);
stringParameter();
}
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void substring() throws ParseException {
/*@bgen(jjtree) Substring */
ASTSubstring jjtn000 = new ASTSubstring(JJTSUBSTRING);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(SUBSTRING);
jj_consume_token(16);
stringParameter();
jj_consume_token(19);
numericExpression();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 19:
jj_consume_token(19);
numericExpression();
break;
default:
jj_la1[34] = jj_gen;
;
}
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void trim() throws ParseException {
/*@bgen(jjtree) Trim */
ASTTrim jjtn000 = new ASTTrim(JJTTRIM);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(TRIM);
jj_consume_token(16);
stringParameter();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void lower() throws ParseException {
/*@bgen(jjtree) Lower */
ASTLower jjtn000 = new ASTLower(JJTLOWER);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(LOWER);
jj_consume_token(16);
stringParameter();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void upper() throws ParseException {
/*@bgen(jjtree) Upper */
ASTUpper jjtn000 = new ASTUpper(JJTUPPER);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(UPPER);
jj_consume_token(16);
stringParameter();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void functionsReturningNumerics() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LENGTH:
length();
break;
case LOCATE:
locate();
break;
case ABS:
abs();
break;
case SQRT:
sqrt();
break;
case MOD:
mod();
break;
case YEAR:
case MONTH:
case WEEK:
case DAY_OF_YEAR:
case DAY:
case DAY_OF_MONTH:
case DAY_OF_WEEK:
case HOUR:
case MINUTE:
case SECOND:
dateTimeExtractingFunction();
break;
default:
jj_la1[35] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void length() throws ParseException {
/*@bgen(jjtree) Length */
ASTLength jjtn000 = new ASTLength(JJTLENGTH);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(LENGTH);
jj_consume_token(16);
stringParameter();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void locate() throws ParseException {
/*@bgen(jjtree) Locate */
ASTLocate jjtn000 = new ASTLocate(JJTLOCATE);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(LOCATE);
jj_consume_token(16);
stringParameter();
jj_consume_token(19);
stringParameter();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 19:
jj_consume_token(19);
numericExpression();
break;
default:
jj_la1[36] = jj_gen;
;
}
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void abs() throws ParseException {
/*@bgen(jjtree) Abs */
ASTAbs jjtn000 = new ASTAbs(JJTABS);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(ABS);
jj_consume_token(16);
numericExpression();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void sqrt() throws ParseException {
/*@bgen(jjtree) Sqrt */
ASTSqrt jjtn000 = new ASTSqrt(JJTSQRT);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(SQRT);
jj_consume_token(16);
numericExpression();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void mod() throws ParseException {
/*@bgen(jjtree) Mod */
ASTMod jjtn000 = new ASTMod(JJTMOD);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(MOD);
jj_consume_token(16);
numericExpression();
jj_consume_token(19);
numericExpression();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void aggregateExpression() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AVG:
avg();
break;
case MAX:
max();
break;
case MIN:
min();
break;
case SUM:
sum();
break;
case COUNT:
count();
break;
default:
jj_la1[37] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void asterisk() throws ParseException {
/*@bgen(jjtree) Asterisk */
ASTAsterisk jjtn000 = new ASTAsterisk(JJTASTERISK);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(ASTERISK);
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void count() throws ParseException {
/*@bgen(jjtree) Count */
ASTCount jjtn000 = new ASTCount(JJTCOUNT);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(COUNT);
jj_consume_token(16);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ASTERISK:
asterisk();
break;
case 65:
case 66:
case 67:
case PROPERTY_PATH:
pathExpression();
break;
default:
jj_la1[38] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void avg() throws ParseException {
/*@bgen(jjtree) Avg */
ASTAvg jjtn000 = new ASTAvg(JJTAVG);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(AVG);
jj_consume_token(16);
numericExpression();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void max() throws ParseException {
/*@bgen(jjtree) Max */
ASTMax jjtn000 = new ASTMax(JJTMAX);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(MAX);
jj_consume_token(16);
numericExpression();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void min() throws ParseException {
/*@bgen(jjtree) Min */
ASTMin jjtn000 = new ASTMin(JJTMIN);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(MIN);
jj_consume_token(16);
numericExpression();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void sum() throws ParseException {
/*@bgen(jjtree) Sum */
ASTSum jjtn000 = new ASTSum(JJTSUM);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(SUM);
jj_consume_token(16);
numericExpression();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void dateTimeFunction() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case CURRENT_DATE:
currentDate();
break;
case CURRENT_TIME:
currentTime();
break;
case CURRENT_TIMESTAMP:
currentTimestamp();
break;
default:
jj_la1[39] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public void currentDate() throws ParseException {
/*@bgen(jjtree) CurrentDate */
ASTCurrentDate jjtn000 = new ASTCurrentDate(JJTCURRENTDATE);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(CURRENT_DATE);
jj_consume_token(16);
jj_consume_token(17);
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void currentTime() throws ParseException {
/*@bgen(jjtree) CurrentTime */
ASTCurrentTime jjtn000 = new ASTCurrentTime(JJTCURRENTTIME);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(CURRENT_TIME);
jj_consume_token(16);
jj_consume_token(17);
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
final public void currentTimestamp() throws ParseException {
/*@bgen(jjtree) CurrentTimestamp */
ASTCurrentTimestamp jjtn000 = new ASTCurrentTimestamp(JJTCURRENTTIMESTAMP);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(CURRENT_TIMESTAMP);
jj_consume_token(16);
jj_consume_token(17);
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, true);
}
}
}
/* Date/time parts extracting function */
final public void dateTimeExtractingFunction() throws ParseException {
/*@bgen(jjtree) #Extract( 1) */
ASTExtract jjtn000 = new ASTExtract(JJTEXTRACT);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);Token t;
try {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case YEAR:
t = jj_consume_token(YEAR);
break;
case MONTH:
t = jj_consume_token(MONTH);
break;
case WEEK:
t = jj_consume_token(WEEK);
break;
case DAY_OF_YEAR:
t = jj_consume_token(DAY_OF_YEAR);
break;
case DAY:
t = jj_consume_token(DAY);
break;
case DAY_OF_MONTH:
t = jj_consume_token(DAY_OF_MONTH);
break;
case DAY_OF_WEEK:
t = jj_consume_token(DAY_OF_WEEK);
break;
case HOUR:
t = jj_consume_token(HOUR);
break;
case MINUTE:
t = jj_consume_token(MINUTE);
break;
case SECOND:
t = jj_consume_token(SECOND);
break;
default:
jj_la1[40] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
jjtn000.setPartToken(t.image);
jj_consume_token(16);
pathExpression();
jj_consume_token(17);
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
jjtc000 = false;
} else {
jjtree.popNode();
}
if (jjte000 instanceof RuntimeException) {
{if (true) throw (RuntimeException)jjte000;}
}
if (jjte000 instanceof ParseException) {
{if (true) throw (ParseException)jjte000;}
}
{if (true) throw (Error)jjte000;}
} finally {
if (jjtc000) {
jjtree.closeNodeScope(jjtn000, 1);
}
}
}
final public void namedParameter() throws ParseException {
Token t;
jj_consume_token(64);
t = jj_consume_token(PROPERTY_PATH);
ASTNamedParameter jjtn001 = new ASTNamedParameter(JJTNAMEDPARAMETER);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jjtree.closeNodeScope(jjtn001, 0);
jjtc001 = false;
jjtn001.setValue(t.image);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
}
final public void pathExpression() throws ParseException {
Token t;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PROPERTY_PATH:
t = jj_consume_token(PROPERTY_PATH);
ASTObjPath jjtn001 = new ASTObjPath(JJTOBJPATH);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
jjtree.closeNodeScope(jjtn001, 0);
jjtc001 = false;
jjtn001.setPath(t.image);
} finally {
if (jjtc001) {
jjtree.closeNodeScope(jjtn001, 0);
}
}
break;
case 65:
jj_consume_token(65);
t = jj_consume_token(PROPERTY_PATH);
ASTObjPath jjtn002 = new ASTObjPath(JJTOBJPATH);
boolean jjtc002 = true;
jjtree.openNodeScope(jjtn002);
try {
jjtree.closeNodeScope(jjtn002, 0);
jjtc002 = false;
jjtn002.setPath(t.image);
} finally {
if (jjtc002) {
jjtree.closeNodeScope(jjtn002, 0);
}
}
break;
case 66:
jj_consume_token(66);
t = jj_consume_token(PROPERTY_PATH);
ASTDbPath jjtn003 = new ASTDbPath(JJTDBPATH);
boolean jjtc003 = true;
jjtree.openNodeScope(jjtn003);
try {
jjtree.closeNodeScope(jjtn003, 0);
jjtc003 = false;
jjtn003.setPath(t.image);
} finally {
if (jjtc003) {
jjtree.closeNodeScope(jjtn003, 0);
}
}
break;
case 67:
jj_consume_token(67);
t = jj_consume_token(PROPERTY_PATH);
ASTScalar jjtn004 = new ASTScalar(JJTSCALAR);
boolean jjtc004 = true;
jjtree.openNodeScope(jjtn004);
try {
jjtree.closeNodeScope(jjtn004, 0);
jjtc004 = false;
jjtn004.setValue(ParserUtil.makeEnum(t.image));
} finally {
if (jjtc004) {
jjtree.closeNodeScope(jjtn004, 0);
}
}
break;
default:
jj_la1[41] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
/** Generated Token Manager. */
public ExpressionParserTokenManager token_source;
JavaCharStream jj_input_stream;
/** Current token. */
public Token token;
/** Next token. */
public Token jj_nt;
private int jj_ntk;
private int jj_gen;
final private int[] jj_la1 = new int[42];
static private int[] jj_la1_0;
static private int[] jj_la1_1;
static private int[] jj_la1_2;
static {
jj_la1_init_0();
jj_la1_init_1();
jj_la1_init_2();
}
private static void jj_la1_init_0() {
jj_la1_0 = new int[] {0x2,0x4,0x18,0x16010018,0x60,0x180,0x10000,0x4fff8,0x4fff8,0x16010000,0x18,0x10000,0x4e000,0x80000,0x16010000,0x0,0x0,0x16010000,0x0,0x100000,0x200000,0x400000,0x1800000,0x1800000,0x6000000,0x6000000,0x8000000,0x8000000,0x16010000,0x2000000,0x6010000,0x10000,0x0,0x80000,0x80000,0x0,0x80000,0x0,0x0,0x0,0x0,0x0,};
}
private static void jj_la1_init_1() {
jj_la1_1 = new int[] {0x0,0x0,0x0,0xfffffffe,0x0,0x0,0x0,0x0,0x0,0xfffffffe,0x0,0x0,0x0,0x0,0xfffffff2,0x3e00,0x3e00,0xfffffffe,0xc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffc7c000,0x0,0xffc7c000,0xffc7c000,0x3e00,0x0,0x0,0xffc7c000,0x0,0x1f0,0x0,0x380000,0xffc00000,0x0,};
}
private static void jj_la1_init_2() {
jj_la1_2 = new int[] {0x0,0x0,0x0,0x7202f,0x0,0x0,0x1,0x0,0x0,0x7202f,0x0,0x1,0x0,0x0,0x7202f,0x1202e,0x12000,0x7202f,0x72001,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10,0x10,0x6002f,0x0,0x6002f,0x6002f,0x0,0x0,0x0,0x0,0x0,0x0,0x3e,0x0,0x0,0x2e,};
}
/** Constructor with InputStream. */
public ExpressionParser(java.io.InputStream stream) {
this(stream, null);
}
/** Constructor with InputStream and supplied encoding */
public ExpressionParser(java.io.InputStream stream, String encoding) {
try { jj_input_stream = new JavaCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
token_source = new ExpressionParserTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 42; i++) jj_la1[i] = -1;
}
/** Reinitialise. */
public void ReInit(java.io.InputStream stream) {
ReInit(stream, null);
}
/** Reinitialise. */
public void ReInit(java.io.InputStream stream, String encoding) {
try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
token_source.ReInit(jj_input_stream);
token = new Token();
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
for (int i = 0; i < 42; i++) jj_la1[i] = -1;
}
/** Constructor. */
public ExpressionParser(java.io.Reader stream) {
jj_input_stream = new JavaCharStream(stream, 1, 1);
token_source = new ExpressionParserTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 42; i++) jj_la1[i] = -1;
}
/** Reinitialise. */
public void ReInit(java.io.Reader stream) {
jj_input_stream.ReInit(stream, 1, 1);
token_source.ReInit(jj_input_stream);
token = new Token();
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
for (int i = 0; i < 42; i++) jj_la1[i] = -1;
}
/** Constructor with generated Token Manager. */
public ExpressionParser(ExpressionParserTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 42; i++) jj_la1[i] = -1;
}
/** Reinitialise. */
public void ReInit(ExpressionParserTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
for (int i = 0; i < 42; i++) jj_la1[i] = -1;
}
private Token jj_consume_token(int kind) throws ParseException {
Token oldToken;
if ((oldToken = token).next != null) token = token.next;
else token = token.next = token_source.getNextToken();
jj_ntk = -1;
if (token.kind == kind) {
jj_gen++;
return token;
}
token = oldToken;
jj_kind = kind;
throw generateParseException();
}
/** Get the next Token. */
final public Token getNextToken() {
if (token.next != null) token = token.next;
else token = token.next = token_source.getNextToken();
jj_ntk = -1;
jj_gen++;
return token;
}
/** Get the specific Token. */
final public Token getToken(int index) {
Token t = token;
for (int i = 0; i < index; i++) {
if (t.next != null) t = t.next;
else t = t.next = token_source.getNextToken();
}
return t;
}
private int jj_ntk() {
if ((jj_nt=token.next) == null)
return (jj_ntk = (token.next=token_source.getNextToken()).kind);
else
return (jj_ntk = jj_nt.kind);
}
private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
private int[] jj_expentry;
private int jj_kind = -1;
/** Generate ParseException. */
public ParseException generateParseException() {
jj_expentries.clear();
boolean[] la1tokens = new boolean[87];
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
for (int i = 0; i < 42; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
la1tokens[j] = true;
}
if ((jj_la1_1[i] & (1<<j)) != 0) {
la1tokens[32+j] = true;
}
if ((jj_la1_2[i] & (1<<j)) != 0) {
la1tokens[64+j] = true;
}
}
}
}
for (int i = 0; i < 87; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
jj_expentries.add(jj_expentry);
}
}
int[][] exptokseq = new int[jj_expentries.size()][];
for (int i = 0; i < jj_expentries.size(); i++) {
exptokseq[i] = jj_expentries.get(i);
}
return new ParseException(token, exptokseq, tokenImage);
}
/** Enable tracing. */
final public void enable_tracing() {
}
/** Disable tracing. */
final public void disable_tracing() {
}
}