Condition Coverage

blib/lib/Parse/Stallion.pm
Criterion Covered Total %
condition 272 348 78.1


and 3 conditions

line !l l&&!r l&&r condition
121 5 16 1 $parse_this_length != $current_position and $must_parse_length
306 1 676 798 $steps < $max_steps and $current_node
307 792 1 28772 $current_node and ++$steps <= $max_steps
312 1613 20 137 $any_minimize_children and $$current_rule{'minimize_children'}
1633 137 0 $any_minimize_children and $$current_rule{'minimize_children'} and $not_any_minimum_child || $$current_rule{'minimum_child'} <= $$current_node{'child_count'}
807 348 526 $any_maximum_child and $$current_rule{'maximum_child'}
1155 420 106 $any_maximum_child and $$current_rule{'maximum_child'} and $$current_rule{'maximum_child'} == $$current_node{'child_count'}
353 445 1019 0 not $moving_down and $not_any_minimize_children || !$$current_rule{'minimize_children'}
25 994 0 not $moving_down and $not_any_minimize_children || !$$current_rule{'minimize_children'} and $not_any_minimum_child || !$$current_rule{'minimum_child'} || $$current_rule{'minimum_child'} <= $$current_node{'child_count'}
38 8 948 not $moving_down and $not_any_minimize_children || !$$current_rule{'minimize_children'} and $not_any_minimum_child || !$$current_rule{'minimum_child'} || $$current_rule{'minimum_child'} <= $$current_node{'child_count'} and $not_move_back_mode
416 0 100 $any_minimize_children and $not_move_back_mode
416 17 83 $any_minimize_children and $not_move_back_mode and $$current_rule{'minimize_children'}
17 25 58 $any_minimize_children and $not_move_back_mode and $$current_rule{'minimize_children'} and $moving_down
42 58 0 $any_minimize_children and $not_move_back_mode and $$current_rule{'minimize_children'} and $moving_down and $not_any_maximum_child || !$$current_rule{'maximum_child'} || $$current_rule{'maximum_child'} > $$current_node{'child_count'}
361 0 599 2746 $not_move_back_mode and ++$$current_node{'or_child_number'} < $$current_rule{'subrule_list_count'}
424 2030 17 14 $any_match_once and $not_move_back_mode
2047 0 14 $any_match_once and $not_move_back_mode and $$rule{$current_node_name}{'match_once'}
445 5076 9853 1000 $any_parse_forward and my $pf = $$new_rule{'parse_forward'}
542 608 4024 537 defined $$position_tree_size{$current_position} and $$position_tree_size{$current_position} == $tree_size
549 5149 17 3 $move_back_mode and $$current_node{'__move_back_to'}
559 4777 77 12 $any_parse_backtrack and $$current_rule{'parse_backtrack'}
579 7244 31 2624 $current_position == $$current_node{'position_when_entered'} and $parent
7275 2622 2 $current_position == $$current_node{'position_when_entered'} and $parent and defined $$rule{$$parent{'name'}}{'minimum_child'}
2653 2 0 $current_position == $$current_node{'position_when_entered'} and $parent and defined $$rule{$$parent{'name'}}{'minimum_child'} and $not_any_minimum_child || $$parent{'child_count'} > $$rule{$$parent{'name'}}{'minimum_child'}
615 1 306 489 not $current_node and $moving_forward
307 118 371 not $current_node and $moving_forward and $must_parse_length
424 251 120 not $current_node and $moving_forward and $must_parse_length and $parse_this_length != $current_position
624 119 0 1 $any_match_once and $$rule{$current_node_name}{'match_once'}
638 796 0 0 $no_max_steps and $steps == $max_steps
862 410 14 0 $match_maximum and $match_minimum
893 349 2 39 $match_maximum and $$parser_results{'final_position'} < $parse_this_length
303 0 48 $match_minimum and $$parser_results{'final_position'} > $initial_position
956 340 114 160 not $parse_succeeded and $not_match_start
454 9 151 not $parse_succeeded and $not_match_start and $parse_this_length > $initial_position
980 123 299 40 defined $to_return and $substitute
989 412 7 43 $find_all and $parse_succeeded
1003 401 6 13 $$parameters{'global'} and $parse_succeeded
1027 9 1 2 $$parameters{'global'} and wantarray
1149 148 116 0 ref $parm eq 'ARRAY' and $$parm[0] eq 'EVAL' || $$parm[0] eq 'UNEVAL' || $$parm[0] eq 'SEVAL' || $$parm[0] eq 'RULE_INFO' || $$parm[0] eq 'MATCH_ONCE' || $$parm[0] eq 'MATCH_MIN_FIRST' || $$parm[0] eq 'USE_STRING_MATCH'
1184 389 315 0 $rule_type eq 'MULTIPLE' and $$rule_hash{'maximum_child'} != 1 || $subrule_count > 1
0 389 0 $rule_type eq 'OR' and !defined($$rule_hash{'rule_count'}{$subrule_alias}) || $subrule_count > $$rule_hash{'rule_count'}{$subrule_alias}
1311 4218 1293 381 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'EVAL'
4218 1259 34 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'SEVAL'
4218 1256 3 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'UNEVAL'
4218 1243 13 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'MATCH_MIN_FIRST'
4218 1225 18 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'MATCH_ONCE'
4218 1225 0 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'RULE_INFO'
4218 492 733 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'LEAF_DISPLAY'
4218 484 8 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'USE_STRING_MATCH'
4218 435 49 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'PARSE_FORWARD'
4218 424 11 ref $sub_rule eq 'ARRAY' and $$sub_rule[0] eq 'PARSE_BACKTRACK'
1431 137 70 0 $max and $min > $max
1516 9 0 43 $param =~ /\w+/ and $param ne '_'
1693 27 24 10 $$self{'rule'}{$current_rule}{'and_rule'} and $active_rules{$current_rule} == $$self{'rule'}{$current_rule}{'subrule_list_count'}
1725 1449 0 24 defined $$self{'rule'}{$previous_rule}{'zero'} and $$self{'rule'}{$previous_rule}{'zero'}
1376 7 66 $$self{'rule'}{$previous_rule}{'multiple_rule'} and $$self{'rule'}{$previous_rule}{'minimum_child'} == 0
1833 785 150 1256 ref $params_to_eval eq 'HASH' and keys %$params_to_eval == 1

