Branch Coverage

blib/lib/Regexp/Grammars.pm
Criterion Covered Total %
branch 265 454 58.3


line true false branch
40 173 102 if (_module_is_active() and $type =~ /qq?/) { }
51 93 0 if ($] >= 5.018)
53 0 93 if ($] < 5.018004)
105 92 0 if (ref $x)
106 36 56 if (ref $y)
107 20 72 if ($reversed)
163 0 0 if (defined wantarray)
230 0 0 if ($field_width > $MAX_CONTEXT_WIDTH) { }
0 0 elsif ($field_width < $MIN_CONTEXT_WIDTH) { }
243 0 0 if ($fill_chars) { }
245 0 0 length $fill_chars > 1 ? :
253 0 0 if ($context_str eq '')
258 0 0 if ($context_str eq $last_context_str) { }
274 0 2 @_ == 1 ? :
282 0 2 if (not $severity =~ /\S/) { }
0 2 elsif ($severity eq 'info' and $prev_severity eq 'info') { }
308 0 0 if (-t *LOGFILE and defined $DEBUG and ($DEBUG_LEVEL{$DEBUG} // 0) >= $DEBUG_LEVEL{$min_debug_level}) { }
319 0 0 if ($cmd eq 'd') { }
321 0 0 $stack_height ? :
329 0 0 if (defined $DEBUG_LEVEL{$cmd})
354 0 0 if $in_match and $error_ref->{'height'} == $stack_height and $error_ref->{'subrule'} eq $subrule
378 330 1 if &reftype($obj) eq 'HASH'
415 0 0 if ($backtrack_distance > 0)
416 0 0 $backtrack_distance > 1 ? :
431 0 0 if ($subrule ne 'next alternative')
453 0 0 $stack_height ? :
455 0 0 $stack_height ? :
463 0 0 if ($backtrack_distance > 0)
464 0 0 $backtrack_distance > 1 ? :
474 0 0 defined $matched_text ? :
482 0 0 $stack_height ? :
492 0 0 $stack_height ? :
495 0 0 $stack_height ? :
0 0 $succeeded ? :
503 0 0 if ($backtrack_distance > 0)
504 0 0 $backtrack_distance > 1 ? :
545 413 1 unless $debugging_active
564 1790 0 unless $debugging_active
568 0 0 if ($subpattern eq '|') { }
600 0 0 if time < $Regexp::Grammars::TIMEOUT->{'limit'}
603 0 0 $Regexp::Grammars::TIMEOUT->{'duration'} == 1 ? :
605 0 0 if (defined $DEBUG and $DEBUG ne 'off')
614 0 0 unless (@!)
628 0 2011 unless (@{$stack_ref;})
639 0 2011 if (my $class = &blessed($stack_ref->[-1]))
661 0 131 if (my $class = &blessed($stack_ref->[-1]))
691 0 102 keys %{$curr_frame;} ? :
544 102 $is_blessed_curr || length join('', keys %{$curr_frame;}) ? :
173 646 exists $curr_frame->{'='} ? :
696 88 731 if ($RULE_HANDLER)
697 22 66 if ($RULE_HANDLER->can($original_name) or $RULE_HANDLER->can('AUTOLOAD'))
700 22 0 if (defined $replacement_result_frame)
707 28 83 if ($nocontext and ref $cloned_result_frame eq 'HASH' and keys %{$cloned_result_frame;} > 1)
718 212 607 if ($is_blessed_curr and not exists $curr_frame->{'='})
721 0 819 if ($is_blessed_caller)
752 0 947 keys %{$curr_frame;} ? :
231 947 $is_blessed_curr || length join('', keys %{$curr_frame;}) ? :
218 1178 exists $curr_frame->{'='} ? :
757 174 1222 if ($RULE_HANDLER)
758 106 68 if ($RULE_HANDLER->can($original_name) or $RULE_HANDLER->can('AUTOLOAD'))
761 106 0 if (defined $replacement_result_frame)
768 82 10 if ($nocontext and ref $cloned_result_frame eq 'HASH' and keys %{$cloned_result_frame;} > 1)
782 118 1278 if ($is_blessed_curr and not exists $curr_frame->{'='})
785 0 1396 if ($is_blessed_caller)
876 86 0 if defined $_
922 0 1 if ref $translator_ref ne 'CODE'
929 1 0 defined wantarray ? :
963 0 0 if ($debug_build and $visible_regex ne '' and $visible_regex ne ' ')
964 0 0 $is_comment ? :
973 2 1790 if $is_comment
986 0 1790 $debug_runtime && $regex =~ /\S/ ? :
0 1790 $debug_runtime && $regex eq '|' ? :
996 0 0 if ($debug_build)
1012 0 0 if ($debug_build)
1013 0 0 $timeout == 1 ? :
0 0 $timeout > 0 ? :
1023 0 0 $timeout > 0 ? :
1035 0 0 if ($debug_build)
1062 0 3 if ($debug_build)
1089 11 8 $type eq 'error' ? :
1092 2 17 $type eq 'fatal' ? :
1095 4 15 if (substr($msg, 0, 3) eq '(?{') { }
1104 0 19 if ($debug_build)
1105 0 0 $type eq 'log' ? :
1114 11 8 $severity eq 'fail' ? :
0 19 $type eq 'log' ? :
1139 19 89 $is_codeblock ? :
1140 19 89 $is_codeblock ? :
1141 19 89 $is_codeblock ? :
1142 10 79 defined $backref ? :
19 89 $is_codeblock ? :
1145 19 89 $is_codeblock ? :
1152 0 108 $postmodifier && !$is_noncapturing ? :
0 108 substr($postmodifier, 0, 1) eq '?' ? :
0 108 $is_listifying && $postmodifier ? :
1157 0 108 if ($debug_build)
1158 0 0 $is_listifying ? :
0 0 $is_noncapturing ? :
1174 6 102 $is_noncapturing ? :
1185 0 108 $timeout ? :
1199 8 6 if (not defined $keypat && $keypat =~ /\S/) { }
1215 0 11 $postmodifier && !$is_noncapturing ? :
0 11 substr($postmodifier, 0, 1) eq '?' ? :
3 11 $is_listifying && $postmodifier ? :
1220 0 14 if ($debug_build)
1221 0 0 $is_listifying ? :
0 0 $is_noncapturing ? :
1237 4 10 $is_noncapturing ? :
1248 0 14 $timeout ? :
1266 70 3 length $ws ? :
1269 17 56 substr($op, -2) eq '%%' ? :
1273 0 73 $timeout ? :
1276 0 73 if ($debug_build)
1277 0 0 substr($op, -2) eq '%%' ? :
1290 51 22 if $op =~ / [*][*]() | [+]([+?]?) \s* %%?+ | \{ 1, \}([+?]?) \s* %%?+ /msx
1295 4 18 if $op =~ / [*]([+?]?) \s* %%? | \{ 0, \}([+?]?) \s* %%? /msx
1299 4 14 if $op =~ / [?]([+?]?) \s* %%? | \{ 0,1 \}([+?]?) \s* %%? /msx
1303 2 12 if $op =~ / \{ 0 \}[+?]? \s* %%? /msx
1307 2 10 if ($op =~ / \{ (\d+) \}([+?]?) \s* %%? /msx)
1314 2 8 if ($op =~ / \{ 0,(\d+) \}([+?]?) \s* %%? /msx)
1321 8 0 if ($op =~ / \{ (\d+),(\d*) \} ([+?]?) \s* %%? /msx)
1323 6 2 $2 ? :
1339 282 10 if ($args eq '') { }
1 9 elsif (substr($args, 0, 3) eq '(?{') { }
1355 3 289 $simple_subrule =~ s/(.*):://msx ? :
1356 290 2 unless ($start_grammar =~ /^NEXT$|::/)
1360 1 291 $start_grammar eq 'NEXT' ? :
1367 3 292 if ($CACHE{$inherited_subrule})
1378 0 292 unless ($valid_subrule_names_ref->{$subrule})
1393 88 196 $is_listifying ? :
8 284 $is_noncapturing ? :
1412 10 274 substr($postmodifier, 0, 1) eq '?' ? :
8 284 $is_listifying && $postmodifier ? :
1416 1 290 $savemode eq 'poslookahead' ? :
1 291 $savemode eq 'neglookahead' ? :
1420 0 292 if ($debug_build)
1421 0 0 defined $arg_desc ? :
0 0 $is_listifying ? :
0 0 $is_noncapturing ? :
1440 0 292 $timeout ? :
1458 38 218 $objectify ? :
1468 6 250 $callname eq 'ws' || $callname eq 'hk' ? :
1503 134 122 $magic_ws ? :
256 128 $rule_name ? :
1691 2101 131 ($+{'alias'} // 'MATCH') eq 'MATCH' ? :
1697 82 2150 if (defined $+{'alias_parens_scalar'}) { }
0 2150 elsif (defined $+{'alias_parens_scalar_nocap'}) { }
16 2134 elsif (defined $+{'alias_parens_list'}) { }
7 2127 elsif (defined $+{'alias_hash_scalar'}) { }
4 2123 elsif (defined $+{'alias_hash_scalar_nocap'}) { }
3 2120 elsif (defined $+{'alias_hash_list'}) { }
22 2098 elsif (defined $+{'alias_subrule_scalar'}) { }
26 2072 elsif (defined $+{'alias_subrule_list'}) { }
2 2070 elsif (defined $+{'self_subrule_lookahead'}) { }
6 2064 elsif (defined $+{'self_subrule_scalar_nocap'}) { }
174 1890 elsif (defined $+{'self_subrule_scalar'}) { }
62 1828 elsif (defined $+{'self_subrule_list'}) { }
0 1828 elsif (defined $+{'alias_argrule_scalar'}) { }
0 1828 elsif (defined $+{'alias_argrule_list'}) { }
1 1827 elsif (defined $+{'self_argrule_scalar'}) { }
9 1818 elsif (defined $+{'backref'} or $+{'alias_backref'} or $+{'alias_backref_list'}) { }
474 1344 elsif (defined $+{'reportable_raw_regex'}) { }
0 1344 elsif (defined $+{'complex_repetition'}) { }
1318 26 elsif (defined $+{'raw_regex'}) { }
0 26 elsif (defined $+{'require_directive'}) { }
3 23 elsif (defined $+{'minimize_directive'}) { }
0 23 elsif (defined $+{'debug_directive'}) { }
0 23 elsif (defined $+{'timeout_directive'}) { }
8 15 elsif (defined $+{'error_directive'}) { }
7 8 elsif (defined $+{'autoerror_directive'}) { }
4 4 elsif (defined $+{'yadaerror_directive'}) { }
0 4 elsif (defined $+{'context_directive'}) { }
0 4 elsif (defined $+{'nocontext_directive'}) { }
4 0 elsif (defined $+{'ws_directive'}) { }
0 0 elsif (defined $+{'incomplete_request'}) { }
0 0 elsif (defined $+{'loose_quantifier'}) { }
1698 78 4 substr($+{'pattern'}, 0, 1) eq '(' ? :
1706 0 0 substr($+{'pattern'}, 0, 1) eq '(' ? :
1714 16 0 substr($+{'pattern'}, 0, 1) eq '(' ? :
1779 1 1 if ($+{'sign'} eq '?')
1866 3 6 if (substr($subrule, 0, 1) eq ':')
1871 5 4 $+{'slash'} eq '\\' || $+{'slash'} eq '\\_' ? :
1877 2 2 $+{'alias_backref'} ? :
5 4 $+{'backref'} ? :
1900 0 0 $separator =~ /\S/ ? :
1919 0 1318 if ($raw_regex =~ / \A %%?+ /x)
1971 0 4 $+{'yadaerror_directive'} eq '???' ? :
1977 0 0 if ($compiletime_debugging_requested)
1986 0 0 if ($compiletime_debugging_requested)
1995 0 4 if ($compiletime_debugging_requested)
2008 0 0 if ($request =~ /\A\s*<\s*\Z/) { }
2047 73 2159 if ($list_marker)
2048 70 3 $magic_ws ? :
2107 0 0 if ($template =~ /%t/)
2131 3777 0 if ($filename eq '-') { }
0 0 elsif (open my $fh, $mode, $filename) { }
2142 0 0 $from_where ? :
2175 0 425 unless $grammar_name
2191 3 9 unless ($grammar_name =~ /::/)
2195 12 0 if (exists $user_defined_grammar{$grammar_name}) { }
2196 0 12 if ($compiletime_debugging_requested)
2236 4 133 unless ($grammar_spec =~ m( < (?: [.?![:%\\/]? [^\W\d]\w* [^>]* | [.?!]{3} ) > )msx)
2331 1 132 $runtime_debugging_requested ? :
2341 1 132 $runtime_debugging_requested ? :
2378 0 256 if (++$subrule_names{$subrule_name} > 1) { }
2401 0 133 if ($main_regex =~ /\A (?: \s++ | \(\?\# [^)]* \) | \# [^\n]++ )* \z/msx)
2417 5 128 if ($main_regex =~ /$GRAMMAR_DIRECTIVE/) { }
2420 3 2 unless ($grammar_name =~ /::/)
2459 0 0 length($3) % 2 ? :
2460 0 129 $main_regex =~ s/ < context \s* : \s* > //gmsx ? :
4 129 $main_regex =~ s/ < nocontext \s* : \s* > //gmsx ? :
2465 5 128 if ($is_grammar) { }
2467 0 5 unless ($grammar_name =~ /::/)
2470 0 5 if ($compiletime_debugging_requested)
2485 0 5 if ($main_regex =~ /\A(\s*)\S/)
2506 0 128 if ($compiletime_debugging_requested)
2531 0 128 if ($compiletime_debugging_requested)
2551 0 256 if ($compiletime_debugging_requested)
2552 0 0 $objectify ? :
2558 4 248 $body =~ s/ < context \s* : \s* > //gmsx ? :
4 252 $body =~ s/ < nocontext \s* : \s* > //gmsx ? :
2579 0 256 if ($compiletime_debugging_requested)
2592 134 122 if ($type eq 'rule') { }
2598 0 4 if (not $defn =~ /\S/msx) { }
0 4 elsif (not $first_ws) { }
2679 5 128 if ($is_grammar) { }
2694 4 124 $nocontext ? :