| /* |
| * 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. |
| */ |
| /* Generated By:JavaCC: Do not edit this line. SelectorParser.java */ |
| package org.activemq.selector; |
| |
| import java.io.*; |
| import java.util.*; |
| |
| import javax.jms.InvalidSelectorException; |
| |
| import org.activemq.filter.*; |
| |
| /** |
| * JMS Selector Parser generated by JavaCC |
| * |
| * Do not edit this .java file directly - it is autogenerated from SelectorParser.jj |
| */ |
| public class SelectorParser implements SelectorParserConstants { |
| |
| public SelectorParser() { |
| this(new StringReader("")); |
| } |
| |
| public BooleanExpression parse(String sql) throws InvalidSelectorException { |
| this.ReInit(new StringReader(sql)); |
| |
| try { |
| return this.JmsSelector(); |
| } |
| catch (Throwable e) { |
| throw (InvalidSelectorException)new InvalidSelectorException("test").initCause(e); |
| } |
| |
| } |
| |
| private BooleanExpression asBooleanExpression(Expression value) throws ParseException { |
| if (value instanceof BooleanExpression) { |
| return (BooleanExpression) value; |
| } |
| if (value instanceof PropertyExpression) { |
| return UnaryExpression.createBooleanCast( value ); |
| } |
| throw new ParseException("Expression will not result in a boolean value: " + value); |
| } |
| |
| // ---------------------------------------------------------------------------- |
| // Grammer |
| // ---------------------------------------------------------------------------- |
| final public BooleanExpression JmsSelector() throws ParseException { |
| Expression left=null; |
| left = orExpression(); |
| {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 28: |
| case 29: |
| ; |
| break; |
| default: |
| break label_3; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case 28: |
| jj_consume_token(28); |
| right = comparisonExpression(); |
| left = ComparisonExpression.createEqual(left, right); |
| break; |
| case 29: |
| jj_consume_token(29); |
| 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 30: |
| case 31: |
| case 32: |
| case 33: |
| ; |
| break; |
| default: |
| break label_4; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case 30: |
| jj_consume_token(30); |
| right = addExpression(); |
| left = ComparisonExpression.createGreaterThan(left, right); |
| break; |
| case 31: |
| jj_consume_token(31); |
| right = addExpression(); |
| left = ComparisonExpression.createGreaterThanEqual(left, right); |
| break; |
| case 32: |
| jj_consume_token(32); |
| right = addExpression(); |
| left = ComparisonExpression.createLessThan(left, right); |
| break; |
| case 33: |
| jj_consume_token(33); |
| right = addExpression(); |
| left = ComparisonExpression.createLessThanEqual(left, right); |
| break; |
| case LIKE: |
| u=null; |
| jj_consume_token(LIKE); |
| t = stringLitteral(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case ESCAPE: |
| jj_consume_token(ESCAPE); |
| u = stringLitteral(); |
| 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 = stringLitteral(); |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case ESCAPE: |
| jj_consume_token(ESCAPE); |
| u = stringLitteral(); |
| 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(34); |
| t = stringLitteral(); |
| list = new ArrayList(); |
| list.add( t ); |
| label_5: |
| while (true) { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case 35: |
| ; |
| break; |
| default: |
| break label_5; |
| } |
| jj_consume_token(35); |
| t = stringLitteral(); |
| list.add( t ); |
| } |
| jj_consume_token(36); |
| left = ComparisonExpression.createInFilter(left, list); |
| break; |
| default: |
| if (jj_2_4(2)) { |
| jj_consume_token(NOT); |
| jj_consume_token(IN); |
| jj_consume_token(34); |
| t = stringLitteral(); |
| list = new ArrayList(); |
| list.add( t ); |
| label_6: |
| while (true) { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case 35: |
| ; |
| break; |
| default: |
| break label_6; |
| } |
| jj_consume_token(35); |
| t = stringLitteral(); |
| list.add( t ); |
| } |
| jj_consume_token(36); |
| left = ComparisonExpression.createNotInFilter(left, list); |
| } 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 37: |
| jj_consume_token(37); |
| right = multExpr(); |
| left = ArithmeticExpression.createPlus(left, right); |
| break; |
| case 38: |
| jj_consume_token(38); |
| 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 39: |
| case 40: |
| case 41: |
| ; |
| break; |
| default: |
| break label_8; |
| } |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case 39: |
| jj_consume_token(39); |
| right = unaryExpr(); |
| left = ArithmeticExpression.createMultiply(left, right); |
| break; |
| case 40: |
| jj_consume_token(40); |
| right = unaryExpr(); |
| left = ArithmeticExpression.createDivide(left, right); |
| break; |
| case 41: |
| jj_consume_token(41); |
| 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(37); |
| left = unaryExpr(); |
| } else { |
| switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { |
| case 38: |
| jj_consume_token(38); |
| left = unaryExpr(); |
| left = UnaryExpression.createNegate(left); |
| break; |
| case NOT: |
| jj_consume_token(NOT); |
| left = unaryExpr(); |
| left = UnaryExpression.createNOT( asBooleanExpression(left) ); |
| break; |
| case XPATH: |
| jj_consume_token(XPATH); |
| s = stringLitteral(); |
| left = UnaryExpression.createXPath( s ); |
| break; |
| case XQUERY: |
| jj_consume_token(XQUERY); |
| s = stringLitteral(); |
| left = UnaryExpression.createXQuery( s ); |
| break; |
| case TRUE: |
| case FALSE: |
| case NULL: |
| case DECIMAL_LITERAL: |
| case HEX_LITERAL: |
| case OCTAL_LITERAL: |
| case FLOATING_POINT_LITERAL: |
| case STRING_LITERAL: |
| case ID: |
| case 34: |
| 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 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: |
| left = variable(); |
| break; |
| case 34: |
| jj_consume_token(34); |
| left = orExpression(); |
| jj_consume_token(36); |
| 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 = stringLitteral(); |
| 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 stringLitteral() 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 == '\'' ) |
| i++; |
| rc.append(c); |
| } |
| {if (true) return rc.toString();} |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final public PropertyExpression variable() throws ParseException { |
| Token t; |
| PropertyExpression left=null; |
| t = jj_consume_token(ID); |
| left = new PropertyExpression(t.image); |
| {if (true) return left;} |
| throw new Error("Missing return statement in function"); |
| } |
| |
| final 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; } |
| } |
| |
| final 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; } |
| } |
| |
| final 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; } |
| } |
| |
| final 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; } |
| } |
| |
| final 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; } |
| } |
| |
| final 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; } |
| } |
| |
| final private boolean jj_3R_51() { |
| if (jj_scan_token(32)) return true; |
| if (jj_3R_43()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_27() { |
| if (jj_scan_token(ID)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_61() { |
| if (jj_scan_token(35)) return true; |
| if (jj_3R_21()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_48() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_56()) { |
| jj_scanpos = xsp; |
| if (jj_3R_57()) return true; |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_38() { |
| if (jj_scan_token(OR)) return true; |
| if (jj_3R_37()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_50() { |
| if (jj_scan_token(31)) return true; |
| if (jj_3R_43()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_25() { |
| if (jj_scan_token(34)) return true; |
| if (jj_3R_28()) return true; |
| if (jj_scan_token(36)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_24() { |
| if (jj_3R_27()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_49() { |
| if (jj_scan_token(30)) return true; |
| if (jj_3R_43()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_44() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_49()) { |
| jj_scanpos = xsp; |
| if (jj_3R_50()) { |
| jj_scanpos = xsp; |
| if (jj_3R_51()) { |
| jj_scanpos = xsp; |
| if (jj_3R_52()) { |
| jj_scanpos = xsp; |
| if (jj_3R_53()) { |
| jj_scanpos = xsp; |
| if (jj_3_2()) { |
| jj_scanpos = xsp; |
| if (jj_3R_54()) { |
| jj_scanpos = xsp; |
| if (jj_3_3()) { |
| jj_scanpos = xsp; |
| if (jj_3R_55()) { |
| jj_scanpos = xsp; |
| if (jj_3_4()) return true; |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_23() { |
| if (jj_3R_26()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_43() { |
| if (jj_3R_9()) return true; |
| Token xsp; |
| while (true) { |
| xsp = jj_scanpos; |
| if (jj_3R_48()) { jj_scanpos = xsp; break; } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_28() { |
| if (jj_3R_37()) return true; |
| Token xsp; |
| while (true) { |
| xsp = jj_scanpos; |
| if (jj_3R_38()) { jj_scanpos = xsp; break; } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_22() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_23()) { |
| jj_scanpos = xsp; |
| if (jj_3R_24()) { |
| jj_scanpos = xsp; |
| if (jj_3R_25()) return true; |
| } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_17() { |
| if (jj_3R_22()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_21() { |
| if (jj_scan_token(STRING_LITERAL)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_60() { |
| if (jj_scan_token(35)) return true; |
| if (jj_3R_21()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_16() { |
| if (jj_scan_token(XQUERY)) return true; |
| if (jj_3R_21()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_41() { |
| if (jj_3R_43()) return true; |
| Token xsp; |
| while (true) { |
| xsp = jj_scanpos; |
| if (jj_3R_44()) { jj_scanpos = xsp; break; } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_59() { |
| if (jj_scan_token(ESCAPE)) return true; |
| if (jj_3R_21()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3_4() { |
| if (jj_scan_token(NOT)) return true; |
| if (jj_scan_token(IN)) return true; |
| if (jj_scan_token(34)) return true; |
| if (jj_3R_21()) return true; |
| Token xsp; |
| while (true) { |
| xsp = jj_scanpos; |
| if (jj_3R_61()) { jj_scanpos = xsp; break; } |
| } |
| if (jj_scan_token(36)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3_6() { |
| if (jj_scan_token(37)) return true; |
| if (jj_3R_10()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_15() { |
| if (jj_scan_token(XPATH)) return true; |
| if (jj_3R_21()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_14() { |
| if (jj_scan_token(NOT)) return true; |
| if (jj_3R_10()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_36() { |
| if (jj_scan_token(NULL)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_12() { |
| if (jj_scan_token(37)) return true; |
| if (jj_3R_10()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_55() { |
| if (jj_scan_token(IN)) return true; |
| if (jj_scan_token(34)) return true; |
| if (jj_3R_21()) return true; |
| Token xsp; |
| while (true) { |
| xsp = jj_scanpos; |
| if (jj_3R_60()) { jj_scanpos = xsp; break; } |
| } |
| if (jj_scan_token(36)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_47() { |
| if (jj_scan_token(IS)) return true; |
| if (jj_scan_token(NOT)) return true; |
| if (jj_scan_token(NULL)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_13() { |
| if (jj_scan_token(38)) return true; |
| if (jj_3R_10()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_35() { |
| if (jj_scan_token(FALSE)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3_1() { |
| if (jj_scan_token(IS)) return true; |
| if (jj_scan_token(NULL)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_10() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_12()) { |
| jj_scanpos = xsp; |
| if (jj_3R_13()) { |
| jj_scanpos = xsp; |
| if (jj_3R_14()) { |
| jj_scanpos = xsp; |
| if (jj_3R_15()) { |
| jj_scanpos = xsp; |
| if (jj_3R_16()) { |
| jj_scanpos = xsp; |
| if (jj_3R_17()) return true; |
| } |
| } |
| } |
| } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_34() { |
| if (jj_scan_token(TRUE)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_46() { |
| if (jj_scan_token(29)) return true; |
| if (jj_3R_41()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3_3() { |
| if (jj_scan_token(NOT)) return true; |
| if (jj_scan_token(BETWEEN)) return true; |
| if (jj_3R_43()) return true; |
| if (jj_scan_token(AND)) return true; |
| if (jj_3R_43()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_45() { |
| if (jj_scan_token(28)) return true; |
| if (jj_3R_41()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_42() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_45()) { |
| jj_scanpos = xsp; |
| if (jj_3R_46()) { |
| jj_scanpos = xsp; |
| if (jj_3_1()) { |
| jj_scanpos = xsp; |
| if (jj_3R_47()) return true; |
| } |
| } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_33() { |
| if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_54() { |
| if (jj_scan_token(BETWEEN)) return true; |
| if (jj_3R_43()) return true; |
| if (jj_scan_token(AND)) return true; |
| if (jj_3R_43()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_58() { |
| if (jj_scan_token(ESCAPE)) return true; |
| if (jj_3R_21()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_32() { |
| if (jj_scan_token(OCTAL_LITERAL)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_20() { |
| if (jj_scan_token(41)) return true; |
| if (jj_3R_10()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_39() { |
| if (jj_3R_41()) return true; |
| Token xsp; |
| while (true) { |
| xsp = jj_scanpos; |
| if (jj_3R_42()) { jj_scanpos = xsp; break; } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3_2() { |
| if (jj_scan_token(NOT)) return true; |
| if (jj_scan_token(LIKE)) return true; |
| if (jj_3R_21()) return true; |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_59()) jj_scanpos = xsp; |
| return false; |
| } |
| |
| final private boolean jj_3R_53() { |
| if (jj_scan_token(LIKE)) return true; |
| if (jj_3R_21()) return true; |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_58()) jj_scanpos = xsp; |
| return false; |
| } |
| |
| final private boolean jj_3R_31() { |
| if (jj_scan_token(HEX_LITERAL)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_19() { |
| if (jj_scan_token(40)) return true; |
| if (jj_3R_10()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_18() { |
| if (jj_scan_token(39)) return true; |
| if (jj_3R_10()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_11() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_18()) { |
| jj_scanpos = xsp; |
| if (jj_3R_19()) { |
| jj_scanpos = xsp; |
| if (jj_3R_20()) return true; |
| } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_40() { |
| if (jj_scan_token(AND)) return true; |
| if (jj_3R_39()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_30() { |
| if (jj_scan_token(DECIMAL_LITERAL)) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_9() { |
| if (jj_3R_10()) return true; |
| Token xsp; |
| while (true) { |
| xsp = jj_scanpos; |
| if (jj_3R_11()) { jj_scanpos = xsp; break; } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_29() { |
| if (jj_3R_21()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_57() { |
| if (jj_scan_token(38)) return true; |
| if (jj_3R_9()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_37() { |
| if (jj_3R_39()) return true; |
| Token xsp; |
| while (true) { |
| xsp = jj_scanpos; |
| if (jj_3R_40()) { jj_scanpos = xsp; break; } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3_5() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_scan_token(37)) { |
| jj_scanpos = xsp; |
| if (jj_scan_token(38)) return true; |
| } |
| if (jj_3R_9()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_26() { |
| Token xsp; |
| xsp = jj_scanpos; |
| if (jj_3R_29()) { |
| jj_scanpos = xsp; |
| if (jj_3R_30()) { |
| jj_scanpos = xsp; |
| if (jj_3R_31()) { |
| jj_scanpos = xsp; |
| if (jj_3R_32()) { |
| jj_scanpos = xsp; |
| if (jj_3R_33()) { |
| jj_scanpos = xsp; |
| if (jj_3R_34()) { |
| jj_scanpos = xsp; |
| if (jj_3R_35()) { |
| jj_scanpos = xsp; |
| if (jj_3R_36()) return true; |
| } |
| } |
| } |
| } |
| } |
| } |
| } |
| return false; |
| } |
| |
| final private boolean jj_3R_52() { |
| if (jj_scan_token(33)) return true; |
| if (jj_3R_43()) return true; |
| return false; |
| } |
| |
| final private boolean jj_3R_56() { |
| if (jj_scan_token(37)) return true; |
| if (jj_3R_9()) return true; |
| return false; |
| } |
| |
| public SelectorParserTokenManager token_source; |
| SimpleCharStream jj_input_stream; |
| public Token token, jj_nt; |
| private int jj_ntk; |
| private Token jj_scanpos, jj_lastpos; |
| private int jj_la; |
| public boolean lookingAhead = false; |
| private boolean jj_semLA; |
| |
| public SelectorParser(java.io.InputStream stream) { |
| jj_input_stream = new SimpleCharStream(stream, 1, 1); |
| token_source = new SelectorParserTokenManager(jj_input_stream); |
| token = new Token(); |
| jj_ntk = -1; |
| } |
| |
| public void ReInit(java.io.InputStream stream) { |
| jj_input_stream.ReInit(stream, 1, 1); |
| token_source.ReInit(jj_input_stream); |
| token = new Token(); |
| jj_ntk = -1; |
| } |
| |
| public SelectorParser(java.io.Reader stream) { |
| jj_input_stream = new SimpleCharStream(stream, 1, 1); |
| token_source = new SelectorParserTokenManager(jj_input_stream); |
| token = new Token(); |
| jj_ntk = -1; |
| } |
| |
| 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; |
| } |
| |
| public SelectorParser(SelectorParserTokenManager tm) { |
| token_source = tm; |
| token = new Token(); |
| jj_ntk = -1; |
| } |
| |
| public void ReInit(SelectorParserTokenManager tm) { |
| token_source = tm; |
| token = new Token(); |
| jj_ntk = -1; |
| } |
| |
| final 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(); |
| final 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; |
| } |
| |
| final public Token getNextToken() { |
| if (token.next != null) token = token.next; |
| else token = token.next = token_source.getNextToken(); |
| jj_ntk = -1; |
| return token; |
| } |
| |
| final public Token getToken(int index) { |
| Token t = lookingAhead ? jj_scanpos : token; |
| for (int i = 0; i < index; i++) { |
| if (t.next != null) t = t.next; |
| else t = t.next = token_source.getNextToken(); |
| } |
| return t; |
| } |
| |
| final 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); |
| } |
| |
| 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); |
| } |
| |
| final public void enable_tracing() { |
| } |
| |
| final public void disable_tracing() { |
| } |
| |
| } |