Branch Coverage

blib/lib/Pegex/Optimizer.pm
Criterion Covered Total %
branch 40 52 76.9


line true false branch
11 1 18 if $tree->{'+optimized'}
12 0 18 if $self->parser->{'maxparse'}
15 48 423 unless ref $node
31 11 1482 defined $max ? :
1493 91 unless defined $node->{'+min'}
33 71 1482 defined $min ? :
1553 31 unless defined $node->{'+max'}
35 1563 21 unless defined $node->{'+asr'}
38 0 3568 if $kind eq 'xxx'
39 1584 1984 if ($node->{'rule'} = $$node{".$kind"})
42 593 991 if ($kind eq 'ref')
43 0 593 unless my $rule = $node->{'rule'}
44 2 591 if (my $method = $self->grammar->can("rule_$rule")) { }
0 591 elsif (not $self->grammar->{'tree'}{$rule}) { }
48 0 0 if (my $method = $self->grammar->can("$rule"))
60 0 1584 unless $node->{'method'} ||= $self->parser->can("match_$kind")
65 441 1143 if ($node->{'kind'} =~ /^(?:all|any)$/) { }
593 550 elsif ($node->{'kind'} eq 'ref') { }
410 140 elsif ($node->{'kind'} eq 'rgx') { }
72 194 399 if (my $action = $self->receiver->can("got_$ref")) { }
375 24 elsif (my $gotrule = $self->receiver->can('gotrule')) { }
78 23 570 if ($self->parser->{'debug'})
106 0 23 $asr == 1 ? :
0 23 $asr == -1 ? :
112 23 0 if ($result = $self->$method($ref, $parent)) { }
130 0 0 if $counter++ >= $maxparse