Acme-Gosub
view release on metacpan or search on metacpan
lib/Acme/Gosub.pm view on Meta::CPAN
sub filter
{
my($self) = @_ ;
local $Acme::Gosub::file = (caller)[1];
my $status = 1;
$status = filter_read(1_000_000);
return $status if $status<0;
$_ = filter_blocks($_,$offset);
$_ = "# line $offset\n" . $_ if $offset; undef $offset;
return $status;
}
use Text::Balanced ':ALL';
sub line
{
my ($pretext,$offset) = @_;
($pretext=~tr/\n/\n/)+($offset||0);
}
lib/Acme/Gosub.pm view on Meta::CPAN
}
else
{
my $pos_source = pos($source);
# This is an Evil hack that meant to get Text::Balanced to do
# what we want. What happens is that we put an initial ";"
# so the end of the statement will be a ";" too.
my $source_for_text_balanced = ";" .
substr($source, $pos_source);
pos($source_for_text_balanced) = 0;
@pos = Text::Balanced::_match_codeblock(\$source_for_text_balanced,qr/\s*/,qr/;/,qr/;/,qr/[[{(<]/,qr/[]})>]/,undef)
or do {
die "Bad gosub statement (problem in the parentheses?) near $Acme::Gosub::file line ", line(substr($source_for_text_balanced,0,pos $source_for_text_balanced),$line), "\n";
};
my $future_pos_source = $pos_source + pos($source_for_text_balanced);
print join(",",@pos), "\n";
$arg = filter_blocks(substr($source_for_text_balanced,1,$pos[4]-$pos[0]),line(substr($source_for_text_balanced,0,1),$line));
print "\$arg = $arg\n";
pos($source) = $future_pos_source;
}
scripts/tag-release.pl view on Meta::CPAN
use IO::All;
my ($version) =
(map { m{\$VERSION *= *'([^']+)'} ? ($1) : () }
io->file('lib/Acme/Gosub.pm')->getlines()
)
;
if (!defined ($version))
{
die "Version is undefined!";
}
my @cmd = (
"hg", "tag", "-m",
"Tagging the Acme-Gosub release as $version",
"releases/$version",
);
print join(" ", @cmd), "\n";
exec(@cmd);
( run in 2.666 seconds using v1.01-cache-2.11-cpan-d80b1682f3f )