or 2 conditions

line l !l condition
12 30 1393 $$parameters{'values'} || ['steps', 'name', 'parse_match']
13 1298 125 $$parameters{'spaces'} || ''
698 0 159 $$parameters{'max_steps'} || 1000000
699 0 159 $$parameters{'parse_trace_routine'} || undef
709 0 159 $$parameters{'no_evaluation'} || 0
713 22 137 $$parameters{'do_evaluation_in_parsing'} || 0
716 0 159 $$parameters{'unreachable_rules_allowed'} || 0
718 4 155 $$parameters{'do_not_compress_eval'} || 0
777 103 321 $_[1] || {}
779 62 362 $$parameters{'parse_info'} || {}
780 0 424 $$parameters{'parse_hash'} || {}
786 10 414 pos $_[0] || 0
824 13 411 $$parameters{'substitute'} || 0
1019 9 3 $_[1] || {}
1026 1 11 $$parameters{'parse_info'} || {}
1043 5 2 $_[1] || {}
1183 2168 0 shift() || 0
1195 0 81 $$rule_hash{'rule_count'}{$subrule_alias} || 1
1710 151 2845 $$self{'rule'}{$current_rule}{'zero'} || 0
1716 42 542 $$self{'rule'}{$current_rule}{'zero'} || 0
1735 0 1383 $$self{'rule'}{$current_rule}{'zero'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
45 0 424 0 ref $type || $type
171 25 0 654 $$parameters{'parse_trace_routine'} || $$parse_stallion{'parse_trace_routine'}
177 2 677 0 $$parameters{'max_steps'} || $$parse_stallion{'max_steps'}
209 75 0 604 $do_evaluation_in_parsing or $$parse_stallion{'no_evaluation'}
312 58 31 48 $not_any_minimum_child || $$current_rule{'minimum_child'} <= $$current_node{'child_count'}
353 976 18 25 $not_any_minimize_children || !$$current_rule{'minimize_children'}
930 26 38 $not_any_minimum_child || !$$current_rule{'minimum_child'} || $$current_rule{'minimum_child'} <= $$current_node{'child_count'}
35 14 9 $not_any_maximum_child || !$$current_rule{'maximum_child'} || $$current_rule{'maximum_child'} > $$current_node{'child_count'}
579 2 0 0 $not_any_minimum_child || $$parent{'child_count'} > $$rule{$$parent{'name'}}{'minimum_child'}
649 370 0 307 $moving_forward || $current_node
691 0 159 0 ref $type || $type
719 24 135 0 $$parameters{'separator'} || $$self{'separator'}
741 2 135 10 $$parameters{'fast_move_back'} || !($$self{'any_parse_backtrack'} || $$self{'any_unevaluation'})
865 14 9 401 $match_maximum or $match_minimum
965 303 37 123 $$parser_results{'parse_succeeded'} || $parse_succeeded
967 123 0 340 not $parse_succeeded or $$self{'no_evaluation'}
1149 25 2 79 $$parm[0] eq 'EVAL' || $$parm[0] eq 'UNEVAL' || $$parm[0] eq 'SEVAL' || $$parm[0] eq 'RULE_INFO' || $$parm[0] eq 'MATCH_ONCE' || $$parm[0] eq 'MATCH_MIN_FIRST' || $$parm[0] eq 'USE_STRING_MATCH'
1184 234 0 81 $$rule_hash{'maximum_child'} != 1 || $subrule_count > 1
341 0 48 !defined($$rule_hash{'rule_count'}{$subrule_alias}) || $subrule_count > $$rule_hash{'rule_count'}{$subrule_alias}
1253 1 3 5 $$self{'do_evaluation_in_parsing'} || $$parser_to_incorporate{'do_evaluation_in_parsing'}
1255 0 0 9 $$self{'any_unevaluation'} || $$parser_to_incorporate{'any_unevaluation'}
1257 0 0 9 $$self{'any_minimize_children'} || $$parser_to_incorporate{'any_minimize_children'}
1259 0 0 9 $$self{'any_match_once'} || $$parser_to_incorporate{'any_match_once'}
1261 0 0 9 $$self{'any_parse_forward'} || $$parser_to_incorporate{'any_parse_forward'}
1263 0 0 9 $$self{'any_parse_backtrack'} || $$parser_to_incorporate{'any_parse_backtrack'}
1265 0 0 9 $$self{'any_maximum_child'} || $$parser_to_incorporate{'any_maximum_child'}
1267 0 0 9 $$self{'any_minimum_child'} || $$parser_to_incorporate{'any_minimum_child'}
1269 2 7 0 $$self{'fast_move_back'} || $$parser_to_incorporate{'fast_move_back'}
1271 0 0 9 $$self{'no_evaluation'} || $$parser_to_incorporate{'no_evaluation'}
1278 1626 0 0 $$parameters{'rule_name'} || croak('Empty rule name')
1328 1 0 2 $$sub_rule[1] || $$self{'rule'}{$rule_name}{'parsing_unevaluation'}
1366 48 0 0 $$sub_rule[1] || croak("Rule $rule_name Illegal parse_forward routine")
1375 11 0 0 $$sub_rule[1] || croak("Rule $rule_name Illegal parse_backtrack routine")
1409 47 10 732 $$self{'rule'}{$rule_name}{'parse_forward'} || $$self{'leaf_parse_forward'}
1412 11 10 768 $$self{'rule'}{$rule_name}{'parse_backtrack'} || $$self{'leaf_parse_backtrack'}
1431 0 0 207 $max and $min > $max or $min < 0
0 0 207 $max and $min > $max or $min < 0 or $min != int $min
0 0 207 $max and $min > $max or $min < 0 or $min != int $min or $max != int $max
1479 14 67 343 defined $$self{'rule'}{$name}{'parsing_evaluation'} or $$self{'rule'}{$name}{'rule_type'} eq 'LEAF'
1676 0 2678 2289 $checked_rules{$current_rule} or $$self{'rule'}{$current_rule}{'leaf_rule'}
1693 14 32 61 $$self{'rule'}{$current_rule}{'multiple_rule'} or $$self{'rule'}{$current_rule}{'or_rule'}
1706 318 2678 3032 $$self{'rule'}{$current_rule}{'multiple_rule'} or $$self{'rule'}{$current_rule}{'leaf_rule'}
2996 0 3032 $$self{'rule'}{$current_rule}{'multiple_rule'} or $$self{'rule'}{$current_rule}{'leaf_rule'} or $checked_rules{$current_rule}
1725 24 0 1449 defined $$self{'rule'}{$previous_rule}{'zero'} and $$self{'rule'}{$previous_rule}{'zero'} or $$self{'rule'}{$previous_rule}{'multiple_rule'} and $$self{'rule'}{$previous_rule}{'minimum_child'} == 0
1833 4380 30 2191 $$rule{'generated'} or $$self{'do_not_compress_eval'}