---
name: "Text::Query::Build"
section: "3pm"
platform: "linux"
package: "perl-text-query"
version: "0.09-5"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Text::Query::Build"
---

# Text::Query::Build(3pm)

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.

- 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)
