Contents
TopSYNOPSIS
Topuse Template::Parser;
$parser   = Template::Parser->new(\%config);
$template = $parser->parse($text)
    || die $parser->error(), "\n";
              DESCRIPTION
Top
                      The Template::Parser module implements a LALR(1) parser and
                      associated methods for parsing template documents into Perl code.
                    
PUBLIC METHODS
Topnew(\%params)
Top
                          The new() constructor creates and returns a reference to a
                          new Template::Parser object.
                        
A reference to a hash may be supplied as a parameter to provide configuration values. See CONFIGURATION OPTIONS below for a summary of these options and Template::Manual::Config for full details.
my $parser = Template::Parser->new({
    START_TAG => quotemeta('<+'),
    END_TAG   => quotemeta('+>'),
});
                  parse($text)
Top
                          The parse() method parses the text passed in the first
                          parameter and returns a reference to a hash array of data defining the
                          compiled representation of the template text, suitable for passing to the
                          Template::Document
                          new()
                          constructor method. On error, undef is returned.
                        
$data = $parser->parse($text)
    || die $parser->error();
                        
                          The $data hash reference returned contains a
                          BLOCK item containing the compiled Perl code for the
                          template, a DEFBLOCKS item containing a reference to a hash
                          array of sub-template BLOCKs defined within in the template,
                          and a METADATA item containing a reference to a hash array
                          of metadata values defined in META tags.
                        
CONFIGURATION OPTIONS
Top
                      The Template::Parser module accepts the following
                      configuration options. Please see Template::Manual::Config
                      for futher details on each option.
                    
START_TAG, END_TAG
TopTAG_STYLE
TopPRE_CHOMP, POST_CHOMP
TopThe PRE_CHOMP and POST_CHOMP can be set to remove any whitespace before or after a directive tag, respectively.
my $parser = Template::Parser-E<gt>new({
    PRE_CHOMP  => 1,
    POST_CHOMP => 1,
});
                  INTERPOLATE
TopThe INTERPOLATE flag can be set to allow variables to be embedded in plain text blocks.
my $parser = Template::Parser->new({ 
    INTERPOLATE => 1,
});
                        
                          Variables should be prefixed by a $ to identify them, using
                          curly braces to explicitly scope the variable name where necessary.
                        
Hello ${name},
The day today is ${day.today}.
                  ANYCASE
TopThe ANYCASE option can be set to allow directive keywords to be specified in any case.
# with ANYCASE set to 1 [% INCLUDE foobar %] # OK [% include foobar %] # OK [% include = 10 %] # ERROR, 'include' is a reserved word
GRAMMAR
TopThe GRAMMAR configuration item can be used to specify an alternate grammar for the parser. This allows a modified or entirely new template language to be constructed and used by the Template Toolkit.
use MyOrg::Template::Grammar;
my $parser = Template::Parser->new({ 
    GRAMMAR = MyOrg::Template::Grammar->new();
});
                        
                          By default, an instance of the default Template::Grammar will be created
                          and used automatically if a GRAMMAR item isn't specified.
                        
AUTHOR
TopAndy Wardley <abw@wardley.org> http://wardley.org/
COPYRIGHT
TopCopyright (C) 1996-2007 Andy Wardley. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
                      The main parsing loop of the Template::Parser module was
                      derived from a standalone parser generated by version 0.16 of the
                      Parse::Yapp module. The following copyright notice appears
                      in the Parse::Yapp documentation.
                    
The Parse::Yapp module and its related modules and shell scripts are copyright (c) 1998 Francois Desarmenien, France. All rights reserved. You may use and distribute them under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.