Condition Coverage

blib/lib/Parse/RecDescent.pm
Criterion Covered Total %
condition 398 1004 39.6


and 3 conditions

line !l l&&!r l&&r condition
25 13 0 0 $file eq '-' and $line == 0
27 0 0 0 @ARGV >= 2 and $ARGV <= 3
97 0 9 0 $grammar and $sourcefile
330 3 1 0 $replace and not $self->{'changed'}
687 507 743 7 @items == 1 and ref($items[0]) =~ /\AParse::RecDescent::Error/
1250 7 0 @items == 1 and ref($items[0]) =~ /\AParse::RecDescent::Error/ and $items[0]{'commitonly'}
507 749 1 @items == 1 and ($items[0]->describe || '') =~ /
0 1256 0 @items and ref($items[0]) =~ /\AParse::RecDescent::UncondReject/ || ($items[0]->describe || '') =~ /
970 1257 0 0 $parser->{'_AUTOACTION'} and defined $item
1257 0 0 $parser->{'_AUTOACTION'} and defined $item and not $item->isa('Parse::RecDescent::Action')
1230 0 27 $parser->{'_AUTOTREE'} and defined $item
1230 0 27 $parser->{'_AUTOTREE'} and defined $item and not $item->isa('Parse::RecDescent::Action')
985 9 12 6 $i == 1 and $item->isterminal
1265 3 205 0 not eval "no strict;\n local \$SIG{__WARN__} = sub {0};\n '' =~ m$ldel$pattern$rdel$mod" and $@
2176 4200 85 0 $grammar =~ /(?=$ACTION)/cog and do { ($code) = &extract_codeblock($grammar); $code }
4163 37 0 $grammar =~ /(?=$IMPLICITSUBRULE)/cog and do { ($code) = &extract_codeblock($grammar, '{([', undef, '(', 1); $code }
1476 0 0 $grammar =~ /(?=$MTOKEN)/cog and do { ($code, undef, @components) = &extract_quotelike($grammar); $code }
1474 2 0 $grammar =~ /(?=$MATCHRULE)/cog and do { ($code) = &extract_bracketed($grammar, '<'); $code }
0 0 1474 $grammar =~ /$SUBRULE/cog and $code = $1
2200 1 0 84 $prod and $prod->additem($item)
2258 21 2 0 $grammar =~ /(?=$CONDREJECTMK)/cog and do { ($code) = &extract_codeblock($grammar, '{', undef, '<'); $code }
21 0 0 $grammar =~ /(?=$SCOREMK)/cog and do { ($code) = &extract_codeblock($grammar, '{', undef, '<'); $code }
21 0 0 $grammar =~ /(?=$AUTOSCOREMK)/cog and do { ($code) = &extract_codeblock($grammar, '{', undef, '<'); $code }
13 0 0 $grammar =~ /(?=$RESYNCPATMK)/cog and do { ($code) = &extract_bracketed($grammar, '<'); $code }
9 4 0 $grammar =~ /(?=$SKIPMK)/cog and do { ($code) = &extract_codeblock($grammar, '<'); $code }
8 1 0 $grammar =~ /(?=$RULEVARPATMK)/cog and do { ($code) = &extract_codeblock($grammar, '{', undef, '<'); $code }
8 0 0 $grammar =~ /(?=$AUTOACTIONPATMK)/cog and do { ($code) = &extract_codeblock($grammar, '{', undef, '<'); $code }
8 0 0 $grammar =~ /(?=$DEFERPATMK)/cog and do { ($code) = &extract_codeblock($grammar, '{', undef, '<'); $code }
8 0 0 $grammar =~ /(?=$TOKENPATMK)/cog and do { ($code) = &extract_codeblock($grammar, '{', undef, '<'); $code }
0 0 0 $grammar =~ /(?=$MSGERRORMK)/cog and do { $commitonly = $1; ($code) = &extract_bracketed($grammar, '<'); $code }
2269 0 0 2 $prod and $prod->additem($item)
2281 0 0 0 $prod and $prod->additem($item)
2291 0 0 0 $prod and $prod->additem($item)
2300 0 0 0 $prod and $prod->additem($item)
2333 1 1 1 $base and not $base =~ /::$/
2357 0 0 1 $prod and $prod->additem($item)
2369 0 0 2 $prod and $prod->additem($item)
2378 0 0 0 $prod and $prod->addscore($1, $lookahead, $line)
2389 0 0 0 $rule and $rule->addautoscore($1, $self)
2393 0 0 0 $prod and $prod->additem($item)
2402 0 0 8 $prod and $prod->additem($item)
2414 0 0 0 $prod and $prod->additem($item)
2427 0 0 3 $prod and $prod->additem($item)
2442 0 0 1 $rule and $rule->addvar($1, $self)
2446 0 0 1 $prod and $prod->additem($item)
2479 0 0 0 $prod and $prod->additem($item)
2508 0 0 0 $prod and $prod->additem($item)
2517 0 0 1 $prod and $prod->additem($item)
2545 0 0 7 $prod and $prod->additem($item)
2557 0 0 0 $prod and $prod->additem($item)
2619 0 0 1 $rule and $rule->addprod($prod)
2630 0 0 7 $rule and $rule->addprod($prod)
2638 0 582 0 $rule and !$prod || $prod->check_pending($line)
0 0 582 $rule and !$prod || $prod->check_pending($line) and $prod = $rule->addprod('Parse::RecDescent::Production'->new($line))
2650 0 0 919 $prod and $prod->additem($item)
2657 0 0 5 $prod and $prod->additem($item)
2664 0 0 208 $prod and $prod->additem($item)
2677 0 0 0 $prod and $prod->additem($item)
2714 0 0 246 $prod and $prod->additem($item)
2717 0 0 246 not $matchrule and $rule
2737 0 0 29 $prod and $prod->additem($item)
2740 0 0 29 not $matchrule and $rule
2765 0 0 53 $prod and $prod->additem($item)
2768 0 0 53 not $matchrule and $rule
2791 0 0 0 $prod and $prod->additem($item)
2794 0 0 0 not $matchrule and $rule
2815 0 0 1 $prod and $prod->additem($item)
2818 0 0 1 not $matchrule and $rule
2839 0 0 0 $prod and $prod->additem($item)
2842 0 0 0 not $matchrule and $rule
2864 0 0 0 $prod and $prod->additem($item)
2867 0 0 0 not $matchrule and $rule
2894 0 0 1020 $prod and $prod->additem($item)
2897 2 0 1018 not $matchrule and $rule
2962 0 0 0 open TRACE_FILE, $mode, 'RD_TRACE' and print TRACE_FILE "my \$ERRORS;\n$code"
2967 3 4 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 3 4 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Aeasy/
0 4 2 not defined $return and defined $score
1 0 4 not defined $return and defined $score
1 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Aa/
1 0 0 not defined $return and defined $score
1 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and do { $_tok = 'b'; 1 }
0 0 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and do { $_tok = 'b'; 1 } and substr($text, 0, length $_tok) eq $_tok
0 0 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and do { $_tok = 'b'; 1 } and substr($text, 0, length $_tok) eq $_tok and do { substr($text, 0, length $_tok) = ''; 1 }
0 0 0 not defined $return and defined $score
0 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Acat/
0 0 2 not defined $return and defined $score
0 2 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
5 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Ad/
0 5 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 0 5 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Ad/
0 0 5 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
5 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Ad/
0 2 0 not defined $return and defined $score
0 0 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Avar/
0 0 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
1 0 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Aholds/
2 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 2 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\A\;/
0 1 2 not defined $return and defined $score
2 0 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 2 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Adog/
0 0 1 not defined $return and defined $score
1 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\A(?:ee)/
1 0 0 not defined $return and defined $score
1 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Asome\ extension/
0 0 1 not defined $return and defined $score
0 2 0 not defined $return and defined $score
0 0 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 2 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\A(?:[a-z] # LEADING ALPHABETIC \w* # FOLLOWED BY ALPHAS, DIGITS, OR UNDERSCORES )/xi
0 2 0 not defined $return and defined $score
0 0 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 2 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Ais/
0 0 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 0 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Aare/
0 1 0 not defined $return and defined $score
0 0 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
1 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Afred/
0 0 3 not defined $return and defined $score
0 3 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\A(?:[a-z]\w*)/i
0 1 0 not defined $return and defined $score
0 1 0 not defined $return and defined $score
0 0 1 $text =~ s/\A($Parse::RecDescent::namespace000006::skip)/'' if $lastsep = $1;/e and do { $_tok = 'hello'; 1 }
1 0 0 $text =~ s/\A($Parse::RecDescent::namespace000006::skip)/'' if $lastsep = $1;/e and do { $_tok = 'hello'; 1 } and substr($text, 0, length $_tok) eq $_tok
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000006::skip)/'' if $lastsep = $1;/e and do { $_tok = 'hello'; 1 } and substr($text, 0, length $_tok) eq $_tok and do { substr($text, 0, length $_tok) = ''; 1 }
1 0 1 not defined $return and defined $score
0 2 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 4 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and do { $_tok = '('; 1 }
0 0 4 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and do { $_tok = '('; 1 } and substr($text, 0, length $_tok) eq $_tok
0 4 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and do { $_tok = '('; 1 } and substr($text, 0, length $_tok) eq $_tok and do { substr($text, 0, length $_tok) = ''; 1 }
0 0 4 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 4 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Athe/
0 1 3 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 3 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and do { $_tok = "$main::first"; 1 }
0 1 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and do { $_tok = "$main::first"; 1 } and substr($text, 0, length $_tok) eq $_tok
0 1 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and do { $_tok = "$main::first"; 1 } and substr($text, 0, length $_tok) eq $_tok and do { substr($text, 0, length $_tok) = ''; 1 }
0 0 4 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 2 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\A(?:te+st)/
4 0 0 not defined $return and defined $score
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000002::skip)/'' if $lastsep = $1;/e and $text =~ /\A(?:[a-z]+)/i
0 1 0 not defined $return and defined $score
1 0 0 not defined $return and defined $score
0 1 0 not defined $return and defined $score
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 0 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Aa/
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 0 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\A(?:c)/
0 1 0 not defined $return and defined $score
0 0 1 not defined $return and defined $score
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
2 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Aa/
0 2 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 0 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Ab/
0 0 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
2 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Ac/
0 2 0 $test6 && $text
0 4 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 0 4 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Aa/
0 2 0 not defined $return and defined $score
0 0 4 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
2 0 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Ax/
2 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
3 0 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\A(?:y+)/
0 0 3 not defined $return and defined $score
0 3 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 0 3 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Aa/
0 3 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
0 2 1 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\A(?:c+)/
0 0 3 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
1 0 2 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 } and $text =~ /\Adddd/
0 1 0 $text =~ s/\A($Parse::RecDescent::namespace000001::skip)/'' if $lastsep = $1;/e and do { $itempos[$#itempos]{'offset'}{'from'} += length $lastsep; $itempos[$#itempos]{'line'}{'from'} = $thisline; $itempos[$#itempos]{'column'}{'from'} = $thiscolumn; 1 }
2975 66 0 0 $ERRORS and not &_verbosity('HINT')
3003 82 0 6 $grammar =~ /$BETWEEN/cog and do { $min = $2; 1 }
82 4 0 $grammar =~ /$ATLEAST/cog and do { $min = $2; 1 }
3011 59 0 4 $1 eq $subrule and $min > 0
3055 5 0 0 $main::RD_AUTOSTUB and $main::RD_AUTOSTUB ne '1'
3281 86 10 3 defined $_itempos and not defined $itemposfirst
3287 6 93 1 ++$reps >= $min and $prevtextlen == length $text
3359 0 4209 0 defined $main::RD_ERRORS and $main::RD_ERRORS
0 4209 0 defined $main::RD_ERRORS and $main::RD_ERRORS and $_[0] =~ /ERRORS/
437 3797 2 defined $main::RD_HINT and $main::RD_HINT
3797 2 0 defined $main::RD_HINT and $main::RD_HINT and $_[0] =~ /ERRORS|WARN|HINT/
2 4234 0 defined $main::RD_WARN and $main::RD_WARN
0 4209 27 defined $main::RD_WARN and $main::RD_WARN and $_[0] =~ /ERRORS|WARN/
3379 0 27 1 &_verbosity('WARN') and $main::RD_HINT || $_[0] >= ($main::RD_WARN || 1)
3400 0 0 2 defined $main::RD_TRACE and $main::RD_TRACE =~ /\d+/
1 0 1 defined $main::RD_TRACE and $main::RD_TRACE =~ /\d+/ and $main::RD_TRACE > 1
2 0 0 defined $main::RD_TRACE and $main::RD_TRACE =~ /\d+/ and $main::RD_TRACE > 1 and $main::RD_TRACE + 10 < length $_[0]
3418 0 2 0 defined $main::RD_TRACE and $main::RD_TRACE =~ /\d+/
4 0 0 defined $main::RD_TRACE and $main::RD_TRACE =~ /\d+/ and $main::RD_TRACE > 1
0 4 0 defined $main::RD_TRACE and $main::RD_TRACE =~ /\d+/ and $main::RD_TRACE > 1 and $main::RD_TRACE + 10 < length $_[0]
3472 2853 2971 0 exists $self->{'lookahead'} and $self->{'lookahead'}

or 2 conditions

line l !l condition
687 748 2 $items[0]->describe || ''
1518 0 1020 $_[4] || undef
1 1019 $_[6] || undef
1633 0 329 $argcode || undef
2262 127 10 $2 || ''
2286 0 0 $1 || '{}'
2698 1 1475 &extract_codeblock($grammar, '[]', '') || ''
2967 4 0 4 $Parse::RecDescent::namespace000001::tracelevel || 0
3 1 1 $Parse::RecDescent::namespace000001::tracelevel || 0
0 1 0 $Parse::RecDescent::namespace000001::tracelevel || 0
0 1 0 $Parse::RecDescent::namespace000001::tracelevel || 0
0 0 0 $Parse::RecDescent::namespace000001::tracelevel || 0
2 0 0 $Parse::RecDescent::namespace000001::tracelevel || 0
0 1 1 $Parse::RecDescent::namespace000001::tracelevel || 0
0 0 3 $Parse::RecDescent::namespace000001::tracelevel || 0
0 0 1 $Parse::RecDescent::namespace000001::tracelevel || 0
0 1 0 $Parse::RecDescent::namespace000001::tracelevel || 0
1 0 0 $Parse::RecDescent::namespace000001::tracelevel || 0
0 2 0 $Parse::RecDescent::namespace000001::tracelevel || 0
0 2 0 $Parse::RecDescent::namespace000001::tracelevel || 0
0 0 1 $Parse::RecDescent::namespace000001::tracelevel || 0
3 0 0 $Parse::RecDescent::namespace000001::tracelevel || 0
0 1 $Parse::RecDescent::namespace000006::tracelevel || 0
0 0 1 $Parse::RecDescent::namespace000006::tracelevel || 0
2 0 0 $Parse::RecDescent::namespace000001::tracelevel || 0
0 4 0 $Parse::RecDescent::namespace000002::tracelevel || 0
0 0 1 $Parse::RecDescent::namespace000001::tracelevel || 0
0 1 $Parse::RecDescent::namespace000001::tracelevel || 0
0 0 1 $Parse::RecDescent::namespace000001::tracelevel || 0
0 1 $Parse::RecDescent::namespace000001::tracelevel || 0
0 0 1 $Parse::RecDescent::namespace000001::tracelevel || 0
0 0 2 $Parse::RecDescent::namespace000001::tracelevel || 0
0 3 0 $Parse::RecDescent::namespace000001::tracelevel || 0
3218 0 4 0 $_[2] || 0
3521 4278 434 3 pos $_[0] || 0

or 3 conditions

line l !l&&r !l&&!r condition
102 9 0 0 'Parse::RecDescent'->new($grammar, 1, $class) || croak(q[Can't compile bad grammar])
321 0 0 662 ref $_[0] || $_[0]
401 22 58 1216 not $next or &_contains($next, @expected)
637 0 1252 0 ref $self || $self
687 0 0 1256 ref($items[0]) =~ /\AParse::RecDescent::UncondReject/ || ($items[0]->describe || '') =~ /
1038 0 0 91 ref $_[0] || $_[0]
1092 0 0 23 ref $_[0] || $_[0]
1148 0 0 2 ref $_[0] || $_[0]
1192 0 0 7 ref $_[0] || $_[0]
1247 0 0 208 ref $_[0] || $_[0]
1353 0 0 919 ref $_[0] || $_[0]
1426 0 0 5 ref $_[0] || $_[0]
1498 0 0 3381 $_[0]{'implicit'} || $_[0]{'subrule'}
1517 0 0 1020 ref $_[0] || $_[0]
1588 186 0 1591 $_[0]{'expected'} || $_[0]{'subrule'}
1604 0 329 0 ref $self || $self
1804 127 0 6 $self->{'name'} || $self->{'hashname'}
1839 0 0 4 $self->{'name'} || $self->{'hashname'}
1892 127 0 10 $self->{'name'} || $self->{'hashname'}
1936 0 0 0 not $self->{'unexpected'} or $self->{'unexpected'} =~ /\A\s*\Z/s
1972 0 0 25 ref $_[0] || $_[0]
2154 0 0 305 $grammar =~ /\$$_/ || $self->{'_check'}{'itempos'}
2176 2 0 1474 $grammar =~ /(?=$MATCHRULE)/cog and do { ($code) = &extract_bracketed($grammar, '<'); $code } or $grammar =~ /$SUBRULE/cog and $code = $1
2492 0 0 0 eval 'no strict; local $SIG{__WARN__} = sub {0}; my @arr=(' . $code . '); @arr' || ()
2638 0 582 0 !$prod || $prod->check_pending($line)
2949 0 37 29 $ERRORS or $isimplicit
37 0 29 $ERRORS or $isimplicit or not $main::RD_CHECK
2954 0 37 29 $ERRORS or $isimplicit
37 0 29 $ERRORS or $isimplicit or $Parse::RecDescent::compiling
2967 5 1 3 $_matched or $commit
0 5 4 $_matched or defined $score
4 0 1 $_matched or $commit
0 5 0 $_matched or $commit
0 0 1 $_matched or $commit
0 0 5 $_matched or defined $score
0 0 1 $_matched or $commit
0 0 1 $_matched or defined $score
1 0 0 $_matched or $commit
0 1 0 $_matched or defined $score
0 0 0 $_matched or $commit
0 0 0 $_matched or $commit
2 0 0 $_matched or defined $score
0 5 0 $_matched or $commit
2 0 0 $_matched or defined $score
3 0 0 $_matched or $commit
0 3 0 $_matched or defined $score
1 0 0 $_matched or $commit
0 1 0 $_matched or defined $score
0 1 0 $_matched or $commit
0 0 1 $_matched or defined $score
0 0 1 $_matched or $commit
0 1 0 $_matched or defined $score
0 1 0 $_matched or $commit
0 2 0 $_matched or defined $score
0 2 0 $_matched or $commit
0 0 2 $_matched or defined $score
0 2 0 $_matched or $commit
2 0 0 $_matched or $commit
0 2 0 $_matched or defined $score
0 1 0 $_matched or $commit
0 3 0 $_matched or defined $score
0 0 1 $_matched or $commit
1 0 0 $_matched or defined $score
0 1 0 $_matched or $commit
0 0 1 $_matched or defined $score
0 2 0 $_matched or $commit
0 0 2 $_matched or defined $score
0 0 2 $_matched or $commit
1 0 3 $_matched or defined $score
0 1 0 $_matched or $commit
0 0 1 $_matched or defined $score
0 0 1 $_matched or $commit
1 0 0 $_matched or defined $score
0 1 0 $_matched or $commit
0 0 1 $_matched or defined $score
0 0 1 $_matched or $commit
1 0 0 $_matched or defined $score
0 1 0 $_matched or $commit
0 0 1 $_matched or $commit
0 1 0 $_matched or defined $score
1 0 0 $_matched or $commit
4 0 0 $_matched or $commit
0 4 0 $_matched or $commit
0 0 4 $_matched or defined $score
0 3 0 $_matched or $commit
0 3 0 $_matched or defined $score
3001 6 0 82 $grammar =~ /$OPTIONAL/cog or $grammar =~ /$ANY/cog
3003 0 6 82 $grammar =~ /$MANY/cog or $grammar =~ /$EXACTLY/cog
0 2 86 $grammar =~ /$MANY/cog or $grammar =~ /$EXACTLY/cog or $grammar =~ /$ATMOST/cog
4 0 84 $grammar =~ /$MANY/cog or $grammar =~ /$EXACTLY/cog or $grammar =~ /$ATMOST/cog or $grammar =~ /$BETWEEN/cog and do { $min = $2; 1 }
5 0 82 $grammar =~ /$MANY/cog or $grammar =~ /$EXACTLY/cog or $grammar =~ /$ATMOST/cog or $grammar =~ /$BETWEEN/cog and do { $min = $2; 1 } or $grammar =~ /$ATLEAST/cog and do { $min = $2; 1 }
0 58 29 $grammar =~ /$MANY/cog or $grammar =~ /$EXACTLY/cog or $grammar =~ /$ATMOST/cog or $grammar =~ /$BETWEEN/cog and do { $min = $2; 1 } or $grammar =~ /$ATLEAST/cog and do { $min = $2; 1 } or $grammar =~ /$SUBRULE(?!\s*:)/cog
3037 1037 0 2 defined do { $rules }->{$call} or defined &{"Parse::RecDescent::$call";}
3098 0 5 1257 $hasempty ||= $prod->isempty
3215 49 0 0 ref $_[0] || $_[0]
3231 48 0 1 $main::RD_WARN || $_[0]{'__WARN__'}
3232 0 0 49 $main::RD_HINT || $_[0]{'__HINT__'}
3233 1 0 48 $main::RD_TRACE || $_[0]{'__TRACE__'}
3359 0 0 4236 defined $main::RD_TRACE or defined $main::RD_HINT and $main::RD_HINT and $_[0] =~ /ERRORS|WARN|HINT/
2 0 4234 defined $main::RD_TRACE or defined $main::RD_HINT and $main::RD_HINT and $_[0] =~ /ERRORS|WARN|HINT/ or defined $main::RD_WARN and $main::RD_WARN and $_[0] =~ /ERRORS|WARN/
3379 0 1 27 $main::RD_HINT || $_[0] >= ($main::RD_WARN || 1)
3439 0 1 3 $_[1] || $lastcontext
3440 0 3 0 $_[2] || $lastrulename
3441 0 0 3 $_[3] || $lastlevel