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.