Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 510129 - need to document bnf for selectors
Summary: need to document bnf for selectors
Keywords:
Status: CLOSED DUPLICATE of bug 961011
Alias: None
Product: Red Hat Enterprise MRG
Classification: Red Hat
Component: qpid-cpp
Version: 1.2
Hardware: All
OS: Linux
low
medium
Target Milestone: 3.0
: ---
Assignee: Andrew Stitcher
QA Contact: MRG Quality Engineering
URL:
Whiteboard:
: 506808 (view as bug list)
Depends On:
Blocks: 961011
TreeView+ depends on / blocked
 
Reported: 2009-07-07 19:29 UTC by Rafael H. Schloming
Modified: 2014-12-01 23:14 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 961011 (view as bug list)
Environment:
Last Closed: 2013-05-15 14:54:28 UTC
Target Upstream Version:


Attachments (Terms of Use)
bnf for selectors (deleted)
2009-07-07 19:30 UTC, Rafael H. Schloming
no flags Details


Links
System ID Priority Status Summary Last Updated
Red Hat Bugzilla 453539 None None None Never

Internal Links: 453539

Description Rafael H. Schloming 2009-07-07 19:29:41 UTC

Comment 1 Rafael H. Schloming 2009-07-07 19:30:59 UTC
Created attachment 350857 [details]
bnf for selectors

Comment 2 Jonathan Robie 2010-03-18 21:34:26 UTC
*** Bug 506808 has been marked as a duplicate of this bug. ***

Comment 3 Jonathan Robie 2010-03-26 13:41:05 UTC
This goes into the new Java Client documentation, which will be essentially rewritten along with the new high level API documentation.

I have checked it into the Apache Qpid documentation for the Java Client.

Comment 4 Justin Ross 2013-02-25 12:28:23 UTC
I can't seem to find this in the upstream docs.

Comment 5 Andrew Stitcher 2013-04-15 18:11:32 UTC
I can only document the syntax of the *new* C++ selectors, not the java selectors.

Comment 6 Andrew Stitcher 2013-04-15 18:16:48 UTC
Here I paste in the informal BNF for the newly implemented C++ selectors:
(it is very similar to the java selector syntax, but I make no guatantee that it is identical):

[This is copied from SelectorExpression.cpp and currently reflects the accepted syntax, but there is no process fro keeping this description in synchrony with the the actual code]

/*
 * Syntax for JMS style selector expressions (informal):
 *
 * Alpha ::= "a".."z" | "A".."Z"
 * Digit ::= "0".."9"
 * IdentifierInitial ::= Alpha | "_" | "$"
 * IdentifierPart ::= IdentifierInitial | Digit | "."
 * Identifier ::= IdentifierInitial IdentifierPart*
 * Constraint : Identifier NOT IN ("NULL", "TRUE", "FALSE", "NOT", "AND", "OR", "BETWEEN", "LIKE", "IN", "IS") // Case insensitive
 *
 * LiteralString ::= ("'" ~[']* "'")+ // Repeats to cope with embedded single quote
 *
 * LiteralExactNumeric ::= Digit+
 * Exponent ::= ['+'|'-'] LiteralExactNumeric
 * LiteralApproxNumeric ::= ( Digit "." Digit* [ "E" Exponent ] ) |
 *                          ( "." Digit+ [ "E" Exponent ] ) |
 *                          ( Digit+ "E" Exponent )
 * LiteralBool ::= "TRUE" | "FALSE"
 *
 * Literal ::= LiteralBool | LiteralString | LiteralApproxNumeric | LiteralExactNumeric
 *
 * EqOps ::= "=" | "<>"
 *
 * ComparisonOps ::= EqOps | ">" | ">=" | "<" | "<="
 *
 * BoolExpression ::= OrExpression
 *
 * OrExpression ::= AndExpression  ( "OR" AndExpression )*
 *
 * AndExpression :: = ComparisonExpression ( "AND" ComparisonExpression )*
 *
 * ComparisonExpression ::= AddExpression "IS" "NULL" |
 *                          AddExpression "IS" "NOT" "NULL" |
 *                          AddExpression "LIKE" LiteralString [ "ESCAPE" LiteralString ] |
 *                          AddExpression "NOT" "LIKE" LiteralString [ "ESCAPE" LiteralString ] |
 *                          AddExpression "BETWEEN" AddExpression "AND" AddExpression |
 *                          AddExpression "NOT" "BETWEEN" AddExpression "AND" AddExpression |
 *                          AddExpression ComparisonOps AddExpression |
 *                          "NOT" ComparisonExpression |
 *                          AddExpression
 *
 * AddOps ::= "+" | "-"
 *
 * MultiplyOps ::= "*" | "-"
 *
 * AddExpression :: = MultiplyExpression (  AddOps MultiplyExpression )*
 *
 * MultiplyExpression :: = UnaryArithExpression ( MultiplyOps UnaryArithExpression )*
 *
 * UnaryArithExpression ::= AddOps AddExpression |
 *                          "(" OrExpression ")" |
 *                          PrimaryExpression
 *
 * PrimaryExpression :: = Identifier |
 *                        Literal
 */

Comment 7 Andrew Stitcher 2013-05-02 19:17:32 UTC
Justin is the above information sufficient for documentation purposes for the C++ selectors? If not then what else needs documenting?

Comment 8 Justin Ross 2013-05-02 19:23:01 UTC
Yes, I think so.  We'll update the documentation later if necessary.  Also changing this to the qpid-cpp component.

(In reply to comment #7)
> Justin is the above information sufficient for documentation purposes for
> the C++ selectors? If not then what else needs documenting?


Note You need to log in before you can comment on or make changes to this bug.