Branch Coverage

blib/lib/Parse/FSM.pm
Criterion Covered Total %
branch 80 96 83.3


line true false branch
216 1 150 unless @elems
217 0 150 unless $rule_name =~ /^\w+$/
221 2 257 if (ref $elems[$i])
244 68 184 if (not $rule_name =~ /^_lst_/ and $elem =~ /^ \[ .* \] /x)
251 105 147 $elem =~ /^\[/ ? :
253 105 147 if (@elems) { }
254 1 104 if exists $$tree{$elem} and ref $$tree{$elem} ne 'HASH'
259 1 146 if exists $$tree{$elem}
274 0 68 unless $elem =~ /^ \[ (\w+) \] ( [?*+] | <\+.*> )? $/x
278 46 22 unless $quant
284 12 10 if ($quant eq '*' or $quant eq '?') { }
5 5 elsif ($quant eq '+') { }
5 0 elsif ($quant =~ /^< \+ (.*) >$/x) { }
319 278 120 unless (exists $$tree{'__state__'})
333 58 93 if (not defined $self->start_rule and $rule_name =~ /^[a-z]/i)
349 4 142 unless $action =~ s/ \A \s* \{ \s* (.*?) \s* \} \s* \z /$1/sx
354 126 16 if (not $self->_action->{$cannon_action}) { }
360 14 112 if $lead_space
364 124 2 $action ne '' ? :
403 1959 248 unless my($subrule_name, $quant) = $token =~ /^ \[ (.*) \] ( [?*] )? $/x
406 104 144 ref $next_state eq 'HASH' ? :
410 0 248 unless my $subrule = $self->_tree->{$subrule_name}
412 0 248 unless ref $subrule eq 'HASH'
417 608 454 if $subrule_key =~ /^(__(comment|state)__|\[.*\][?*]?)$/
418 64 390 ($quant || '') eq '*' ? :
423 307 147 if ($$state{$subrule_key}) { }
424 0 307 if $$state{$subrule_key} ne $text
434 56 192 if (defined $quant)
435 34 22 if ($$state{'__else__'}) { }
436 0 34 if $$state{'__else__'} ne $next_state_text
563 0 38 if $@
571 11 27 if ($@)
597 0 42 if $@
623 8 5 unless $name
626 13 2 unless (defined $file)
675 0 50 unless $name
676 0 50 unless $file
702 46 6 if (defined $self->start_rule and exists $self->_tree->{$self->start_rule}) { }
720 559 428 if $key =~ /^(__(comment|state)__|\[.*\][?*]?)$/
723 174 254 if ref $value eq 'HASH'
725 302 124 $key =~ /^\w+$/ ? :
728 15 406 if (($width += length $item_text) > 72)
747 79 87 unless $name =~ /^[a-z]/i
748 66 21 if length $name > $length
751 79 87 unless $name =~ /^[a-z]/i
809 0 6 if (substr($file, 0, 1) eq '-' and $line == 0)
810 0 0 unless @ARGV == 2 or @ARGV == 3
817 0 0 if $@