7 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
9 ###############################################################################
13 TmplToken.pm - Object representing a scanner token for .tmpl files
17 This is a class representing a token scanned from an HTML::Template .tmpl file.
21 ###############################################################################
28 ###############################################################################
32 my $class = ref($this) || $this;
35 ($self->{'_string'}, $self->{'_type'}, $self->{'_lc'}, $self->{'_path'}) = @_;
41 return $this->{'_string'}
46 return $this->{'_type'}
51 return $this->{'_path'}
61 return $this->{'_attr'};
66 $this->{'_attr'} = ref $_[0] eq 'HASH'? $_[0]: \@_;
70 # only meaningful for TEXT_PARAMETRIZED tokens
73 return $this->{'_kids'};
76 # only meaningful for TEXT_PARAMETRIZED tokens
79 $this->{'_kids'} = ref $_[0] eq 'ARRAY'? $_[0]: \@_;
83 # only meaningful for TEXT_PARAMETRIZED tokens
84 # FIXME: DIRECTIVE is not necessarily TMPL_VAR !!
85 sub parameters_and_fields {
87 return map { $_->type == TmplTokenType::DIRECTIVE? $_:
88 ($_->type == TmplTokenType::TAG
89 && $_->string =~ /^<input\b/is)? $_: ()}
93 # only meaningful for TEXT_PARAMETRIZED tokens
96 return map { $_->type == TmplTokenType::TAG && $_->string =~ /^<a\b/is? $_: ()} @{$this->{'_kids'}};
99 # only meaningful for TEXT_PARAMETRIZED tokens
102 return $this->{'_form'};
105 # only meaningful for TEXT_PARAMETRIZED tokens
108 $this->{'_form'} = $_[0];
114 return defined $this->{'_js_data'} && ref($this->{'_js_data'}) eq 'ARRAY';
119 return $this->{'_js_data'};
124 $this->{'_js_data'} = $_[0];
132 return $this->type == TmplTokenType::TAG;
137 return $this->type == TmplTokenType::CDATA;
142 return $this->type == TmplTokenType::TEXT;
145 sub text_parametrized_p {
147 return $this->type == TmplTokenType::TEXT_PARAMETRIZED;
152 return $this->type == TmplTokenType::DIRECTIVE;
155 ###############################################################################