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