Updated PQF grammar
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 30 May 2002 20:57:31 +0000 (20:57 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 30 May 2002 20:57:31 +0000 (20:57 +0000)
doc/tools.xml

index 2122e69..4d19542 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Id: tools.xml,v 1.10 2002-02-24 12:23:43 adam Exp $ -->
+<!-- $Id: tools.xml,v 1.11 2002-05-30 20:57:31 adam Exp $ -->
  <chapter id="tools"><title>Supporting Tools</title>
   
   <para>
@@ -72,47 +72,43 @@ int p_query_attset (const char *arg);
      The grammar of the PQF is as follows:
     </para>
 
-    <screen>
-     Query ::= &lsqb; '@attrset' AttSet &rsqb; QueryStruct.
-
-     AttSet ::= string.
+    <literallayout>
+     query ::= top-set query-struct.
 
-     QueryStruct ::= &lsqb; Attribute &rsqb; Simple | Complex.
+     top-set ::= &lsqb; '@attrset' string &rsqb;
 
-     Attribute ::= '@attr' &lsqb; AttSet &rsqb; AttributeType '=' AttributeValue.
+     query-struct ::= attr-spec | simple | complex
 
-     AttributeType ::= integer.
+     attr-spec ::= '@attr' &lsqb; string &rsqb; string query-struct
 
-     AttributeValue ::= integer || string.
+     complex ::= operator query-struct query-struct.
 
-     Complex ::= Operator QueryStruct QueryStruct.
+     operator ::= '@and' | '@or' | '@not' | '@prox' proximity.
 
-     Operator ::= '@and' | '@or' | '@not' | '@prox' Proximity.
+     simple ::= result-set | term.
 
-     Simple ::= ResultSet | Term.
+     result-set ::= '@set' string.
 
-     ResultSet ::= '@set' string.
+     term ::= string
 
-     Term ::= string | '"' string '"'.
+     proximity ::= exclusion distance ordered relation which-code unit-code.
 
-     Proximity ::= Exclusion Distance Ordered Relation WhichCode UnitCode.
+     exclusion ::= '1' | '0' | 'void'.
 
-     Exclusion ::= '1' | '0' | 'void'.
+     distance ::= integer.
 
-     Distance ::= integer.
+     ordered ::= '1' | '0'.
 
-     Ordered ::= '1' | '0'.
+     relation ::= integer.
 
-     Relation ::= integer.
+     which-code ::= 'known' | 'private' | integer.
 
-     WhichCode ::= 'known' | 'private' | integer.
-
-     UnitCode ::= integer.
-    </screen>
+     unit-code ::= integer.
+    </literallayout>
 
     <para>
      You will note that the syntax above is a fairly faithful
-     representation of RPN, except for the Attibute, which has been
+     representation of RPN, except for the Attribute, which has been
      moved a step away from the term, allowing you to associate one or more
      attributes with an entire query structure. The parser will
      automatically apply the given attributes to each term as required.
@@ -418,7 +414,7 @@ struct ccl_rpn_node *ccl_find_str (CCL_bibset bibset, const char *str,
 
    <para>
     The OID module provides a higher-level representation of the
-    family of object identifers which describe the Z39.50 protocol and its
+    family of object identifiers which describe the Z39.50 protocol and its
     related objects. The definition of the module interface is given in
     the <filename>oid.h</filename> file.
    </para>
@@ -584,7 +580,7 @@ typedef struct oident
 
     The <function>oid_ent_to_oid()</function> function can be used whenever
     you need to prepare a PDU containing one or more OIDs. The separation of
-    the <literal>protocol</literal> element from the remainer of the
+    the <literal>protocol</literal> element from the remainder of the
     OID-description makes it simple to write applications that can
     communicate with either Z39.50 or OSI SR-based applications.
    </para>