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 52 53 54
|
package PPIx::Utils::_Common;
# See the README of this distribution for copyright and license information.
use strict;
use warnings;
use Exporter 'import';
use Scalar::Util 'blessed';
our $VERSION = '0.003';
our @EXPORT_OK = qw(
is_ppi_expression_or_generic_statement
is_ppi_simple_statement
);
our %EXPORT_TAGS = (all => [@EXPORT_OK]);
# From Perl::Critic::Utils::PPI
sub is_ppi_expression_or_generic_statement {
my $element = shift;
return undef if not $element;
return undef if not $element->isa('PPI::Statement');
return 1 if $element->isa('PPI::Statement::Expression');
my $element_class = blessed($element);
return undef if not $element_class;
return $element_class eq 'PPI::Statement';
}
my %SIMPLE_STATEMENT_CLASS = map { $_ => 1 } qw<
PPI::Statement
PPI::Statement::Break
PPI::Statement::Include
PPI::Statement::Null
PPI::Statement::Package
PPI::Statement::Variable
>;
sub is_ppi_simple_statement {
my $element = shift or return undef;
my $element_class = blessed( $element ) or return undef;
return $SIMPLE_STATEMENT_CLASS{ $element_class };
}
# End from Perl::Critic::Utils::PPI
1;
=for Pod::Coverage *EVERYTHING*
=cut
|