diff options
Diffstat (limited to 'qpid/doc/book/src/old/Java-JMS-Selector-Syntax.xml')
-rw-r--r-- | qpid/doc/book/src/old/Java-JMS-Selector-Syntax.xml | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/qpid/doc/book/src/old/Java-JMS-Selector-Syntax.xml b/qpid/doc/book/src/old/Java-JMS-Selector-Syntax.xml new file mode 100644 index 0000000000..870e277b66 --- /dev/null +++ b/qpid/doc/book/src/old/Java-JMS-Selector-Syntax.xml @@ -0,0 +1,96 @@ +<!-- + - + - 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. + - + --> +<section> + <title>Java JMS Selector Syntax</title> + <para>The AMQP Java JMS Messaging Client supports the following syntax for JMS selectors.</para> + +<programlisting><![CDATA[ +Comments: + + LINE_COMMENT: "--" (~["\n","\r"])* EOL + EOL: "\n"|"\r"|"\r\n" + BLOCK_COMMENT: "/*" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/" + +Reserved Words (case insensitive): + + NOT: "NOT" + AND: "AND" + OR: "OR" + BETWEEN: "BETWEEN" + LIKE: "LIKE" + ESCAPE: "ESCAPE" + IN: "IN" + IS: "IS" + TRUE: "TRUE" + FALSE: "FALSE" + NULL: "NULL" + +Literals (case insensitive): + + 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"])* (<EXPONENT>)? // matches: 5.5 or 5. or 5.5E10 or 5.E10 + | "." (["0"-"9"])+ (<EXPONENT>)? // matches: .5 or .5E10 + | (["0"-"9"])+ <EXPONENT> ) // matches: 5E10 + EXPONENT: "E" (["+","-"])? (["0"-"9"])+ + STRING_LITERAL: "'" ( ("''") | ~["'"] )* "'" + +Identifiers (case insensitive): + + ID : ["a"-"z", "_", "$"] (["a"-"z","0"-"9","_", "$"])* + QUOTED_ID : "\"" ( ("\"\"") | ~["\""] )* "\"" + +Grammar: + + JmsSelector := orExpression + orExpression := ( andExpression ( <OR> andExpression )* ) + andExpression := ( equalityExpression ( <AND> equalityExpression )* ) + equalityExpression := ( comparisonExpression ( "=" comparisonExpression + | "<>" comparisonExpression + | <IS> <NULL> + | <IS> <NOT> <NULL> )* ) + comparisonExpression := ( addExpression ( ">" addExpression + | ">=" addExpression + | "<" addExpression + | "<=" addExpression + | <LIKE> stringLitteral ( <ESCAPE> stringLitteral )? + | <NOT> <LIKE> <STRING_LITERAL> ( <ESCAPE> <STRING_LITERAL> )? + | <BETWEEN> addExpression <AND> addExpression + | <NOT> <BETWEEN> addExpression <AND> addExpression + | <IN> "(" <STRING_LITERAL> ( "," <STRING_LITERAL> )* ")" + | <NOT> <IN> "(" <STRING_LITERAL> ( "," <STRING_LITERAL> )* ")" )* ) + addExpression := multExpr ( ( "+" multExpr | "-" multExpr ) )* + multExpr := unaryExpr ( "*" unaryExpr | "/" unaryExpr | "%" unaryExpr )* + unaryExpr := ( "+" unaryExpr | "-" unaryExpr | <NOT> unaryExpr | primaryExpr ) + primaryExpr := ( literal | variable | "(" orExpression ")" ) + literal := ( <STRING_LITERAL> + | <DECIMAL_LITERAL> + | <HEX_LITERAL> + | <OCTAL_LITERAL> + | <FLOATING_POINT_LITERAL> + | <TRUE> + | <FALSE> + | <NULL> ) + variable := ( <ID> | <QUOTED_ID> ) +]]></programlisting> + +</section> |