|  line  | 
 true  | 
 false  | 
 branch  | 
 
| 
110
 | 
 0  | 
 675  | 
 unless ($ref_type)  | 
 
| 
115
 | 
 0  | 
 675  | 
 if ($ref_type ne "HASH")  | 
 
| 
143
 | 
 0  | 
 675  | 
 if (my(@bad_options) = grep({not exists $grammar_options->{$_};} keys %{$args;}))  | 
 
| 
156
 | 
 542  | 
 133  | 
 if (defined(my $value = $args->{'_internal_'}))  | 
 
| 
160
 | 
 276  | 
 399  | 
 if (defined(my $value = $args->{'trace_file_handle'}))  | 
 
| 
166
 | 
 0  | 
 675  | 
 if (defined(my $value = $args->{'default_rank'}))  | 
 
| 
167
 | 
 0  | 
 0  | 
 if $grammar_c->is_precomputed  | 
 
| 
176
 | 
 544  | 
 131  | 
 if (defined(my $value = $args->{'symbols'}))  | 
 
| 
177
 | 
 0  | 
 544  | 
 if $grammar_c->is_precomputed  | 
 
| 
180
 | 
 0  | 
 544  | 
 if ref $value ne "HASH"  | 
 
| 
188
 | 
 61  | 
 614  | 
 if (defined(my $value = $args->{'terminals'}))  | 
 
| 
189
 | 
 0  | 
 61  | 
 if $grammar_c->is_precomputed  | 
 
| 
192
 | 
 0  | 
 61  | 
 if ref $value ne "ARRAY"  | 
 
| 
199
 | 
 639  | 
 36  | 
 if (defined(my $value = $args->{'start'}))  | 
 
| 
200
 | 
 0  | 
 639  | 
 if $grammar_c->is_precomputed  | 
 
| 
209
 | 
 3  | 
 672  | 
 if (defined(my $value = $args->{'source'}))  | 
 
| 
210
 | 
 0  | 
 3  | 
 if $grammar_c->is_precomputed  | 
 
| 
213
 | 
 0  | 
 3  | 
 if ref $value ne "SCALAR"  | 
 
| 
219
 | 
 639  | 
 36  | 
 if (defined(my $value = $args->{'rules'}))  | 
 
| 
220
 | 
 0  | 
 639  | 
 if $grammar_c->is_precomputed  | 
 
| 
227
 | 
 0  | 
 638  | 
 if (ref $value eq "ARRAY" and scalar @{$value;} == 1 and not ref $value->[0])  | 
 
| 
233
 | 
 1  | 
 638  | 
 unless (ref $value)  | 
 
| 
236
 | 
 0  | 
 639  | 
 if (defined $deprecated_source and defined $stuifzand_source)  | 
 
| 
242
 | 
 1  | 
 638  | 
 if (defined $deprecated_source)  | 
 
| 
247
 | 
 0  | 
 638  | 
 if ref $value ne "ARRAY"  | 
 
| 
251
 | 
 0  | 
 638  | 
 if $grammar->[10] ne "standard"  | 
 
| 
261
 | 
 4  | 
 665  | 
 if (defined $stuifzand_source)  | 
 
| 
264
 | 
 0  | 
 4  | 
 if $grammar->[10] ne "stuifzand"  | 
 
| 
278
 | 
 9  | 
 660  | 
 if (exists $args->{'default_empty_action'})  | 
 
| 
284
 | 
 17  | 
 652  | 
 if (defined(my $value = $args->{'actions'}))  | 
 
| 
288
 | 
 110  | 
 559  | 
 if (defined(my $value = $args->{'bless_package'}))  | 
 
| 
292
 | 
 4  | 
 665  | 
 if (defined(my $value = $args->{'action_object'}))  | 
 
| 
296
 | 
 57  | 
 612  | 
 if (defined(my $value = $args->{'default_action'}))  | 
 
| 
300
 | 
 9  | 
 660  | 
 if (defined(my $value = $args->{'infinite_action'}))  | 
 
| 
301
 | 
 0  | 
 9  | 
 if ($value and $grammar_c->is_precomputed)  | 
 
