Chess-Plisco
view release on metacpan or search on metacpan
lib/Chess/Plisco/Macro.pm view on Meta::CPAN
last;
}
}
return if !defined $pos;
# No arguments?
return if $pos == $#siblings;
# Skip insignicant tokens.
my $argidx;
for (my $i = $pos + 1; $i < @siblings; ++$i) {
if ($siblings[$i]->significant) {
$argidx = $i;
last;
}
}
return if !defined $argidx;
my @argnodes;
my $argnodes_parent = $parent;
if ($siblings[$argidx]->isa('PPI::Token::Structure')) {
# No arguments.
return;
} elsif ($siblings[$argidx]->isa('PPI::Structure::List')) {
# Call with parentheses. The only child should be an expression.
my @expression = $siblings[$argidx]->children;
return if @expression != 1;
$argnodes_parent = $expression[0];
return if !$argnodes_parent->isa('PPI::Statement::Expression');
@argnodes = $argnodes_parent->children;
} else {
for (my $i = $argidx; $i < @siblings; ++$i) {
# Call without parentheses.
if ($siblings[$i]->isa('PPI::Token::Structure')
&& ';' eq $siblings[$i]->content) {
last;
}
push @argnodes, $siblings[$i];
}
}
( run in 2.594 seconds using v1.01-cache-2.11-cpan-97f6503c9c8 )