Branch Coverage

blib/lib/Blatte/Parser.pm
Criterion Covered Total %
branch 130 206 63.1


line true false branch
34 0 43 unless defined $expr
43 209 43 if (ref $input)
49 0 252 if $input eq ''
53 57 195 if (substr($input, 0, 1) eq '{') { }
1 194 elsif ($input =~ /^\\\"([^\\]+|\\[^\"])*\\\"/g) { }
42 152 elsif ($input =~ /^\\($Blatte::Parser::identifier_regex)/go) { }
94 58 elsif ($input =~ /^([^\\{}\s]+|\\[\\{}])+/g) { }
57 35 22 unless defined $syntax
61 0 57 if $input eq ''
62 0 57 if substr($input, 0, 1) ne '}'
83 151 43 if (ref $input_arg)
94 35 0 if (ref $input)
101 2 133 if ($input =~ /^\\($Blatte::Parser::identifier_regex)=/go) { }
106 0 2 unless defined $expr
113 35 98 unless defined $expr
118 35 0 if (ref $input_arg)
129 57 0 if (ref $input)
136 22 377 if defined $syntax
139 35 22 unless defined $syntax
141 22 0 if (ref $input_arg)
152 57 0 if (ref $input)
157 54 3 unless defined $syntax
159 50 7 unless defined $syntax
161 7 0 if (ref $input_arg)
172 57 0 if (ref $input)
177 50 7 unless $input =~ /^\\define(?![A-Za-z0-9_])/
181 4 3 unless $input =~ /^\\($Blatte::Parser::identifier_regex)/go
186 0 3 unless defined $expr
190 3 0 if (ref $input_arg)
201 54 0 if (ref $input)
206 50 4 unless $input =~ /^\\define(?![A-Za-z0-9_])/
210 0 4 if ($input eq '' or substr($input, 0, 1) ne '{')
216 0 4 unless $input =~ /^\\($Blatte::Parser::identifier_regex)/go
223 0 4 if ($input eq '' or substr($input, 0, 1) ne '}')
232 4 0 if (ref $input_arg)
243 50 0 if (ref $input)
248 49 1 unless $input =~ /^\\set!(?![A-Za-z0-9_])/
252 0 1 unless $input =~ /^\\($Blatte::Parser::identifier_regex)/go
257 0 1 unless defined $expr
261 1 0 if (ref $input_arg)
272 49 0 if (ref $input)
277 48 1 unless $input =~ /^\\lambda(?![A-Za-z0-9_])/
282 0 1 if ($input eq '' or substr($input, 0, 1) ne '{')
290 0 1 if $input eq ''
291 0 1 if substr($input, 0, 1) ne '}'
301 1 0 if (ref $input_arg)
312 5 0 if (ref $input)
319 5 8 if ($input =~ /^\\($Blatte::Parser::identifier_regex)/g) { }
2 6 elsif ($input =~ /^\\=($Blatte::Parser::identifier_regex)/g) { }
1 5 elsif ($input =~ /^\\&($Blatte::Parser::identifier_regex)/g) { }
336 5 0 if (ref $input_arg)
347 48 0 if (ref $input)
352 42 6 unless $input =~ /^\\(letrec|let\*?)(?![A-Za-z0-9_])/g
357 0 6 if $input eq ''
358 0 6 if substr($input, 0, 1) ne '{'
362 0 6 unless @clauses
365 0 6 if $input eq ''
366 0 6 if substr($input, 0, 1) ne '}'
372 4 2 if ($keyword eq 'let') { }
2 0 elsif ($keyword eq 'let*') { }
380 6 0 if (ref $input_arg)
391 6 0 if (ref $input)
398 0 15 if $input eq ''
399 6 9 if substr($input, 0, 1) ne '{'
403 0 9 unless $input =~ /^\\($Blatte::Parser::identifier_regex)/go
408 0 9 unless defined $expr
411 0 9 if $input eq ''
412 0 9 if substr($input, 0, 1) ne '}'
419 6 0 if (ref $input_arg)
430 42 0 if (ref $input)
435 40 2 unless $input =~ /^\\if(?![A-Za-z0-9_])/
439 0 2 unless defined $test
442 0 2 unless defined $then
448 2 0 if (ref $input_arg)
459 40 0 if (ref $input)
464 38 2 unless $input =~ /^\\cond(?![A-Za-z0-9_])/
470 0 9 if $input eq ''
471 2 7 if substr($input, 0, 1) ne '{'
475 0 7 unless defined $test
480 0 7 if $input eq ''
481 0 7 if substr($input, 0, 1) ne '}'
489 2 0 if (ref $input_arg)
500 38 0 if (ref $input)
505 38 0 unless $input =~ /^\\while(?![A-Za-z0-9_])/
509 0 0 unless defined $test
515 0 0 if (ref $input_arg)
526 38 0 if (ref $input)
531 37 1 unless $input =~ /^\\and(?![A-Za-z0-9_])/
535 0 1 unless @exprs
539 1 0 if (ref $input_arg)
550 37 0 if (ref $input)
555 35 2 unless $input =~ /^\\or(?![A-Za-z0-9_])/
559 0 2 unless @exprs
563 2 0 if (ref $input_arg)
574 22 0 if (ref $input)
581 22 26 unless defined $expr
585 22 0 if (ref $input_arg)
598 215 994 if ($str =~ /^\s+/g) { }
0 994 elsif ($str =~ /^\\;.*/g) { }
1 993 elsif ($str =~ m[^\\/]) { }
617 0 0 if (ref $input)
622 0 0 unless $input eq ''
624 0 0 if (ref $input_arg)