File Coverage

blib/lib/Pegex/Base.pm
Criterion Covered Total %
statement 217 365 59.4
branch 40 40 100.0
condition 10 13 76.9
subroutine 95 95 100.0
pod n/a
total 362 513 70.5


line stmt bran cond sub pod time code
1             package Pegex::Base;
2             # use Mo qw'build default builder xxx import nonlazy required';
3             # The following line of code was produced from the previous line by
4             # Mo::Inline version 0.40
5 11 100 100 11   65795 no warnings;my$M=__PACKAGE__.'::';*{$M.Object::new}=sub{my$c=shift;my$s=bless{@_},$c;my%n=%{$c.'::'.':E'};map{$s->{$_}=$n{$_}->()if!exists$s->{$_}}keys%n;$s};*{$M.import}=sub{import warnings;$^H|=1538;my($P,%e,%o)=caller.'::';shift;eval"no Mo::$_",&{$M.$_.::e}($P,\%e,\%o,\@_)for@_;return if$e{M};%e=(extends,sub{eval"no $_[0]()";@{$P.ISA}=$_[0]},has,sub{my$n=shift;my$m=sub{$#_?$_[0]{$n}=$_[1]:$_[0]{$n}};@_=(default,@_)if!($#_%2);$m=$o{$_}->($m,$n,@_)for sort keys%o;*{$P.$n}=$m},%e,);*{$P.$_}=$e{$_}for keys%e;@{$P.ISA}=$M.Object};*{$M.'build::e'}=sub{my($P,$e)=@_;$e->{new}=sub{$c=shift;my$s=&{$M.Object::new}($c,@_);my@B;do{@B=($c.::BUILD,@B)}while($c)=@{$c.::ISA};exists&$_&&&$_($s)for@B;$s}};*{$M.'default::e'}=sub{my($P,$e,$o)=@_;$o->{default}=sub{my($m,$n,%a)=@_;exists$a{default}or return$m;my($d,$r)=$a{default};my$g='HASH'eq($r=ref$d)?sub{+{%$d}}:'ARRAY'eq$r?sub{[@$d]}:'CODE'eq$r?$d:sub{$d};my$i=exists$a{lazy}?$a{lazy}:!${$P.':N'};$i or ${$P.':E'}{$n}=$g and return$m;sub{$#_?$m->(@_):!exists$_[0]{$n}?$_[0]{$n}=$g->(@_):$m->(@_)}}};*{$M.'builder::e'}=sub{my($P,$e,$o)=@_;$o->{builder}=sub{my($m,$n,%a)=@_;my$b=$a{builder}or return$m;my$i=exists$a{lazy}?$a{lazy}:!${$P.':N'};$i or ${$P.':E'}{$n}=\&{$P.$b}and return$m;sub{$#_?$m->(@_):!exists$_[0]{$n}?$_[0]{$n}=$_[0]->$b:$m->(@_)}}};use constant XXX_skip=>1;*{$M.'xxx::e'}=sub{my($P,$e)=@_;$e->{WWW}=sub{require XXX;XXX::WWW(@_)};$e->{XXX}=sub{require XXX;XXX::XXX(@_)};$e->{YYY}=sub{require XXX;XXX::YYY(@_)};$e->{ZZZ}=sub{require XXX;XXX::ZZZ(@_)}};my$i=\&import;*{$M.import}=sub{(@_==2 and not$_[1])?pop@_:@_==1?push@_,grep!/import/,@f:();goto&$i};*{$M.'nonlazy::e'}=sub{${shift().':N'}=1};*{$M.'required::e'}=sub{my($P,$e,$o)=@_;$o->{required}=sub{my($m,$n,%a)=@_;if($a{required}){my$C=*{$P."new"}{CODE}||*{$M.Object::new}{CODE};no warnings 'redefine';*{$P."new"}=sub{my$s=$C->(@_);my%a=@_[1..$#_];die$n." required"if!exists$a{$n};$s}}$m}};@f=qw[build default builder xxx import nonlazy required];use strict;use warnings;
  11 100 66 11   29  
  11 100 66 11   10845  
  11 100 100 11   93  
  11 100 66 11   22  
  11 100   11   4855  
  11 100   11   85  
  11 100   11   26  
  11 100   11   1745  
  11 100   11   75  
  11 100   11   23  
  11 100   11   326  
  11 100   11   55  
  11 100   11   17  
  11 100   11   454  
  11 100   11   1752  
  0 100   11   0  
  0 100   11   0  
  11 100   11   1523  
  0 100   11   0  
  0     11   0  
  11     11   1450  
  0     11   0  
  0     11   0  
  11     11   1433  
  0     11   0  
  0     11   0  
  11     11   1429  
  0     11   0  
  0     11   0  
  11     11   1416  
  0     11   0  
  0     11   0  
  11     11   1776  
  1     11   3  
  1     10   11  
  11     10   1536  
  0     10   0  
  0     10   0  
  11     10   1431  
  0     10   0  
  0     10   0  
  11     10   1411  
  0     10   0  
  0     10   0  
  11     10   1397  
  0     10   0  
  0     10   0  
  11     10   1768  
  0     10   0  
  0     10   0  
  11     10   1544  
  0     10   0  
  0     10   0  
  11     10   1432  
  0     10   0  
  0     10   0  
  11     10   1434  
  0     10   0  
  0     10   0  
  11     10   1439  
  0     10   0  
  0     10   0  
  11     10   1413  
  0     10   0  
  0     10   0  
  11     10   1429  
  0     10   0  
  0     7   0  
  11     7   1560  
  0     7   0  
  0     7   0  
  11     7   1543  
  0     7   0  
  0     7   0  
  11     1   1506  
  0     1   0  
  0     1   0  
  11     1   1531  
  0     1   0  
  0     1   0  
  11     1   1444  
  0     1   0  
  0     1   0  
  11     1   1459  
  0     1   0  
  0     1   0  
  11     1   1523  
  0     1   0  
  0     1   0  
  11     1   1474  
  0     1   0  
  0     1   0  
  11     1   1530  
  0     2157   0  
  0         0  
  11         1481  
  0         0  
  0         0  
  11         1512  
  0         0  
  0         0  
  11         1466  
  0         0  
  0         0  
  10         2842  
  6         22  
  6         62  
  10         1334  
  0         0  
  0         0  
  10         1298  
  0         0  
  0         0  
  10         1298  
  0         0  
  0         0  
  10         1288  
  0         0  
  0         0  
  10         1292  
  0         0  
  0         0  
  10         1575  
  1         3  
  1         12  
  10         1363  
  0         0  
  0         0  
  10         1293  
  0         0  
  0         0  
  10         1330  
  0         0  
  0         0  
  10         1381  
  0         0  
  0         0  
  10         1306  
  0         0  
  0         0  
  10         1085  
  2         4  
  2         21  
  10         1210  
  1         1  
  1         11  
  10         1356  
  0         0  
  0         0  
  10         1315  
  0         0  
  0         0  
  10         1313  
  0         0  
  0         0  
  10         1346  
  0         0  
  0         0  
  10         1305  
  0         0  
  0         0  
  10         630  
  6         13  
  6         65  
  10         1340  
  0         0  
  0         0  
  10         1343  
  0         0  
  0         0  
  10         1353  
  0         0  
  0         0  
  10         1312  
  0         0  
  0         0  
  10         1341  
  0         0  
  0         0  
  10         1821  
  2         7  
  2         19  
  10         1627  
  1         3  
  1         10  
  10         1350  
  0         0  
  0         0  
  10         1356  
  0         0  
  0         0  
  10         1348  
  0         0  
  0         0  
  10         1326  
  0         0  
  0         0  
  10         1330  
  0         0  
  0         0  
  10         2222  
  8         22  
  8         79  
  7         1196  
  1         2  
  1         10  
  7         1075  
  0         0  
  0         0  
  7         915  
  0         0  
  0         0  
  7         970  
  0         0  
  0         0  
  7         790  
  1         2  
  1         11  
  7         1206  
  1         3  
  1         12  
  7         349  
  5         9  
  5         50  
  1         133  
  0         0  
  0         0  
  1         131  
  0         0  
  0         0  
  1         129  
  0         0  
  0         0  
  1         130  
  0         0  
  0         0  
  1         146  
  0         0  
  0         0  
  1         139  
  0         0  
  0         0  
  1         141  
  0         0  
  0         0  
  1         128  
  0         0  
  0         0  
  1         130  
  0         0  
  0         0  
  1         129  
  0         0  
  0         0  
  1         136  
  0         0  
  0         0  
  1         7  
  1         2  
  1         13  
  1         141  
  0         0  
  0         0  
  1         132  
  0         0  
  0         0  
  1         132  
  0         0  
  0         0  
  1         137  
  0         0  
  0         0  
  1         131  
  0         0  
  0         0  
  1         145  
  0         0  
  0         0  
  1         6  
  1         2  
  1         9  
  2157         11393  
  77         1966  
  154         1110  
  196         58202  
  1157         5042  
  88         308  
  101         298  
  108         579  
  81         420  
  78         219  
  38         176  
  1027         4785  
  124         443  
  84         977  
  126         328  
  599         4390  
  176         456  
  177         590  
  172         474  
  170         561  
  172         639  
  234         908  
  195         878  
  158         722  
  80         467  
  619         3363  
  156         451  
  205         1231  
  208         626  
  166         343  
  183         666  
  199         937  
  179         385  
  145         564  
  106         1136  
  101         711  
  157         1021  
  130         595  
  133         384  
  121         374  
  118         323  
  102         420  
  118         936  
  182         407  
  158         464  
  76         1329  
  76         771  
  124         327  
  104         880  
  129         447  
  135         584  
  113         280  
  132         1765  
  86         396  
  43         792  
  91         756  
  105         881  
  105         858  
  170         386  
  142         423  
  50         165  
  58         1022  
  65         872  
  146         1119  
  120         1370  
  120         408  
  113         1567  
  152         1331  
  92         1172  
  113         925  
  141         1531  
  132         1434  
  110         387  
  113         356  
  111         333  
  119         1660  
  113         270  
  121         1006  
  120         2393  
  129         458  
  129         3284  
  131         1515  
  127         3588  
6              
7             1;