Text::Query::Build - Base class for query builders
package Text::Query::BuildMy;
use Text::Query::Build;
use vars qw(@ISA);
@ISA = qw(Text::Query::Build);
This module provides a virtual base class for query builders.
Query builders are called by the parser logic. A given set of
functions is provided by the builder to match a Boolean logic. All the
methods return a scalar corresponding to the code that performs the
specified options.
Parameters Q1 and Q2 are the same type of scalar as the return
values.
- matchstring()
- Return a string that represent the last built expression. Two identical
expressions should generate the same string. This is for testing
purpose.
- build_init()
- Called before building the expression. A chance to initialize object
data.
- build_final_expression(Q1)
- Does any final processing to generate code to match a top-level
expression. The return value is NOT necessarily of a type that can be
passed to the other code-generation methods.
- build_expression(Q1,Q2)
- Generate code to match "Q1" OR
"Q2"
- build_expression_finish(Q1)
- Generate any code needed to enclose an expression.
- build_conj(Q1,Q2,F)
- Generate code needed to match "Q1" AND
"Q2". F will be true if this is the
first time this method is called in a sequence of several
conjunctions.
- build_near(Q1,Q2)
- Generate code needed to match "Q1" NEAR
"Q2".
- build_concat(Q1,Q2)
- Generate code needed to match "Q1"
immediately followed by "Q2".
- build_negation(Q1)
- Generate code needed to match NOT
"Q1".
- build_literal(Q1)
- Generate code to match "Q1" as a
literal.
- build_scope_start($scope)
- Generate code to enter in the $scope query
context.
- build_scope_end($scope,Q1)
- Generate code needed to match "Q1" in
the $scope context.
- build_mandatory(Q1)
- Generate code to match "Q1" (think + in
AltaVista syntax).
- build_forbiden(Q1)
- Generate code to match NOT "Q1" (think -
in AltaVista syntax).
Eric Bohlman (ebohlman@netcom.com)
Loic Dachary (loic@senga.org)