Repository: qpid-jms Updated Branches: refs/heads/master 7a5b6f3a5 -> fd2139c27 remove the 'hyphenated parser' and related escape sequences, we dont use them Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/fa5f720f Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/fa5f720f Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/fa5f720f Branch: refs/heads/master Commit: fa5f720ffdf57bcad6b1e4cee2e31196c992b68c Parents: 7a5b6f3 Author: Robert Gemmell Authored: Mon Mar 2 17:19:47 2015 +0000 Committer: Robert Gemmell Committed: Mon Mar 2 18:01:54 2015 +0000 ---------------------------------------------------------------------- .../qpid/jms/selector/SelectorParser.java | 23 +- .../src/main/javacc/HyphenatedParser.jj | 563 ------------------- 2 files changed, 2 insertions(+), 584 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fa5f720f/qpid-jms-client/src/main/java/org/apache/qpid/jms/selector/SelectorParser.java ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/selector/SelectorParser.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/selector/SelectorParser.java index c0d588d..87cfd6c 100644 --- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/selector/SelectorParser.java +++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/selector/SelectorParser.java @@ -21,16 +21,13 @@ import java.io.StringReader; import org.apache.qpid.jms.selector.filter.BooleanExpression; import org.apache.qpid.jms.selector.filter.ComparisonExpression; import org.apache.qpid.jms.selector.filter.FilterException; -import org.apache.qpid.jms.selector.hyphenated.HyphenatedParser; import org.apache.qpid.jms.selector.strict.StrictParser; public class SelectorParser { private static final LRUCache cache = new LRUCache(100); private static final String CONVERT_STRING_EXPRESSIONS_PREFIX = "convert_string_expressions:"; - private static final String HYPHENATED_PROPS_PREFIX = "hyphenated_props:"; private static final String NO_CONVERT_STRING_EXPRESSIONS_PREFIX = "no_convert_string_expressions:"; - private static final String NO_HYPHENATED_PROPS_PREFIX = "no_hyphenated_props:"; public static BooleanExpression parse(String sql) throws FilterException { Object result = cache.get(sql); @@ -41,28 +38,17 @@ public class SelectorParser { } else { String actual = sql; boolean convertStringExpressions = false; - boolean hyphenatedProps = false; while (true) { if (actual.startsWith(CONVERT_STRING_EXPRESSIONS_PREFIX)) { convertStringExpressions = true; actual = actual.substring(CONVERT_STRING_EXPRESSIONS_PREFIX.length()); continue; } - if (actual.startsWith(HYPHENATED_PROPS_PREFIX)) { - hyphenatedProps = true; - actual = actual.substring(HYPHENATED_PROPS_PREFIX.length()); - continue; - } if (actual.startsWith(NO_CONVERT_STRING_EXPRESSIONS_PREFIX)) { convertStringExpressions = false; actual = actual.substring(NO_CONVERT_STRING_EXPRESSIONS_PREFIX.length()); continue; } - if (actual.startsWith(NO_HYPHENATED_PROPS_PREFIX)) { - hyphenatedProps = false; - actual = actual.substring(NO_HYPHENATED_PROPS_PREFIX.length()); - continue; - } break; } @@ -71,13 +57,8 @@ public class SelectorParser { } try { BooleanExpression e = null; - if (hyphenatedProps) { - HyphenatedParser parser = new HyphenatedParser(new StringReader(actual)); - e = parser.JmsSelector(); - } else { - StrictParser parser = new StrictParser(new StringReader(actual)); - e = parser.JmsSelector(); - } + StrictParser parser = new StrictParser(new StringReader(actual)); + e = parser.JmsSelector(); cache.put(sql, e); return e; } catch (Throwable e) { http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/fa5f720f/qpid-jms-client/src/main/javacc/HyphenatedParser.jj ---------------------------------------------------------------------- diff --git a/qpid-jms-client/src/main/javacc/HyphenatedParser.jj b/qpid-jms-client/src/main/javacc/HyphenatedParser.jj deleted file mode 100755 index 5966027..0000000 --- a/qpid-jms-client/src/main/javacc/HyphenatedParser.jj +++ /dev/null @@ -1,563 +0,0 @@ -/** - * 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. - */ - -// ---------------------------------------------------------------------------- -// OPTIONS -// ---------------------------------------------------------------------------- -options { - STATIC = false; - UNICODE_INPUT = true; - // some performance optimizations - ERROR_REPORTING = false; -} - -// ---------------------------------------------------------------------------- -// PARSER -// ---------------------------------------------------------------------------- - -PARSER_BEGIN(HyphenatedParser) -/** - * 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.jms.selector.hyphenated; - -import java.io.*; -import java.util.*; - -import org.apache.qpid.jms.selector.filter.*; - -/** - * JMS Selector Parser generated by JavaCC - * - * Do not edit this .java file directly - it is autogenerated from HyphenatedParser.jj - */ -public class HyphenatedParser { - 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); - } -} - -PARSER_END(HyphenatedParser) - -// ---------------------------------------------------------------------------- -// Tokens -// ---------------------------------------------------------------------------- - -/* White Space */ -SPECIAL_TOKEN : -{ - " " | "\t" | "\n" | "\r" | "\f" -} - -/* Comments */ -SKIP: -{ - -} - -SKIP: -{ - -} - -/* Reserved Words */ -TOKEN [IGNORE_CASE] : -{ - < NOT : "NOT"> - | < AND : "AND"> - | < OR : "OR"> - | < BETWEEN : "BETWEEN"> - | < LIKE : "LIKE"> - | < ESCAPE : "ESCAPE"> - | < IN : "IN"> - | < IS : "IS"> - | < TRUE : "TRUE" > - | < FALSE : "FALSE" > - | < NULL : "NULL" > - | < XPATH : "XPATH" > - | < XQUERY : "XQUERY" > -} - -/* Literals */ -TOKEN [IGNORE_CASE] : -{ - - < DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])* (["l","L"])? > - | < HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ > - | < OCTAL_LITERAL: "0" (["0"-"7"])* > - | < FLOATING_POINT_LITERAL: - (["0"-"9"])+ "." (["0"-"9"])* ()? // matches: 5.5 or 5. or 5.5E10 or 5.E10 - | "." (["0"-"9"])+ ()? // matches: .5 or .5E10 - | (["0"-"9"])+ // matches: 5E10 - > - | < #EXPONENT: "E" (["+","-"])? (["0"-"9"])+ > - | < STRING_LITERAL: "'" ( ("''") | ~["'"] )* "'" > -} - -TOKEN [IGNORE_CASE] : -{ - < ID : ["a"-"z", "_", "$"] (["a"-"z","0"-"9","_", "$", "-"])* > -} - -// ---------------------------------------------------------------------------- -// Grammer -// ---------------------------------------------------------------------------- -BooleanExpression JmsSelector() : -{ - Expression left=null; -} -{ - ( - left = orExpression() - ) - { - return asBooleanExpression(left); - } - -} - -Expression orExpression() : -{ - Expression left; - Expression right; -} -{ - ( - left = andExpression() - ( - right = andExpression() - { - left = LogicExpression.createOR(asBooleanExpression(left), asBooleanExpression(right)); - } - )* - ) - { - return left; - } - -} - - -Expression andExpression() : -{ - Expression left; - Expression right; -} -{ - ( - left = equalityExpression() - ( - right = equalityExpression() - { - left = LogicExpression.createAND(asBooleanExpression(left), asBooleanExpression(right)); - } - )* - ) - { - return left; - } -} - -Expression equalityExpression() : -{ - Expression left; - Expression right; -} -{ - ( - left = comparisonExpression() - ( - - "=" right = comparisonExpression() - { - left = ComparisonExpression.createEqual(left, right); - } - | - "<>" right = comparisonExpression() - { - left = ComparisonExpression.createNotEqual(left, right); - } - | - LOOKAHEAD(2) - - { - left = ComparisonExpression.createIsNull(left); - } - | - - { - left = ComparisonExpression.createIsNotNull(left); - } - )* - ) - { - return left; - } -} - -Expression comparisonExpression() : -{ - Expression left; - Expression right; - Expression low; - Expression high; - String t, u; - boolean not; - ArrayList list; -} -{ - ( - left = addExpression() - ( - - ">" right = addExpression() - { - left = ComparisonExpression.createGreaterThan(left, right); - } - | - ">=" right = addExpression() - { - left = ComparisonExpression.createGreaterThanEqual(left, right); - } - | - "<" right = addExpression() - { - left = ComparisonExpression.createLessThan(left, right); - } - | - "<=" right = addExpression() - { - left = ComparisonExpression.createLessThanEqual(left, right); - } - | - { - u=null; - } - t = stringLitteral() - [ u = stringLitteral() ] - { - left = ComparisonExpression.createLike(left, t, u); - } - | - LOOKAHEAD(2) - { - u=null; - } - t = stringLitteral() [ u = stringLitteral() ] - { - left = ComparisonExpression.createNotLike(left, t, u); - } - | - low = addExpression() high = addExpression() - { - left = ComparisonExpression.createBetween(left, low, high); - } - | - LOOKAHEAD(2) - low = addExpression() high = addExpression() - { - left = ComparisonExpression.createNotBetween(left, low, high); - } - | - - "(" - t = stringLitteral() - { - list = new ArrayList(); - list.add( t ); - } - ( - "," - t = stringLitteral() - { - list.add( t ); - } - - )* - ")" - { - left = ComparisonExpression.createInFilter(left, list); - } - | - LOOKAHEAD(2) - - "(" - t = stringLitteral() - { - list = new ArrayList(); - list.add( t ); - } - ( - "," - t = stringLitteral() - { - list.add( t ); - } - - )* - ")" - { - left = ComparisonExpression.createNotInFilter(left, list); - } - - )* - ) - { - return left; - } -} - -Expression addExpression() : -{ - Expression left; - Expression right; -} -{ - left = multExpr() - ( - LOOKAHEAD( ("+"|"-") multExpr()) - ( - "+" right = multExpr() - { - left = ArithmeticExpression.createPlus(left, right); - } - | - "-" right = multExpr() - { - left = ArithmeticExpression.createMinus(left, right); - } - ) - - )* - { - return left; - } -} - -Expression multExpr() : -{ - Expression left; - Expression right; -} -{ - left = unaryExpr() - ( - "*" right = unaryExpr() - { - left = ArithmeticExpression.createMultiply(left, right); - } - | - "/" right = unaryExpr() - { - left = ArithmeticExpression.createDivide(left, right); - } - | - "%" right = unaryExpr() - { - left = ArithmeticExpression.createMod(left, right); - } - - )* - { - return left; - } -} - - -Expression unaryExpr() : -{ - String s=null; - Expression left=null; -} -{ - ( - LOOKAHEAD( "+" unaryExpr() ) - "+" left=unaryExpr() - | - "-" left=unaryExpr() - { - left = UnaryExpression.createNegate(left); - } - | - left=unaryExpr() - { - left = UnaryExpression.createNOT( asBooleanExpression(left) ); - } - | - s=stringLitteral() - { - left = UnaryExpression.createXPath( s ); - } - | - s=stringLitteral() - { - left = UnaryExpression.createXQuery( s ); - } - | - left = primaryExpr() - ) - { - return left; - } - -} - -Expression primaryExpr() : -{ - Expression left=null; -} -{ - ( - left = literal() - | - left = variable() - | - "(" left = orExpression() ")" - ) - { - return left; - } -} - - - -ConstantExpression literal() : -{ - Token t; - String s; - ConstantExpression left=null; -} -{ - ( - ( - s = stringLitteral() - { - left = new ConstantExpression(s); - } - ) - | - ( - t = - { - left = ConstantExpression.createFromDecimal(t.image); - } - ) - | - ( - t = - { - left = ConstantExpression.createFromHex(t.image); - } - ) - | - ( - t = - { - left = ConstantExpression.createFromOctal(t.image); - } - ) - | - ( - t = - { - left = ConstantExpression.createFloat(t.image); - } - ) - | - ( - - { - left = ConstantExpression.TRUE; - } - ) - | - ( - - { - left = ConstantExpression.FALSE; - } - ) - | - ( - - { - left = ConstantExpression.NULL; - } - ) - ) - { - return left; - } -} - -String stringLitteral() : -{ - Token t; - StringBuffer rc = new StringBuffer(); - boolean first=true; -} -{ - t = - { - // 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); - } - return rc.toString(); - } -} - -PropertyExpression variable() : -{ - Token t; - PropertyExpression left=null; -} -{ - ( - t= - { - left = new PropertyExpression(t.image); - } - ) - { - return left; - } -} --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org For additional commands, e-mail: commits-help@qpid.apache.org