BNF for the SEARCH method
SEARCH
( )
:= SYMBOL
A.1 DBSpec
:= ( )
:=
|
:= SYMBOL
A.2 SessionSpec
:= ()
:= /* empty */
| :maxTime
:= /* empty */
| :maxCost
:= /* empty */
| :maxDistance
:= :default
| INTEGER
A.3 SearchSpec
:=
:= ( )
| ( )
| ( )
:=
|
:=
|
STRING
:= =
| <
| >
| #
| >
| <
:= contains
:= andnot
:= and
| or
:= /* empty */
| ( )
:=
|
:= :case-sensitive
| :case-insensitive
| :full-field
| :partial-field
:= STRING
:= REAL
| INTEGER
A.4 ReturnSpec
:= (
)
:= /* empty */
| :maxNumFullRecords
:= /* empty */
| :maxNumSummaryRecords
:= /* empty */
| :maxSizeFullSet
:= /* empty */
| :maxSizeSummarySet
:= /* empty */
| :sort-by
:= /* empty */
| :show-full
:= /* empty */
| :show-summary
:= ( )
| ( )
:= :chron
| :revchron
| :alpha
| :revalpha
| :ascending
| :descending
| :inorder
| :revorder
:= :all
| ( )
:=
|
A.5 Lex regular expressions for above types
INTEGER := -?[0-9]+
REAL := -?([0-9]+)
| -?(([0-9]*.[0-9]+)([eE][-+]?[0-9]+)?)
SYMBOL := [^\r\n\t()"]+
NOTE: a symbol cannot start with a number or minus sign,
or it will be interpreted as real or integer
STRING := "[^"]*"
NOTE: a backslash preceiding a double quote (") can exist within a string
string flag definitions:
:case-sensitive => case sensitive
:case-insensitive => case insensitive
:full-field => matches the entire field
:partial-field => matches part of the field
NOTE: For the specific case of UNITE, the following is true:
The , types must both be valid as per
the available db configuration files.
In the , the field-names and their
values ( or STRING ) must be of compatable types.