[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 2 require 5; 3 package Pod::Simple::PullParserStartToken; 4 use Pod::Simple::PullParserToken (); 5 @ISA = ('Pod::Simple::PullParserToken'); 6 use strict; 7 8 sub new { # Class->new(tagname, optional_attrhash); 9 my $class = shift; 10 return bless ['start', @_], ref($class) || $class; 11 } 12 13 # Purely accessors: 14 15 sub tagname { (@_ == 2) ? ($_[0][1] = $_[1]) : $_[0][1] } 16 sub tag { shift->tagname(@_) } 17 18 sub is_tagname { $_[0][1] eq $_[1] } 19 sub is_tag { shift->is_tagname(@_) } 20 21 22 sub attr_hash { $_[0][2] ||= {} } 23 24 sub attr { 25 if(@_ == 2) { # Reading: $token->attr('attrname') 26 ${$_[0][2] || return undef}{ $_[1] }; 27 } elsif(@_ > 2) { # Writing: $token->attr('attrname', 'newval') 28 ${$_[0][2] ||= {}}{ $_[1] } = $_[2]; 29 } else { 30 require Carp; 31 Carp::croak( 32 'usage: $object->attr("val") or $object->attr("key", "newval")'); 33 return undef; 34 } 35 } 36 37 1; 38 39 40 __END__ 41 42 =head1 NAME 43 44 Pod::Simple::PullParserStartToken -- start-tokens from Pod::Simple::PullParser 45 46 =head1 SYNOPSIS 47 48 (See L<Pod::Simple::PullParser>) 49 50 =head1 DESCRIPTION 51 52 When you do $parser->get_token on a L<Pod::Simple::PullParser> object, you might 53 get an object of this class. 54 55 This is a subclass of L<Pod::Simple::PullParserToken> and inherits all its methods, 56 and adds these methods: 57 58 =over 59 60 =item $token->tagname 61 62 This returns the tagname for this start-token object. 63 For example, parsing a "=head1 ..." line will give you 64 a start-token with the tagname of "head1", token(s) for its 65 content, and then an end-token with the tagname of "head1". 66 67 =item $token->tagname(I<somestring>) 68 69 This changes the tagname for this start-token object. 70 You probably won't need 71 to do this. 72 73 =item $token->tag(...) 74 75 A shortcut for $token->tagname(...) 76 77 =item $token->is_tag(I<somestring>) or $token->is_tagname(I<somestring>) 78 79 These are shortcuts for C<< $token->tag() eq I<somestring> >> 80 81 =item $token->attr(I<attrname>) 82 83 This returns the value of the I<attrname> attribute for this start-token 84 object, or undef. 85 86 For example, parsing a LZ<><Foo/"Bar"> link will produce a start-token 87 with a "to" attribute with the value "Foo", a "type" attribute with the 88 value "pod", and a "section" attribute with the value "Bar". 89 90 =item $token->attr(I<attrname>, I<newvalue>) 91 92 This sets the I<attrname> attribute for this start-token object to 93 I<newvalue>. You probably won't need to do this. 94 95 =item $token->attr_hash 96 97 This returns the hashref that is the attribute set for this start-token. 98 This is useful if (for example) you want to ask what all the attributes 99 are -- you can just do C<< keys %{$token->attr_hash} >> 100 101 =back 102 103 104 You're unlikely to ever need to construct an object of this class for 105 yourself, but if you want to, call 106 C<< 107 Pod::Simple::PullParserStartToken->new( I<tagname>, I<attrhash> ) 108 >> 109 110 =head1 SEE ALSO 111 112 L<Pod::Simple::PullParserToken>, L<Pod::Simple>, L<Pod::Simple::Subclassing> 113 114 =head1 COPYRIGHT AND DISCLAIMERS 115 116 Copyright (c) 2002 Sean M. Burke. All rights reserved. 117 118 This library is free software; you can redistribute it and/or modify it 119 under the same terms as Perl itself. 120 121 This program is distributed in the hope that it will be useful, but 122 without any warranty; without even the implied warranty of 123 merchantability or fitness for a particular purpose. 124 125 =head1 AUTHOR 126 127 Sean M. Burke C<sburke@cpan.org> 128 129 =cut 130
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |