| line |
true |
false |
branch |
|
125
|
180 |
810 |
if (&looks_like_instance($defaults{$key}, 'ARRAY')) { } |
|
|
45 |
765 |
elsif (&looks_like_instance($defaults{$key}, 'HASH')) { } |
|
166
|
265 |
48 |
if (not $self->{'_linemode'}) { } |
|
|
48 |
0 |
elsif ($self->{'_linemode'}) { } |
|
168
|
10 |
1050 |
if ($raw_token =~ qr/^\[/) |
|
175
|
415 |
635 |
if (exists $self->{$lower_case_token} and not $private_block) { } |
|
|
634 |
2 |
elsif ($self->{'_current'} and not $private_block) { } |
|
177
|
415 |
0 |
if (ref $self->{$lower_case_token} eq 'CODE') |
|
198
|
0 |
0 |
if ($self->{'_begin'} and not exists $self->{$lower_case_token} and not $private_block) |
|
207
|
0 |
1 |
if ($private_block and $token_queue->[-2] eq 'end' and $token_queue->[-1] eq ';') { } |
|
332
|
332 |
76 |
if (not $line =~ /$QUOTES_OR_BRACKETS/mx || $INSIDE_QUOTE) { } |
|
|
20 |
56 |
elsif ($line =~ /$OPENING_QUOTE_OR_BRACKET/mx and not $INSIDE_QUOTE) { } |
|
|
30 |
26 |
elsif (not $line =~ /$CONTEXT_CLOSER/ and $INSIDE_QUOTE) { } |
|
|
20 |
6 |
elsif ($line =~ /$CONTEXT_QB_AT_START/ and $INSIDE_QUOTE) { } |
|
|
6 |
0 |
elsif ($line =~ /$CONTEXT_CLOSER/ and $INSIDE_QUOTE) { } |
|
333
|
20 |
312 |
if ($continue) { } |
|
376
|
9 |
11 |
if ($q eq '"' or $q eq q[']) { } |
|
|
11 |
0 |
elsif ($q eq '[') { } |
|
377
|
9 |
0 |
if ($remainder =~ /^(${q}[^$q]*?$q)(.*)$/) { } |
|
|
0 |
0 |
elsif ($remainder =~ /^${q}[^$q]*$/) { } |
|
394
|
3 |
827 |
if substr($line, $i, 1) eq '[' |
|
395
|
8 |
822 |
if ($i and not $INSIDE_QUOTE) |
|
404
|
11 |
811 |
if substr($line, $i, 1) eq ']' |
|
415
|
6 |
0 |
if $continue |
|
416
|
0 |
6 |
if ($q eq '"' or $q eq q[']) { } |
|
|
6 |
0 |
elsif ($q eq ']') { } |
|
423
|
3 |
411 |
if substr($line, $i, 1) eq '[' |
|
424
|
3 |
411 |
if ($i and not $INSIDE_QUOTE) |
|
426
|
3 |
0 |
if ($continue) { } |
|
435
|
6 |
405 |
if substr($line, $i, 1) eq ']' |
|
437
|
3 |
0 |
if ($continue) { } |
|
454
|
0 |
15 |
if ($INSIDE_QUOTE) |
|
466
|
352 |
20 |
if (not $word =~ /$QUOTES_OR_BRACKETS/mx) { } |
|
484
|
13 |
13 |
if ($block->_type == $TAXA) { } |
|
|
13 |
0 |
elsif ($block->_type != $TAXA and $block->can('set_taxa')) { } |
|
488
|
0 |
13 |
if ($taxa->[-1] and $taxa->[-1]->can('_type') == $TAXA and not $block->get_taxa) |
|
502
|
156 |
702 |
if (&looks_like_instance($defaults{$key}, 'ARRAY')) { } |
|
|
39 |
663 |
elsif (&looks_like_instance($defaults{$key}, 'HASH')) { } |
|
526
|
14 |
0 |
if (uc $_[0] eq '#NEXUS') |
|
538
|
13 |
5 |
if ($self->{'_begin'}) { } |
|
554
|
2 |
15 |
if (not $token =~ /CHARSET/i || $self->{'_charset'}{'name'}) { } |
|
|
1 |
14 |
elsif ($token =~ /^\(/) { } |
|
|
1 |
13 |
elsif (defined $self->{'_charset'}{'matrix'} and not $self->{'_charset'}{'matrix'} and not $token =~ /(?:\(?CHARACTERS|=)/i) { } |
|
|
8 |
5 |
elsif ($token =~ /(?:\d+|-)/) { } |
|
579
|
2 |
17 |
if (not $token =~ /TAXSET/i || $self->{'_taxset'}{'name'}) { } |
|
|
1 |
16 |
elsif ($token =~ /^\(/) { } |
|
|
1 |
15 |
elsif (defined $self->{'_taxset'}{'taxa'} and not $self->{'_taxset'}{'taxa'} and not $token =~ /(?:\(?TAXA|=)/) { } |
|
|
10 |
5 |
elsif ($token =~ /(?:\d+|-)/) { } |
|
603
|
0 |
0 |
if (defined $token and uc $token eq 'NO') |
|
611
|
11 |
14 |
if (defined $token and uc $token ne 'TITLE') |
|
613
|
11 |
0 |
if (not $self->_current->get_name) |
|
623
|
0 |
2 |
if (defined $token and not $token =~ /^(?:LINK|TAXA|=)$/i) |
|
625
|
0 |
0 |
if (not $self->_current->get_taxa) |
|
627
|
0 |
0 |
if ($block->get_name and $block->get_name eq $link) |
|
645
|
13 |
26 |
if (defined $_[0] and $_[0] =~ /^\d+$/) |
|
654
|
59 |
13 |
if (defined $_[0] and uc $_[0] ne 'TAXLABELS') { } |
|
|
13 |
0 |
elsif (defined $_[0] and uc $_[0] eq 'TAXLABELS') { } |
|
669
|
0 |
0 |
if (defined $_[0] and uc $_[0] ne 'BLOCKID') |
|
678
|
0 |
0 |
if ($self->{'_begin'}) |
|
687
|
9 |
0 |
if ($self->{'_begin'}) |
|
696
|
9 |
18 |
if (defined $_[0] and $_[0] =~ /^\d+$/) |
|
710
|
9 |
18 |
if (defined $_[0] and not $_[0] =~ /^(?:DATATYPE|=)/i) |
|
719
|
0 |
0 |
if (defined $_[0] and not $_[0] =~ /^(?:MATCHCHAR|=)/i) |
|
733
|
9 |
18 |
if (not $_[0] =~ /^(?:GAP|=)/i || $self->{'_gap'}) |
|
744
|
9 |
18 |
if (not $_[0] =~ /^(?:MISSING|=)/i || $self->{'_missing'}) |
|
755
|
5 |
10 |
if (not $_[0] =~ /^(?:SYMBOLS|=)$/i and $_[0] =~ /^"?(.+)"?$/) |
|
766
|
0 |
0 |
if (defined $_[0] and uc $_[0] ne 'CHARLABELS') |
|
775
|
16 |
2 |
if (defined $token and uc $token ne 'CHARSTATELABELS') |
|
783
|
0 |
0 |
if (defined $token and uc $token ne 'STATELABELS') |
|
784
|
0 |
0 |
if ($token eq ',') { } |
|
800
|
9 |
48 |
unless (defined $self->{'_matrixtype'}) |
|
802
|
0 |
9 |
if (@{$self->{'_charlabels'};}) |
|
806
|
0 |
9 |
if (@{$self->{'_statelabels'};}) |
|
810
|
0 |
9 |
if (my(@symbols) = @{$self->{'_symbols'};}) |
|
814
|
0 |
0 |
if ($lookup) |
|
816
|
0 |
0 |
unless (exists $lookup->{$sym}) |
|
831
|
9 |
81 |
if $token eq ';' |
|
835
|
39 |
42 |
if (not defined $rowname || $token =~ /$COMMENT/) { } |
|
|
42 |
0 |
elsif (defined $rowname and not $token =~ /$COMMENT/) { } |
|
837
|
0 |
39 |
if ($taxa = $self->_current->get_taxa) { } |
|
|
39 |
0 |
elsif ($taxa = $self->_find_last_seen_taxa_block) { } |
|
838
|
0 |
0 |
if (my $taxon = $taxa->get_by_name($token)) { } |
|
846
|
39 |
0 |
if (my $taxon = $taxa->get_by_name($token)) { } |
|
856
|
39 |
0 |
unless (exists $self->{'_matrix'}{$rowname}) |
|
863
|
6 |
36 |
if ($self->{'_matrixtype'} =~ /^continuous$/i) { } |
|
877
|
84 |
96 |
if ($self->{'_context'}[$i]->_type == $TAXA) |
|
878
|
2 |
82 |
if ($name) { } |
|
879
|
1 |
1 |
if ($self->{'_context'}[$i]->get_name eq $name) |
|
895
|
5 |
0 |
if ($self->{'_context'}[$i]->_type == $MATRIX) |
|
896
|
2 |
3 |
if ($name) { } |
|
897
|
1 |
1 |
if ($self->{'_context'}[$i]->get_name eq $name) |
|
913
|
74 |
0 |
if (my $taxon = $taxa->get_by_name($obj->get_name)) { } |
|
933
|
88 |
44 |
if (my $taxon = $obj->get_taxon) |
|
939
|
30 |
14 |
if (my $taxa = $container->get_taxa) |
|
945
|
42 |
2 |
if (my $taxa = $self->_find_last_seen_taxa_block) { } |
|
972
|
228 |
0 |
if (not $in_set || exists $brackets{$c}) { } |
|
|
0 |
0 |
elsif (not $in_set and exists $brackets{$c}) { } |
|
|
0 |
0 |
elsif ($in_set and $c ne $close) { } |
|
|
0 |
0 |
elsif ($in_set and $c eq $close) { } |
|
973
|
228 |
0 |
if defined $c |
|
995
|
0 |
0 |
if ($self->{'_begin'}) |
|
1011
|
9 |
48 |
if (not &looks_like_instance($token, 'ARRAY') and uc $token eq 'MATRIX') { } |
|
|
39 |
9 |
elsif (&looks_like_instance($token, 'ARRAY') and not grep({/^;$/;} @{$token;})) { } |
|
|
9 |
0 |
elsif (&looks_like_instance($token, 'ARRAY') and grep {/^;$/;} @{$token;}) { } |
|
1058
|
1 |
8 |
if ($self->_current->get_nchar != $self->{'_nchar'}) { } |
|
|
0 |
16 |
elsif (defined $self->{'_ntax'} and $self->_current->get_ntax != $self->{'_ntax'}) { } |
|
1090
|
5 |
0 |
if ($self->{'_begin'}) |
|
1102
|
5 |
166 |
if ($i and $i == 1) |
|
1106
|
57 |
114 |
if (not defined $i and $_[0] =~ /^\d+$/) { } |
|
|
57 |
57 |
elsif (defined $i and exists $self->{'_translate'}[$i] and not defined $self->{'_translate'}[$i] and $_[0] ne ';') { } |
|
1123
|
13 |
13 |
unless ($self->{'_treename'} or $_[0] =~ /^(U?TREE|\*)$/i) |
|
1126
|
13 |
199 |
if ($_[0] eq '=' and not $self->{'_treestart'}) |
|
1129
|
173 |
26 |
if ($_[0] ne '=' and $self->{'_treestart'}) |
|
1135
|
13 |
173 |
if ($self->{'_treestart'} and $self->{'_tree'} and $self->{'_tree'} =~ tr/(// == $self->{'_tree'} =~ tr/)//) |
|
1141
|
1 |
12 |
exists $translate->[0] ? : |
|
1164
|
5 |
20 |
if (uc $self->{'_previous'} eq ';' and $self->{'_trees'}) |
|
1195
|
0 |
189 |
if (uc $self->{'_previous'} eq 'MATRIX') { } |
|
|
2 |
187 |
elsif (uc $self->{'_previous'} eq 'CHARSET') { } |
|
|
2 |
185 |
elsif (uc $self->{'_previous'} eq 'CHARSTATELABELS') { } |
|
|
2 |
183 |
elsif (uc $self->{'_previous'} eq 'TAXSET') { } |
|
|
13 |
170 |
elsif (uc $self->{'_previous'} eq 'TAXLABELS') { } |
|
|
5 |
165 |
elsif (uc $self->{'_previous'} eq 'SYMBOLS') { } |
|
|
0 |
165 |
elsif (uc $self->{'_previous'} eq 'CHARLABELS') { } |
|
|
0 |
165 |
elsif (uc $self->{'_previous'} eq 'STATELABELS') { } |
|
1201
|
0 |
0 |
if (not $self->_current->get_ntax) |
|
1218
|
2 |
0 |
if (ref $range eq 'ARRAY') |
|
1221
|
2 |
2 |
if ($range->[0] and $range->[0] eq '-') { } |
|
1232
|
6 |
0 |
if ($character) { } |
|
1247
|
1 |
1 |
if ($matrix->get_type =~ /continuous/i) { } |
|
1254
|
0 |
2 |
if $index != $charnum |
|
1260
|
1 |
1 |
if (@labels) |
|
1261
|
1 |
0 |
$labels[0] eq ',' ? : |
|
1275
|
0 |
2 |
if $index != $charnum |
|
1282
|
0 |
2 |
if $slash ne '/' |
|
1290
|
1 |
1 |
if (@labels) |
|
1291
|
1 |
0 |
$labels[0] eq ',' ? : |
|
1310
|
2 |
4 |
if ($range->[0] and $range->[0] eq '-') { } |
|
1321
|
8 |
0 |
if ($taxon) { } |
|
1337
|
1 |
12 |
if ($self->_current->get_ntax != $self->{'_ntax'}) |
|
1360
|
0 |
0 |
if (@{$self->{'_charlabels'};}) |
|
1368
|
0 |
0 |
if (@{$self->{'_statelabels'};}) |