| 
302
 | 
 0  | 
 0  | 
 unless say {$trace_fh;} "\"infinite_action\" option is useless after grammar is precomputed"  | 
 
| 
310
 | 
 0  | 
 9  | 
 unless exists $allowed_values->{$value}  | 
 
| 
315
 | 
 8  | 
 661  | 
 if (defined(my $value = $args->{'warnings'}))  | 
 
| 
316
 | 
 0  | 
 8  | 
 if ($value and $grammar_c->is_precomputed)  | 
 
| 
317
 | 
 0  | 
 0  | 
 unless say {$trace_fh;} "\"warnings\" option is useless after grammar is precomputed"  | 
 
| 
324
 | 
 0  | 
 669  | 
 if (defined(my $value = $args->{'inaccessible_ok'}))  | 
 
| 
325
 | 
 0  | 
 0  | 
 if ($value and $grammar_c->is_precomputed)  | 
 
| 
326
 | 
 0  | 
 0  | 
 unless say {$trace_fh;} "\"inaccessible_ok\" option is useless after grammar is precomputed"  | 
 
| 
333
 | 
 0  | 
 0  | 
 if ($ref_value eq "")  | 
 
| 
337
 | 
 0  | 
 0  | 
 if ($ref_value eq "ARRAY")  | 
 
| 
349
 | 
 0  | 
 669  | 
 if (defined(my $value = $args->{'unproductive_ok'}))  | 
 
| 
350
 | 
 0  | 
 0  | 
 if ($value and $grammar_c->is_precomputed)  | 
 
| 
351
 | 
 0  | 
 0  | 
 unless say {$trace_fh;} "\"unproductive_ok\" option is useless after grammar is precomputed"  | 
 
| 
357
 | 
 0  | 
 0  | 
 if ($ref_value eq "")  | 
 
| 
361
 | 
 0  | 
 0  | 
 if ($ref_value eq "ARRAY")  | 
 
| 
380
 | 
 0  | 
 0  | 
 if (length $final_character != 1)  | 
 
| 
384
 | 
 0  | 
 0  | 
 if ($final_character eq "]")  | 
 
| 
385
 | 
 0  | 
 0  | 
 if $boolean  | 
 
| 
390
 | 
 0  | 
 0  | 
 unless (exists $DEFAULT_SYMBOLS_RESERVED{$final_character})  | 
 
| 
396
 | 
 0  | 
 0  | 
 $boolean ? :  | 
 
| 
408
 | 
 0  | 
 98  | 
 if ($problems)  | 
 
| 
416
 | 
 0  | 
 98  | 
 if $grammar_c->is_precomputed  | 
 
| 
426
 | 
 12  | 
 85  | 
 if ($precompute_result < 0)  | 
 
| 
428
 | 
 0  | 
 12  | 
 unless (defined $precompute_error_code)  | 
 
| 
434
 | 
 0  | 
 12  | 
 if $precompute_error_code == $Marpa::R2::Error::PRECOMPUTED  | 
 
| 
439
 | 
 8  | 
 4  | 
 if $precompute_error_code == $Marpa::R2::Error::GRAMMAR_HAS_CYCLE  | 
 
| 
444
 | 
 4  | 
 93  | 
 if ($precompute_error_code != $Marpa::R2::Error::NONE)  | 
 
| 
448
 | 
 0  | 
 4  | 
 if ($precompute_error_code == $Marpa::R2::Error::NO_RULES)  | 
 
| 
452
 | 
 1  | 
 3  | 
 if ($precompute_error_code == $Marpa::R2::Error::NULLING_TERMINAL)  | 
 
| 
458
 | 
 1  | 
 0  | 
 if ($event_type eq "MARPA_EVENT_NULLING_TERMINAL")  | 
 
| 
468
 | 
 1  | 
 2  | 
 if ($precompute_error_code == $Marpa::R2::Error::COUNTED_NULLABLE)  | 
 
| 
474
 | 
 1  | 
 0  | 
 if ($event_type eq "MARPA_EVENT_COUNTED_NULLABLE")  | 
 
