Branch Coverage

blib/lib/Parse/Eyapp/Driver.pm
Criterion Covered Total %
branch 126 446 28.2


line true false branch
72 0 133 if exists $$self{'VERSION'} and $$self{'VERSION'} < $COMPATIBLE
78 0 133 if ref $class
81 132 1 unless ($$self{'ERROR'})
83 0 132 unless $$self{'ERROR'}
86 132 1 unless ($$self{'LEX'})
102 0 158 unless ($$self{'ERROR'})
104 0 0 unless $$self{'ERROR'}
107 0 158 unless ($$self{'LEX'})
109 0 0 unless $$self{'LEX'} and reftype($$self{'LEX'}) eq 'CODE'
112 0 158 if ($$self{'DEBUG'}) { }
115 0 0 if $@
126 34 1993 unless exists $$self{'USER'}
179 0 0 if $index < 0 and -$index <= @{$$self{'STACK'};}
193 0 0 if ($index)
194 0 0 unless looks_like_number $index
195 0 0 wantarray ? :
198 0 0 wantarray ? :
218 0 0 if ($index)
220 0 0 if 'ARRAY' eq reftype $index
221 0 0 unless looks_like_number $index
242 0 0 unless looks_like_number $index
244 0 0 unless looks_like_number $index
248 0 0 if reftype $currentprod
258 0 0 if ($lhs) { }
278 0 0 if ($index)
279 0 0 unless looks_like_number $index
280 0 0 wantarray ? :
282 0 0 wantarray ? :
291 0 0 wantarray ? :
300 0 0 if (@_)
302 0 0 wantarray ? :
304 0 0 wantarray ? :
312 0 0 unless $length <= 0
315 0 0 if $_[1]
331 0 0 unless defined $state
334 0 0 unless looks_like_number $action
335 0 0 unless ref $token
377 0 0 if (looks_like_number $spec) { }
381 0 0 if $t eq ''
425 0 0 wantarray ? :
433 0 0 unless $conflictName
461 0 0 if @_
473 0 0 if @_
498 0 0 unless defined $action
509 0 0 $cS ? :
514 0 0 unless $cs
517 0 0 unless (looks_like_number $action)
519 0 0 unless (looks_like_number $actionnum)
525 0 0 unless defined $token
526 0 0 unless ref $token
529 0 0 if (exists $$self{'STATES'}[$conflictstate]{'ACTIONS'} and $$self{'STATES'}[$conflictstate]{'ACTIONS'}{$_} >= 0)
542 0 0 unless defined $action
550 0 0 $cS ? :
552 0 0 unless @conflictStates
561 0 0 unless (looks_like_number $action)
563 0 0 unless (looks_like_number $actionnum)
569 0 0 unless defined $token
570 0 0 unless ref $token
573 0 0 if (exists $$self{'STATES'}[$conflictstate]{'ACTIONS'} and $$self{'STATES'}[$conflictstate]{'ACTIONS'}{$_} >= 0)
590 0 0 $cS ? :
592 0 0 unless @conflictStates
598 0 0 unless defined $token
599 0 0 unless ref $token
602 0 0 if (defined $$self{'CONFLICT'}{$conflictName}{$_}) { }
634 0 0 if ($self->YYIs($syntaxVariable)) { }
635 0 0 if ($_[0] eq 'shift') { }
643 0 0 if ($_[1] eq 'shift') { }
656 0 0 if reftype $state and reftype $state eq 'ARRAY'
659 0 0 if (defined $token)
660 0 0 if exists $$stateentry{'ACTIONS'}{$token}
663 0 0 if exists $$stateentry{'DEFAULT'}
674 0 0 unless $index
677 0 0 unless looks_like_number $index
679 0 0 if $newaction and reftype $newaction eq 'CODE'
689 0 0 looks_like_number $n ? :
691 0 0 if $newaction{$n} and reftype($newaction{$n}) eq 'CODE'
743 0 1257 unless looks_like_number $index
766 555 871 unless exists $$self{'TERMS'}{$symbol}
767 0 871 if @_
775 0 1262 if @_
782 0 1717 if @_
797 0 0 if @_
804 0 0 if @_
811 0 499 if @_
818 0 0 if @_
843 0 1075 if @_
851 7032 1589 unless $class->isa('Parse::Eyapp::Node')
863 0 2 if @_ > 1
923 723 269 unless (UNIVERSAL::isa($ch, 'Parse::Eyapp::Node'))
924 417 306 if ($self->YYIssemantic($_))
931 304 2 if ($self->YYIsterm($_))
932 0 304 if UNIVERSAL::can($PREFIX . 'TERMINAL', 'save_attributes')
937 0 271 if (UNIVERSAL::isa($ch, $PREFIX . '_PAREN'))
943 0 271 if $_ =~ qr/@/
944 2 269 unless ref $ch
949 8 491 if ($bypass and @children == 1)
954 8 0 unless $name =~ /${lhs}_\d+$/
959 2 6 if ($childisterminal and not $finalclass->isa($PREFIX . 'TERMINAL'))
984 175 156 if ($self->YYIsterm($_))
990 0 156 if (UNIVERSAL::isa($ch, $PREFIX . '_PAREN'))
996 10 146 if (UNIVERSAL::isa($ch, $PREFIX . '_CODE'))
1001 0 146 unless ref $ch
1005 10 177 if (unpack('A1', $lhs) eq '@') { }
1006 0 10 unless $lhs =~ /^\@[0-9]+\-([0-9]+)$/
1010 0 10 unless exists $_[$dotpos] and UNIVERSAL::isa($_[$dotpos], 'CODE')
1016 169 8 if (UNIVERSAL::isa($code, 'CODE')) { }
1020 0 8 if defined $code
1039 5 459 if ($self->YYIssemantic($_))
1045 142 317 if $self->YYIsterm($_)
1046 77 240 if (ref $ch eq $PREFIX . '_PAREN')
1050 3 237 unless ref $ch
1061 322 0 if $_[0]->YYBuildingTree
1071 177 0 if $_[0]->YYBuildingTree
1092 337 0 if $_[0]->YYBuildingTree
1109 3 236 if ($self->YYIssemantic($_))
1115 0 236 if $self->YYIsterm($_)
1116 100 136 if (ref $ch eq $PREFIX . '_PAREN')
1120 8 128 unless ref $ch
1130 239 0 if $_[0]->YYBuildingTree
1142 0 0 if @_
1150 0 0 if @_
1163 0 0 if (@$stack > $length)
1165 0 0 if $length
1169 0 0 if (defined $nextstate)
1188 0 0 if exists $$state{'ACTIONS'}
1194 0 0 if ($actions{$_} > 0)
1200 0 0 if exists $$state{'DEFAULT'}
1202 0 0 if (keys %reduce)
1233 21029 264 if ref $class
1240 0 21293 if (@_)
1244 20947 346 if defined $$classlexer
1253 265 81 if (defined $$classlexer)
1283 0 2075 unless exists $$checklist{$prm}
1285 0 2075 unless ref $value eq $$checklist{$prm}
1291 0 316 unless exists $$outhash{$_}
1300 0 0 if (ref $self) { }
1301 0 0 if @_
1303 0 0 unless defined $$self{'TOKENLINE'}
1315 0 0 if (ref $self) { }
1316 0 0 if @_
1318 0 0 unless defined $$self{'TOKENLINE'}
1330 0 132 if (ref $self) { }
1331 0 0 if @_
1333 0 0 unless defined $$self{'ERROR'}
1352 0 0 if ($fn and -r $fn) { }
1353 0 0 unless open $f, $fn
1359 0 0 if $msg
1366 0 0 if (ref $self) { }
1380 0 21029 if @_
1381 21029 0 if (ref $self) { }
1382 0 21029 if (@_)
1383 0 0 if (ref $_[0]) { }
1392 21029 0 unless defined $$self{'INPUT'}
1407 0 0 if (ref $self) { }
1409 0 0 if ($file)
1413 0 0 unless defined $$self{'INPUTFILE'}
1426 0 0 if (ref $self) { }
1428 0 0 if ($prompt)
1432 0 0 unless defined $$self{'PROMPT'}
1445 0 0 if (defined $_[0])
1446 0 0 if (ref $_[0]) { }
1454 0 0 unless $self->input and defined ${$self->input;}
1496 0 0 if $help
1498 0 0 if $debug
1499 0 0 if not $file and @ARGV
1500 0 0 if defined $slurp
1503 0 0 if defined $prompt
1505 0 0 if ($commandinput) { }
0 0 elsif ($inputfromfile) { }
1512 0 0 unless defined $_[0]
1513 0 0 if (ref $_[0]) { }
1522 0 0 if (defined $TERMINALinfo)
1526 0 0 ref $_[0]->attr eq 'ARRAY' ? :
1532 0 0 if (my $ne = $parser->YYNberr > 0) { }
1537 0 0 if ($showtree)
1538 0 0 if ($tree and blessed $tree and $tree->isa('Parse::Eyapp::Node')) { }
0 0 elsif ($tree and ref $tree) { }
0 0 elsif (defined $tree) { }
1550 0 0 if ($yaml and ref $tree)
1554 0 0 if ($@) { }
1562 0 0 if ($dot and blessed $tree)
1564 0 0 unless defined $extension and $tree->can($extension)
1565 0 0 if not defined $sfile and defined $file
1595 0 0 if $package & $package->can('help')
1611 0 0 if (exists $$yydata{'ERRMSG'})
1621 0 0 if (blessed $attr and $attr->can('str')) { }
0 0 elsif (ref $attr eq 'ARRAY') { }
1628 0 0 if ($attr) { }
1636 0 0 $_ ne '' ? :
1638 0 0 if (@expected)
1639 0 0 @expected > 1 ? :
1644 0 0 if (blessed $attr and $attr->can('line')) { }
0 0 elsif (ref $attr eq 'ARRAY') { }
1653 0 0 if $lineno > 1
1669 0 0 if 'Parse::Eyapp::Driver'->can('_DBParse')
1674 0 0 if (open DRV, "<$fname") { }
1678 0 0 if (/^my\s+\$lex;##!!##$/ .. /^\s*}\s*#\s*_Parse\s*$/)
1781 0 21029 if (exists $conflictiveStates{$stateno})
1802 10796 10233 if (exists $$actions{'ACTIONS'}) { }
1805 6807 3989 unless (defined $$token)
1815 3917 12 exists $$actions{'DEFAULT'} ? :
6867 3929 exists $$actions{'ACTIONS'}{$$token} ? :
1828 21017 12 if (defined $act)
1831 6797 14220 if ($act > 0)
1837 2 6795 if ($$errstatus)
1853 6639 158 if defined $$token and $$token ne ''
1872 158 14062 unless $act
1878 104 14116 if (unpack('A1', $lhs) eq '@')
1879 0 104 unless $lhs =~ /^\@[0-9]+\-([0-9]+)$/
1886 13463 757 $$dotpos ? :
1891 2586 387 @sempar ? :
11247 2973 $code ? :
1897 158 14062 if ($$check eq 'ACCEPT')
1906 0 14062 if ($$check eq 'ABORT')
1919 14062 0 unless ($$check eq 'ERROR')
1950 2 10 unless ($$errstatus)
1954 0 2 unless $$errstatus
1973 10 2 if ($$errstatus == 3)
1975 0 10 if ($$token eq '')
2001 0 12 unless (@$stack)
2030 0 132 if (ref $self) { }
2032 0 0 if @_
2034 0 0 unless defined $$self{'LEX'}