Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / PPI / Token / Quote.pm
CommitLineData
3fea05b9 1package PPI::Token::Quote;
2
3=pod
4
5=head1 NAME
6
7PPI::Token::Quote - String quote abstract base class
8
9=head1 INHERITANCE
10
11 PPI::Token::Quote
12 isa PPI::Token
13 isa PPI::Element
14
15=head1 DESCRIPTION
16
17The C<PPI::Token::Quote> class is never instantiated, and simply
18provides a common abstract base class for the four quote classes.
19In PPI, a "quote" is limited to only the quote-like things that
20themselves directly represent a string. (although this includes
21double quotes with interpolated elements inside them).
22
23The subclasses of C<PPI::Token::Quote> are:
24
25=over 2
26
27=item C<''> - L<PPI::Token::Quote::Single>
28
29=item C<q{}> - L<PPI::Token::Quote::Literal>
30
31=item C<""> - L<PPI::Token::Quote::Double>
32
33=item C<qq{}> - L<PPI::Token::Quote::Interpolate>
34
35=back
36
37The names are hopefully obvious enough not to have to explain what
38each class is here. See their respective pages for more details.
39
40Please note that although the here-doc B<does> represent a literal
41string, it is such a nasty piece of work that in L<PPI> it is given the
42honor of its own token class (L<PPI::Token::HereDoc>).
43
44=head1 METHODS
45
46=cut
47
48use strict;
49use PPI::Token ();
50
51use vars qw{$VERSION @ISA};
52BEGIN {
53 $VERSION = '1.206';
54 @ISA = 'PPI::Token';
55}
56
57
58
59
60
61#####################################################################
62# PPI::Token::Quote Methods
63
64=pod
65
66=head2 string
67
68The C<string> method is provided by all four ::Quote classes. It won't
69get you the actual literal Perl value, but it will strip off the wrapping
70of the quotes.
71
72 # The following all return foo from the ->string method
73 'foo'
74 "foo"
75 q{foo}
76 qq <foo>
77
78=begin testing string 15
79
80# Prove what we say in the ->string docs
81my $Document = PPI::Document->new(\<<'END_PERL');
82 'foo'
83 "foo"
84 q{foo}
85 qq <foo>
86END_PERL
87isa_ok( $Document, 'PPI::Document' );
88
89my $quotes = $Document->find('Token::Quote');
90is( ref($quotes), 'ARRAY', 'Found quotes' );
91is( scalar(@$quotes), 4, 'Found 4 quotes' );
92foreach my $Quote ( @$quotes ) {
93 isa_ok( $Quote, 'PPI::Token::Quote');
94 can_ok( $Quote, 'string' );
95 is( $Quote->string, 'foo', '->string returns "foo" for '
96 . $Quote->content );
97}
98
99=end testing
100
101=cut
102
103#sub string {
104# my $class = ref $_[0] || $_[0];
105# die "$class does not implement method ->string";
106#}
107
108=pod
109
110=head2 literal
111
112The C<literal> method is provided by ::Quote:Literal and
113::Quote::Single. This returns the value of the string as Perl sees
114it: without the quote marks and with C<\\> and C<\'> resolved to C<\>
115and C<'>.
116
117The C<literal> method is not implemented by ::Quote::Double or
118::Quote::Interpolate yet.
119
120=cut
121
1221;
123
124=pod
125
126=head1 SUPPORT
127
128See the L<support section|PPI/SUPPORT> in the main module.
129
130=head1 AUTHOR
131
132Adam Kennedy E<lt>adamk@cpan.orgE<gt>
133
134=head1 COPYRIGHT
135
136Copyright 2001 - 2009 Adam Kennedy.
137
138This program is free software; you can redistribute
139it and/or modify it under the same terms as Perl itself.
140
141The full text of the license can be found in the
142LICENSE file included with this module.
143
144=cut