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 ([email protected])
Loic Dachary ([email protected])