Matthias Hess writes:
> I am currently implementing a CQL Parser for .NET / C#. When I studied
> the BNF in the CQL spec, I found something which does not make sense to
> me. The spec says:
>
> term ::= identifier | 'and' | 'or' | 'not' | 'prox' | 'sortby'
>
> this means that the words and, or, not, prox and sortby are valid terms.
>
> The spec also says that
>
> prefix, uri, modifierName, modifierValue, searchTerm, index ::= term
>
> this means that the words and, or, not, prox and sortby are valid as
> prefix, uri, modifierName, modifierValue, searchTerm and index.
>
> Putting all this together, it means that the following strings are all
> valid CQL Queries:
>
> and
>
> and and and
>
> and or not and or not and dino and not not and
Sadly, yes.
> Is this an error in the CQL spec?
In my opinion, yes; but that is an aesthetic judgement rather than an
engineering one. The grammar does correctly describe the language as
the committee decided (not unanimously :-) it should be.
_/|_ ___________________________________________________________________
/o ) \/ Mike Taylor <[log in to unmask]> http://www.miketaylor.org.uk
)_v__/\ "Though they may not understand all the words, all the same they
hear the music" -- Steven Sondheim, "Another National Anthem"
|