Text::Query::Parse(3)

NAME
Text::Query::Parse - Base class for query parsers

SYNOPSIS
    package Text::Query::ParseThisSyntax;

    use Text::Query::Parse;

    use vars qw(@ISA);

    @ISA = qw(Text::Query::Parse);

DESCRIPTION
This module provides a virtual base class for query parsers.

It defines the "prepare" method that is called by the "Text::Query" object to compile the query string.

MEMBERS

-build Pointer to a Text::Query::Build object.
scope Scope stack. Defines the context in which the query must be solved.
token The current token. Destroyed by "prepare".
tokens A reference to the list of all the tokens. Filled by parse_tokens. Destroyed by "prepare".
parseopts A reference to a hash table containing all the parameters given to the "prepare" function.
-verbose Integer indicating the desired verbose level.

METHODS

prepare (QSTRING [OPTIONS])
    Compiles the query expression in "QSTRING" to internal form and sets any options. First calls "build_init" to reset the builder and destroy the "token" and "tokens" members. Then calls "parse_tokens" to fill the "tokens" member. Then calls "expression" to use the tokens from "tokens". The "expression" is expected to call the "build_*" functions to build the compiled expression. At last calls "build_final_expression" with the result of "expression".

    A derived parser must redefine this function to define default values for specific options.

expression ()
    Must be redefined by derived package. Returns the internal form of the question built from "build_*" functions using the "tokens".

parse_tokens (QSTRING)
    Must be redefined by derived package. Parses the "QSTRING" scalar and fills the "tokens" member with lexical units.

build_*
    Shortcuts to the corresponding function of the Text::Query::Build object found in the "-build" member.

OPTIONS
These are the options of the "prepare" method and the constructor.

-quotes defaults to \'\"
    Defines the quote characters.

-case defaults to 0
    If true, do case-sensitive match.

-litspace defaults to 0
    If true, match spaces (except between operators) in "QSTRING" literally. If false, match spaces as "\s+".

-regexp defaults to 0
    If true, treat patterns in "QSTRING" as regular expressions rather than literal text.

-whole defaults to 0
    If true, match whole words only, not substrings of words.

SEE ALSO
Text::Query(3)

AUTHORS
Eric Bohlman (ebohlman@netcom.com)

Loic Dachary (loic@senga.org)