| 
488
 | 
 0  | 
 2  | 
 if ($precompute_error_code == $Marpa::R2::Error::NO_START_SYMBOL)  | 
 
| 
491
 | 
 1  | 
 1  | 
 if ($precompute_error_code == $Marpa::R2::Error::START_NOT_LHS)  | 
 
| 
496
 | 
 1  | 
 0  | 
 if ($precompute_error_code == $Marpa::R2::Error::UNPRODUCTIVE_START)  | 
 
| 
511
 | 
 1638  | 
 0  | 
 if defined $rules->[$rule_id]  | 
 
| 
532
 | 
 0  | 
 8  | 
 if ($event_type ne "MARPA_EVENT_LOOP_RULES")  | 
 
| 
541
 | 
 6  | 
 87  | 
 if ($loop_rule_count and $infinite_action ne "quiet")  | 
 
| 
545
 | 
 0  | 
 16  | 
 unless print {$trace_fh;} "Cycle found involving rule: ", $grammar->brief_rule($rule_id), "\n"  | 
 
| 
550
 | 
 0  | 
 6  | 
 if $infinite_action eq "fatal"  | 
 
| 
557
 | 
 92  | 
 1  | 
 if ($grammar->[9] and ref(my $ok = $grammar->[19]) eq "HASH")  | 
 
| 
574
 | 
 2  | 
 2  | 
 if $symbol =~ /\]/msx  | 
 
| 
575
 | 
 0  | 
 2  | 
 if $ok->{$symbol}  | 
 
| 
576
 | 
 0  | 
 2  | 
 unless say {$trace_fh;} "Inaccessible symbol: $symbol"  | 
 
| 
584
 | 
 92  | 
 1  | 
 if ($grammar->[9] and ref(my $ok = $grammar->[20]) eq "HASH")  | 
 
| 
601
 | 
 0  | 
 0  | 
 if $symbol =~ /\]/msx  | 
 
| 
602
 | 
 0  | 
 0  | 
 if $ok->{$symbol}  | 
 
| 
603
 | 
 0  | 
 0  | 
 unless say {$trace_fh;} "Unproductive symbol: $symbol"  | 
 
| 
609
 | 
 0  | 
 93  | 
 if $grammar->[12]  | 
 
| 
627
 | 
 0  | 
 534  | 
 if ($problems)  | 
 
| 
635
 | 
 0  | 
 534  | 
 if $grammar_c->is_precomputed  | 
 
| 
636
 | 
 0  | 
 534  | 
 if ($grammar_c->force_valued < 0)  | 
 
| 
648
 | 
 2  | 
 532  | 
 if ($precompute_result < 0)  | 
 
| 
650
 | 
 0  | 
 2  | 
 unless (defined $precompute_error_code)  | 
 
| 
656
 | 
 0  | 
 2  | 
 if $precompute_error_code == $Marpa::R2::Error::PRECOMPUTED  | 
 
| 
661
 | 
 0  | 
 2  | 
 if $precompute_error_code == $Marpa::R2::Error::GRAMMAR_HAS_CYCLE  | 
 
| 
666
 | 
 2  | 
 532  | 
 if ($precompute_error_code != $Marpa::R2::Error::NONE)  | 
 
| 
670
 | 
 0  | 
 2  | 
 if ($precompute_error_code == $Marpa::R2::Error::NO_RULES)  | 
 
| 
674
 | 
 0  | 
 2  | 
 if ($precompute_error_code == $Marpa::R2::Error::NULLING_TERMINAL)  | 
 
| 
680
 | 
 0  | 
 0  | 
 if ($event_type eq "MARPA_EVENT_NULLING_TERMINAL")  | 
 
| 
690
 | 
 1  | 
 1  | 
 if ($precompute_error_code == $Marpa::R2::Error::COUNTED_NULLABLE)  | 
 
| 
696
 | 
 1  | 
 0  | 
 if ($event_type eq "MARPA_EVENT_COUNTED_NULLABLE")  | 
 
| 
710
 | 
 0  | 
 1  | 
 if ($precompute_error_code == $Marpa::R2::Error::NO_START_SYMBOL)  | 
 
