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 94     94   1817 use strict;
  94         194  
  94         2825  
4 94     94   375 use warnings;
  94         152  
  94         3642  
5 94     94   420 use Perl::PrereqScanner::NotQuiteLite::Util;
  94         227  
  94         39164  
6              
7             my %Unsupported = map {$_ => 1} qw(
8             );
9              
10              
11             sub register { return {
12 93     93 0 502 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         3 my $tokens = convert_string_tokens($raw_tokens);
21              
22 1 50       2 if (is_version($tokens->[0])) {
23 0         0 $c->add($used_module => shift @$tokens);
24             }
25              
26 1 50       2 return if ref $tokens->[0];
27              
28 1         2 my $feature_name = $tokens->[0];
29              
30 1         16 my $name =
31             join '::',
32             map ucfirst,
33             split m{/},
34             join '',
35             map ucfirst,
36             split qr{_}, $feature_name;
37              
38 1         3 my $feature_module = "Syntax::Feature::$name";
39 1 50       2 if (is_module_name($feature_module)) {
40 1         3 $c->add($feature_module => 0);
41             }
42              
43 1 50       35 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       139 if ($Unsupported{$feature_name}) {
49 0           $c->{aborted} = "syntax '$feature_name'";
50 0           $c->{ended} = 1;
51             }
52             }
53              
54             1;
55              
56             __END__