| line | true | false | branch | 
 
| 31 | 0 | 117 | unless ($k =~ /^(debug|fatal_errors)\z/) | 
 
| 99 | 2 | 0 | unless ref $self | 
 
| 104 | 0 | 2 | if (ref $file) { } | 
 
| 106 | 0 | 0 | unless binmode $file, ':utf8' | 
 
| 111 | 0 | 2 | unless open my $PARSER_FILE, $file | 
 
| 112 | 0 | 2 | unless binmode $PARSER_FILE, ':utf8' | 
 
| 125 | 0 | 4 | unless $object =~ /^(node|group|graph|edge)\z/ | 
 
| 158 | 27 | 14 | if @{$self->{'stack'};} == 0 | 
 
| 161 | 33 | 8 | if ($target and $target eq 'parent') | 
 
| 166 | 33 | 0 | if ref $stack | 
 
| 167 | 22 | 11 | unless (defined $object) | 
 
| 172 | 22 | 0 | if (not $stack or @$stack <= 1) | 
 
| 180 | 0 | 41 | if $self->{'error'} | 
 
| 182 | 0 | 41 | if (ref $stack->[-1] eq 'HASH') | 
 
| 194 | 0 | 41 | if $self->{'debug'} and $self->{'debug'} > 1 | 
 
| 195 | 1 | 40 | if ($max_idx != 1) { } | 
 
| 212 | 2 | 39 | if (defined $a->{'basename'}) | 
 
| 217 | 2 | 4 | if exists $s->{'autosplit_parts'} | 
 
| 235 | 0 | 729 | if $self->{'error'} | 
 
| 251 | 0 | 57 | unless defined $name | 
 
| 257 | 15 | 42 | if ($name eq '') { } | 
 
| 259 | 0 | 15 | if $self->{'debug'} | 
 
| 266 | 0 | 42 | if $self->{'debug'} | 
 
| 273 | 2 | 55 | if (@$group_stack > 0) | 
 
| 297 | 0 | 44 | unless defined $end | 
 
| 300 | 35 | 9 | if $end eq '[' | 
 
| 301 | 1 | 43 | if $end eq '(' | 
 
| 306 | 8 | 36 | if ($end eq ')') { } | 
 
| 310 | 0 | 8 | if $self->{'debug'} | 
 
| 328 | 0 | 36 | unless defined $group | 
 
| 330 | 0 | 36 | if $self->{'debug'} | 
 
| 333 | 0 | 36 | if $self->{'error'} | 
 
| 370 | 0 | 98 | unless defined $att | 
 
| 395 | 0 | 63 | if $self->{'error'} | 
 
| 400 | 26 | 37 | if (defined $self->{'left_edge'}) | 
 
| 409 | 2 | 26 | if $edge_bd | 
 
| 410 | 0 | 28 | if $edge_un | 
 
| 425 | 0 | 780 | if @{$self->{'stack'};} == 0 | 
 
| 432 | 13 | 68 | unless defined $2 or defined $5 | 
 
| 444 | 0 | 780 | if $self->{'error'} | 
 
| 448 | 68 | 712 | if defined $edge_label | 
 
| 450 | 68 | 712 | if defined $edge_label | 
 
| 477 | 0 | 6 | if @{$self->{'stack'};} == 0 | 
 
| 483 | 0 | 0 | unless defined $2 or defined $5 | 
 
| 493 | 0 | 6 | if defined $13 and $13 eq '[' | 
 
| 494 | 0 | 6 | if defined $13 and $13 eq '(' | 
 
| 497 | 0 | 6 | if $self->{'error'} | 
 
| 505 | 0 | 6 | if $edge_label | 
 
| 507 | 0 | 6 | if $edge_label | 
 
| 518 | 6 | 0 | if defined $13 and $13 eq ')' | 
 
