From 1df04df23ddda53cda350ddaeec692cb2f7cbed8 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Tue, 12 Feb 2008 16:44:59 +0000 Subject: QPID-787 : Allow for quoting of identifiers in selectors git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2.1@620858 13f79535-47bb-0310-9956-ffa450edef68 --- java/broker/src/main/grammar/SelectorParser.jj | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'java/broker') diff --git a/java/broker/src/main/grammar/SelectorParser.jj b/java/broker/src/main/grammar/SelectorParser.jj index adec1b348d..f6a843e080 100644 --- a/java/broker/src/main/grammar/SelectorParser.jj +++ b/java/broker/src/main/grammar/SelectorParser.jj @@ -172,6 +172,7 @@ TOKEN [IGNORE_CASE] : TOKEN [IGNORE_CASE] : { < ID : ["a"-"z", "_", "$"] (["a"-"z","0"-"9","_", "$"])* > + | < QUOTED_ID : "\"" ( ("\"\"") | ~["\""] )* "\"" > } // ---------------------------------------------------------------------------- @@ -589,6 +590,7 @@ String stringLitteral() : PropertyExpression variable() : { Token t; + StringBuffer rc = new StringBuffer(); PropertyExpression left=null; } { @@ -597,6 +599,21 @@ PropertyExpression variable() : { left = new PropertyExpression(t.image); } + | + 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 new PropertyExpression(rc.toString()); + } + + ) { return left; -- cgit v1.2.1