Condition Coverage

blib/lib/Language/P/Parser.pm
Criterion Covered Total %
condition 158 286 55.2


and 3 conditions

line !l l&&!r l&&r condition
184 61 0 0 $self->_options->{'dump-parse-tree'} and -f $self->lexer->file
267 0 433 0 $type and $type != $$token[1]
433 0 0 $value and $value eq $$token[2]
315 162 140 87 $$token[1] == 1 and is_keyword $tokidt
446 6 4 1 $$else[3] != 12 and $$else[3] != 16
489 4 3 0 $$token[1] == 1 and $$token[3] == 60 || $$token[3] == 64 || $$token[3] == 68
600 9 10 7 $$token[1] == 1 and $$token[3] == 36
613 329 0 10 $$keyword[1] == 1 and is_keyword($$keyword[3])
740 8 0 0 $ampersand and not $with_arguments
957 27 0 144 @values == 1 and $values[0]->is_constant
999 0 0 0 $qstring->isa('Language::P::ParseTree::QuotedString') and $#{$qstring->components;} == 0
0 0 0 $qstring->isa('Language::P::ParseTree::QuotedString') and $#{$qstring->components;} == 0 and $qstring->components->[0]->is_symbol
1012 0 0 0 $id and not length ${$lexer->buffer;}
1042 0 0 0 not $is_bind and $$token[2] != 132
1090 3 6 6 $$id[1] == 1 and $$id[3] == 1
1106 12 0 3 $tokidt == 56 and not ref $dest
1146 0 0 317 ref $indir eq 'ARRAY' && $$indir[1] == 1
1170 316 0 1 $sigil == 6 and $is_id
1186 1 311 0 $sigil == 2 || $sigil == 1 and $$next[1] == 18 || $$next[1] == 20
306 0 0 $sigil == 5 and $$next[1] == 20
1262 121 589 338 $terminal and not $lookahead
1434 3 0 3 $line->isa('Language::P::ParseTree::Block') and @{$line->lines;}
1458 57 0 21 $flags & 2 and @lines
1504 0 0 0 ref $indir eq 'ARRAY' and $$indir[1] == 1
1571 36 147 0 $call and $declared
1574 33 3 0 not $declared and $$next[1] != 16
1599 36 0 0 $$next[1] == 1 and $st->get_package($$next[2])
1653 163 20 0 $$proto[1] != -1 and @$args > $$proto[1]
1664 11 0 0 $term->isa('Language::P::ParseTree::SpecialFunctionCall') and $term->flags & 1
1669 139 11 0 $proto_char & 1040 and $term->is_bareword
1685 76 0 0 $proto_char & 72 and $$la[1] == 20
1686 0 91 21 $proto_char & 512 and $$la[1] == 1
91 21 0 $proto_char & 512 and $$la[1] == 1 and $$la[3] == 1
1700 0 0 0 $prec_assoc_bin{$tt} and not $prec_assoc_un{$tt}
0 0 0 $prec_assoc_bin{$tt} and not $prec_assoc_un{$tt} and $tt != 46
0 0 0 $prec_assoc_bin{$tt} and not $prec_assoc_un{$tt} and $tt != 46 and $tt != 48
0 0 0 $prec_assoc_bin{$tt} and not $prec_assoc_un{$tt} and $tt != 46 and $tt != 48 and $tt != 47
0 0 0 $prec_assoc_bin{$tt} and not $prec_assoc_un{$tt} and $tt != 46 and $tt != 48 and $tt != 47 and $tt != 50
0 0 0 $tt == 1 and is_id($$la2[3])
1748 0 0 3 not $args and $term->is_symbol
0 0 3 not $args and $term->is_symbol and $term->sigil == 1
1758 0 152 0 $term && $term->isa('Language::P::ParseTree::List')

or 2 conditions

line l !l condition
188 0 0 $outfile || die("Can't open '${outfile}': $!")
226 21 151 $is_sub || 0
263 50 393 $expect || 0
1451 0 78 $end_token ||= 21
1648 150 33 $call->arguments || []

or 3 conditions

