Manual Reference Pages - HTML::MASON::LEXER (3)
HTML::Mason::Lexer - Generates events based on component source lexing
my $lexer = HTML::Mason::Lexer->new;
$lexer->lex( comp_source => $source, name => $comp_name, compiler => $compiler );
The Lexer works in tandem with the Compiler to turn Mason component
source into something else, generally Perl code.
As the lexer finds component elements, like a tag or block, it calls
the appropriate event methods in the compiler object it was given.
It has only a few public methods.
You can replace this lexer with one of your own simply by telling the
Compiler to use a different lexer class. Your lexer class simply
needs to call the appropriate methods in the Component Classs API as
it scans the source.
The lexer has very few public methods.
This method creates a new Lexer object. This methods takes no
lex ( comp_source => ..., name => ..., compiler => ... )
This method tells the lexer to start scanning the given component
source. All of these parameters are required. The name parameter
will be used in any error messages generated during lexing. The
compiler object must be an object that implements the Mason
The current line number that the lexer has reached.
The name of the component currently being lexed.
This throws an HTML::Mason::Exception::Syntax error with the given
error message as well as additional information about the component
This method is used by both the Lexer and the Compiler.
Any subclass of the lexer should declare itself to be a subclass of
HTML::Mason::Lexer, even if it plans to override all of its public
If you want your subclass to work with the existing Compiler classes
in Mason, you must implement the methods listed above. If you plan to
use a custom Compiler class that youre writing, you can do whatever
We recommend that any parameters you add to Lexer be read-only,
because the compiler object_id is only computed once on creation
and would not reflect any changes to Lexer parameters.
|perl v5.20.3 ||HTML::MASON::LEXER (3) ||2014-11-15 |
Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.