Branch Coverage

blib/lib/Regexp/Assemble.pm
Criterion Covered Total %
branch 777 796 97.6


line true false branch
38 135 6447 if (exists $args{"anchor_$anc"})
41 269 1 unless exists $args{$anchor}
47 3 2191 if (exists $args{'anchor_string_absolute'})
50 5 1 unless exists $args{$anchor}
80 62 2132 if defined $Regexp::Assemble::Current_Lexer
84 1 2193 if ($self->_debug(8))
89 2 2192 if exists $self->{'rs'}
90 3 2191 if exists $self->{'file'}
97 3 6 if exists $self->{'_time_func'}
100 5 1 unless (defined $self->{'_use_time_hires'})
106 1 5 length $self->{'_use_time_hires'} > 0 ? :
132 23 861 if $debug
142 3344 2616 if ($record =~ /\G$matcher/cg) { }
1680 936 elsif ($record =~ /\G\\/cg) { }
39 897 elsif ($record =~ /\G($class_matcher)($modifier)/cg) { }
13 884 elsif ($record =~ /\G($paren_matcher)/cg) { }
144 12 3332 if ($1 eq '\\E') { }
5 3327 elsif ($qm and $1 eq '\\L' || $1 eq '\\U') { }
145 3 9 if $debug
151 2 3 if $debug
155 3237 90 defined $2 ? :
156 43 3284 if $debug
157 90 3237 if ($qm) { }
164 22 3305 if ($unroll_plus and $qualifier =~ s/\A\+(\?)?\Z/*/) { }
165 6 16 if $1
166 8 14 if $debug
167 2 2 $case eq 'L' ? :
4 18 if $case
171 35 3270 if $debug
172 19 3269 $case eq 'U' ? :
17 3288 $case eq 'L' ? :
182 27 1653 if $debug
184 443 1237 if ($record =~ /\G([sdwSDW])($modifier)/cg) { }
9 1228 elsif ($record =~ /\Gx([\da-fA-F]{2})($modifier)/cg) { }
26 1202 elsif ($record =~ /\GQ/cg) { }
15 1187 elsif ($record =~ /\G([LU])/cg) { }
6 1181 elsif ($record =~ /\GE/cg) { }
6 1175 elsif ($record =~ /\G([lu])(.)/cg) { }
6 1169 elsif (my(@arg) = grep({defined $_;} $record =~ /\G$misc_matcher/cg)) { }
1165 4 elsif ($record =~ /\G(.)/cg) { }
186 4 439 if $debug
187 1 2 defined $1 ? :
3 440 $unroll_plus && $qualifier =~ s/\A\+(\?)?\Z/*/ ? :
192 4 5 if $debug
195 4 5 if $debug
197 4 5 if $debug
198 1 2 defined $1 ? :
3 6 $unroll_plus && $qualifier =~ s/\A\+(\?)?\Z/*/ ? :
203 4 22 if $debug
208 6 9 if $debug
212 2 4 if $debug
217 2 4 if $debug
218 3 3 $1 eq 'l' ? :
221 0 6 if ($] < 5.007)
224 0 0 if $debug
228 3 3 if ($directive eq 'c') { }
229 1 2 if $debug
233 1 2 if $debug
235 2 1 $ascii < 32 ? :
246 2 1163 if $debug
250 1 3 if $debug
258 39 0 defined $2 ? :
259 4 35 if $debug
260 12 27 if ($class =~ /\A\[\\?(.)]\Z/)
263 1 11 if $debug
265 4 35 if $debug
266 1 2 defined $1 ? :
3 36 $unroll_plus && $qualifier =~ s/\A\+(\?)?\Z/*/ ? :
273 1 12 if $debug
291 0 188 defined $Regexp::Assemble::Current_Lexer ? :
23 188 defined $self->{'lex'} ? :
294 17 194 if $debug
299 81 399 if $debug
300 15 465 if (pos($record) - $len > $token_len)
303 8 7 if $debug
308 226 269 if (substr($token, 0, 1) eq '\\') { }
309 51 175 if ($token =~ /^\\([ELQU])$/) { }
3 172 elsif ($token =~ /^\\([lu])(.)$/) { }
41 131 elsif ($token =~ /^\\x([\da-fA-F]{2})$/) { }
310 12 39 if ($1 eq 'E') { }
19 20 elsif ($1 eq 'Q') { }
312 0 5 defined $Regexp::Assemble::Current_Lexer ? :
1 5 defined $self->{'lex'} ? :
6 6 if $qm
324 16 35 if $debug
328 1 2 if $debug
329 1 2 $1 eq 'l' ? :
334 1 40 if $debug
336 1 40 if $debug
340 4 127 if $debug
344 21 13 $case eq 'U' ? :
34 235 if $case
345 49 220 if $qm
346 2 267 if $token eq '/'
349 50 391 if $qm
350 72 369 if $debug
354 15 480 if (defined $next_token)
355 8 7 if $debug
362 7 204 if ($len < length $record)
369 1 1 $case eq 'U' ? :
2 5 if $case
370 6 1 if $debug
373 17 194 if $debug
382 1495 768 if $self->{'chomp'}
383 1 2262 if $self->{'pre_filter'} and not $self->{'pre_filter'}->($record)
384 32 2230 if $debug
387 23 874 $self->{'lex'} ? :
897 1365 $record =~ /[+*?(\\\[{]/ ? :
390 1 2261 if $self->{'filter'} and not $self->{'filter'}->(@$list)
400 6 7 if (ref $_[0] eq 'HASH') { }
408 4 2 ref $arg->{'file'} eq 'ARRAY' ? :
417 1 14 unless (open my $fh, '<', $file)
431 1 3397 if $self->{'filter'} and not $self->{'filter'}->(@_)
440 7063 5 if (not defined $self->{'stats_dup'} or $dup == $self->{'stats_dup'}) { }
0 5 elsif ($self->{'dup_warn'}) { }
442 30380 2 defined $_ ? :
445 0 0 if (ref $self->{'dup_warn'} eq 'CODE') { }
464 1 2 if (defined $pre_filter and ref $pre_filter ne 'CODE')
476 1 3 if (defined $filter and ref $filter ne 'CODE')
486 798 2 unless (defined $self->{'str'})
487 8 790 if ($self->{'track'}) { }
494 764 26 unless $self->{'mutable'} or not $self->{'reduce'}
497 3 787 if not exists $arg->{'indent'} and $self->{'indent'} > 0
498 42 748 if (exists $arg->{'indent'} and $arg->{'indent'} > 0) { }
35 713 elsif ($self->{'lookahead'}) { }
509 9 789 if (not length $self->{'str'}) { }
517 406 371 $self->{'anchor_string_begin'} ? :
3 777 $self->{'anchor_line_begin'} ? :
9 780 $self->{'anchor_word_begin'} ? :
524 6 374 $self->{'anchor_string_end_absolute'} ? :
403 380 $self->{'anchor_string_end'} ? :
3 783 $self->{'anchor_line_end'} ? :
3 786 $self->{'anchor_word_end'} ? :
529 790 8 unless $self->{'mutable'}
536 121 1 unless defined $self->{'re'}
542 1642 489 if $self->{'re'}
550 8 610 if ($self->{'track'}) { }
553 1 7 length $self->{'flags'} ? :
560 21 589 length $self->{'flags'} ? :
569 8 21 unless defined $self->{'re'}
572 8 21 unless ($target =~ /$self->{'re'}/)
577 21 0 if $] >= 5.009005
582 33 10 if defined $-[$n] and defined $+[$n]
585 20 1 if ($self->{'track'}) { }
586 20 0 defined $self->{'m'} ? :
595 1 3 unless $self->{'track'}
596 1 2 if defined $_[0]
597 1 1 unless defined $self->{'m'}
603 2 1 exists $self->{'mbegin'} ? :
608 2 1 exists $self->{'mend'} ? :
613 1 18 unless exists $self->{'mvar'}
614 17 1 defined $_[0] ? :
619 4 1 if ($self->{'mvar'})
629 8 1 defined $self->{'m'} ? :
654 2 4 defined $self->{'str'} && $self->{'str'} ne $Regexp::Assemble::Always_Fail ? :
659 0 0 defined $_[0] ? :
665 2 3 defined $_[0] ? :
671 2 2 defined $_[0] ? :
684 1 3 defined $_[0] ? :
690 1 1 defined $_[0] ? :
703 276 1 defined $_[0] ? :
709 275 1 defined $_[0] ? :
715 2 1 defined $_[0] ? :
721 1 273 defined $_[0] ? :
728 1 1 defined $_[0] ? :
735 604 1 defined $_[0] ? :
736 4 601 if ($self->_debug(8))
750 18 4 defined $_[0] ? :
756 4 1 defined $_[0] ? :
762 3 1 defined $_[0] ? :
768 21 1 defined $_[0] ? :
774 22 2 defined $_[0] ? :
785 4 1 defined $_[0] ? :
791 1 1 defined $_[0] ? :
803 18 1 defined $_[0] ? :
809 4 1 defined $_[0] ? :
823 3 1 if ($_[0])
824 1 2 if (my $refname = ref $_[0])
830 2 1 defined $Regexp::Assemble::Current_Lexer ? :
839 250 12047 $self->{'debug'} & shift() ? :
860 50 5 $Regexp::Assemble::have_Storable ? :
867 9 192 if (ref $path->[$p] eq 'HASH') { }
3 189 elsif (ref $path->[$p] eq 'ARRAY') { }
884 26 1 defined $v ? :
897 2030 5112 if (@$list == 0)
898 33 1997 if (@in == 0 or @in == 1 and !defined($in[0]) || $in[0] eq '') { }
905 151 4961 if $debug
909 2 5110 unless (@in)
910 1 1 if (ref $list->[0] ne 'HASH') { }
919 282 17431 if (ref $token eq 'HASH')
920 26 256 if $debug
922 26 256 if $debug
925 3703 13728 if (ref $path->[$offset] eq 'HASH')
926 54 3649 if $debug
928 2624 1079 if (exists $node->{$token}) { }
929 1 2623 if ($offset < $#$path) { }
938 31 2592 if $debug
945 23 1056 if $debug
946 1072 7 if ($offset == $#$path) { }
955 1 6 if $debug
961 306 13422 if ($debug)
965 787 306 if $n
967 81 1012 ref $path->[$n] eq 'HASH' ? :
970 285 808 $n == $offset ? :
975 732 12996 if ($offset >= @$path) { }
2099 10897 elsif ($token ne $path->[$offset]) { }
917 9980 elsif (not @in) { }
977 21 711 if $debug
981 79 2020 if $debug
987 1992 107 length $token ? :
989 79 2020 if $debug
993 2 915 if $debug
994 912 5 if (defined $$path[$offset + 1]) { }
996 118 794 if (ref $path->[$offset] eq 'HASH') { }
997 1 117 if $debug
1001 1 793 if $debug
1029 26 256 if $debug
1031 195 87 if (ref $path_end->[0] eq 'HASH') { }
1032 25 170 if (exists $path_end->[0]{$token_key}) { }
70 100 elsif (not _node_eq($path_end->[0], $token)) { }
1033 2 23 if (@$path_end > 1) { }
1039 1 1 if $debug
1046 6 1 ref $token ? :
7 23 if $debug
1051 23 0 if (@$new_path)
1054 6 17 if (@_) { }
1059 1 5 if $debug
1062 5 12 if $debug
1063 11 6 if (@$old_path) { }
1073 6 17 if $debug
1078 11 59 if (@$path_end > 1) { }
1084 1 10 if $debug
1088 2 57 if $debug
1095 9 122 if $debug
1100 57 43 if (@$path_end) { }
1101 4 53 if $debug
1103 4 53 if $debug
1105 4 53 if $debug
1113 3 40 if $debug
1119 74 13 if (@$path_end) { }
1124 5 69 if $debug
1126 5 69 if $debug
1129 4 9 if $debug
1143 4 806 if ($self->_debug(8))
1146 3 1 if (exists $self->{'_begin_time'}) { }
1156 20 790 if $context->{'debug'}
1157 651 159 if (not @$head) { }
1167 4 806 if ($self->_debug(8))
1169 4 0 if (exists $self->{'_begin_time'}) { }
1178 20 790 if $context->{'debug'}
1183 350 1360 if (exists $_[0]{''})
1194 20 790 if $debug
1199 514 645 if (ref $p eq 'HASH') { }
1201 20 494 if $debug
1202 159 355 if scalar @$node_head
1203 487 27 ref $node_tail eq 'HASH' ? :
1206 125 520 if (@$head) { }
1207 7 118 if $debug
1211 4 516 if $debug
1217 18 2 ref $tail->[0] eq 'HASH' ? :
20 790 if $debug
1219 72 135 if (@$tail > 1 and ref $tail->[0] eq 'HASH' and keys %{$$tail[0];} == 2)
1226 14 130 if $debug
1227 21 123 unless $path
1228 8 115 if (@$path == 1 and ref $path->[0] eq 'HASH') { }
1235 21 51 if (exists $tail->[0]{''})
1242 20 790 if $debug
1251 57 1023 if $debug
1252 70 1010 if ($optional and scalar keys %$node == 1)
1254 61 9 unless (grep {ref $_ eq 'HASH';} @$path)
1263 2 59 if $debug
1270 55 964 if $debug
1278 506 373 if (@$fail == 0 and keys %$reduce == 1 and not $optional)
1282 50 456 if $debug
1295 60 453 if $optional
1299 1114 67 if (scalar @$path == 1) { }
1301 7 1107 if $debug
1306 1 66 if $debug
1314 56 11 ref $tail eq 'HASH' ? :
1316 1 66 if $debug
1322 3 216 if $debug
1325 5 508 if $debug
1370 2137 606 if (ref $end ne 'HASH') { }
1371 87 2050 if $debug
1375 38 568 if $debug
1378 94 387 if (keys %$end == 2 and exists $end->{''})
1380 44 50 if $key eq ''
1382 4 90 if $debug
1387 40 54 if (@$head)
1391 40 566 if ($new_path) { }
1392 1 39 if $debug
1397 219 347 if (not @$common) { }
1398 3 216 if $debug
1403 34 313 if $debug
1405 287 60 if (ref $tail eq 'HASH' and keys %$tail == 2)
1408 121 166 if (exists $tail->{''})
1412 313 34 ref $tail eq 'HASH' ? :
1421 55 964 if $debug
1432 51 522 if $debug
1443 0 302 unless scalar grep({ref $_ eq 'HASH';} @$a) <=> scalar grep({ref $_ eq 'HASH';} @$b) or _node_offset($b) <=> _node_offset($a)
1454 72 501 scalar @$path > 1 ? :
1455 51 522 if $debug
1475 19 221 if $debug
1478 128 112 unless defined $slide_path
1479 19 221 if $debug
1481 9 145 if $debug
1487 19 221 if $debug
1492 19 221 if $debug
1502 2196 494 unless (grep {ref $_;} @$path)
1503 79 2117 if $debug
1505 79 2117 if $debug
1508 37 457 if $debug
1510 1 914 ref $p eq 'ARRAY' ? :
568 915 ref $p eq 'HASH' ? :
1516 37 457 if $debug
1525 46 584 if $debug
1527 229 401 if $optional
1533 46 584 if $debug
1539 11 4642 if ref $node eq 'ARRAY'
1540 4437 205 unless ref $node eq 'HASH'
1544 78 374 if $k eq ''
1545 291 83 if $key eq '' or $key gt $k
1564 9 641 if exists $set{'\\w'}
1565 8 642 if exists $set{'\\W'}
1570 13 3 if exists $set{'.'} or $self->{'fold_meta_pairs'} and exists $set{'\\d'} && exists $set{'\\D'} || exists $set{'\\s'} && exists $set{'\\S'} || exists $set{'\\w'} && exists $set{'\\W'}
1574 28 3764 if (exists $set{$meta})
1578 10 18 if @delete
1581 7 625 if keys %set == 1
1583 43 6832 if exists $set{"\\$meta"}
1585 20 605 exists $set{'-'} ? :
1586 7 618 exists $set{'^'} ? :
1588 3 622 if $class =~ s/0123456789/\\d/ and $class eq '\\d'
1605 246 131 /^$Regexp::Assemble::Single_Char$/ ? :
1606 31 109 if (@short == 1) { }
77 32 elsif (@short > 1) { }
1627 1843 1401 /^$Regexp::Assemble::Single_Char$/ ? :
1628 365 1373 if (@short == 1 and @long == 0) { }
494 879 elsif (@short > 1 and @short == @_) { }
1635 14 865 @short > 1 ? :
1650 72 4700 if ($self->{'unroll_plus'})
1656 1 126 if (ref $arr[$i] eq 'ARRAY') { }
28 98 elsif (ref $arr[$i] eq 'HASH') { }
7 91 elsif ($i < $#arr and $arr[$i + 1] =~ /\A$arr[$i]\*(\??)\Z/) { }
7 84 elsif ($skip) { }
1664 7 21 exists $arr[$i]{''} ? :
1668 7 0 defined $1 ? :
1681 0 4700 unless grep {length ref $_;} @_
1685 1710 5 ref $_ eq 'HASH' ? :
7791 1715 ref $_ eq '' ? :
1696 707 1003 exists $_->{''} ? :
1707 61 267 unless defined $in->{$path}
1709 15 252 if (ref $in->{$path}[0] eq 'HASH') { }
2 250 elsif (ref $in->{$path}[0] eq 'ARRAY') { }
1712 5 6 if (exists $in->{$path}[$next]{''})
1723 2 1 if (ref $subpath->[$sp] eq 'HASH') { }
1726 1 1 unless exists $subpath->[$sp]{''}
1748 462 111 if (ref $in->[$p] eq '') { }
2 109 elsif (ref $in->[$p] eq 'ARRAY') { }
1764 12 97 if (exists $in->[$p]{''} and $p + 1 < @$in)
1767 2 12 if (ref $$in[$p + $next] eq 'HASH') { }
1781 18 91 if ($nr_one > 1 and $nr_one == $nr) { }
1783 3 15 if exists $in->[$p]{''}
1787 71 20 keys %$ahead > 1 ? :
1789 64 27 $nr > 1 ? :
1791 44 47 if (exists $in->[$p]{''}) { }
1792 11 33 $more ? :
1811 104 10 if (ref $in->[$n] eq '') { }
1815 24 80 if ($n < @$in - 1 and ref $$in[$n + 1] eq 'HASH' and exists $$in[$n + 1]{''} or $n == @$in - 1)
1822 0 24 $] < 5.009005 ? :
1836 1 9 if exists $in->[$n]{''}
1854 910 174 if (ref $in->[$p] eq '') { }
3 171 elsif (ref $in->[$p] eq 'ARRAY') { }
1855 39 871 if $prev_was_paren
1870 102 267 /^$Regexp::Assemble::Single_Char$/ ? :
1871 37 134 if (@short == $nr) { }
1872 10 27 $nr == 1 ? :
1873 13 24 if exists $in->[$p]{''}
1876 98 36 if length $out
1877 98 36 if $p
1879 133 1 if (@short < 2) { }
1882 165 133 if $r++
1892 37 97 if (exists $in->[$p]{''}) { }
1907 3 422 unless defined $_[0] and defined $_[1]
1908 41 381 if ref $_[0] ne ref $_[1]
1912 305 76 if (ref $_[0] eq 'HASH') { }
9 67 elsif (ref $_[0] eq 'ARRAY') { }
1916 244 61 if keys %{$_[0];} == keys %{$_[1];} and join('|', sort(keys %{$_[0];})) eq join('|', sort(keys %{$_[1];}))
1921 8 1 if scalar @{$_[0];} == scalar @{$_[1];}
1936 522 5057 if ref $path eq 'HASH'
1941 6090 4946 if $nr++
1942 1340 9696 if (ref $d eq 'HASH') { }
242 9454 elsif (ref $d eq 'ARRAY') { }
9453 1 elsif (defined $d) { }
1951 5 9445 $d =~ /^[\x00-\x1f]$/ ? :
3 9450 $d =~ /\s/ ? :
1970 2038 1861 if $nr++
1976 2 3209 $n =~ /^[\x00-\x1f]$/ ? :
688 3211 $n eq '' ? :