Text::Query::Build - Base class for query builders


NAME

Text::Query::Build - Base class for query builders


SYNOPSIS

    package Text::Query::BuildMy;
    use Text::Query::Build;

    use vars qw(@ISA);
    @ISA = qw(Text::Query::Build);


DESCRIPTION

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.


METHODS

matchstring()
Return a string that represent the last built expression. Two identical expressions should generate the same string. This is for testing purpose.


CODE-GENERATION METHODS

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.

=item 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).


SEE ALSO

Text::Query(3)


AUTHORS

Eric Bohlman (ebohlman@netcom.com)

Loic Dachary (loic@senga.org)

 Text::Query::Build - Base class for query builders