Text::Query::ParseAdvanced

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
Text::Query::ParseAdvUserdContributed Perl DocumText::Query::ParseAdvanced(3)



NAME
       Text::Query::ParseAdvanced - Parse AltaVista advanced query syntax

SYNOPSIS
	 use Text::Query;
	 my $q=new Text::Query(’hello and world’,
			       -parse => ’Text::Query::ParseAdvanced’,
			       -solve => ’Text::Query::SolveAdvancedString’,
			       -build => ’Text::Query::BuildAdvancedString’);

DESCRIPTION
       This module provides an object that parses a string containing a
       Boolean query expression similar to an AltaVista "advanced query".

       It’s base class is Text::Query::Parse;

       Query expressions consist of literal strings (or regexps) joined by
       the following operators, in order of precedence from lowest to high-
       est:

       OR, │
       AND, &
       NEAR, ~
       NOT, !

       Operator names are not case-sensitive.  Note that if you want to use a
       "│" in a regexp, you need to backwhack it to keep it from being seen
       as a query operator.  Sub-expressions may be quoted in single or dou-
       ble quotes to match "and," "or," or "not" literally and may be grouped
       in parentheses ("(, )") to alter the precedence of evaluation.

       A parenthesized sub-expression may also be concatenated with other
       sub- expressions to match sequences: "(Perl or Python) interpreter"
       would match either "Perl interpreter" or "Python interpreter".  Con-
       catenation has a precedence higher than NOT but lower than AND.	Jux-
       taposition of simple words has the highest precedence of all.

OPTIONS
       These are the additional options of the "prepare" method and the con-
       structor.

       -near defaults to 10
	   Sets the number of words that can occur between two expressions
	   and still satisfy the NEAR operator.

       -operators defaults to and, or, not, near
	   Sets the operator names. The argument of the option is a pointer
	   to a hash table mapping the default names to desired names. For
	   instance:

	       {
		   ’or’ => ’ou’,
		   ’and’ => ’et’,
		   ’near’ => ’proche’,
		   ’not’ => ’non’,
	       }

       -scope_map default to {}
	   Map the scope names to other names. If a scope is specified as
	   "scope:" search the map for an entry whose key is "scope" and
	   replace "scope" with the scalar found. For instance:

		{
		    ’scope’ => ’otherscope’
		}

SEE ALSO
       Text::Query(3) Text::Query::Parse(3)

AUTHORS
       Eric Bohlman (ebohlman@netcom.com)

       Loic Dachary (loic@senga.org)



perl v5.8.8			  1999-06-19	Text::Query::ParseAdvanced(3)