Text::Query::ParseAdvanced
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)