1package HTML::TokeParser::Simple::Token;
2
3use strict;
4
5our $VERSION  = '3.16';
6
7sub new {
8    my ($class, $token) = @_;
9    $class->_croak("This class should not be instantiated") if __PACKAGE__ eq $class;
10    return bless $token, $class;
11}
12
13sub _croak {
14    my ($proto, $message) = @_;
15    require Carp;
16    Carp::croak($message);
17}
18
19sub _carp {
20    my ($proto, $message) = @_;
21    require Carp;
22    Carp::carp($message);
23}
24
25sub is_tag         {}
26sub is_start_tag   {}
27sub is_end_tag     {}
28sub is_text        {}
29sub is_comment     {}
30sub is_declaration {}
31sub is_pi          {}
32sub is_process_instruction {}
33
34sub rewrite_tag    { shift }
35sub delete_attr    {}
36sub set_attr       {}
37sub get_tag        {}
38sub return_tag     {}  # deprecated
39sub get_attr       {}
40sub return_attr    {}  # deprecated
41sub get_attrseq    {}
42sub return_attrseq {}  # deprecated
43sub get_token0     {}
44sub return_token0  {}  # deprecated
45
46# get_foo methods
47
48sub return_text {
49    my ($self) = @_;
50    $self->_carp('return_text() is deprecated.  Use as_is() instead');
51    goto &as_is;
52}
53
54sub as_is { return shift->[-1] }
55
561;
57
58__END__
59
60=head1 NAME
61
62HTML::TokeParser::Simple::Token - Base class for C<HTML::TokeParser::Simple>
63tokens.
64
65=head1 SYNOPSIS
66
67 use HTML::TokeParser::Simple;
68 my $p = HTML::TokeParser::Simple->new( $somefile );
69
70 while ( my $token = $p->get_token ) {
71     # This prints all text in an HTML doc (i.e., it strips the HTML)
72     next unless $token->is_text;
73     print $token->as_is;
74 }
75
76=head1 DESCRIPTION
77
78This is the base class for all returned tokens.  It should never be
79instantiated directly.  In fact, it will C<croak()> if it is.
80
81=head1 METHODS
82
83The following list of methods are provided by this class.  Most of these are
84stub methods which must be overridden in a subclass.  See
85L<HTML::TokeParser::Simple> for descriptions of these methods.
86
87=over 4
88
89=item * as_is
90
91=item * delete_attr
92
93=item * get_attr
94
95=item * get_attrseq
96
97=item * get_tag
98
99=item * get_token0
100
101=item * is_comment
102
103=item * is_declaration
104
105=item * is_end_tag
106
107=item * is_pi
108
109=item * is_process_instruction
110
111=item * is_start_tag
112
113=item * is_tag
114
115=item * is_text
116
117=item * return_attr
118
119=item * return_attrseq
120
121=item * return_tag
122
123=item * return_text
124
125=item * return_token0
126
127=item * rewrite_tag
128
129=item * set_attr
130
131=back
132