Branch Coverage

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


line true false branch
105 0 200 unless ($ref_type)
111 0 200 if ($ref_type ne "HASH")
127 199 1 if $method eq "new"
129 0 200 if (scalar @bad_args)
140 199 1 if ($method eq "new")
143 0 199 unless defined $dsl
147 0 199 if ($ref_type ne "SCALAR")
148 0 0 $ref_type ? :
154 0 199 unless (defined ${$dsl;})
172 238 1 unless defined $index
178 199 1 unless &Scalar::Util::looks_like_number($slg->[14])
183 1 199 if (defined(my $trace_file_handle = $flat_args{'trace_file_handle'}))
190 0 2 unless defined $naif_grammar
195 199 1 if ($method eq "new")
201 199 39 unless $copy_to_g1_args->{$arg_name}
224 0 268 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 260 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 5072 7686 unless $g1_thin->symbol_is_terminal($symbol_id)
398 2 258 unless ($lexer_rules)
434 144 11860 if (defined(my $separator = $lex_rule->{'separator'}))
445 11393 6517 if defined $symbol_data
455 0 260 unless scalar @lex_lexeme_names
464 0 260 if (@unproductive)
502 184 7684 if $lexeme_name eq $discard_symbol_name
503 0 7684 if $lexeme_name eq $lex_start_symbol_name
505 4 7680 unless (defined $g1_symbol_id)
511 2 7678 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 295 19567 if ($lhs_id == $lex_discard_symbol_id)
534 11703 7864 if ($lhs_id != $lex_start_symbol_id)
539 184 7680 if ($lexer_lexeme_id == $lex_discard_symbol_id)
545 0 7680 if $lexeme_id < 0
549 427 7253 unless $lexeme_data{$lexeme_name}{'latm'}
553 7253 0 unless (defined $assertion_id)
556 0 7253 if ($trace_terminals >= 2)
564 0 7253 if ($trace_terminals >= 2)
578 0 5104 unless defined $symbol_id
582 0 5104 unless ($compiled_re)
599 7864 11998 unless defined $tag
603 51 11947 if defined $event
605 11703 244 if $lhs_id != $lex_discard_symbol_id
608 11938 60 unless defined $event
611 15 45 if ($event_name eq "'symbol")
619 45 0 if (substr($event_name, 0, 1) ne "'")
642 4 7677 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 7622 if (defined $pause_value)
686 49 5 if (defined(my $event_data = $declarations->{'event'}))
711 60 19792 if (defined $discard_event)
719 41 19 if $is_active
748 0 252 unless $lexeme_default_adverbs
757 6101 1575 if $lexeme_name =~ / \] \z/msx
763 176 76 unless $blessing
764 0 76 if $blessing eq "::undef"
770 5846 1312 if $lexeme_name =~ / \] \z/msx
771 1312 0 if ($blessing eq "::name")
772 0 1312 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) { }