Branch Coverage

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


line true false branch
24 61 0 unless 'Parse::Eyapp::Driver'->can('YYParse')
25 61 0 unless 'Parse::Eyapp::Node'->can('hnew')
29 0 0 defined pos $_ ? :
0 0 defined $_ ? :
107 145 409 $metatree ? :
110 432 122 unless %index
138 1270 14 unless $$value[0] eq 'CODE' and $metatree or $$value[0] eq 'CONFLICTHANDLER'
140 200 1084 if (defined $id)
141 0 200 if exists $index{$id}
148 546 738 if $_ >= $position
168 26 58 unless $$semantic{$symb}
169 52 6 if defined $id
182 8 36 unless $tree and $alias and defined $name and $$name[0] =~ /^[a-zA-Z_]\w*$/
197 15 135 if is_begin_code($$code)
198 130 5 if ($$code) { }
222 8 1367 if ($what eq 'CODE') { }
0 1367 elsif ($what eq 'CONFLICTHANDLER') { }
225 8 0 if ($value)
231 6 2 $metatree ? :
238 6 2 if $metatree
267 0 76 exists $arg{'prec'} ? :
268 0 76 unless exists $arg{'name'}
269 76 0 exists $arg{'code'} ? :
359 0 54 if ref $class
361 0 54 unless 'Parse::Eyapp::Parse'->isa('Parse::Eyapp::Driver')
1868 387 365 unless (exists $$syms{$symbol})
1873 387 0 unless exists $$semantic{$symbol}
1888 238 642 unless (exists $$syms{$symbol})
1893 238 0 unless exists $$semantic{$symbol}
1895 238 0 unless exists $$nterm{$symbol} or $$term{$symbol}
1970 42 0 if $def
1993 28 0 if $def
2009 0 0 if $def
2022 0 6 if (exists $$token{$symbol})
2031 6 0 if $def
2044 0 254 if (defined $$term{$symbol}[0])
2062 0 0 unless $start
2161 3 31 $_[1][0] =~ /bypass/ ? :
2162 4 30 $_[1][0] =~ /alias/ ? :
2199 0 0 if (exists $$nterm{$symbol})
2273 0 0 if ($startsymbol eq 'EMPTY') { }
2317 0 0 if (not $neg) { }
2398 0 0 unless defined $expect
2399 0 0 if ref $expect
2516 0 54 unless $start
2519 0 54 unless ref $$nterm{$start}
2527 0 0 if (defined $conflict{$A}{'explorer'}) { }
2528 0 0 if (not $conflict{$A}{'totalviewpoint'}) { }
2552 0 54 if ($strict)
2554 0 0 unless $_ eq 'error' or $$term{$_} or exists $$nterm{$_} or exists $conflict{$_}
2585 54 0 unless $start
2619 39 0 if $code
2621 14 25 if $metatree
2643 182 324 if defined $rhs and $$rhs[-1][0] eq 'CODE'
2646 499 7 if $code
2649 130 376 if $metatree
2690 0 71 if not_an_id($_[2][1][0])
2743 8 0 unless $metatree
2747 0 8 if defined $rhs and $$rhs[-1][0] eq 'CODE'
2750 8 0 if $code
2752 0 8 if $metatree
2765 0 6 if $what eq 'CODE'
2784 0 5 if $what eq 'CODE'
2812 0 1 if $what eq 'CODE'
2831 0 17 if $what eq 'CODE'
2850 0 4 if $what eq 'CODE'
2905 0 39 unless (defined $$term{$_[2][0]})
2934 0 15 unless $metatree
3082 0 0 $token ? :
3094 0 935 if substr($$input, pos($$input) - 1, 1) eq '\\'
3096 357 578 $1 eq '{' ? :
221 714 unless $level += $1 eq '{' ? 1 : -1
3100 0 221 if $level
3170 54 4798 if pos $$input >= length $$input
3175 54 4744 if ($lexlevel > 1)
3188 1150 3594 $lexlevel == 0 ? :
3519 1225 if ($lexlevel == 0 ? $$input =~ /\G($HEADERWHITESPACES)/cg : $$input =~ /\G($BODYWHITESPACES)/cg)
3192 0 3519 if pos $$input >= length $$input
3199 0 4744 if $$input =~ /\G($LABEL)/cg
3202 1522 3222 if $$input =~ /\G($ID)/cg
3207 752 2470 if ($$input =~ /\G($STRING)/cg)
3211 0 752 if ($string eq q['error'])
3218 0 752 if $lines
3221 0 752 if $string eq q['']
3228 108 2362 if ($$input =~ /\G(%%)/cg)
3233 206 2156 if $$input =~ /\G\s*{/cg
3235 751 1405 if ($lexlevel == 0) { }
3237 161 590 if $$input =~ /\G%(left|right|nonassoc)/cg
3240 34 556 if ($$input =~ /\G%{/cg)
3243 0 34 unless $$input =~ /\G(.*?)%}/cgs
3250 1 555 if $$input =~ /\G%prefix\s+([A-Za-z_][A-Za-z0-9_:]*::)/cg
3253 34 521 if ($$input =~ /\G%(tree((?:\s+(?:bypass|alias)){0,2}))/cg)
3254 34 0 defined $2 ? :
3258 19 502 if $$input =~ /\G%(?:(semantic|syntactic|dummy)(?:\s+token)?)\b/cg
3260 0 502 if $$input =~ /\G%(?:(incremental)(?:\s+lexer)?)\b/cg
3262 15 487 if $$input =~ /\G%(lexer|defaultaction|union)\b\s*/cg
3264 0 487 if $$input =~ /\G([0-9]+)/cg
3266 0 487 if $$input =~ /\G%expect-rr/cg
3268 0 487 if $$input =~ /\G%(explorer)/cg
3270 22 465 if $$input =~ /\G%($ID)/cg
3272 0 465 if $$input =~ /\G($REGEXP)/cg
3274 0 465 if $$input =~ /\G::/cg
3283 5 1400 if $$input =~ /\G(?:<\s*%name\s*($ID)\s*)?([*+?])\s*>/cg
3290 28 1372 if $$input =~ /\G(?:%name\s*($ID)\s*)?([*+?])/cg
3294 2 1370 if ($$input =~ /\G%no\s+bypass/cg)
3299 39 1331 if $$input =~ /\G%(prec)/cg
3302 0 1331 if $$input =~ /\G%(PREC)/cg
3306 355 976 if ($$input =~ /\G%name/cg)
3315 15 961 if $$input =~ /\G%begin\s*{/cg
3319 0 961 if $$input =~ /\G%([a-zA-Z_]\w*)\?/cg
3326 0 1426 unless $$input =~ /\G(.)/gs
3333 465 961 if $char eq "\n"
3342 0 0 $lineno < 0 ? :
3347 0 0 if $level > 1
3352 0 0 if $level > 0
3355 0 0 if $nberr == 20
3379 0 215 if (ref $$nterm{$lhs})
3386 0 215 if (ref $$term{$lhs})
3387 0 0 exists $$token{$lhs} ? :
3394 215 0 unless (ref $$nterm{$lhs})
3413 16 613 unless (@$rhs)
3428 0 215 if $epsrules > 1
3439 0 54 unless @_ > 0
3448 0 54 unless $filename = $_[2]
3449 54 0 $firstline ? :
3452 0 54 if ($tree)
3478 0 54 if $_[7]
3490 0 54 if $nberr