blob: dcfb60ca8440b94859a93064155ac5e58bd54270 [file] [log] [blame]
/* Generated By:JavaCC: Do not edit this line. ConfiguredObjectFilterParser.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.qpid.server.management.plugin.servlet.query;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Collections;
import org.apache.qpid.filter.ArithmeticExpression;
import org.apache.qpid.filter.BooleanExpression;
import org.apache.qpid.filter.ComparisonExpression;
import org.apache.qpid.filter.ConstantExpression;
import org.apache.qpid.filter.Expression;
import org.apache.qpid.filter.OrderByExpression;
import org.apache.qpid.filter.LogicExpression;
import org.apache.qpid.filter.UnaryExpression;
import org.apache.qpid.server.model.ConfiguredObject;
/**
* JMS Selector Parser generated by JavaCC
*
* Do not edit this .java file directly - it is autogenerated from ConfiguredObjectFilterParser.jj
*/
public class ConfiguredObjectFilterParser implements ConfiguredObjectFilterParserConstants {
private ConfiguredObjectExpressionFactory _factory;
public ConfiguredObjectFilterParser()
{
this(new StringReader(""));
}
public void setConfiguredObjectExpressionFactory(ConfiguredObjectExpressionFactory factory)
{
_factory = factory;
}
public BooleanExpression<ConfiguredObject> parseWhere(String sql) throws ParseException
{
this.ReInit(new StringReader(sql));
return filter();
}
public List<Map<String,Expression>> parseSelect(String sql) throws ParseException
{
this.ReInit(new StringReader(sql));
return selectClause();
}
public List<OrderByExpression> parseOrderBy(String sql) throws ParseException
{
this.ReInit(new StringReader(sql));
return orderByClause();
}
private BooleanExpression<ConfiguredObject<?>> asBooleanExpression(Expression<ConfiguredObject<?>> value) throws ParseException
{
if (value instanceof BooleanExpression)
{
return (BooleanExpression<ConfiguredObject<?>>) value;
}
if (value instanceof ConfiguredObjectExpression)
{
return UnaryExpression.createBooleanCast( (Expression<ConfiguredObject<?>>) value );
}
throw new ParseException("Expression will not result in a boolean value: " + value);
}
// ----------------------------------------------------------------------------
// Grammar
// ----------------------------------------------------------------------------
final public BooleanExpression filter() throws ParseException {
Expression left=null;
left = orExpression();
jj_consume_token(0);
{if (true) return asBooleanExpression(left);}
throw new Error("Missing return statement in function");
}
final public Expression orExpression() throws ParseException {
Expression left;
Expression right;
left = andExpression();
label_1:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case OR:
;
break;
default:
break label_1;
}
jj_consume_token(OR);
right = andExpression();
left = LogicExpression.createOR(asBooleanExpression(left), asBooleanExpression(right));
}
{if (true) return left;}
throw new Error("Missing return statement in function");
}
final public Expression andExpression() throws ParseException {
Expression left;
Expression right;
left = equalityExpression();
label_2:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AND:
;
break;
default:
break label_2;
}
jj_consume_token(AND);
right = equalityExpression();
left = LogicExpression.createAND(asBooleanExpression(left), asBooleanExpression(right));
}
{if (true) return left;}
throw new Error("Missing return statement in function");
}
final public Expression equalityExpression() throws ParseException {
Expression left;
Expression right;
left = comparisonExpression();
label_3:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IS:
case 31:
case 32:
;
break;
default:
break label_3;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 31:
jj_consume_token(31);
right = comparisonExpression();
left = ComparisonExpression.createEqual(left, right);
break;
case 32:
jj_consume_token(32);
right = comparisonExpression();
left = ComparisonExpression.createNotEqual(left, right);
break;
default:
if (jj_2_1(2)) {
jj_consume_token(IS);
jj_consume_token(NULL);
left = ComparisonExpression.createIsNull(left);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IS:
jj_consume_token(IS);
jj_consume_token(NOT);
jj_consume_token(NULL);
left = ComparisonExpression.createIsNotNull(left);
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
}
}
}
{if (true) return left;}
throw new Error("Missing return statement in function");
}
final public Expression comparisonExpression() throws ParseException {
Expression left;
Expression right;
Expression low;
Expression high;
String t, u;
boolean not;
ArrayList list;
left = addExpression();
label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NOT:
case BETWEEN:
case LIKE:
case IN:
case 33:
case 34:
case 35:
case 36:
;
break;
default:
break label_4;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 33:
jj_consume_token(33);
right = addExpression();
left = ComparisonExpression.createGreaterThan(left, right);
break;
case 34:
jj_consume_token(34);
right = addExpression();
left = ComparisonExpression.createGreaterThanEqual(left, right);
break;
case 35:
jj_consume_token(35);
right = addExpression();
left = ComparisonExpression.createLessThan(left, right);
break;
case 36:
jj_consume_token(36);
right = addExpression();
left = ComparisonExpression.createLessThanEqual(left, right);
break;
case LIKE:
u=null;
jj_consume_token(LIKE);
t = stringLiteral();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ESCAPE:
jj_consume_token(ESCAPE);
u = stringLiteral();
break;
default:
;
}
left = ComparisonExpression.createLike(left, t, u);
break;
default:
if (jj_2_2(2)) {
u=null;
jj_consume_token(NOT);
jj_consume_token(LIKE);
t = stringLiteral();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ESCAPE:
jj_consume_token(ESCAPE);
u = stringLiteral();
break;
default:
;
}
left = ComparisonExpression.createNotLike(left, t, u);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case BETWEEN:
jj_consume_token(BETWEEN);
low = addExpression();
jj_consume_token(AND);
high = addExpression();
left = ComparisonExpression.createBetween(left, low, high);
break;
default:
if (jj_2_3(2)) {
jj_consume_token(NOT);
jj_consume_token(BETWEEN);
low = addExpression();
jj_consume_token(AND);
high = addExpression();
left = ComparisonExpression.createNotBetween(left, low, high);
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IN:
jj_consume_token(IN);
jj_consume_token(37);
right = primaryExpr();
list = new ArrayList();
list.add( right );
label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 38:
;
break;
default:
break label_5;
}
jj_consume_token(38);
right = primaryExpr();
list.add( right );
}
jj_consume_token(39);
left = ComparisonExpression.createInFilter(left, list, true );
break;
default:
if (jj_2_4(2)) {
jj_consume_token(NOT);
jj_consume_token(IN);
jj_consume_token(37);
right = primaryExpr();
list = new ArrayList();
list.add( right );
label_6:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 38:
;
break;
default:
break label_6;
}
jj_consume_token(38);
right = primaryExpr();
list.add( right );
}
jj_consume_token(39);
left = ComparisonExpression.createNotInFilter(left, list, true);
} else {
jj_consume_token(-1);
throw new ParseException();
}
}
}
}
}
}
}
{if (true) return left;}
throw new Error("Missing return statement in function");
}
final public Expression addExpression() throws ParseException {
Expression left;
Expression right;
left = multExpr();
label_7:
while (true) {
if (jj_2_5(2147483647)) {
;
} else {
break label_7;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 40:
jj_consume_token(40);
right = multExpr();
left = ArithmeticExpression.createPlus(left, right);
break;
case 41:
jj_consume_token(41);
right = multExpr();
left = ArithmeticExpression.createMinus(left, right);
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
}
{if (true) return left;}
throw new Error("Missing return statement in function");
}
final public Expression multExpr() throws ParseException {
Expression left;
Expression right;
left = unaryExpr();
label_8:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 42:
case 43:
case 44:
;
break;
default:
break label_8;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 42:
jj_consume_token(42);
right = unaryExpr();
left = ArithmeticExpression.createMultiply(left, right);
break;
case 43:
jj_consume_token(43);
right = unaryExpr();
left = ArithmeticExpression.createDivide(left, right);
break;
case 44:
jj_consume_token(44);
right = unaryExpr();
left = ArithmeticExpression.createMod(left, right);
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
}
{if (true) return left;}
throw new Error("Missing return statement in function");
}
final public Expression unaryExpr() throws ParseException {
String s=null;
Expression left=null;
if (jj_2_6(2147483647)) {
jj_consume_token(40);
left = unaryExpr();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 41:
jj_consume_token(41);
left = unaryExpr();
left = UnaryExpression.createNegate(left);
break;
case NOT:
jj_consume_token(NOT);
left = unaryExpr();
left = UnaryExpression.createNOT( asBooleanExpression(left) );
break;
case TRUE:
case FALSE:
case NULL:
case DECIMAL_LITERAL:
case HEX_LITERAL:
case OCTAL_LITERAL:
case FLOATING_POINT_LITERAL:
case STRING_LITERAL:
case FUNCTIONNAME:
case ID:
case QUOTED_ID:
case 37:
left = primaryExpr();
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
}
{if (true) return left;}
throw new Error("Missing return statement in function");
}
final public Expression primaryExpr() throws ParseException {
Expression left=null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case FUNCTIONNAME:
left = functionExpression();
break;
case TRUE:
case FALSE:
case NULL:
case DECIMAL_LITERAL:
case HEX_LITERAL:
case OCTAL_LITERAL:
case FLOATING_POINT_LITERAL:
case STRING_LITERAL:
left = literal();
break;
case ID:
case QUOTED_ID:
left = variable();
break;
case 37:
jj_consume_token(37);
left = orExpression();
jj_consume_token(39);
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return left;}
throw new Error("Missing return statement in function");
}
final public ConstantExpression literal() throws ParseException {
Token t;
String s;
ConstantExpression left=null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case STRING_LITERAL:
s = stringLiteral();
left = new ConstantExpression(s);
break;
case DECIMAL_LITERAL:
t = jj_consume_token(DECIMAL_LITERAL);
left = ConstantExpression.createFromDecimal(t.image);
break;
case HEX_LITERAL:
t = jj_consume_token(HEX_LITERAL);
left = ConstantExpression.createFromHex(t.image);
break;
case OCTAL_LITERAL:
t = jj_consume_token(OCTAL_LITERAL);
left = ConstantExpression.createFromOctal(t.image);
break;
case FLOATING_POINT_LITERAL:
t = jj_consume_token(FLOATING_POINT_LITERAL);
left = ConstantExpression.createFloat(t.image);
break;
case TRUE:
jj_consume_token(TRUE);
left = ConstantExpression.TRUE;
break;
case FALSE:
jj_consume_token(FALSE);
left = ConstantExpression.FALSE;
break;
case NULL:
jj_consume_token(NULL);
left = ConstantExpression.NULL;
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return left;}
throw new Error("Missing return statement in function");
}
final public String stringLiteral() throws ParseException {
Token t;
StringBuffer rc = new StringBuffer();
boolean first=true;
t = jj_consume_token(STRING_LITERAL);
// Decode the sting value.
String image = t.image;
for( int i=1; i < image.length()-1; i++ ) {
char c = image.charAt(i);
if( c == (char) 0x27 )//single quote
{
i++;
}
rc.append(c);
}
{if (true) return rc.toString();}
throw new Error("Missing return statement in function");
}
final public ConfiguredObjectExpression variable() throws ParseException {
String s;
Token t;
ConfiguredObjectExpression right;
if (jj_2_7(2)) {
s = identifier();
jj_consume_token(45);
right = variable();
{if (true) return _factory.createConfiguredObjectExpression( s, right );}
} else if (jj_2_8(2)) {
s = identifier();
jj_consume_token(46);
t = jj_consume_token(DECIMAL_LITERAL);
jj_consume_token(47);
{if (true) return _factory.createConfiguredObjectExpression( s, Integer.valueOf( t.image ) );}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ID:
case QUOTED_ID:
s = identifier();
{if (true) return _factory.createConfiguredObjectExpression( s );}
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
}
throw new Error("Missing return statement in function");
}
final public Expression functionExpression() throws ParseException {
String s;
Token t;
List<Expression> args = new ArrayList<Expression>();
Expression expr;
t = jj_consume_token(FUNCTIONNAME);
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NOT:
case TRUE:
case FALSE:
case NULL:
case DECIMAL_LITERAL:
case HEX_LITERAL:
case OCTAL_LITERAL:
case FLOATING_POINT_LITERAL:
case STRING_LITERAL:
case FUNCTIONNAME:
case ID:
case QUOTED_ID:
case 37:
case 40:
case 41:
expr = addExpression();
args.add(expr);
label_9:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 38:
;
break;
default:
break label_9;
}
jj_consume_token(38);
expr = addExpression();
args.add(expr);
}
break;
default:
;
}
jj_consume_token(39);
{if (true) return _factory.createFunctionExpression( t.image.substring(0, t.image.length() - 1), args );}
throw new Error("Missing return statement in function");
}
final public String identifier() throws ParseException {
Token t;
StringBuffer rc = new StringBuffer();
String s;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ID:
t = jj_consume_token(ID);
s = t.image;
break;
case QUOTED_ID:
t = jj_consume_token(QUOTED_ID);
// Decode the sting value.
String image = t.image;
for( int i=1; i < image.length()-1; i++ ) {
char c = image.charAt(i);
if( c == '"' )
{
i++;
}
rc.append(c);
}
s = rc.toString();
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return s;}
throw new Error("Missing return statement in function");
}
final public List<Map<String, Expression>> selectClause() throws ParseException {
List<Map<String, Expression>> returnVal = new ArrayList<Map<String, Expression>>();
Map<String, Expression> element;
element = selectClauseElement();
returnVal.add( element );
label_10:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 38:
;
break;
default:
break label_10;
}
jj_consume_token(38);
element = selectClauseElement();
returnVal.add( element );
}
jj_consume_token(0);
{if (true) return returnVal;}
throw new Error("Missing return statement in function");
}
final public Map<String, Expression> selectClauseElement() throws ParseException {
String name = null;
Expression expr;
expr = addExpression();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AS:
jj_consume_token(AS);
name = identifier();
break;
default:
;
}
if(name == null)
{
name = ( expr instanceof NamedExpression ) ? ((NamedExpression) expr).getName() : "";
}
{if (true) return Collections.singletonMap( name, expr );}
throw new Error("Missing return statement in function");
}
final public List<OrderByExpression> orderByClause() throws ParseException {
List<OrderByExpression> returnVal = new ArrayList<OrderByExpression>();
OrderByExpression element;
element = orderByClauseElement();
returnVal.add( element );
label_11:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 38:
;
break;
default:
break label_11;
}
jj_consume_token(38);
element = orderByClauseElement();
returnVal.add( element );
}
jj_consume_token(0);
{if (true) return returnVal;}
throw new Error("Missing return statement in function");
}
final public OrderByExpression orderByClauseElement() throws ParseException {
Expression expr;
OrderByExpression orderByExpr;
OrderByExpression.Order order = OrderByExpression.Order.ASC;
expr = addExpression();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ASC:
case DESC:
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ASC:
jj_consume_token(ASC);
break;
case DESC:
jj_consume_token(DESC);
order = OrderByExpression.Order.DESC;
break;
default:
jj_consume_token(-1);
throw new ParseException();
}
break;
default:
;
}
{if (true) return new OrderByExpression(expr, order);}
throw new Error("Missing return statement in function");
}
private boolean jj_2_1(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_1(); }
catch(LookaheadSuccess ls) { return true; }
}
private boolean jj_2_2(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_2(); }
catch(LookaheadSuccess ls) { return true; }
}
private boolean jj_2_3(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_3(); }
catch(LookaheadSuccess ls) { return true; }
}
private boolean jj_2_4(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_4(); }
catch(LookaheadSuccess ls) { return true; }
}
private boolean jj_2_5(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_5(); }
catch(LookaheadSuccess ls) { return true; }
}
private boolean jj_2_6(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_6(); }
catch(LookaheadSuccess ls) { return true; }
}
private boolean jj_2_7(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_7(); }
catch(LookaheadSuccess ls) { return true; }
}
private boolean jj_2_8(int xla) {
jj_la = xla; jj_lastpos = jj_scanpos = token;
try { return !jj_3_8(); }
catch(LookaheadSuccess ls) { return true; }
}
private boolean jj_3R_67() {
if (jj_scan_token(ESCAPE)) return true;
if (jj_3R_48()) return true;
return false;
}
private boolean jj_3R_39() {
if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
return false;
}
private boolean jj_3R_24() {
if (jj_scan_token(44)) return true;
if (jj_3R_13()) return true;
return false;
}
private boolean jj_3R_30() {
if (jj_scan_token(FUNCTIONNAME)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_34()) jj_scanpos = xsp;
if (jj_scan_token(39)) return true;
return false;
}
private boolean jj_3R_49() {
if (jj_3R_52()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_53()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3_2() {
if (jj_scan_token(NOT)) return true;
if (jj_scan_token(LIKE)) return true;
if (jj_3R_48()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_68()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_64() {
if (jj_scan_token(LIKE)) return true;
if (jj_3R_48()) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3R_67()) jj_scanpos = xsp;
return false;
}
private boolean jj_3R_38() {
if (jj_scan_token(OCTAL_LITERAL)) return true;
return false;
}
private boolean jj_3R_23() {
if (jj_scan_token(43)) return true;
if (jj_3R_13()) return true;
return false;
}
private boolean jj_3R_15() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_22()) {
jj_scanpos = xsp;
if (jj_3R_23()) {
jj_scanpos = xsp;
if (jj_3R_24()) return true;
}
}
return false;
}
private boolean jj_3R_22() {
if (jj_scan_token(42)) return true;
if (jj_3R_13()) return true;
return false;
}
private boolean jj_3R_50() {
if (jj_scan_token(AND)) return true;
if (jj_3R_49()) return true;
return false;
}
private boolean jj_3R_37() {
if (jj_scan_token(HEX_LITERAL)) return true;
return false;
}
private boolean jj_3R_12() {
if (jj_3R_13()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_15()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_43() {
if (jj_3R_14()) return true;
return false;
}
private boolean jj_3R_36() {
if (jj_scan_token(DECIMAL_LITERAL)) return true;
return false;
}
private boolean jj_3R_55() {
if (jj_scan_token(41)) return true;
if (jj_3R_12()) return true;
return false;
}
private boolean jj_3R_44() {
if (jj_3R_49()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_50()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3_5() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(40)) {
jj_scanpos = xsp;
if (jj_scan_token(41)) return true;
}
if (jj_3R_12()) return true;
return false;
}
private boolean jj_3R_63() {
if (jj_scan_token(36)) return true;
if (jj_3R_46()) return true;
return false;
}
private boolean jj_3R_47() {
if (jj_scan_token(38)) return true;
if (jj_3R_46()) return true;
return false;
}
private boolean jj_3R_35() {
if (jj_3R_48()) return true;
return false;
}
private boolean jj_3_8() {
if (jj_3R_14()) return true;
if (jj_scan_token(46)) return true;
if (jj_scan_token(DECIMAL_LITERAL)) return true;
if (jj_scan_token(47)) return true;
return false;
}
private boolean jj_3R_54() {
if (jj_scan_token(40)) return true;
if (jj_3R_12()) return true;
return false;
}
private boolean jj_3R_62() {
if (jj_scan_token(35)) return true;
if (jj_3R_46()) return true;
return false;
}
private boolean jj_3R_31() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_35()) {
jj_scanpos = xsp;
if (jj_3R_36()) {
jj_scanpos = xsp;
if (jj_3R_37()) {
jj_scanpos = xsp;
if (jj_3R_38()) {
jj_scanpos = xsp;
if (jj_3R_39()) {
jj_scanpos = xsp;
if (jj_3R_40()) {
jj_scanpos = xsp;
if (jj_3R_41()) {
jj_scanpos = xsp;
if (jj_3R_42()) return true;
}
}
}
}
}
}
}
return false;
}
private boolean jj_3R_70() {
if (jj_scan_token(38)) return true;
if (jj_3R_25()) return true;
return false;
}
private boolean jj_3R_51() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_54()) {
jj_scanpos = xsp;
if (jj_3R_55()) return true;
}
return false;
}
private boolean jj_3R_45() {
if (jj_scan_token(OR)) return true;
if (jj_3R_44()) return true;
return false;
}
private boolean jj_3_7() {
if (jj_3R_14()) return true;
if (jj_scan_token(45)) return true;
if (jj_3R_32()) return true;
return false;
}
private boolean jj_3R_32() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_7()) {
jj_scanpos = xsp;
if (jj_3_8()) {
jj_scanpos = xsp;
if (jj_3R_43()) return true;
}
}
return false;
}
private boolean jj_3R_61() {
if (jj_scan_token(34)) return true;
if (jj_3R_46()) return true;
return false;
}
private boolean jj_3R_60() {
if (jj_scan_token(33)) return true;
if (jj_3R_46()) return true;
return false;
}
private boolean jj_3R_56() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_60()) {
jj_scanpos = xsp;
if (jj_3R_61()) {
jj_scanpos = xsp;
if (jj_3R_62()) {
jj_scanpos = xsp;
if (jj_3R_63()) {
jj_scanpos = xsp;
if (jj_3R_64()) {
jj_scanpos = xsp;
if (jj_3_2()) {
jj_scanpos = xsp;
if (jj_3R_65()) {
jj_scanpos = xsp;
if (jj_3_3()) {
jj_scanpos = xsp;
if (jj_3R_66()) {
jj_scanpos = xsp;
if (jj_3_4()) return true;
}
}
}
}
}
}
}
}
}
return false;
}
private boolean jj_3R_46() {
if (jj_3R_12()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_51()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_29() {
if (jj_scan_token(37)) return true;
if (jj_3R_33()) return true;
if (jj_scan_token(39)) return true;
return false;
}
private boolean jj_3R_33() {
if (jj_3R_44()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_45()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_28() {
if (jj_3R_32()) return true;
return false;
}
private boolean jj_3R_27() {
if (jj_3R_31()) return true;
return false;
}
private boolean jj_3R_26() {
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3R_69() {
if (jj_scan_token(38)) return true;
if (jj_3R_25()) return true;
return false;
}
private boolean jj_3R_25() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_26()) {
jj_scanpos = xsp;
if (jj_3R_27()) {
jj_scanpos = xsp;
if (jj_3R_28()) {
jj_scanpos = xsp;
if (jj_3R_29()) return true;
}
}
}
return false;
}
private boolean jj_3R_52() {
if (jj_3R_46()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_56()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_48() {
if (jj_scan_token(STRING_LITERAL)) return true;
return false;
}
private boolean jj_3_4() {
if (jj_scan_token(NOT)) return true;
if (jj_scan_token(IN)) return true;
if (jj_scan_token(37)) return true;
if (jj_3R_25()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_70()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(39)) return true;
return false;
}
private boolean jj_3_6() {
if (jj_scan_token(40)) return true;
if (jj_3R_13()) return true;
return false;
}
private boolean jj_3R_68() {
if (jj_scan_token(ESCAPE)) return true;
if (jj_3R_48()) return true;
return false;
}
private boolean jj_3R_19() {
if (jj_3R_25()) return true;
return false;
}
private boolean jj_3R_18() {
if (jj_scan_token(NOT)) return true;
if (jj_3R_13()) return true;
return false;
}
private boolean jj_3R_16() {
if (jj_scan_token(40)) return true;
if (jj_3R_13()) return true;
return false;
}
private boolean jj_3R_66() {
if (jj_scan_token(IN)) return true;
if (jj_scan_token(37)) return true;
if (jj_3R_25()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_69()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(39)) return true;
return false;
}
private boolean jj_3R_59() {
if (jj_scan_token(IS)) return true;
if (jj_scan_token(NOT)) return true;
if (jj_scan_token(NULL)) return true;
return false;
}
private boolean jj_3R_17() {
if (jj_scan_token(41)) return true;
if (jj_3R_13()) return true;
return false;
}
private boolean jj_3R_34() {
if (jj_3R_46()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3R_47()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_21() {
if (jj_scan_token(QUOTED_ID)) return true;
return false;
}
private boolean jj_3R_42() {
if (jj_scan_token(NULL)) return true;
return false;
}
private boolean jj_3_1() {
if (jj_scan_token(IS)) return true;
if (jj_scan_token(NULL)) return true;
return false;
}
private boolean jj_3R_20() {
if (jj_scan_token(ID)) return true;
return false;
}
private boolean jj_3R_13() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_16()) {
jj_scanpos = xsp;
if (jj_3R_17()) {
jj_scanpos = xsp;
if (jj_3R_18()) {
jj_scanpos = xsp;
if (jj_3R_19()) return true;
}
}
}
return false;
}
private boolean jj_3R_41() {
if (jj_scan_token(FALSE)) return true;
return false;
}
private boolean jj_3R_58() {
if (jj_scan_token(32)) return true;
if (jj_3R_52()) return true;
return false;
}
private boolean jj_3R_14() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_20()) {
jj_scanpos = xsp;
if (jj_3R_21()) return true;
}
return false;
}
private boolean jj_3_3() {
if (jj_scan_token(NOT)) return true;
if (jj_scan_token(BETWEEN)) return true;
if (jj_3R_46()) return true;
if (jj_scan_token(AND)) return true;
if (jj_3R_46()) return true;
return false;
}
private boolean jj_3R_57() {
if (jj_scan_token(31)) return true;
if (jj_3R_52()) return true;
return false;
}
private boolean jj_3R_53() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_57()) {
jj_scanpos = xsp;
if (jj_3R_58()) {
jj_scanpos = xsp;
if (jj_3_1()) {
jj_scanpos = xsp;
if (jj_3R_59()) return true;
}
}
}
return false;
}
private boolean jj_3R_40() {
if (jj_scan_token(TRUE)) return true;
return false;
}
private boolean jj_3R_65() {
if (jj_scan_token(BETWEEN)) return true;
if (jj_3R_46()) return true;
if (jj_scan_token(AND)) return true;
if (jj_3R_46()) return true;
return false;
}
/** Generated Token Manager. */
public ConfiguredObjectFilterParserTokenManager token_source;
SimpleCharStream jj_input_stream;
/** Current token. */
public Token token;
/** Next token. */
public Token jj_nt;
private int jj_ntk;
private Token jj_scanpos, jj_lastpos;
private int jj_la;
/** Constructor with InputStream. */
public ConfiguredObjectFilterParser(java.io.InputStream stream) {
this(stream, null);
}
/** Constructor with InputStream and supplied encoding */
public ConfiguredObjectFilterParser(java.io.InputStream stream, String encoding) {
try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
token_source = new ConfiguredObjectFilterParserTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -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;
}
/** Constructor. */
public ConfiguredObjectFilterParser(java.io.Reader stream) {
jj_input_stream = new SimpleCharStream(stream, 1, 1);
token_source = new ConfiguredObjectFilterParserTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -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;
}
/** Constructor with generated Token Manager. */
public ConfiguredObjectFilterParser(ConfiguredObjectFilterParserTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
}
/** Reinitialise. */
public void ReInit(ConfiguredObjectFilterParserTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -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) {
return token;
}
token = oldToken;
throw generateParseException();
}
static private final class LookaheadSuccess extends java.lang.Error { }
final private LookaheadSuccess jj_ls = new LookaheadSuccess();
private boolean jj_scan_token(int kind) {
if (jj_scanpos == jj_lastpos) {
jj_la--;
if (jj_scanpos.next == null) {
jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
} else {
jj_lastpos = jj_scanpos = jj_scanpos.next;
}
} else {
jj_scanpos = jj_scanpos.next;
}
if (jj_scanpos.kind != kind) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
return false;
}
/** 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;
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);
}
/** Generate ParseException. */
public ParseException generateParseException() {
Token errortok = token.next;
int line = errortok.beginLine, column = errortok.beginColumn;
String mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image;
return new ParseException("Parse error at line " + line + ", column " + column + ". Encountered: " + mess);
}
/** Enable tracing. */
final public void enable_tracing() {
}
/** Disable tracing. */
final public void disable_tracing() {
}
}