Acme-URM
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Acme/URM.pm view on Meta::CPAN
package Acme::URM;
use strict;
use Data::Dumper;
our $VERSION = '0.02';
use constant LAST => -1;
use constant THIS => -2;
use constant MAX_STEPS => -3;
my $DEBUG = 0;
sub import {
foreach (@_) {
if(/^debug$/) {
$DEBUG = 1;
}
}
}
sub new {
my $class = shift;
my $self = {@_};
$self = bless $self, $class;
$self->_init();
$self
}
sub _init {
my $self = shift;
$self->{registers} = ();
$self->{program} = ();
$self->{instr_num} = 0;
$self->{max_steps} = -1; # infinite
}
sub program {
my $self = shift;
push @{$self->{program}}, @_ if scalar @_;
[$self->{program}]
}
sub clear_program {
my $self = shift;
$self->{program} = ();
}
sub register {
my $self = shift;
my $n = shift || 0;
my $i = $n;
foreach (@_) {
$self->{registers}[$i++] = $_;
}
(defined $self->{registers}[$n]) ? $self->{registers}[$n] : 0
}
sub clear_registers {
my $self = shift;
$self->{registers} = [];
}
sub clear {
my $self = shift;
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.204 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )