Branch Coverage

blib/lib/Parse/Eyapp/Parse.pm
Criterion Covered Total %
branch 157 256 61.3


line true false branch
30 61 0 unless 'Parse::Eyapp::Driver'->can('YYParse')
31 61 0 unless 'Parse::Eyapp::Node'->can('hnew')
35 0 0 defined pos $_ ? :
0 0 defined $_ ? :
119 145 409 $metatree ? :
122 432 122 unless %index
150 1270 14 unless $value->[0] eq 'CODE' and $metatree or $value->[0] eq 'CONFLICTHANDLER'
152 200 1084 if (defined $id)
157 0 200 if exists $index{$id}
160 546 738 if $_ >= $position
180 26 58 unless $semantic->{$symb}
181 52 6 if defined $id
194 8 36 unless $tree and $alias and defined $name and $name->[0] =~ /^[a-zA-Z_]\w*$/
209 15 135 if is_begin_code($$code)
210 130 5 if ($$code) { }
234 8 1367 if ($what eq 'CODE') { }
0 1367 elsif ($what eq 'CONFLICTHANDLER') { }
237 8 0 if ($value)
243 6 2 $metatree ? :
250 6 2 if $metatree
279 0 76 exists $arg{'prec'} ? :
280 0 76 unless exists $arg{'name'}
281 76 0 exists $arg{'code'} ? :
426 0 54 if ref $class
428 0 54 unless 'Parse::Eyapp::Parse'->isa('Parse::Eyapp::Driver')
1935 387 365 unless (exists $syms->{$symbol})
1940 387 0 unless exists $semantic->{$symbol}
1955 238 642 unless (exists $syms->{$symbol})
1960 238 0 unless exists $semantic->{$symbol}
1962 238 0 unless exists $nterm->{$symbol} or $term->{$symbol}
2037 42 0 if $def
2060 28 0 if $def
2076 0 0 if $def
2089 0 6 if (exists $token->{$symbol})
2098 6 0 if $def
2111 0 254 if (defined $term->{$symbol}[0])
2129 0 0 unless $start
2228 3 31 $_[1][0] =~ /bypass/ ? :
2229 4 30 $_[1][0] =~ /alias/ ? :
2266 0 0 if (exists $nterm->{$symbol})
2340 0 0 if ($startsymbol eq 'EMPTY') { }
2384 0 0 if (not $neg) { }
2465 0 0 unless defined $expect
2466 0 0 if ref $expect
2583 0 54 unless $start
2586 0 54 unless ref $nterm->{$start}
2594 0 0 if (defined $conflict{$A}{'explorer'}) { }
2595 0 0 if (not $conflict{$A}{'totalviewpoint'}) { }
2619 0 54 if ($strict)
2622 0 0 unless $_ eq 'error' or $term->{$_} or exists $nterm->{$_} or exists $conflict{$_}
2652 54 0 unless $start
2686 39 0 if $code
2688 14 25 if $metatree
2710 182 324 if defined $rhs and $rhs->[-1][0] eq 'CODE'
2713 499 7 if $code
2716 130 376 if $metatree
2757 0 71 if not_an_id($_[2][1][0])
2810 8 0 unless $metatree
2814 0 8 if defined $rhs and $rhs->[-1][0] eq 'CODE'
2817 8 0 if $code
2819 0 8 if $metatree
2832 0 6 if $what eq 'CODE'
2851 0 5 if $what eq 'CODE'
2879 0 1 if $what eq 'CODE'
2898 0 17 if $what eq 'CODE'
2917 0 4 if $what eq 'CODE'
2972 0 39 unless (defined $$term{$_[2][0]})
3001 0 15 unless $metatree
3149 0 0 $token ? :
3161 0 935 if substr($$input, pos($$input) - 1, 1) eq '\\'
3163 357 578 $1 eq '{' ? :
221 714 unless $level += $1 eq '{' ? 1 : -1
3167 0 221 if $level
3237 54 4798 if pos $$input >= length $$input
3242 54 4744 if ($lexlevel > 1)
3255 1150 3594 $lexlevel == 0 ? :
3519 1225 if ($lexlevel == 0 ? $$input =~ /\G($HEADERWHITESPACES)/cg : $$input =~ /\G($BODYWHITESPACES)/cg)
3259 0 3519 if pos $$input >= length $$input
3266 0 4744 if $$input =~ /\G($LABEL)/cg
3269 1522 3222 if $$input =~ /\G($ID)/cg
3274 752 2470 if ($$input =~ /\G($STRING)/cg)
3278 0 752 if ($string eq q['error'])
3285 0 752 if $lines
3288 0 752 if $string eq q['']
3295 108 2362 if ($$input =~ /\G(%%)/cg)
3300 206 2156 if $$input =~ /\G\s*\{/cg
3302 751 1405 if ($lexlevel == 0) { }
3304 161 590 if $$input =~ /\G%(left|right|nonassoc)/cg
3307 34 556 if ($$input =~ /\G%\{/cg)
3310 0 34 unless $$input =~ /\G(.*?)%}/cgs
3317 1 555 if $$input =~ /\G%prefix\s+([A-Za-z_][A-Za-z0-9_:]*::)/cg
3320 34 521 if ($$input =~ /\G%(tree((?:\s+(?:bypass|alias)){0,2}))/cg)
3321 34 0 defined $2 ? :
3325 19 502 if $$input =~ /\G%(?:(semantic|syntactic|dummy)(?:\s+token)?)\b/cg
3327 0 502 if $$input =~ /\G%(?:(incremental)(?:\s+lexer)?)\b/cg
3329 15 487 if $$input =~ /\G%(lexer|defaultaction|union)\b\s*/cg
3331 0 487 if $$input =~ /\G([0-9]+)/cg
3333 0 487 if $$input =~ /\G%expect-rr/cg
3335 0 487 if $$input =~ /\G%(explorer)/cg
3337 22 465 if $$input =~ /\G%($ID)/cg
3339 0 465 if $$input =~ /\G($REGEXP)/cg
3341 0 465 if $$input =~ /\G::/cg
3351 5 1400 if $$input =~ /\G(?:<\s*%name\s*($ID)\s*)?([*+?])\s*>/cg
3358 28 1372 if $$input =~ /\G(?:%name\s*($ID)\s*)?([*+?])/cg
3361 2 1370 if ($$input =~ /\G%no\s+bypass/cg)
3366 39 1331 if $$input =~ /\G%(prec)/cg
3369 0 1331 if $$input =~ /\G%(PREC)/cg
3373 355 976 if ($$input =~ /\G%name/cg)
3382 15 961 if $$input =~ /\G%begin\s*{/cg
3386 0 961 if $$input =~ /\G%([a-zA-Z_]\w*)\?/cg
3393 0 1426 unless $$input =~ /\G(.)/gs
3400 465 961 if $char eq "\n"
3409 0 0 $lineno < 0 ? :
3414 0 0 if $level > 1
3419 0 0 if $level > 0
3422 0 0 if $nberr == 20
3446 0 215 if (ref $nterm->{$lhs})
3453 0 215 if (ref $term->{$lhs})
3454 0 0 exists $token->{$lhs} ? :
3461 215 0 unless (ref $nterm->{$lhs})
3480 16 613 unless (@$rhs)
3495 0 215 if $epsrules > 1
3506 0 54 unless @_ > 0
3515 0 54 unless $filename = $_[2]
3516 54 0 $firstline ? :
3519 0 54 if ($tree)
3545 0 54 if $_[7]
3557 0 54 if $nberr