| 559 | 4 | 338 | if ((ref $self || $self) eq 'Graph::Easy::Parser' and $txt =~ m[^(\s*|\s*/\*.*?\*/\s*)(strict)?$o_cmt(di)?graph$o_cmt("[^"]*"|[\w_]+)$o_cmt\{]im || $txt =~ m[^(\s*|\s*/\*.*?\*/\s*)(strict)?${o_cmt}digraph$o_cmt\{]im || $txt =~ m[^(\s*|\s*/\*.*?\*/\s*)strict$o_cmt(di)?graph$o_cmt\{]im) | 
 
| 571 | 40 | 1 | if (ref $self) | 
 
| 578 | 41 | 0 | if ref $self | 
 
| 581 | 13 | 427 | if ((ref $self || $self) eq 'Graph::Easy::Parser' and $txt =~ m[^([\s\n\t]*|\s*/\*.*?\*/\s*)graph\s*:\s*\{]m) | 
 
| 589 | 13 | 0 | if (ref $self) | 
 
| 596 | 13 | 0 | if ref $self | 
 
| 599 | 8 | 432 | unless ref $self | 
 
| 603 | 1 | 439 | if not defined $txt or $txt =~ /^\s*\z/ | 
 
| 610 | 1317 | 439 | unless $o eq 'graph' | 
 
| 635 | 3573 | 2329 | if (@lines > 0 and $handled == 0) | 
 
| 641 | 2019 | 1554 | if $curline =~ /$qr_comment/ | 
 
| 650 | 0 | 3883 | if $self->{'debug'} and $self->{'debug'} > 2 | 
 
| 651 | 0 | 3883 | if $self->{'debug'} and $self->{'debug'} > 2 | 
 
| 659 | 1254 | 18667 | if $line eq '' | 
 
| 664 | 0 | 18667 | if $self->{'debug'} and $self->{'debug'} > 3 | 
 
| 666 | 2693 | 15974 | if ($line =~ /$pattern/) | 
 
| 669 | 0 | 2693 | if $self->{'debug'} and $self->{'debug'} > 2 | 
 
| 671 | 2658 | 35 | if defined $handler | 
 
| 672 | 2514 | 179 | if ($rc) | 
 
| 674 | 2509 | 5 | unless defined $replace | 
 
| 675 | 5 | 2509 | if ref $replace | 
 
| 676 | 0 | 2514 | if $self->{'debug'} and $self->{'debug'} > 2 | 
 
| 678 | 0 | 2514 | if $self->{'debug'} and $self->{'debug'} > 2 | 
 
| 691 | 12 | 3871 | if $handled == 0 and @lines == 0 | 
 
| 694 | 0 | 3871 | if $self->{'error'} | 
 
| 697 | 12 | 427 | if $backbuffer ne '' | 
 
| 700 | 0 | 427 | if not $self->{'error'} and $self->{'scope_stack'} and @{$self->{'scope_stack'};} > 0 | 
 
| 702 | 0 | 12 | if $self->{'error'} and $self->{'fatal_errors'} | 
 
| 706 | 0 | 439 | if $graph->{'debug'} | 
 
| 709 | 439 | 0 | if $self->can('_parser_cleanup') | 
 
| 727 | 2 | 784 | if $ed =~ /^(= )+\z/ | 
 
| 728 | 22 | 764 | if $ed =~ /^=+\z/ | 
 
| 729 | 30 | 756 | if $ed =~ /^\.+\z/ | 
 
| 730 | 7 | 779 | if $ed =~ /^(- )+\z/ | 
 
| 731 | 1 | 785 | if $ed =~ /^(..-)+\z/ | 
 
| 732 | 21 | 765 | if $ed =~ /^(\.-)+\z/ | 
 
| 733 | 4 | 782 | if $ed =~ /^\~+\z/ | 
 
| 734 | 0 | 786 | if $ed =~ /^#+\z/ | 
 
| 761 | 841 | 128 | unless ref $e eq 'ARRAY' | 
 
| 765 | 969 | 128 | if (ref $a) { } | 
 
| 773 | 0 | 128 | if $self->{'error'} | 
 
| 779 | 29 | 940 | if $edge_bd | 
 
| 780 | 23 | 946 | if $edge_un | 
 
| 798 | 0 | 2286 | unless defined $name | 
 
| 804 | 714 | 1572 | unless $no_collapse | 
 
| 826 | 2 | 63 | if (exists $self->{'clusters'}{$base_name}) | 
 
| 831 | 3 | 2 | if $self->{'cluster_id'} | 
 
| 832 | 2 | 3 | unless exists $self->{'clusters'}{$base_try} | 
 
| 835 | 2 | 0 | if $self->{'cluster_id'} | 
 
| 854 | 0 | 2 | if $node->{'autosplit_basename'} eq $new_basename | 
 
| 863 | 0 | 6 | if $self->{'debug'} > 1 | 
 
| 886 | 50 | 15 | unless defined $allow_empty | 
 
| 896 | 17 | 48 | if exists $att->{'basename'} | 
 
| 905 | 0 | 65 | if $graph->{'debug'} | 
 
| 920 | 45 | 143 | if ($qr_clean) | 
 
| 926 | 2 | 184 | if ($add == 0 and $remaining eq '' and $sep =~ /\|\|?/) | 
 
| 932 | 0 | 188 | if $graph->{'debug'} | 
 
| 935 | 12 | 176 | if ($allow_empty and $part eq ' ') { } | 
 
|  | 10 | 166 | elsif ($part =~ /^[ ]{2,}\z/) { } | 
 
| 953 | 0 | 188 | if ($graph->{'debug'}) | 
 
| 956 | 0 | 0 | if $class ne $self->{'use_class'}{'node'} | 
 
| 957 | 0 | 0 | if $graph->{'debug'} | 
 
| 961 | 12 | 176 | if ($class =~ /::Empty/) | 
 
| 964 | 11 | 1 | unless (defined $node) | 
 
| 979 | 65 | 123 | if (@rc == 1) { } | 
 
| 987 | 17 | 48 | if defined $att->{'basename'} | 
 
| 997 | 16 | 107 | if ($last_sep eq '||') | 
 
| 1016 | 16 | 172 | if ($sep eq '||') | 
 
| 1033 | 0 | 1900 | if $graph->{'debug'} | 
 
| 1042 | 22 | 1878 | if ($name =~ /^\s*\z/) { } | 
 
|  | 50 | 1828 | elsif (ref $self eq 'Graph::Easy::Parser' and $name =~ /[^\\]\|/) { } | 
 
| 1044 | 0 | 22 | if $graph->{'debug'} | 
 
| 1068 | 0 | 1828 | if ($self->{'debug'}) | 
 
| 1070 | 0 | 0 | if (not $graph->node($name)) { } | 
 
| 1082 | 0 | 1900 | if exists $att->{'basename'} and not $autosplit | 
 
| 1089 | 94 | 1806 | if (defined $stack) | 
 
| 1101 | 105 | 1888 | if $group | 
 
| 1106 | 2 | 1898 | if defined $b | 
 
| 1244 | 340 | 2659 | if ref $object | 
 
| 1245 | 1580 | 1419 | unless defined $class | 
 
| 1254 | 421 | 2578 | if $self->can('_match_multi_line_comment') | 
 
| 1256 | 421 | 2578 | if $self->can('_match_special_attribute') | 
 
| 1259 | 2333 | 666 | if $text =~ /^\s*\z/ | 
 
| 1261 | 0 | 666 | if $self->{'debug'} > 3 | 
 
| 1265 | 0 | 877 | if $self->{'debug'} > 3 | 
 
| 1268 | 262 | 615 | if $qr_cmt | 
 
| 1271 | 1 | 876 | if $text =~ /^\s*\z/ | 
 
| 1277 | 28 | 4 | if $done == 0 and $qr_satt and $text =~ s/^$qr_satt// | 
 
| 1279 | 4 | 872 | if $done == 0 | 
 
| 1283 | 28 | 844 | unless defined $v | 
 
| 1289 | 0 | 662 | if ($self->{'debug'} and $self->{'debug'} > 1) | 
 
| 1296 | 174 | 488 | if $self->can('_remap_attributes') | 
 
| 1304 | 19 | 818 | if defined $rc | 
 
| 1306 | 10 | 827 | if ref $v eq 'ARRAY' | 
 
| 1308 | 818 | 19 | if defined $v | 
 
| 1311 | 621 | 41 | unless wantarray | 
 
| 1324 | 1 | 2 | if $msg_nr == 1 | 
 
| 1326 | 1 | 2 | if $msg_nr == 2 | 
 
| 1328 | 1 | 2 | if $msg_nr == 3 | 
 
| 1330 | 0 | 3 | if $msg_nr == 4 | 
 
| 1332 | 0 | 3 | if $msg_nr == 5 | 
 
| 1335 | 0 | 3 | if $msg_nr == 6 | 
 
| 1337 | 0 | 3 | if $msg_nr == 7 | 
 
| 1358 | 50 | 1076 | if $n->{'autosplit'} | 
 
| 1359 | 0 | 1076 | if $n->attribute('offset') ne '0,0' and $n->attribute('origin') eq '' |