| 
713
 | 
 0  | 
 1  | 
 if ($precompute_error_code == $Marpa::R2::Error::START_NOT_LHS)  | 
 
| 
719
 | 
 1  | 
 0  | 
 if $precompute_error_code == $Marpa::R2::Error::UNPRODUCTIVE_START  | 
 
| 
732
 | 
 29967  | 
 0  | 
 if defined $rules->[$rule_id]  | 
 
| 
753
 | 
 0  | 
 0  | 
 if ($event_type ne "MARPA_EVENT_LOOP_RULES")  | 
 
| 
762
 | 
 0  | 
 532  | 
 if ($loop_rule_count and $infinite_action ne "quiet")  | 
 
| 
766
 | 
 0  | 
 0  | 
 unless print {$trace_fh;} "Cycle found involving rule: ", $grammar->brief_rule($rule_id), "\n"  | 
 
| 
771
 | 
 0  | 
 0  | 
 if $infinite_action eq "fatal"  | 
 
| 
792
 | 
 0  | 
 7  | 
 if $symbol_name =~ /\]/msx  | 
 
| 
796
 | 
 5  | 
 2  | 
 if $treatment eq "ok"  | 
 
| 
798
 | 
 2  | 
 0  | 
 if $treatment eq "fatal"  | 
 
| 
799
 | 
 0  | 
 0  | 
 unless say {$trace_fh;} $message  | 
 
| 
806
 | 
 530  | 
 0  | 
 if ($grammar->[9] and ref(my $ok = $grammar->[20]) eq "HASH")  | 
 
| 
823
 | 
 0  | 
 0  | 
 if $symbol =~ /\]/msx  | 
 
| 
824
 | 
 0  | 
 0  | 
 if $ok->{$symbol}  | 
 
| 
825
 | 
 0  | 
 0  | 
 unless say {$trace_fh;} "Unproductive symbol: $symbol"  | 
 
| 
831
 | 
 0  | 
 530  | 
 if (defined $cc_hash)  | 
 
| 
853
 | 
 0  | 
 1  | 
 if ($problems)  | 
 
| 
886
 | 
 0  | 
 3902  | 
 unless defined $symbol  | 
 
| 
888
 | 
 820  | 
 3082  | 
 if defined $text  | 
 
| 
891
 | 
 91  | 
 2991  | 
 $text =~ /\s/msx ? :  | 
 
| 
904
 | 
 0  | 
 75  | 
 unless $grammar_c->symbol_is_productive($symbol_id)  | 
 
| 
906
 | 
 0  | 
 75  | 
 unless $grammar_c->symbol_is_accessible($symbol_id)  | 
 
| 
908
 | 
 2  | 
 73  | 
 if $grammar_c->symbol_is_nulling($symbol_id)  | 
 
| 
909
 | 
 33  | 
 42  | 
 if $grammar_c->symbol_is_terminal($symbol_id)  | 
 
| 
911
 | 
 35  | 
 40  | 
 if scalar @tag_list  | 
 
| 
983
 | 
 0  | 
 659  | 
 unless defined $rule  | 
 
| 
985
 | 
 658  | 
 1  | 
 if defined $name  | 
 
| 
1005
 | 
 1  | 
 2  | 
 $minimum <= 0 ? :  | 
 
| 
 | 
 3  | 
 128  | 
 defined $minimum ? :  | 
 
| 
1016
 | 
 16  | 
 71  | 
 if $grammar_c->rule_length($rule_id) == 0  | 
 
| 
1017
 | 
 18  | 
 69  | 
 unless $grammar->rule_is_used($rule_id)  | 
 
| 
1018
 | 
 0  | 
 87  | 
 unless $grammar_c->rule_is_productive($rule_id)  | 
 
| 
1019
 | 
 0  | 
 87  | 
 unless $grammar_c->rule_is_accessible($rule_id)  | 
 
| 
1020
 | 
 2  | 
 85  | 
 if $rule->[2]  | 
 
| 
1025
 | 
 20  | 
 67  | 
 if (@comment)  | 
 
| 
1103
 | 
 1  | 
 30  | 
 if (defined $minimum)  | 
 
