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
Q1ORQ2 - build_expression_finish(Q1)
 - 
Generate any code needed to enclose an expression.
 - build_conj(Q1,Q2,F)
 - 
Generate code needed to match
Q1ANDQ2. 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
Q1NEARQ2. - build_concat(Q1,Q2)
 - 
Generate code needed to match
Q1immediately followed byQ2. - build_negation(Q1)
 - 
Generate code needed to match NOT
Q1. - build_literal(Q1)
 - 
Generate code to match
Q1as a literal. - build_scope_start($scope)
 - 
Generate code to enter in the
$scopequery context. - build_scope_end($scope,Q1)
 - 
Generate code needed to match
Q1in the$scopecontext. - 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)