NAME
Parse::Tokens - class for parsing text with embedded tokens
SYNOPSIS
package MyParser;
use base 'Parse::Tokens';
MyParser->new->parse({
text => q{Hi my name is <? $name ?>.},
hash => {name=>'John Doe'},
delimiters => [['<?','?>']],
});
# override SUPER::token
sub token
{
my( $self, $token ) = @_;
# $token->[0] - left bracket
# $token->[1] - contents
# $token->[2] - right bracket
# do something with the token...
}
# override SUPER::token
sub ether
{
my( $self, $text ) = @_;
# do something with the text...
}
DESCRIPTION Parse::Tokens
provides a base class for parsing delimited strings from text blocks. Use Parse::Tokens
as a base class for your own module or script. Very similar in style to HTML::Parser
.
SETTER/GETTER FUNCTIONS
- autoflush() Turn on autoflushing causing the template cash (not the text) to be purged before each call to parse();.
- delimiters() Specify delimiters as an array reference pointing to the left and right delimiters. Returns array reference containing two array references of delimiters and escaped delimiters.
- debug() Turn on debug mode. 1 is on, 0 is off.
- ether_callback() Sets/gets the callback code reference for the 'ether' event.
- flush() Flush the template cash.
- loose_paring() Allow any combination of delimiters to match. Default is turned of requiring exactly specified pair matches only.
- parse() Run the parser.
- post_callback() Sets/gets the callback code reference for the 'post_parse' event.
- pre_callback() Sets/gets the callback code reference for the 'pre_parse' event.
- push_delimiters() Add a delimiter pair (array ref) to the list of delimiters.
- new() Pass parameter as a hash reference. Options are: TEXT - a block of text; DELIMITERS - a array reference consisting of the left and right token delimiters (eg ['<?', '?>']); AUTOFLUSH - 0 or 1 (default). While these are all optional at initialization, both TEXT and DELIMITERS must be set prior to calling parse() or as parameters to parse().
- text() Load text.
- token_callback() Sets/gets the callback code reference for the 'token' event.
EVENT METHODS
- ether() Event method that gets called when non-token text is encountered during parsing.
- post_parse() Event method that gets called after parsing has completed.
- pre_parse() Event method that gets called prior to parsing commencing.
- token() Event method that gets called when a token is encountered during parsing.
CHANGES
0.25 - added support for callbacks. - improved debug messaging. - fixed bug in delimiter assignment. - rearranged distribution files. 0.24 - added sample script and sample data. 0.23 - fixed pseudo bug relation to regular expression 'o' option. - aliased 'add_delimiters' to 'push_delimiters'. - misc internal changes. 0.22 - add push_delimiters method for adding to the delimiter array. 0.21 - add pre_parse and post_parse methods; add minimal debug message support. 0.20 - add multi-token support.
AUTHOR
Steve McKay, steve@colgreen.com
COPYRIGHT
Copyright 2000-2001 by Steve McKay. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl(1).