summaryrefslogtreecommitdiff
path: root/qpid/doc/book/src/old/Java-JMS-Selector-Syntax.xml
diff options
context:
space:
mode:
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.xml96
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>