| inc/Pegex/Receiver.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| statement | 3 | 10 | 30.0 |
| branch | 0 | 4 | 0.0 |
| condition | 0 | 3 | 0.0 |
| subroutine | 1 | 2 | 50.0 |
| pod | 0 | 1 | 0.0 |
| total | 4 | 20 | 20.0 |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 1 | package Pegex::Receiver; | ||||||
| 2 | 4 | 4 | 21 | use Pegex::Base; | |||
| 4 | 8 | ||||||
| 4 | 27 | ||||||
| 3 | |||||||
| 4 | has parser => (); # The parser object. | ||||||
| 5 | |||||||
| 6 | # Flatten a structure of nested arrays into a single array in place. | ||||||
| 7 | sub flatten { | ||||||
| 8 | 0 | 0 | 0 | my ($self, $array, $times) = @_; | |||
| 9 | 0 | 0 | $times = -1 | ||||
| 10 | unless defined $times; | ||||||
| 11 | 0 | 0 | while ($times-- and grep {ref($_) eq 'ARRAY'} @$array) { | ||||
| 0 | |||||||
| 12 | 0 | 0 | @$array = map { | ||||
| 13 | 0 | (ref($_) eq 'ARRAY') ? @$_ : $_ | |||||
| 14 | } @$array; | ||||||
| 15 | } | ||||||
| 16 | 0 | return $array; | |||||
| 17 | } | ||||||
| 18 | |||||||
| 19 | 1; |