Branch Coverage

blib/lib/Pegex/Parser.pm
Criterion Covered Total %
branch 91 156 58.3


line true false branch
34 0 19 defined $Pegex::Parser::Debug ? :
0 19 defined $ENV{'PERL_PEGEX_DEBUG'} ? :
19 2 unless defined $self->{'debug'}
39 0 21 defined $Pegex::Parser::DebugIndent ? :
0 21 defined $ENV{'PERL_PEGEX_DEBUG_INDENT'} ? :
21 0 unless defined $self->{'debug_indent'}
43 0 21 if not length $self->{'debug_indent'} or $self->{'debug_indent'} =~ tr[0-9][\000-/:-\377]c or $self->{'debug_indent'} < 0
46 2 19 if ($self->{'debug'})
50 0 2 defined $Pegex::Parser::DebugColor ? :
0 2 defined $ENV{'PERL_PEGEX_DEBUG_COLOR'} ? :
2 0 unless defined $self->{'debug_color'}
59 2 0 defined $self->{'debug_color'} ? :
61 0 0 -t STDERR ? :
2 0 $c =~ /^\d+$/ ? :
0 2 $c eq 'never' ? :
0 2 $c eq 'auto' ? :
0 2 $c eq 'always' ? :
65 2 0 if ($self->{'debug_color'})
67 0 2 if ($Term::ANSIColor::VERSION < 3)
77 0 21 defined $Pegex::Parser::RecursionLimit ? :
0 21 defined $ENV{'PERL_PEGEX_RECURSION_LIMIT'} ? :
21 0 unless defined $self->{'recursion_limit'}
81 0 21 defined $Pegex::Parser::RecursionWarnLimit ? :
0 21 defined $ENV{'PERL_PEGEX_RECURSION_WARN_LIMIT'} ? :
21 0 unless defined $self->{'recursion_warn_limit'}
85 0 21 defined $Pegex::Parser::IterationLimit ? :
0 21 defined $ENV{'PERL_PEGEX_ITERATION_LIMIT'} ? :
21 0 unless defined $self->{'iteration_limit'}
95 0 19 if $start
100 18 1 !ref($input) ? :
105 19 0 unless $self->{'input'}{'_is_open'}
114 0 19 unless my $start_rule_ref = $start || $self->{'grammar'}{'tree'}{'+toprule'} || $self->{'grammar'}{'tree'}{'TOP'} & 'TOP'
118 0 19 unless $self->{'receiver'}
132 0 19 if ($self->{'receiver'}->can('initial'))
145 0 19 $self->{'recursion_warn_limit'} || $self->{'recursion_limit'} || $self->{'iteration_limit'} ? :
149 1 18 $self->debug ? :
156 0 19 if (not $match or $self->{'position'} < length ${$self->{'buffer'};})
161 17 2 if ($self->{'receiver'}->can('final'))
180 1376 0 unless $assertion
183 1262 114 if $max == 1
185 125 2013 if (not $count and $min == 0 and $kind eq 'all')
188 116 3326 if ($max != 1)
189 0 116 if ($next->{'-flat'}) { }
190 0 0 ref $_ eq 'ARRAY' ? :
198 1985 1457 if (not $result or $assertion)
200 0 1985 if ($self->{'position'} = $position) > $self->{'farthest'}
203 0 1458 $next->{'-skip'} ? :
1458 1984 $result ? :
216 0 0 if ($self->{'recursion_limit'} and $self->{'recursion_count'} >= $self->{'recursion_limit'}) { }
0 0 elsif ($self->{'recursion_warn_limit'} and not $self->{'recursion_count'} % $self->{'recursion_warn_limit'}) { }
0 0 elsif ($self->{'iteration_limit'} and $self->{'iteration_count'} > $self->{'iteration_limit'}) { }
240 1 0 if $position > $self->{'farthest'}
241 1 0 if @$match > 1
243 0 1 unless my $rule = $self->{'grammar'}{'tree'}{$ref}
251 0 1474 unless my $rule = $self->{'grammar'}{'tree'}{$ref}
253 879 595 unless my $match = $self->match_next($rule)
254 23 572 unless $rule->{'action'}
267 886 401 unless $$buffer =~ /$regexp/g
272 257 144 if $self->{'position'} > $self->{'farthest'}
276 54 347 if $#+ > 1
287 701 335 if (my $match = $self->match_next($elem)) { }
288 700 0 unless ($elem->{'+asr'} or $elem->{'-skip'})
295 0 335 if ($self->{'position'} = $position) > $self->{'farthest'}
299 236 0 if $len > 1
306 162 770 if (my $match = $self->match_next($elem))
320 23 23 $action =~ /^try_/ ? :
322 23 23 unless $indent
330 0 23 $action =~ /not_/ ? :
23 23 $action =~ /got_/ ? :
46 0 if $self->{'debug_color'}
333 23 23 if $indent
335 18 28 if length $snippet > 30
338 23 23 $indent ? :
345 0 0 unless $self->{'throw_on_error'}
359 0 0 $position < 50 ? :
0 0 $position < 50 ? :
396 0 0 if ($len == 0)
400 0 0 if ($len < 0) { }