The indexed/boolean search engine for Gopher allows a client to query
an index for keywords.  The use of both text keywords and boolean operators
allows clients to tailor searches to their individual needs.  Everything
is based upon a "QUERY":

A QUERY consists an Expression, optionally	Query: expr {expr}
followed by another Expression; "AND" is 
assumed between multiple expressions.

Each EXPRESSION consists a Term, optionally	Expr: term {OR term}
followed by "OR" and another Term.

A TERM is a Factor, optionally followed by	Term: factor {and|not factor}
"AND" or "NOT" and another Factor.

A FACTOR can be a Token, or another Query.	Factor: (query) | token

A TOKEN is a keyword.				Token:  keyword

A KEYWORD is a string of alphabetic		Keyword: a-z{a-z}[*]
characters of any length.