| 
1104
 | 
 0  | 
 1  | 
 $minimum <= 0 ? :  | 
 
| 
1107
 | 
 0  | 
 31  | 
 if $dot_position < 0  | 
 
| 
1115
 | 
 0  | 
 1  | 
 unless defined $name  | 
 
| 
1120
 | 
 0  | 
 1  | 
 unless defined $symbol_id  | 
 
| 
1123
 | 
 0  | 
 1  | 
 $grammar_c->symbol_is_terminal($symbol_id) ? :  | 
 
| 
1130
 | 
 172690  | 
 0  | 
 defined $symbol_name ? :  | 
 
| 
1156
 | 
 87254  | 
 31031  | 
 if (defined $symbol_id)  | 
 
| 
1164
 | 
 0  | 
 55774  | 
 if ($property eq "semantics")  | 
 
| 
1169
 | 
 0  | 
 55774  | 
 if ($property eq "bless")  | 
 
| 
1174
 | 
 103  | 
 55671  | 
 if ($property eq "terminal")  | 
 
| 
1179
 | 
 0  | 
 55671  | 
 if ($property eq "rank")  | 
 
| 
1181
 | 
 0  | 
 0  | 
 if not &Scalar::Util::looks_like_number($value) or int $value != $value  | 
 
| 
1187
 | 
 18780  | 
 36891  | 
 if ($property eq "description")  | 
 
| 
1192
 | 
 18051  | 
 18840  | 
 if ($property eq "dsl_form")  | 
 
| 
1197
 | 
 60  | 
 18780  | 
 if ($property eq "legacy_name")  | 
 
| 
1202
 | 
 18780  | 
 0  | 
 if ($property eq "display_form")  | 
 
| 
1207
 | 
 0  | 
 0  | 
 if ($property eq "if_inaccessible")  | 
 
| 
1225
 | 
 0  | 
 23908  | 
 if (my $type = ref $name)  | 
 
| 
1229
 | 
 5128  | 
 18780  | 
 unless ($grammar->[11])  | 
 
| 
1231
 | 
 0  | 
 5128  | 
 if ($DEFAULT_SYMBOLS_RESERVED{$final_symbol})  | 
 
| 
1252
 | 
 31382  | 
 219  | 
 if ($ref_rule eq "HASH")  | 
 
| 
1256
 | 
 219  | 
 0  | 
 if ($ref_rule eq "ARRAY")  | 
 
| 
1259
 | 
 0  | 
 219  | 
 if ($arg_count > 4 or $arg_count < 1)  | 
 
| 
1263
 | 
 0  | 
 0  | 
 defined $_ ? :  | 
 
| 
1297
 | 
 0  | 
 31661  | 
 unless defined $grammar and defined $options  | 
 
| 
1319
 | 
 10222  | 
 130726  | 
 if ($option eq "name")  | 
 
| 
1320
 | 
 12463  | 
 118263  | 
 if ($option eq "tag")  | 
 
| 
1321
 | 
 31657  | 
 86606  | 
 if ($option eq "rhs")  | 
 
| 
1322
 | 
 31661  | 
 54945  | 
 if ($option eq "lhs")  | 
 
| 
1323
 | 
 9840  | 
 45105  | 
 if ($option eq "action")  | 
 
| 
1324
 | 
 8275  | 
 36830  | 
 if ($option eq "bless")  | 
 
| 
1325
 | 
 64  | 
 36766  | 
 if ($option eq "rank")  | 
 
| 
1326
 | 
 4  | 
 36762  | 
 if ($option eq "null_ranking")  | 
 
| 
1330
 | 
 1735  | 
 35027  | 
 if ($option eq "min")  | 
 
| 
1331
 | 
 328  | 
 34699  | 
 if ($option eq "separator")  | 
 
| 
1335
 | 
 232  | 
 34467  | 
 if ($option eq "proper")  | 
 
| 
1339
 | 
 15  | 
 34452  | 
 if ($option eq "keep")  | 
 
| 
1340
 | 
 19423  | 
 15029  | 
 if ($option eq "mask")  | 
 
| 
1341
 | 
 15029  | 
 0  | 
 if ($option eq "description")  | 
 
