146 lines
3.5 KiB
Perl
146 lines
3.5 KiB
Perl
package C4::TmplTokenType;
|
|
|
|
# Copyright 2011 Tamil
|
|
#
|
|
# This file is part of Koha.
|
|
#
|
|
# Koha is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Koha is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Koha; if not, see <http://www.gnu.org/licenses>.
|
|
|
|
use Modern::Perl;
|
|
require Exporter;
|
|
|
|
###############################################################################
|
|
|
|
=head1 NAME
|
|
|
|
C4::TmplTokenType.pm - Types of TmplToken objects
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
This is a Java-style "safe enum" singleton class for types of TmplToken objects.
|
|
The predefined constants are
|
|
|
|
=cut
|
|
|
|
###############################################################################
|
|
|
|
###############################################################################
|
|
|
|
use vars qw( $_text $_text_parametrized $_cdata
|
|
$_tag $_decl $_pi $_directive $_comment $_null $_unknown );
|
|
|
|
our ( @ISA, @EXPORT_OK );
|
|
|
|
BEGIN {
|
|
|
|
require Exporter;
|
|
@ISA = qw(Exporter);
|
|
@EXPORT_OK = qw(
|
|
TEXT
|
|
TEXT_PARAMETRIZED
|
|
CDATA
|
|
TAG
|
|
DECL
|
|
PI
|
|
DIRECTIVE
|
|
COMMENT
|
|
UNKNOWN
|
|
);
|
|
|
|
my $new = sub {
|
|
my $this = 'C4::TmplTokenType'; #shift;
|
|
my $class = ref($this) || $this;
|
|
my $self = {};
|
|
bless $self, $class;
|
|
( $self->{'id'}, $self->{'name'}, $self->{'desc'} ) = @_;
|
|
return $self;
|
|
};
|
|
$_text = &$new( 0, 'TEXT' );
|
|
$_text_parametrized = &$new( 8, 'TEXT-PARAMETRIZED' );
|
|
$_cdata = &$new( 1, 'CDATA' );
|
|
$_tag = &$new( 2, 'TAG' );
|
|
$_decl = &$new( 3, 'DECL' );
|
|
$_pi = &$new( 4, 'PI' );
|
|
$_directive = &$new( 5, 'DIRECTIVE' );
|
|
$_comment = &$new( 6, 'COMMENT' );
|
|
$_unknown = &$new( 7, 'UNKNOWN' );
|
|
}
|
|
|
|
sub to_string {
|
|
my $this = shift;
|
|
return $this->{'name'};
|
|
}
|
|
|
|
sub TEXT { $_text }
|
|
sub TEXT_PARAMETRIZED { $_text_parametrized }
|
|
sub CDATA { $_cdata }
|
|
sub TAG { $_tag }
|
|
sub DECL { $_decl }
|
|
sub PI { $_pi }
|
|
sub DIRECTIVE { $_directive }
|
|
sub COMMENT { $_comment }
|
|
sub UNKNOWN { $_unknown }
|
|
|
|
###############################################################################
|
|
|
|
=over
|
|
|
|
=item TEXT
|
|
|
|
normal text (#text in the DTD)
|
|
|
|
=item TEXT_PARAMETRIZED
|
|
|
|
parametrized normal text
|
|
(result of simple recognition of text interspersed with <TMPL_VAR> directives;
|
|
this has to be explicitly enabled in the scanner)
|
|
|
|
=item CDATA
|
|
|
|
normal text (CDATA in the DTD)
|
|
|
|
=item TAG
|
|
|
|
something that has the form of an HTML tag
|
|
|
|
=item DECL
|
|
|
|
something that has the form of an SGML declaration
|
|
|
|
=item PI
|
|
|
|
something that has the form of an SGML processing instruction
|
|
|
|
=item DIRECTIVE
|
|
|
|
a Template Toolkit directive
|
|
|
|
=item COMMENT
|
|
|
|
something that has the form of an HTML comment
|
|
(and is not recognized as an HTML::Template directive)
|
|
|
|
=item UNKNOWN
|
|
|
|
something that is not recognized at all by the scanner
|
|
|
|
=back
|
|
|
|
Note that end of file is currently represented by undef,
|
|
instead of a constant predefined by this module.
|
|
|
|
=cut
|
|
|
|
1;
|