Alt-IO-All-new
view release on metacpan or search on metacpan
inc/TestML/Runtime.pm view on Meta::CPAN
use TestML::Base;
has testml => ();
has bridge => ();
has library => ();
has compiler => ();
has skip => ();
has function => ();
has error => ();
has global => ();
has base => ();
sub BUILD {
my ($self) = @_;
$TestML::Runtime::Singleton = $self;
$self->{base} ||= $0 =~ m!(.*)/! ? $1 : ".";
}
sub run {
my ($self) = @_;
inc/TestML/Runtime.pm view on Meta::CPAN
$self->{base} .= '/' . $1 if $1;
$self->{testml} = $self->read_testml_file($self->testml);
}
$self->{function} = $self->compiler->new->compile($self->testml)
or die "TestML document failed to compile";
}
sub initialize_runtime {
my ($self) = @_;
$self->{global} = $self->function->outer;
$self->{global}->setvar(Block => TestML::Block->new);
$self->{global}->setvar(Label => TestML::Str->new(value => '$BlockLabel'));
$self->{global}->setvar(True => $TestML::Constant::True);
$self->{global}->setvar(False => $TestML::Constant::False);
$self->{global}->setvar(None => $TestML::Constant::None);
$self->{global}->setvar(TestNumber => TestML::Num->new(value => 0));
$self->{global}->setvar(Library => TestML::List->new);
my $library = $self->function->getvar('Library');
for my $lib ($self->bridge, $self->library) {
if (ref($lib) eq 'ARRAY') {
$library->push($_->new) for @$lib;
}
else {
$library->push($lib->new);
}
}
( run in 0.643 second using v1.01-cache-2.11-cpan-49f99fa48dc )