1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
package HTML::Template::Compiled::Expression::Expressions;
use strict;
use warnings;
our $VERSION = '1.003'; # VERSION
package HTML::Template::Compiled::Expression::Defined;
use base qw(HTML::Template::Compiled::Expression);
sub init {
my ($self, $op) = @_;
$self->set_operands([$op]);
}
sub to_string {
my ($self) = @_;
my ($op) = $self->get_operands;
return "defined ( " . (ref $op ? $op->to_string : $op) . " )";
}
package HTML::Template::Compiled::Expression::Literal;
use base qw(HTML::Template::Compiled::Expression);
sub init {
my ($self, $op) = @_;
$self->set_operands([$op]);
}
sub to_string {
my ($self) = @_;
my ($op) = $self->get_operands;
return "$op";
}
package HTML::Template::Compiled::Expression::Ternary;
use base qw(HTML::Template::Compiled::Expression);
sub init {
my ($self, @ops) = @_;
$self->set_operands([@ops]);
}
sub to_string {
my ($self,$level) = @_;
my $indent = $self->level2indent($level);
my ($bool, $true, $false) = $self->get_operands;
return $indent . $bool->to_string($level) . ' ? ' .
(ref $true ? $true->to_string($level) : $true)
. ' : ' . (ref $false ? $false->to_string($level) : $false);
}
1;
|