File Coverage

grammar.yp
Criterion Covered Total %
statement 21 32 65.6
branch 7 10 70.0
condition n/a
subroutine 6 7 85.7
pod n/a
total 34 49 69.3


line stmt bran cond sub pod time code
1             %token OP_ASSIGNMENT
2             %token KEY
3             %token TEXT_Q_SINGLE
4             %token TEXT_Q_DOUBLE
5             %token TEXT_NONQUOTED
6             %start pairs
7              
8             %%
9             pairs : pair
10             | pairs pair
11             | pairs EOI
12             ;
13              
14             pair : KEY OP_ASSIGNMENT string
15             {
16 6     6   199 my $data = $_[0]->YYData->{DATA};
17              
18 6 100       45 if (exists $data->{$_[1]}) {
19 1         3 my $val = $data->{$_[1]};
20              
21 1 50       4 if (ref $val eq 'ARRAY') {
22 0         0 push @{ $val }, $_[3];
  0         0  
23             } else {
24 1         5 $data->{$_[1]} = [ $val, $_[3] ];
25             }
26             } else {
27 5         22 $data->{$_[1]} = $_[3];
28             }
29             }
30             | OP_ASSIGNMENT string
31             {
32 0     2   0 my $data = $_[0]->YYData->{DATA};
33              
34 0 50       0 if (exists $data->{''}) {
35 1         89 my $val = $data->{''};
36              
37 2 50       60 if (ref $val eq 'ARRAY') {
38 2         16 push @{ $val }, $_[2];
  2         4  
39             } else {
40 2         7 $data->{''} = [ $val, $_[2] ];
41             }
42             } else {
43 2         3 $data->{''} = $_[2];
44             }
45             }
46             | string
47             {
48 2     2   8 my $data = $_[0]->YYData->{DATA};
49              
50 0         0 if (exists $data->{''}) {
51 0         0 my $val = $data->{''};
52              
53 2 100       57 if (ref $val eq 'ARRAY') {
54 2         14 push @{ $val }, $_[1];
  1         33  
55             } else {
56 1         5 $data->{''} = [ $val, $_[1] ];
57             }
58             } else {
59 0         0 $data->{''} = $_[1];
60             }
61             }
62             ;
63              
64             string : TEXT_Q_SINGLE
65 0     0   0 { chop $_[1]; substr $_[1], 1; }
  1         5  
66             | TEXT_Q_DOUBLE
67 1     1   5 { chop $_[1]; substr $_[1], 1; }
  0         0  
68             | TEXT_NONQUOTED
69 0     1   0 { $_[1] }
70             | KEY
71 1     8   37 { $_[1] }
72 0         0 ;
73              
74             %%
75 1         4 # vim:ts=4:et:sw=4