Add classes for visitor traversal
[cql-java-moved-to-github.git] / spec / bnf
1
2 Sort of derived from http://www.loc.gov/standards/sru/cql/
3
4 cqlQuery ::= prefixAssignment cqlQuery | scopedClause
5 prefixAssignment ::= '>' prefix '=' uri | '>' uri
6 scopedClause ::= scopedClause booleanGroup searchClause | searchClause
7 booleanGroup ::= boolean [modifierList]
8 boolean ::= 'and' | 'or' | 'not' | 'prox'
9 searchClause ::= '(' cqlQuery ')'
10                | index relation searchTerm
11                | searchTerm
12 relation ::= comparitor [modifierList]
13 comparitor ::= comparitorSymbol | namedComparitor
14 comparitorSymbol ::= '=' | '>' | '<' | '>=' | '<=' | '<>'
15 namedComparitor ::= identifier
16 modifierList ::= modifierList modifier | modifier
17 modifier ::= '/' modifierName [comparitorSymbol modifierValue]
18 prefix, uri, modifierName, modifierValue, searchTerm, index ::= term
19 term ::= identifier | 'and' | 'or' | 'not' | 'prox'
20 identifier ::= charString1 | charString2