line l !l&&r !l&&!r condition
219 21 61 90 $is_sub or $top_level
239 21 61 90 $$state{'is_sub'} or $$state{'top_level'}
265 0 0 443 $value or $type
267 0 0 433 $type and $type != $$token[1] or $value and $value eq $$token[2]
279 64 264 11 $$token[1] == 4 or $$token[1] == 13
300 7 0 0 _parse_line_rest($self, 0) || 'Language::P::ParseTree::Empty'->new
304 2 5 0 $self->_lexical_sub_state->{'labels'}{$$label[2]} ||= $statement
324 8 2 60 $tokidt == 4 or $tokidt == 8
11 1 48 $tokidt == 28 or $tokidt == 32
6 5 37 $tokidt == 20 or $tokidt == 24
8 0 29 $tokidt == 60 or $tokidt == 64
8 0 29 $tokidt == 60 or $tokidt == 64 or $tokidt == 68
0 3 26 $tokidt == 60 or $tokidt == 64 or $tokidt == 68 or $tokidt == 56
3 7 19 $tokidt == 60 or $tokidt == 64 or $tokidt == 68 or $tokidt == 56 or $tokidt == 44
10 3 16 $tokidt == 60 or $tokidt == 64 or $tokidt == 68 or $tokidt == 56 or $tokidt == 44 or $tokidt == 48
10 2 14 $tokidt == 60 or $tokidt == 64 or $tokidt == 68 or $tokidt == 56 or $tokidt == 44 or $tokidt == 48 or $tokidt == 52
5 14 0 $tokidt == 60 or $tokidt == 64 or $tokidt == 68 or $tokidt == 56 or $tokidt == 44 or $tokidt == 48 or $tokidt == 52 or $tokidt == 72
446 9 0 11 $$else[1] != 1 or $$else[3] != 12 and $$else[3] != 16
489 3 0 0 $$token[3] == 60 || $$token[3] == 64 || $$token[3] == 68
616 10 0 0 $keyidt == 4 or $keyidt == 8
0 0 0 $keyidt == 28 or $keyidt == 32
0 0 0 $keyidt == 20 or $keyidt == 24
698 0 0 12 $$next[1] == 16 or $$next[1] == 18
0 0 12 $$next[1] == 16 or $$next[1] == 18 or $$next[1] == 20
702 8 0 0 $$bracket[1] == 16 or $$bracket[1] == 18
8 0 0 $$bracket[1] == 16 or $$bracket[1] == 18 or $$bracket[1] == 20
732 3 5 0 not $subscripted->is_symbol or $subscripted->sigil != 4
940 29 0 0 $$value[1] == 47 or $$value[1] == 49
994 279 8 346 $$token[1] == 47 or $$token[1] == 49
287 0 346 $$token[1] == 47 or $$token[1] == 49 or $$token[1] == 48
8 0 346 $$token[1] == 47 or $$token[1] == 49 or $$token[1] == 48 or $$token[1] == 46
0 0 346 $$token[1] == 47 or $$token[1] == 49 or $$token[1] == 48 or $$token[1] == 46 or $$token[1] == 50
0 1 345 $$token[1] == 47 or $$token[1] == 49 or $$token[1] == 48 or $$token[1] == 46 or $$token[1] == 50 or $$token[1] == 55
1034 0 0 0 $$token[2] == 131 or $$token[2] == 132
1076 8 0 39 $tokidt == 60 or $tokidt == 64
8 0 39 $tokidt == 60 or $tokidt == 64 or $tokidt == 68
3 7 25 $tokidt == 56 or $tokidt == 44
10 3 22 $tokidt == 56 or $tokidt == 44 or $tokidt == 48
10 2 20 $tokidt == 56 or $tokidt == 44 or $tokidt == 48 or $tokidt == 52
1138 288 121 639 $no_subscr or not $term
1186 8 303 1 $sigil == 2 || $sigil == 1
6 0 305 $$next[1] == 18 || $$next[1] == 20
1227 8 0 0 $keyword == 60 or $keyword == 64
1268 350 20 219 not $binprec or $$binprec[0] > $prec
1343 0 0 1642 $$token[1] == 51 or $$token[1] == 52
1354 1086 224 332 not $bin or $$bin[0] > $prec
1365 0 0 274 $$token[1] == 57 || $$token[1] == 58
1578 0 0 0 $$la[1] == 1 or $$la[1] == 47
1724 3 0 109 $term->is_symbol && $term->sigil == 1 || $term->isa('Language::P::ParseTree::Block')
1737 112 41 35 $term ||= _parse_term($self, $term_prec)