Text::Query::ParseAdvanced - Parse AltaVista advanced query syntax |
Text::Query::ParseAdvanced - Parse AltaVista advanced query syntax
use Text::Query; my $q=new Text::Query('hello and world', -parse => 'Text::Query::ParseAdvanced', -solve => 'Text::Query::SolveAdvancedString', -build => 'Text::Query::BuildAdvancedString');
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 highest:
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 double 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''. Concatenation has a
precedence higher than NOT but lower than AND. Juxtaposition of
simple words has the highest precedence of all.
These are the additional options of the prepare
method and the constructor.
{ 'or' => 'ou', 'and' => 'et', 'near' => 'proche', 'not' => 'non', }
scope:
search the map for an entry whose key is scope
and replace scope
with
the scalar found. For instance:
{ 'scope' => 'otherscope' }
Text::Query(3) Text::Query::Parse(3)
Eric Bohlman (ebohlman@netcom.com)
Loic Dachary (loic@senga.org)
Text::Query::ParseAdvanced - Parse AltaVista advanced query syntax |