Branch Coverage

blib/lib/Perlito/Grammar/Control.pm
Criterion Covered Total %
branch 29 74 39.1


line true false branch
30 2 0 if ($m2) { }
39 2 0 if ($m2) { }
47 2 0 if 'u' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and ('n' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('l' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('e' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('s' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('s' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->exp($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'exp'} = $m2; 1; } else { 0; } }
49 0 2 unless (defined $body)
73 78 0 if ($m2) { }
82 78 0 if ($m2) { }
90 78 0 if ('i' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and ('f' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->exp($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'exp'} = $m2; 1; } else { 0; } })
95 78 0 if ($m2) { }
104 14 0 if ($m2) { }
112 14 0 if do { my($m2) = $grammar->opt_ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and ('e' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('l' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('s' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('e' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->exp2($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'exp2'} = $m2; 1; } else { 0; } }
115 0 14 unless (defined $body)
118 0 14 unless (defined $otherwise)
121 0 14 if (Main::isa($otherwise, 'Lit::Hash'))
130 64 0 if ($m2) { }
139 1 0 if ($m2) { }
147 1 0 if do { my($m2) = $grammar->opt_ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and ('e' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('l' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('s' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->if($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'if'} = $m2; 1; } else { 0; } }
149 0 1 unless (defined $body)
159 63 1 unless (do { do { my($body) = $${$$MATCH{'exp'};}{'end_block'}; my($otherwise) = $${$$MATCH{'exp2'};}{'exp'}; unless (defined $body) { die q[Missing code block in 'if']; } ; unless (defined $otherwise) { die q[Missing code block in 'else']; } ; if (Main::isa($otherwise, 'Lit::Hash')) { $otherwise = 'Lit::Block'->new('stmts', $otherwise->hash1); } ; $$MATCH{'capture'} = 'If'->new(('cond', $${$$MATCH{'exp'};}{'exp'}), ('body', $body), ('otherwise', $otherwise)) } or 1 if do { my($m2) = $grammar->opt_ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and ('e' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('l' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('s' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('e' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->exp2($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'exp2'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { my($body) = $${$$MATCH{'exp'};}{'end_block'}; unless (defined $body) { die q[Missing code block in 'if']; } ; $$MATCH{'capture'} = 'If'->new(('cond', $${$$MATCH{'exp'};}{'exp'}), ('body', $body), ('otherwise', 'Lit::Block'->new('stmts', do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, ${$$MATCH{'if'};}; $List_a }))) } or 1 if do { my($m2) = $grammar->opt_ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and ('e' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('l' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('s' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->if($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'if'} = $m2; 1; } else { 0; } } })
161 0 63 unless do { my($body) = $${$$MATCH{'exp'};}{'end_block'}; unless (defined $body) { die q[Missing code block in 'if']; } ; $$MATCH{'capture'} = 'If'->new(('cond', $${$$MATCH{'exp'};}{'exp'}), ('body', $body), ('otherwise', 'Lit::Block'->new('stmts', do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); $List_a }))) }
163 0 63 unless (defined $body)
189 0 0 if ($m2) { }
198 0 0 if ($m2) { }
206 0 0 if 'w' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and ('h' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('e' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('n' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->exp($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'exp'} = $m2; 1; } else { 0; } }
208 0 0 unless (defined $body)
228 4 0 if ($m2) { }
237 4 0 if ($m2) { }
245 4 0 if 'f' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and ('o' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('r' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->exp($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'exp'} = $m2; 1; } else { 0; } }
247 0 4 unless (defined $body)
267 6 0 if ($m2) { }
276 6 0 if ($m2) { }
284 6 0 if 'w' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and ('h' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('i' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('l' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('e' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->exp($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'exp'} = $m2; 1; } else { 0; } }
286 0 6 unless (defined $body)
306 0 0 if ($m2) { }
315 0 0 if ($m2) { }
323 0 0 if 'l' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and ('o' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('o' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and ('p' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) and do { my($m2) = $grammar->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->exp($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'exp'} = $m2; 1; } else { 0; } }
325 0 0 if (not defined $body) { }
327 0 0 if (Main::isa($body, 'Lit::Block')) { }