Branch Coverage

blib/lib/Marpa/R2/SLG.pm
Criterion Covered Total %
branch 148 196 75.5


line true false branch
105 0 204 unless ($ref_type)
111 0 204 if ($ref_type ne "HASH")
127 203 1 if $method eq "new"
129 0 204 if (scalar @bad_args)
140 203 1 if ($method eq "new")
143 0 203 unless defined $dsl
147 0 203 if ($ref_type ne "SCALAR")
148 0 0 $ref_type ? :
154 0 203 unless (defined ${$dsl;})
172 242 1 unless defined $index
178 203 1 unless &Scalar::Util::looks_like_number($slg->[14])
183 1 203 if (defined(my $trace_file_handle = $flat_args{'trace_file_handle'}))
190 0 2 unless defined $naif_grammar
195 203 1 if ($method eq "new")
201 203 39 unless $copy_to_g1_args->{$arg_name}
224 0 275 unless defined $start_lhs
264 0 54 unless (defined $symbol_id)
272 13 41 unless $is_active
288 0 46 unless (defined $symbol_id)
296 13 33 unless $is_active
310 0 52 unless (defined $symbol_id)
318 13 39 unless $is_active
330 1 267 if (defined(my $precompute_error = Marpa::R2::Internal::Grammar::slif_precompute($thick_g1_grammar)))
337 1 0 if ($precompute_error == $Marpa::R2::Error::UNPRODUCTIVE_START)
353 5282 7989 unless $g1_thin->symbol_is_terminal($symbol_id)
398 2 265 unless ($lexer_rules)
434 150 12313 if (defined(my $separator = $lex_rule->{'separator'}))
445 11823 6751 if defined $symbol_data
455 0 267 unless scalar @lex_lexeme_names
464 0 267 if (@unproductive)
502 187 7988 if $lexeme_name eq $discard_symbol_name
503 0 7988 if $lexeme_name eq $lex_start_symbol_name
505 4 7984 unless (defined $g1_symbol_id)
511 2 7982 unless ($g1_thin->symbol_is_accessible($g1_symbol_id))
514 0 2 if $if_inaccessible_default eq "warn"
516 0 2 if $if_inaccessible_default eq "fatal"
530 301 20326 if ($lhs_id == $lex_discard_symbol_id)
534 12156 8170 if ($lhs_id != $lex_start_symbol_id)
539 187 7983 if ($lexer_lexeme_id == $lex_discard_symbol_id)
545 0 7983 if $lexeme_id < 0
549 433 7550 unless $lexeme_data{$lexeme_name}{'latm'}
553 7550 0 unless (defined $assertion_id)
556 0 7550 if ($trace_terminals >= 2)
564 0 7550 if ($trace_terminals >= 2)
578 0 5282 unless defined $symbol_id
582 0 5282 unless ($compiled_re)
599 8170 12457 unless defined $tag
603 51 12406 if defined $event
605 12156 250 if $lhs_id != $lex_discard_symbol_id
608 12397 60 unless defined $event
611 15 45 if ($event_name eq "'symbol")
619 45 0 if (substr($event_name, 0, 1) ne "'")
642 4 7983 unless defined $lexeme_data{$lexeme_name}{'lexers'}
652 0 59 unless defined $g1_id_by_lexeme_name{$lexeme_name}
661 0 54 if defined $g1_id_by_lexeme_name{$symbol_name}
668 0 46 if defined $g1_id_by_lexeme_name{$symbol_name}
682 54 7925 if (defined $pause_value)
686 49 5 if (defined(my $event_data = $declarations->{'event'}))
711 60 20557 if (defined $discard_event)
719 41 19 if $is_active
748 0 259 unless $lexeme_default_adverbs
757 6350 1629 if $lexeme_name =~ / \] \z/msx
763 180 79 unless $blessing
764 0 79 if $blessing eq "::undef"
770 6089 1366 if $lexeme_name =~ / \] \z/msx
771 1366 0 if ($blessing eq "::name")
772 0 1366 if ($lexeme_name =~ / [^ [:alnum:]] /msx)
784 0 0 if ($blessing =~ / [\W] /msx)
807 0 665 unless defined $grammar_names->{$subgrammar}
809 462 203 if $subgrammar eq "G1"
867 0 136 unless scalar @symbol_ids
873 8 128 if (defined $minimum)
874 1 7 $minimum <= 0 ? :
894 4 13 $minimum <= 0 ? :
17 166 defined $minimum ? :
908 48 135 if ($verbose >= 2)
911 29 19 if $description
913 0 48 if $grammar_c->rule_length($rule_id) == 0
915 0 48 unless $thick_grammar->rule_is_used($rule_id)
917 0 48 unless $grammar_c->rule_is_productive($rule_id)
919 0 48 unless $grammar_c->rule_is_accessible($rule_id)
921 0 48 if $rule->[2]
924 0 48 if (@comment)
933 48 135 if ($verbose >= 3)
971 49 19 if ($description)
976 59 9 if ($verbose >= 2)
979 0 59 unless $grammar_c->symbol_is_productive($symbol_id)
981 0 59 unless $grammar_c->symbol_is_accessible($symbol_id)
983 0 59 if $grammar_c->symbol_is_nulling($symbol_id)
985 30 29 if $grammar_c->symbol_is_terminal($symbol_id)
988 30 29 if (@tag_list)
999 59 9 if ($verbose >= 3)
1002 42 17 if ($dsl_form)
1022 4 424 if (defined $minimum)
1023 4 0 $minimum <= 0 ? :
1025 6 422 if $dot_position < 0
1026 0 428 if $dot_position < 0
1027 324 104 if ($dot_position < $rhs_length) { }