Text::Query::Parse - Base class for query parsers
package Text::Query::ParseThisSyntax;
use Text::Query::Parse;
use vars qw(@ISA);
@ISA = qw(Text::Query::Parse);
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.
- -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.
- 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.
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.
Eric Bohlman (ebohlman@netcom.com)
Loic Dachary (loic@senga.org)