| 
1345
 | 
 0  | 
 31661  | 
 if (defined $min and not &Scalar::Util::looks_like_number($min))  | 
 
| 
1355
 | 
 30079  | 
 1582  | 
 $grammar_is_internal ? :  | 
 
| 
1364
 | 
 0  | 
 31661  | 
 if (not $rhs_ref_type or $rhs_ref_type ne "ARRAY")  | 
 
| 
1365
 | 
 0  | 
 0  | 
 $rhs_ref_type ? :  | 
 
| 
1373
 | 
 0  | 
 31661  | 
 unless (defined $lhs_name)  | 
 
| 
1377
 | 
 0  | 
 64  | 
 if (defined $rank and !&Scalar::Util::looks_like_number($rank) || int $rank != $rank)  | 
 
| 
1387
 | 
 0  | 
 31661  | 
 if ($null_ranking ne "high" and $null_ranking ne "low")  | 
 
| 
1392
 | 
 0  | 
 31661  | 
 if (scalar @rule_problems)  | 
 
| 
1410
 | 
 63985  | 
 3396  | 
 $grammar_is_internal ? :  | 
 
| 
1418
 | 
 0  | 
 31661  | 
 if (defined $separator_name and $is_ordinary_rule)  | 
 
| 
1419
 | 
 0  | 
 0  | 
 if (defined $separator_name)  | 
 
| 
1431
 | 
 29926  | 
 1735  | 
 if ($is_ordinary_rule) { }  | 
 
| 
1441
 | 
 0  | 
 1735  | 
 if scalar @{$rhs_names;} != 1  | 
 
| 
1444
 | 
 328  | 
 1407  | 
 if (defined $separator_name)  | 
 
| 
1445
 | 
 313  | 
 15  | 
 $grammar_is_internal ? :  | 
 
| 
1470
 | 
 6  | 
 31655  | 
 if (not defined $base_rule_id or $base_rule_id < 0)  | 
 
| 
1474
 | 
 3  | 
 3  | 
 $error_code == $Marpa::R2::Error::DUPLICATE_RULE ? :  | 
 
| 
1483
 | 
 29920  | 
 1735  | 
 if ($is_ordinary_rule)  | 
 
| 
1486
 | 
 10500  | 
 19420  | 
 unless (defined $mask and $grammar_is_internal)  | 
 
| 
1496
 | 
 2  | 
 31653  | 
 $null_ranking eq 'high' ? :  | 
 
| 
1500
 | 
 9781  | 
 21874  | 
 if (defined $rule_name)  | 
 
| 
1503
 | 
 12463  | 
 19192  | 
 if (defined $slif_tag)  | 
 
| 
1507
 | 
 0  | 
 12463  | 
 if ($rule_id_by_tag->{$slif_tag})  | 
 
| 
1513
 | 
 8275  | 
 23380  | 
 if (defined $blessing)  | 
 
| 
1516
 | 
 15028  | 
 16627  | 
 if (defined $description)  | 
 
| 
1527
 | 
 1  | 
 5  | 
 if $lhs_name =~ / /  | 
 
| 
1528
 | 
 1  | 
 5  | 
 / / ? :  | 
 
| 
1542
 | 
 0  | 
 632  | 
 if (defined $named_arg_start_name and defined $start_id)  | 
 
| 
1548
 | 
 629  | 
 3  | 
 if (defined $named_arg_start_name)  | 
 
| 
1550
 | 
 0  | 
 629  | 
 unless defined $start_id  | 
 
| 
1555
 | 
 2  | 
 1  | 
 if (defined $default_start_id)  | 
 
| 
1564
 | 
 0  | 
 631  | 
 unless (defined $grammar_c->start_symbol_set($start_id))  | 
 
| 
1588
 | 
 10  | 
 27  | 
 if $grammar_c->_marpa_g_nsy_is_nulling($isy_id)  | 
 
| 
1591
 | 
 10  | 
 27  | 
 if scalar @tag_list  | 
 
| 
1614
 | 
 58  | 
 0  | 
 if (my $rh_length = $grammar_c->_marpa_g_irl_length($irl_id))  |