Text::Query

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
Text::Query(3)	     User Contributed Perl Documentation       Text::Query(3)



NAME
       Text::Query - Query processing framework

SYNOPSIS
	   use Text::Query;

	   # Constructor
	   $query = Text::Query->new([QSTRING] [OPTIONS]);

	   # Methods
	   $query->prepare(QSTRING [OPTIONS]);
	   $query->match([TARGET]);
	   $query->matchscalar([TARGET]);

DESCRIPTION
       This module provides an object that matches a data source against a
       query expression.

       Query expressions are compiled into an internal form when a new object
       is created or the "prepare" method is called; they are not recompiled
       on each match.

       The class provided by this module uses four packages to process the
       query.  The query parser parses the question and calls a query expres-
       sion builder (internal form of the question). The optimizer is then
       called to reduce the complexity of the expression. The solver applies
       the expression on a data source.

       The following parsers are provided:

       Text::Query::ParseAdvanced
       Text::Query::ParseSimple

       The following builders are provided:

       Text::Query::BuildAdvancedString
       Text::Query::BuildSimpleString

       The following solver is provided:

       Text::Query::SolveSimpleString
       Text::Query::SolveAdvancedString

EXAMPLES
	 use Text::Query;
	 my $q=new Text::Query(’hello and world’,
			       -parse => ’Text::Query::ParseAdvanced’,
			       -solve => ’Text::Query::SolveAdvancedString’,
			       -build => ’Text::Query::BuildAdvancedString’);
	 die "bad query expression" if not defined $q;
	 print if $q->match;
	 ...
	 $q->prepare(’goodbye or adios or ta ta’,
		     -litspace => 1,
		     -case => 1);
	 #requires single space between the two ta’s
	 if($q->match($line)) {
	 #doesn’t match "Goodbye"
	 ...
	 $q->prepare(’"and" or "or"’);
	 #quoting operators for literal match
	 ...
	 $q->prepare(’\\bintegrate\\b’, -regexp => 1);
	 #won’t match "disintegrated"

CONSTRUCTOR
       new ([QSTRING] [OPTIONS])
	   This is the constructor for a new Text::Query object.  If a
	   "QSTRING" is given it will be compiled to internal form.

	   "OPTIONS" are passed in a hash like fashion, using key and value
	   pairs.  Possible options are:

	   -parse - Package name of the parser. Default is Text::Query::Pars-
	   eSimple.

	   -build - Package name of the builder. Default is
	   Text::Query::Build.

	   -optimize - Package name of the optimizer. Default is
	   Text::Query::Optimize.

	   -solve - Package name of the solver. Default is
	   Text::Query::Solve.

	   -mode - Name of predefined group of packages to use.	 Options are
		      currently "simple_text" and "advanced_text".

	   These options are handled by the "configure" method.

	   All other options are passed to the parser "prepare" function.
	   See the corresponding manual pages for a description.

	   If "QSTRING" is undefined, the prepare function is not called.

	   The constructor will croak if a "QSTRING" was supplied and had
	   illegal syntax.

METHODS
       configure ([OPTIONS])
	   Set the "parse", "build", "optimize" or "solve" packages. See the
	   "CONSTRUCTOR" description for explanations.

       prepare (QSTRING [OPTIONS])
	   Compiles the query expression in "QSTRING" to internal form and
	   sets any options (same as in the constructor).  "prepare" may be
	   used to change the query expression and options for an existing
	   query object.  If "OPTIONS" are omitted, any options set by a pre-
	   vious call to "prepare" are persistent.

	   The optimizer (-optimize) is called with the result of the parser
	   (-parse).  The parser uses the builder (-build) to construct the
	   internal form.

	   This method returns a reference to the query object if the syntax
	   of the expression was legal, or croak if not.

       match ([TARGET])
	   Calls the match method of the solver (-solve).

       matchscalar ([TARGET])
	   Calls the matchscalar method of the solver (-solve).

SEE ALSO
       Text::Query::ParseAdvanced(3), Text::Query::ParseSimple(3),
       Text::Query::BuildSimpleString(3), Text::Query::BuildAdvanedString(3),
       Text::Query::SolveSimpleString(3), Text::Query::SolveAdvanced-
       String(3),

       Text::Query::Build(3), Text::Query::Parse(3), Text::Query::Solve(3),
       Text::Query::Optimize(3)

AUTHORS
       Eric Bohlman (ebohlman@netcom.com)

       Loic Dachary (loic@senga.org)



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