blib/lib/Parse/Stallion.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
condition | 272 | 348 | 78.1 |
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 |
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 |
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'} |