File Coverage

lib/Perl/PrereqScanner/NotQuiteLite/Parser/Syntax.pm
Criterion Covered Total %
statement 22 25 88.0
branch 5 10 50.0
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 32 42 76.1


line stmt bran cond sub pod time code
1             package Perl::PrereqScanner::NotQuiteLite::Parser::Syntax;
2              
3 82     82   1248 use strict;
  82         165  
  82         2014  
4 82     82   358 use warnings;
  82         152  
  82         1594  
5 82     82   390 use Perl::PrereqScanner::NotQuiteLite::Util;
  82         228  
  82         30363  
6              
7             my %Unsupported = map {$_ => 1} qw(
8             );
9              
10              
11             sub register { return {
12 81     81 0 407 use => {
13             syntax => 'parse_syntax_args',
14             },
15             }}
16              
17             sub parse_syntax_args {
18 1     1 0 2 my ($class, $c, $used_module, $raw_tokens) = @_;
19              
20 1         9 my $tokens = convert_string_tokens($raw_tokens);
21              
22 1 50       4 if (is_version($tokens->[0])) {
23 0         0 $c->add($used_module => shift @$tokens);
24             }
25              
26 1 50       18 return if ref $tokens->[0];
27              
28 1         2 my $feature_name = $tokens->[0];
29              
30 1         11 my $name =
31             join '::',
32             map ucfirst,
33             split m{/},
34             join '',
35             map ucfirst,
36             split qr{_}, $feature_name;
37              
38 1         4 my $feature_module = "Syntax::Feature::$name";
39 1 50       3 if (is_module_name($feature_module)) {
40 1         4 $c->add($feature_module => 0);
41             }
42              
43 1 50       30 if ($feature_name =~ /^q[sil]$/) {
44 1         5 $c->register_quotelike_keywords($feature_name, 'q'.$feature_name);
45             }
46              
47             # Some of the features change syntax too much
48 1 50       124 if ($Unsupported{$feature_name}) {
49 0           $c->{aborted} = "syntax '$feature_name'";
50 0           $c->{ended} = 1;
51             }
52             }
53              
54             1;
55              
56             __END__