Branch Coverage

bin/bc
Criterion Covered Total %
branch 356 542 65.6


line true false branch
741 0 134 if $debug
1277 0 0 if ($yyerrflag < 3) { }
1282 0 0 if ($yyn = $yysindex[$yyss[$yyssp]] and ($yyn += $YYERRCODE) >= 0 and $yycheck[$yyn] == $YYERRCODE) { }
1286 0 0 if $yydebug
1294 0 0 if $yydebug
1296 0 0 if $yyssp <= 0
1304 0 0 if $yychar == 0
1305 0 0 if ($yydebug)
1308 0 0 if ($yychar <= $YYMAXTOKEN)
1309 0 0 unless ($yys)
1329 637 853 if $yyn = $yydefred[$yystate]
1330 395 458 if ($yychar < 0)
1332 0 395 if (($yychar = &yylex) < 0)
1333 0 395 if ($yydebug)
1336 0 0 if ($yychar <= $#yyname)
1337 0 0 unless ($yys)
1341 514 339 if ($yyn = $yysindex[$yystate] and ($yyn += $yychar) >= 0 and $yycheck[$yyn] == $yychar)
1344 0 514 if $yydebug
1349 0 514 if $yyerrflag > 0
1352 339 0 if ($yyn = $yyrindex[$yystate] and ($yyn += $yychar) >= 0 and $yycheck[$yyn] == $yychar)
1358 0 0 unless ($yyerrflag)
1361 0 0 if &yy_err_recover
1363 0 976 if $yydebug
1369 119 857 if ($yyn == 4)
1373 59 0 if ($res == 0 and defined $val and $cur_file ne "main::DATA")
1381 0 857 if ($yyn == 5)
1390 0 857 if ($yyn == 7)
1396 0 857 if ($yyn == 8)
1403 0 857 if ($yyn == 9)
1414 1 856 if ($yyn == 11)
1418 10 846 if ($yyn == 12)
1426 10 836 if ($yyn == 13)
1434 4 832 if ($yyn == 14)
1441 4 828 if ($yyn == 15)
1449 1 827 if ($yyn == 16)
1453 1 826 if ($yyn == 17)
1460 1 825 if ($yyn == 18)
1464 1 824 if ($yyn == 19)
1472 1 823 if ($yyn == 20)
1480 2 821 if ($yyn == 21)
1484 2 819 if ($yyn == 22)
1492 2 817 if ($yyn == 23)
1500 2 815 if ($yyn == 24)
1507 0 815 if ($yyn == 26)
1511 0 815 if ($yyn == 27)
1515 4 811 if ($yyn == 30)
1518 4 0 if (scalar @$stmt > 0)
1525 3 808 if ($yyn == 31)
1528 3 0 if (scalar @$stmt > 0)
1535 0 808 if ($yyn == 38)
1539 0 808 if ($yyn == 39)
1543 0 808 if ($yyn == 46)
1547 0 808 if ($yyn == 47)
1551 10 798 if ($yyn == 48)
1559 3 795 if ($yyn == 49)
1567 6 789 if ($yyn == 50)
1573 4 785 if ($yyn == 51)
1577 4 781 if ($yyn == 52)
1581 4 777 if ($yyn == 53)
1585 2 775 if ($yyn == 54)
1589 2 773 if ($yyn == 55)
1593 2 771 if ($yyn == 56)
1597 2 769 if ($yyn == 57)
1601 5 764 if ($yyn == 58)
1605 1 763 if ($yyn == 59)
1609 0 763 if ($yyn == 60)
1613 0 763 if ($yyn == 61)
1617 8 755 if ($yyn == 62)
1621 1 754 if ($yyn == 63)
1625 5 749 if ($yyn == 64)
1629 1 748 if ($yyn == 65)
1633 2 746 if ($yyn == 66)
1637 2 744 if ($yyn == 67)
1641 1 743 if ($yyn == 68)
1649 1 742 if ($yyn == 69)
1657 1 741 if ($yyn == 70)
1665 3 738 if ($yyn == 71)
1673 6 732 if ($yyn == 72)
1681 5 727 if ($yyn == 73)
1689 5 722 if ($yyn == 74)
1695 2 720 if ($yyn == 75)
1701 1 719 if ($yyn == 76)
1711 1 718 if ($yyn == 77)
1720 3 715 if ($yyn == 78)
1739 2 713 if ($yyn == 79)
1755 0 713 if ($yyn == 80)
1759 33 680 if ($yyn == 82)
1767 0 680 if ($yyn == 83)
1777 33 647 if ($yyn == 84)
1781 118 529 if ($yyn == 85)
1785 5 524 if ($yyn == 86)
1789 10 514 if ($yyn == 87)
1793 57 457 if ($yyn == 88)
1797 0 457 if ($yyn == 89)
1809 186 787 if ($yystate == 0 and $yym == 0)
1811 0 186 if $yydebug
1816 186 0 if ($yychar < 0)
1818 0 186 if (($yychar = &yylex) < 0)
1819 0 186 if ($yydebug)
1822 0 0 if ($yychar <= $#yyname)
1823 0 0 unless ($yys)
1827 67 119 if $yychar == 0
1830 393 394 if ($yyn = $yygindex[$yym] and ($yyn += $yystate) >= 0 and $yyn <= $#yycheck and $yycheck[$yyn] == $yystate) { }
1837 0 787 if $yydebug
1850 0 0 if ($f eq '-b') { }
0 0 elsif ($f eq '-d') { }
0 0 elsif ($f eq '-y') { }
0 0 elsif ($f eq '-l') { }
0 0 elsif ($f eq '--') { }
1851 0 0 unless eval { do { require Math::BigFloat } }
1854 0 0 unless eval { do { require Data::Dumper; "Data::Dumper"->import; 1 } }
1866 67 0 if (@ARGV) { }
1882 67 67 if (defined $input)
1886 0 134 if ($do_stdin)
1892 67 67 if (@file_list)
1897 0 67 if -d $file
1898 0 67 unless open $input, "<", $file
1912 3 0 if $cur_file ne "-"
1926 171 410 if ($line eq "")
1929 67 0 unless (&next_file)
1936 0 514 unless $line =~ s/^\s*(.|\n)//
1939 0 514 if ($char eq '/' and $line =~ /^\*/) { }
0 514 elsif ($char eq '#') { }
0 514 elsif ($char eq '\\' and $line eq "\n") { }
10 504 elsif ($char =~ /^(['"])/) { }
123 381 elsif ($char =~ /^[\dA-F]/ or $char eq '.' and $line =~ /\d/) { }
111 270 elsif ($char =~ /^[a-z]/) { }
6 264 elsif ($char eq '^' and $line =~ s/=//) { }
2 262 elsif ($char eq '^') { }
4 258 elsif ($char eq '|' and $line =~ s/^\|//) { }
4 254 elsif ($char eq '&' and $line =~ s/^&//) { }
5 249 elsif ($char eq '%' and $line =~ s/^=//) { }
2 247 elsif ($char eq '!' and $line =~ s/^=//) { }
2 245 elsif ($char eq '=' and $line =~ s/^=//) { }
3 242 elsif ($char =~ /^[<>]/ and $line =~ s/^=//) { }
0 242 elsif ($char =~ /^[<>]/ and $line =~ s/^$char//) { }
7 235 elsif ($char =~ /^[<>]/) { }
1 234 elsif ($char eq '+' and $line =~ s/^\+(\s*\w)/$1/) { }
1 233 elsif ($char eq '+' and $line =~ s/^=//) { }
3 230 elsif ($char eq '+' and $line =~ s/^\+//) { }
1 229 elsif ($char eq '-' and $line =~ s/^\-(\s*\w)/$1/) { }
2 227 elsif ($char eq '-' and $line =~ s/^\-//) { }
1 226 elsif ($char eq '-' and $line =~ s/^=//) { }
1 225 elsif ($char eq '*' and $line =~ s/^=//) { }
3 222 elsif ($char eq '/' and $line =~ s/^=//) { }
1977 0 123 if ($char =~ /[A-F]/)
1981 0 123 if $char eq "."
1984 16 107 if ($line =~ s/^(\d+)//) { }
1986 0 16 $bignum ? :
1988 0 107 $bignum ? :
1992 5 118 if ($line =~ s/^(\.\d*)//)
1997 0 123 if ($line =~ s/^[eE]([-+]*\d+)//)
1998 0 0 $bignum ? :
2011 0 111 if ($yylval eq 'auto') { }
1 110 elsif ($yylval eq 'break') { }
0 110 elsif ($yylval eq 'define') { }
2 108 elsif ($yylval eq 'for') { }
1 107 elsif ($yylval eq 'if') { }
0 107 elsif ($yylval eq 'else') { }
10 97 elsif ($yylval eq 'print') { }
0 97 elsif ($yylval eq 'quit') { }
0 97 elsif ($yylval eq 'return') { }
1 96 elsif ($yylval eq 'while') { }
2056 1 2 $char eq '<' ? :
2058 0 0 $char eq '<' ? :
2060 5 2 $char eq '<' ? :
2090 0 1 unless defined $_
2093 0 1 unless ($a, $b) = /[-+]?(\d*)\.?(\d+)?/
2100 0 1 $len == 0 ? :
2108 0 1 unless defined $_
2111 0 1 unless ($a, $b) = /[-+]?(\d*)\.?(\d+)?/
2121 0 4 unless defined $_
2132 0 0 unless defined $val
2134 0 0 if $bignum
2144 0 0 unless defined $val
2146 0 0 if $bignum
2156 0 0 unless defined $val
2158 0 0 if $bignum
2168 0 0 unless defined $val
2170 0 0 if $bignum
2180 0 0 unless defined $val
2182 0 0 if $bignum
2193 0 0 unless defined $n and defined $val
2195 0 0 if $bignum
2210 0 67 if ($mathlib)
2225 0 201 if (exists $sym_table{$name})
2251 0 474 unless $cur_stmt
2298 0 688 if $debug
2301 53 635 if ($_ eq ',') { }
152 483 elsif ($_ eq 'N') { }
87 396 elsif ($_ eq '+_' or $_ eq '-_' or $_ eq '*_' or $_ eq '/_' or $_ eq '^_' or $_ eq '%_' or $_ eq '==_' or $_ eq '!=_' or $_ eq '>_' or $_ eq '>=_' or $_ eq '<_' or $_ eq '<=_' or $_ eq '<<_' or $_ eq '>>_' or $_ eq '||_' or $_ eq '&&_') { }
5 391 elsif ($_ eq 'm_') { }
2 389 elsif ($_ eq '!_') { }
81 308 elsif ($_ eq 'V') { }
0 308 elsif ($_ eq 'P') { }
122 186 elsif ($_ eq 'v') { }
0 186 elsif ($_ eq 'p') { }
81 105 elsif ($_ eq '=V') { }
0 105 elsif ($_ eq '=P') { }
4 101 elsif ($_ eq 'IF') { }
3 98 elsif ($_ eq 'FOR-COND') { }
6 92 elsif ($_ eq 'FUNCTION-CALL') { }
0 92 elsif ($_ eq 'a' or $_ eq 'A') { }
15 77 elsif ($_ eq '{}') { }
21 56 elsif ($_ eq 'STMT') { }
0 56 elsif ($_ eq 'RETURN') { }
1 55 elsif ($_ eq 'BREAK') { }
21 34 elsif ($_ eq 'PRINT') { }
24 10 elsif ($_ eq 'PRINT-STMT') { }
0 10 elsif ($_ eq 'FUNCTION-DEF') { }
10 0 elsif ($_ eq 'S') { }
2319 19 68 if ($_ eq '+_') { }
10 58 elsif ($_ eq '-_') { }
6 52 elsif ($_ eq '*_') { }
4 48 elsif ($_ eq '/_') { }
8 40 elsif ($_ eq '^_') { }
7 33 elsif ($_ eq '%_') { }
2 31 elsif ($_ eq '==_') { }
2 29 elsif ($_ eq '!=_') { }
5 24 elsif ($_ eq '>_') { }
2 22 elsif ($_ eq '>=_') { }
13 9 elsif ($_ eq '<_') { }
1 8 elsif ($_ eq '<=_') { }
0 8 elsif ($_ eq '<<_') { }
0 8 elsif ($_ eq '>>_') { }
4 4 elsif ($_ eq '||_') { }
4 0 elsif ($_ eq '&&_') { }
2322 0 4 $bignum ? :
1 3 if $bignum ? $b->is_zero : $b == 0
2324 0 7 $bignum ? :
1 6 if $bignum ? $b->is_zero : $b == 0
2336 3 1 $a || $b ? :
2337 1 3 $a && $b ? :
2368 0 0 if ($index == -1)
2384 0 122 unless (defined $sym_table{$name} and $sym_table{$name}{'type'} eq "var")
2397 0 0 if ($idx == -1)
2407 0 0 unless (defined $sym_table{$name} and $sym_table{$name}{'type'} eq "array")
2412 0 0 unless ($sym_table{$name}{'value'}[$idx])
2437 0 0 unless (defined $sym_table{$name} and $sym_table{$name}{'type'} eq "array")
2453 1 3 if ($cond) { }
2455 1 0 if $return
2481 16 0 if ($#{$$i_cond[1];} >= 0)
2484 0 16 if $return == 1 or $return == 2
2486 2 14 if $val == 0
2491 14 0 if ($#{$$i_body[1];} >= 0)
2495 1 13 if ($return == 1) { }
0 13 elsif ($return == 2) { }
2503 8 5 if ($#{$$i_incr[1];} >= 0)
2508 0 8 if $return == 1 or $return == 2
2524 0 6 unless ($sym_table{$name})
2531 6 0 if ($sym_table{$name}{'type'} eq 'builtin') { }
2543 0 0 if ($var->{'type'} eq 'undef') { }
2556 6 0 if ($return == 1) { }
0 0 elsif ($return == 2) { }
0 0 elsif ($return == 3) { }
2573 0 0 if (defined $sym_table{$name}) { }
2582 0 0 $where eq 'a' ? :
2592 15 0 if (scalar @{$instr->[1];} > 0) { }
2598 1 14 if $return eq 1 or $return eq 2
2608 21 0 if (scalar $instr->[1] > 0) { }
2614 1 20 if $return eq 1 or $return eq 2
2626 0 0 $instr->[1] == 0 ? :
2647 21 0 if (scalar @{$instr->[1];} > 0) { }
2653 0 21 if $return eq 1 or $return eq 2
2662 24 0 if (scalar $instr->[1] > 0) { }
2668 0 24 if $return eq 1 or $return eq 2
2709 135 101 if ($return == 3) { }
2712 0 101 if (scalar @ope_stack != 1)
2727 0 0 if ($idx =~ /\A([0-9]+)\.?/)
2743 3 67 unless (eval { do { clear_flags(); $status = yyparse(); 1 } })
2747 67 3 unless $@