Branch Coverage

blib/lib/Perlito/Expression.pm
Criterion Covered Total %
branch 300 486 61.7


line true false branch
21 154 391 if (Main::isa($param_list, 'Apply') and $param_list->code eq 'list:<,>') { }
28 346 0 if (defined $v)
35 30 361 if ($param_list eq '*undef*') { }
54 0 57 if (defined $o->sig)
58 1 56 if (not defined $stmts or scalar @{$stmts;} == 0)
65 26 30 if (scalar @{$stmts;} != 1)
69 8 22 unless (Main::isa($stmt, 'Apply'))
72 0 22 if ($stmt->code eq 'infix:<=>>')
80 21 1 if ($stmt->code ne 'list:<,>')
84 1 1 if (Main::isa($item, 'Apply') and $item->code eq 'infix:<=>>')
93 1975 854 if (Main::isa($v, 'Array'))
94 0 1975 if ($$v[1] eq 'methcall_no_params')
98 24 1951 if ($$v[1] eq 'funcall_no_params')
102 0 1951 if ($$v[1] eq 'methcall')
103 0 0 if ($$v[3]{'end_block'})
110 294 1657 if ($$v[1] eq 'funcall')
111 0 294 if ($$v[4]{'end_block'})
118 152 1505 if ($$v[1] eq '( )')
123 12 1493 if ($$v[1] eq '[ ]')
128 57 1436 if ($$v[1] eq 'block')
133 0 1436 if ($$v[1] eq '.( )')
137 0 1436 if ($$v[1] eq '.[ ]')
141 0 1436 if ($$v[1] eq '.{ }')
145 0 1436 if (Main::isa($$v[1], 'Array') and scalar @{$$v[1];} == 2)
157 77 128 if ($$v[1] eq 'methcall_no_params')
161 0 128 if ($$v[1] eq 'funcall_no_params')
166 31 97 if ($$v[1] eq 'methcall')
171 0 97 if ($$v[1] eq 'funcall')
176 24 73 if ($$v[1] eq '( )')
178 24 0 if (Main::isa($value, 'Apply') and not defined $value->arguments)
182 0 0 if (Main::isa($value, 'Call') and not defined $value->arguments)
189 37 36 if ($$v[1] eq '[ ]')
193 29 7 if ($$v[1] eq 'block')
197 7 0 if ($$v[1] eq '.( )')
202 0 0 if ($$v[1] eq '.[ ]')
206 0 0 if ($$v[1] eq '.{ }')
343 0 0 if ($m2) { }
351 0 0 if (do { my($m2) = 'Perlito::Grammar'->full_ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.full_ident'} = $m2; 1; } else { 0; } })
353 0 0 unless (do { my($pos1) = $MATCH->to; do { if ('.' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; if (exists $$MATCH{'Perlito::Grammar.ident'}) { push @{$$MATCH{'Perlito::Grammar.ident'};}, $m2; } else { $$MATCH{'Perlito::Grammar.ident'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, $m2; $List_a }; } ; 1; } else { 0; } ; } } })
356 0 0 if ('.' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
358 0 0 if ($m2) { }
360 0 0 if (exists $$MATCH{'Perlito::Grammar.ident'}) { }
397 107 1 unless (do { $$MATCH{'to'} = 2 + $MATCH->to if '>>' eq substr($str, $MATCH->to, 2) })
398 1 107 if '>>' eq substr($str, $MATCH->to, 2)
418 7 0 if ($m2) { }
426 7 0 if '.(' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->paren_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'paren_parse'} = $m2; 1; } else { 0; } } and (')' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
440 0 0 if ($m2) { }
448 0 0 if '.[' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->square_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'square_parse'} = $m2; 1; } else { 0; } } and (']' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
462 0 0 if ($m2) { }
470 0 0 if '.{' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->curly_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'curly_parse'} = $m2; 1; } else { 0; } } and ('}' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
484 176 0 if ($m2) { }
492 176 0 if '(' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($m2) = $grammar->paren_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'paren_parse'} = $m2; 1; } else { 0; } } and (')' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
506 49 0 if ($m2) { }
514 49 0 if '[' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($m2) = $grammar->square_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'square_parse'} = $m2; 1; } else { 0; } } and (']' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
529 0 5734 if '.<' eq substr($str, $MATCH->to, 2)
530 5734 0 unless (do { $$MATCH{'to'} = 2 + $MATCH->to if '.<' eq substr($str, $MATCH->to, 2) })
532 5 5729 if '<' eq substr($str, $MATCH->to, 1)
536 0 5 if ($m2) { }
544 0 0 if do { my($pos1) = $MATCH->to; unless (do { $$MATCH{'to'} = 2 + $MATCH->to if '.<' eq substr($str, $MATCH->to, 2) }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '<' eq substr($str, $MATCH->to, 1); } } and do { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.ident'} = $m2; 1; } else { 0; } } and ('>' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
563 0 3 unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
565 3 0 if ($m2) { }
578 3 0 if ($m2) { }
586 3 0 if '->' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } }
588 0 3 if ($block->sig)
605 30 146 unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
607 146 30 if ($m2) { }
620 176 0 if ($m2) { }
630 176 0 unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
632 0 176 if ($m2) { }
643 176 0 if '{' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($m2) = 'Perlito::Grammar'->exp_stmts($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.exp_stmts'} = $m2; 1; } else { 0; } } and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and ('}' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
657 8 0 if ($m2) { }
666 8 0 if ($m2) { }
674 8 0 if 'method' eq substr($str, $MATCH->to, 6) and $$MATCH{'to'} = 6 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->method_def($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.method_def'} = $m2; 1; } else { 0; } }
687 12 17 if ($m2) { }
696 12 0 if ($m2) { }
704 12 0 if 'sub' eq substr($str, $MATCH->to, 3) and $$MATCH{'to'} = 3 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->sub_def($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.sub_def'} = $m2; 1; } else { 0; } }
717 4 0 if ($m2) { }
726 4 0 if ($m2) { }
734 4 0 if 'token' eq substr($str, $MATCH->to, 5) and $$MATCH{'to'} = 5 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->token($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.token'} = $m2; 1; } else { 0; } }
747 37 0 if ($m2) { }
756 37 0 if ($m2) { }
764 37 0 if 'do' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->statement_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'statement_parse'} = $m2; 1; } else { 0; } }
777 37 0 if ($m2) { }
785 37 0 if '??' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->ternary_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'ternary_parse'} = $m2; 1; } else { 0; } } and ('!!' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to)
799 443 5014 if ($m2) { }
807 443 5014 if do { my($m2) = 'Perlito::Grammar'->var_ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.var_ident'} = $m2; 1; } else { 0; } }
820 0 0 if ($m2) { }
828 0 0 if '$<' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->capture_name($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'capture_name'} = $m2; 1; } else { 0; } } and ('>' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
841 2078 2936 if ($m2) { }
849 2078 2936 if do { my($m2) = 'Perlito::Precedence'->op_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Precedence.op_parse'} = $m2; 1; } else { 0; } }
856 491 2445 if ($m2) { }
870 491 0 if do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 }
872 45 446 unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
874 446 45 if ($m2) { }
891 29 462 if do { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.ident'} = $m2; 1; } else { 0; } } and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { '=>' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to if do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } } }; $$tmp{'bool'} = !!$MATCH; $MATCH = $tmp; not !$MATCH }
911 0 1 if ($m2) { }
918 1 0 unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
920 0 1 if '(' eq substr($str, $MATCH->to, 1)
927 1 0 if 'True' eq substr($str, $MATCH->to, 4) and $$MATCH{'to'} = 4 + $MATCH->to and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { my($pos1) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '(' eq substr($str, $MATCH->to, 1); } } }; $$tmp{'bool'} = !$MATCH; $MATCH = $tmp; not !$MATCH }
947 0 3 if ($m2) { }
954 3 0 unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
956 0 3 if '(' eq substr($str, $MATCH->to, 1)
963 3 0 if 'False' eq substr($str, $MATCH->to, 5) and $$MATCH{'to'} = 5 + $MATCH->to and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { my($pos1) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '(' eq substr($str, $MATCH->to, 1); } } }; $$tmp{'bool'} = !$MATCH; $MATCH = $tmp; not !$MATCH }
983 0 0 if ($m2) { }
990 0 0 unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
992 0 0 if '(' eq substr($str, $MATCH->to, 1)
999 0 0 if 'and' eq substr($str, $MATCH->to, 3) and $$MATCH{'to'} = 3 + $MATCH->to and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { my($pos1) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '(' eq substr($str, $MATCH->to, 1); } } }; $$tmp{'bool'} = !$MATCH; $MATCH = $tmp; not !$MATCH }
1019 0 0 if ($m2) { }
1026 0 0 unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
1028 0 0 if '(' eq substr($str, $MATCH->to, 1)
1035 0 0 if 'not' eq substr($str, $MATCH->to, 3) and $$MATCH{'to'} = 3 + $MATCH->to and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { my($pos1) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '(' eq substr($str, $MATCH->to, 1); } } }; $$tmp{'bool'} = !$MATCH; $MATCH = $tmp; not !$MATCH }
1048 1 0 if ($m2) { }
1057 1 0 if ($m2) { }
1067 1 0 unless (do { my($pos1) = $MATCH->to; do { if ('-' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; if (exists $$MATCH{'Perlito::Grammar.ident'}) { push @{$$MATCH{'Perlito::Grammar.ident'};}, $m2; } else { $$MATCH{'Perlito::Grammar.ident'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, $m2; $List_a }; } ; 1; } else { 0; } ; } } })
1070 0 1 if ('-' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
1072 0 0 if ($m2) { }
1074 0 0 if (exists $$MATCH{'Perlito::Grammar.ident'}) { }
1098 1 0 if ($m2) { }
1106 1 0 if 'use' eq substr($str, $MATCH->to, 3) and $$MATCH{'to'} = 3 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->full_ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.full_ident'} = $m2; 1; } else { 0; } } and do { my($last_pos) = $MATCH->to; unless (do { my($pos1) = $MATCH->to; do { if ('-' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; if (exists $$MATCH{'Perlito::Grammar.ident'}) { push @{$$MATCH{'Perlito::Grammar.ident'};}, $m2; } else { $$MATCH{'Perlito::Grammar.ident'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, $m2; $List_a }; } ; 1; } else { 0; } ; } } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } }
1120 0 2902 if 'package' eq substr($str, $MATCH->to, 7)
1123 36 2866 if 'class' eq substr($str, $MATCH->to, 5)
1126 0 2866 if 'grammar' eq substr($str, $MATCH->to, 7)
1127 2866 0 unless (do { $$MATCH{'to'} = 7 + $MATCH->to if 'package' eq substr($str, $MATCH->to, 7) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 5 + $MATCH->to if 'class' eq substr($str, $MATCH->to, 5) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 7 + $MATCH->to if 'grammar' eq substr($str, $MATCH->to, 7) })
1129 0 2866 if 'role' eq substr($str, $MATCH->to, 4)
1133 36 0 if ($m2) { }
1142 36 0 if ($m2) { }
1150 36 0 if do { my($pos1) = $MATCH->to; unless (do { $$MATCH{'to'} = 7 + $MATCH->to if 'package' eq substr($str, $MATCH->to, 7) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 5 + $MATCH->to if 'class' eq substr($str, $MATCH->to, 5) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 7 + $MATCH->to if 'grammar' eq substr($str, $MATCH->to, 7) }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 4 + $MATCH->to if 'role' eq substr($str, $MATCH->to, 4); } } and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->grammar($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.grammar'} = $m2; 1; } else { 0; } }
1163 83 2783 if ($m2) { }
1173 83 0 if ($m2) { }
1182 83 0 if ($m2) { }
1192 83 0 if ($m2) { }
1201 83 0 if ($m2) { }
1209 83 0 if do { my($m2) = 'Perlito::Grammar'->declarator($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.declarator'} = $m2; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->opt_type($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.opt_type'} = $m2; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->opt_ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->var_ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.var_ident'} = $m2; 1; } else { 0; } }
1222 108 0 if ($m2) { }
1232 108 0 if ($m2) { }
1240 108 0 if ('.' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($m2) = $grammar->hyper_op($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'hyper_op'} = $m2; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.ident'} = $m2; 1; } else { 0; } })
1245 0 0 unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
1247 0 0 if ($m2) { }
1260 0 0 if ($m2) { }
1268 0 0 if ':' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } }
1284 31 0 if ($m2) { }
1292 31 0 if '(' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($m2) = $grammar->paren_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'paren_parse'} = $m2; 1; } else { 0; } } and (')' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
1310 77 31 unless (do { do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'methcall'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; push @{$List_a;}, ${$$MATCH{'list_parse'};}; push @{$List_a;}, ${$$MATCH{'hyper_op'};}; $List_a } } or 1 if ':' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'methcall'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; push @{$List_a;}, do { my $Hash_a = bless({}, 'HASH'); $$Hash_a{'end_block'} = undef(); $$Hash_a{'exp'} = ${$$MATCH{'paren_parse'};}; $$Hash_a{'terminated'} = 0; $Hash_a }; push @{$List_a;}, ${$$MATCH{'hyper_op'};}; $List_a } } or 1 if '(' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($m2) = $grammar->paren_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'paren_parse'} = $m2; 1; } else { 0; } } and (')' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) })
1312 0 77 unless do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'methcall_no_params'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; push @{$List_a;}, ${$$MATCH{'hyper_op'};}; $List_a } }
1329 2675 0 if ($m2) { }
1339 338 2337 if ($m2) { }
1347 338 2337 if (do { my($m2) = 'Perlito::Grammar'->optional_namespace_before_ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.optional_namespace_before_ident'} = $m2; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.ident'} = $m2; 1; } else { 0; } })
1352 294 44 if ($m2) { }
1361 294 0 if ($m2) { }
1369 294 0 if do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } }
1389 20 24 if '.' eq substr($str, $MATCH->to, 1)
1395 20 24 if do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { $$MATCH{'to'} = 1 + $MATCH->to if '.' eq substr($str, $MATCH->to, 1) } }; $$tmp{'bool'} = !!$MATCH; $MATCH = $tmp; not !$MATCH }
1398 8 12 if ($namespace)
1409 24 20 unless (do { do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'funcall'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.optional_namespace_before_ident'}; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; push @{$List_a;}, ${$$MATCH{'list_parse'};}; $List_a } } or 1 if do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { my($namespace) = '' . $$MATCH{'Perlito::Grammar.optional_namespace_before_ident'}; my($name) = '' . $$MATCH{'Perlito::Grammar.ident'}; if ($namespace) { $name = $namespace . '::' . $name; } ; $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, 'Proto'->new('name', $name); $List_a } } or 1 if do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { $$MATCH{'to'} = 1 + $MATCH->to if '.' eq substr($str, $MATCH->to, 1) } }; $$tmp{'bool'} = !!$MATCH; $MATCH = $tmp; not !$MATCH } })
1411 0 24 unless do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'funcall_no_params'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.optional_namespace_before_ident'}; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; $List_a } }
1428 9 2328 if ($m2) { }
1436 9 2328 if do { my($m2) = 'Perlito::Grammar'->val_num($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.val_num'} = $m2; 1; } else { 0; } }
1449 318 2010 if ($m2) { }
1457 318 2010 if do { my($m2) = 'Perlito::Grammar'->val_int($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.val_int'} = $m2; 1; } else { 0; } }
1470 434 1576 if ($m2) { }
1478 434 1576 if do { my($m2) = 'Perlito::Grammar'->val_buf($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.val_buf'} = $m2; 1; } else { 0; } }
1487 1576 434 unless (do { do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, '.( )'; push @{$List_a;}, ${$$MATCH{'paren_parse'};}; $List_a } } or 1 if '.(' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->paren_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'paren_parse'} = $m2; 1; } else { 0; } } and (')' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, '.[ ]'; push @{$List_a;}, ${$$MATCH{'square_parse'};}; $List_a } } or 1 if '.[' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->square_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'square_parse'} = $m2; 1; } else { 0; } } and (']' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'block'; push @{$List_a;}, ${$$MATCH{'curly_parse'};}; $List_a } } or 1 if '.{' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->curly_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'curly_parse'} = $m2; 1; } else { 0; } } and ('}' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, '( )'; push @{$List_a;}, ${$$MATCH{'paren_parse'};}; $List_a } } or 1 if '(' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($m2) = $grammar->paren_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'paren_parse'} = $m2; 1; } else { 0; } } and (')' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, '[ ]'; push @{$List_a;}, ${$$MATCH{'square_parse'};}; $List_a } } or 1 if '[' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($m2) = $grammar->square_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'square_parse'} = $m2; 1; } else { 0; } } and (']' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'block'; push @{$List_a;}, do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'Val::Buf'->new('buf', ${$$MATCH{'Perlito::Grammar.ident'};}); $List_a }; $List_a } } or 1 if do { my($pos1) = $MATCH->to; unless (do { $$MATCH{'to'} = 2 + $MATCH->to if '.<' eq substr($str, $MATCH->to, 2) }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '<' eq substr($str, $MATCH->to, 1); } } and do { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.ident'} = $m2; 1; } else { 0; } } and ('>' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) } or do { $$MATCH{'to'} = $pos1; do { my($block) = $${$$MATCH{'list_parse'};}{'end_block'}; if ($block->sig) { die 'Signature error in block'; } ; $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'block'; push @{$List_a;}, $block->stmts; push @{$List_a;}, $${$$MATCH{'list_parse'};}{'exp'}; $List_a } } or 1 if '->' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'block'; push @{$List_a;}, ${$$MATCH{'Perlito::Grammar.exp_stmts'};}; $List_a } } or 1 if '{' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($m2) = 'Perlito::Grammar'->exp_stmts($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.exp_stmts'} = $m2; 1; } else { 0; } } and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and ('}' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, ${$$MATCH{'Perlito::Grammar.method_def'};}; $List_a } } or 1 if 'method' eq substr($str, $MATCH->to, 6) and $$MATCH{'to'} = 6 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->method_def($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.method_def'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, ${$$MATCH{'Perlito::Grammar.sub_def'};}; $List_a } } or 1 if 'sub' eq substr($str, $MATCH->to, 3) and $$MATCH{'to'} = 3 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->sub_def($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.sub_def'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, ${$$MATCH{'Perlito::Grammar.token'};}; $List_a } } or 1 if 'token' eq substr($str, $MATCH->to, 5) and $$MATCH{'to'} = 5 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->token($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.token'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, 'Do'->new('block', ${$$MATCH{'statement_parse'};}); $List_a } } or 1 if 'do' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->statement_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'statement_parse'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'op'; push @{$List_a;}, '?? !!'; push @{$List_a;}, ${$$MATCH{'ternary_parse'};}; $List_a } } or 1 if '??' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->ternary_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'ternary_parse'} = $m2; 1; } else { 0; } } and ('!!' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to) } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, ${$$MATCH{'Perlito::Grammar.var_ident'};}; $List_a } } or 1 if do { my($m2) = 'Perlito::Grammar'->var_ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.var_ident'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, 'Lookup'->new(('obj', 'Var'->new(('sigil', '$'), ('twigil', ''), ('name', '/'))), ('index_exp', 'Val::Buf'->new('buf', '' . $$MATCH{'capture_name'}))); $List_a } } or 1 if '$<' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to and do { my($m2) = $grammar->capture_name($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'capture_name'} = $m2; 1; } else { 0; } } and ('>' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = ${$$MATCH{'Perlito::Precedence.op_parse'};} } or 1 if do { my($m2) = 'Perlito::Precedence'->op_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Precedence.op_parse'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, 'Val::Buf'->new('buf', '' . $$MATCH{'Perlito::Grammar.ident'}); $List_a } } or 1 if do { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.ident'} = $m2; 1; } else { 0; } } and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { '=>' eq substr($str, $MATCH->to, 2) and $$MATCH{'to'} = 2 + $MATCH->to if do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } } }; $$tmp{'bool'} = !!$MATCH; $MATCH = $tmp; not !$MATCH } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, 'Val::Bit'->new('bit', 1); $List_a } } or 1 if 'True' eq substr($str, $MATCH->to, 4) and $$MATCH{'to'} = 4 + $MATCH->to and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { my($pos1) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '(' eq substr($str, $MATCH->to, 1); } } }; $$tmp{'bool'} = !$MATCH; $MATCH = $tmp; not !$MATCH } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, 'Val::Bit'->new('bit', 0); $List_a } } or 1 if 'False' eq substr($str, $MATCH->to, 5) and $$MATCH{'to'} = 5 + $MATCH->to and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { my($pos1) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '(' eq substr($str, $MATCH->to, 1); } } }; $$tmp{'bool'} = !$MATCH; $MATCH = $tmp; not !$MATCH } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'op'; push @{$List_a;}, 'and'; $List_a } } or 1 if 'and' eq substr($str, $MATCH->to, 3) and $$MATCH{'to'} = 3 + $MATCH->to and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { my($pos1) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '(' eq substr($str, $MATCH->to, 1); } } }; $$tmp{'bool'} = !$MATCH; $MATCH = $tmp; not !$MATCH } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'op'; push @{$List_a;}, 'not'; $List_a } } or 1 if 'not' eq substr($str, $MATCH->to, 3) and $$MATCH{'to'} = 3 + $MATCH->to and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { my($pos1) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->word($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if '(' eq substr($str, $MATCH->to, 1); } } }; $$tmp{'bool'} = !$MATCH; $MATCH = $tmp; not !$MATCH } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, 'Use'->new('mod', ${$$MATCH{'Perlito::Grammar.full_ident'};}); $List_a } } or 1 if 'use' eq substr($str, $MATCH->to, 3) and $$MATCH{'to'} = 3 + $MATCH->to and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->full_ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.full_ident'} = $m2; 1; } else { 0; } } and do { my($last_pos) = $MATCH->to; unless (do { my($pos1) = $MATCH->to; do { if ('-' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; if (exists $$MATCH{'Perlito::Grammar.ident'}) { push @{$$MATCH{'Perlito::Grammar.ident'};}, $m2; } else { $$MATCH{'Perlito::Grammar.ident'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, $m2; $List_a }; } ; 1; } else { 0; } ; } } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, ${$$MATCH{'Perlito::Grammar.grammar'};}; $List_a } } or 1 if do { my($pos1) = $MATCH->to; unless (do { $$MATCH{'to'} = 7 + $MATCH->to if 'package' eq substr($str, $MATCH->to, 7) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 5 + $MATCH->to if 'class' eq substr($str, $MATCH->to, 5) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 7 + $MATCH->to if 'grammar' eq substr($str, $MATCH->to, 7) }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 4 + $MATCH->to if 'role' eq substr($str, $MATCH->to, 4); } } and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->grammar($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.grammar'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, 'Decl'->new(('decl', ${$$MATCH{'Perlito::Grammar.declarator'};}), ('type', ${$$MATCH{'Perlito::Grammar.opt_type'};}), ('var', ${$$MATCH{'Perlito::Grammar.var_ident'};})); $List_a } } or 1 if do { my($m2) = 'Perlito::Grammar'->declarator($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.declarator'} = $m2; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->opt_type($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.opt_type'} = $m2; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->opt_ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->var_ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.var_ident'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; if ('.' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($m2) = $grammar->hyper_op($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'hyper_op'} = $m2; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.ident'} = $m2; 1; } else { 0; } }) { my($pos1) = $MATCH->to; unless (do { do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'methcall'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; push @{$List_a;}, ${$$MATCH{'list_parse'};}; push @{$List_a;}, ${$$MATCH{'hyper_op'};}; $List_a } } or 1 if ':' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'methcall'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; push @{$List_a;}, do { my $Hash_a = bless({}, 'HASH'); $$Hash_a{'end_block'} = undef(); $$Hash_a{'exp'} = ${$$MATCH{'paren_parse'};}; $$Hash_a{'terminated'} = 0; $Hash_a }; push @{$List_a;}, ${$$MATCH{'hyper_op'};}; $List_a } } or 1 if '(' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to and do { my($m2) = $grammar->paren_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'paren_parse'} = $m2; 1; } else { 0; } } and (')' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) }) { $$MATCH{'to'} = $pos1; 1 unless do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'methcall_no_params'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; push @{$List_a;}, ${$$MATCH{'hyper_op'};}; $List_a } }; } ; } } or do { $$MATCH{'to'} = $pos1; if (do { my($m2) = 'Perlito::Grammar'->optional_namespace_before_ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.optional_namespace_before_ident'} = $m2; 1; } else { 0; } } and do { my($m2) = 'Perlito::Grammar'->ident($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.ident'} = $m2; 1; } else { 0; } }) { my($pos1) = $MATCH->to; unless (do { do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'funcall'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.optional_namespace_before_ident'}; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; push @{$List_a;}, ${$$MATCH{'list_parse'};}; $List_a } } or 1 if do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($m2) = $grammar->list_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'list_parse'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { my($namespace) = '' . $$MATCH{'Perlito::Grammar.optional_namespace_before_ident'}; my($name) = '' . $$MATCH{'Perlito::Grammar.ident'}; if ($namespace) { $name = $namespace . '::' . $name; } ; $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, 'Proto'->new('name', $name); $List_a } } or 1 if do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { $$MATCH{'to'} = 1 + $MATCH->to if '.' eq substr($str, $MATCH->to, 1) } }; $$tmp{'bool'} = !!$MATCH; $MATCH = $tmp; not !$MATCH } }) { $$MATCH{'to'} = $pos1; 1 unless do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'postfix_or_term'; push @{$List_a;}, 'funcall_no_params'; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.optional_namespace_before_ident'}; push @{$List_a;}, '' . $$MATCH{'Perlito::Grammar.ident'}; $List_a } }; } ; } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, ${$$MATCH{'Perlito::Grammar.val_num'};}; $List_a } } or 1 if do { my($m2) = 'Perlito::Grammar'->val_num($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.val_num'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, ${$$MATCH{'Perlito::Grammar.val_int'};}; $List_a } } or 1 if do { my($m2) = 'Perlito::Grammar'->val_int($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.val_int'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = do { my $List_a = bless([], 'ARRAY'); my $List_v = bless([], 'ARRAY'); push @{$List_a;}, 'term'; push @{$List_a;}, ${$$MATCH{'Perlito::Grammar.val_buf'};}; $List_a } } or 1 if do { my($m2) = 'Perlito::Grammar'->val_buf($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.val_buf'} = $m2; 1; } else { 0; } } })
1491 1545 31 if ($m2) { }
1498 1545 31 if do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }
1520 0 256 if '#' eq substr($str, $MATCH->to, 1)
1525 115 141 if ($m2) { }
1533 141 115 unless (do { $$MATCH{'to'} = 1 + $MATCH->to if '#' eq substr($str, $MATCH->to, 1) } or do { $$MATCH{'to'} = $pos1; do { my($m2) = 'Perlito::Grammar'->is_newline($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } })
1537 22 119 if ($m2) { }
1544 22 119 if (do { my($m2) = 'Perlito::Grammar'->space($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
1546 0 22 if ($m2) { }
1569 0 0 if ($m2) { }
1576 0 0 if do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } } and do { my($tmp) = $MATCH; $MATCH = 'Perlito::Match'->new(('str', $str), ('from', $tmp->to), ('to', $tmp->to), ('bool', 1)); $$MATCH{'bool'} = do { my($pos1) = $MATCH->to; do { my($pos1) = $MATCH->to; unless (do { $$MATCH{'to'} = 1 + $MATCH->to if ',' eq substr($str, $MATCH->to, 1) }) { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 1 + $MATCH->to if ':' eq substr($str, $MATCH->to, 1); } } }; $$tmp{'bool'} = !$MATCH; $MATCH = $tmp; not !$MATCH }
1584 0 0 if ',' eq substr($str, $MATCH->to, 1)
1585 0 0 unless (do { $$MATCH{'to'} = 1 + $MATCH->to if ',' eq substr($str, $MATCH->to, 1) })
1587 0 0 if ':' eq substr($str, $MATCH->to, 1)
1615 0 1125 if (scalar @{$lexer_stack;}) { }
1617 0 0 if ($is_first_token and $$v[0] eq 'op' and not Perlito::Precedence::is_fixity_type('prefix', $$v[1]))
1623 0 1125 unless ($m)
1633 1 321 if ($is_first_token and $$v[0] eq 'op' and not Perlito::Precedence::is_fixity_type('prefix', $$v[1]))
1636 806 319 if ($$v[0] ne 'end')
1640 3 73 if ($$v[0] eq 'postfix_or_term' and $$v[1] eq 'block' and $last_token_was_space)
1641 3 0 if ($self->has_newline_after($str, $last_pos)) { }
1652 0 0 if ($self->has_no_comma_or_colon_after($str, $last_pos))
1689 11 311 if (scalar @{$res;} == 0)
1699 3 308 if (scalar @{$res;} > 1)
1704 0 311 if (scalar @{$res;} > 0)
1725 0 1673 unless ($m)
1729 1373 300 if ($$v[0] ne 'end')
1737 20 280 unless (defined $res)
1800 57 3166 if (scalar @{$lexer_stack;}) { }
1805 31 3135 unless ($m)
1815 2268 867 if ($$v[0] ne 'end')
1819 43 2961 if ($$v[0] eq 'postfix_or_term' and $$v[1] eq 'block' or $$v[0] eq 'term' and Main::isa($$v[1], 'Sub') or $$v[0] eq 'term' and Main::isa($$v[1], 'Method') or $$v[0] eq 'term' and Main::isa($$v[1], 'Do') or $$v[0] eq 'term' and Main::isa($$v[1], 'CompUnit'))
1820 112 119 if ($self->has_newline_after($str, $last_pos))
1851 270 775 if (scalar @{$res;} == 0)
1855 90 685 if (scalar @{$res;} > 1)
1860 0 775 if (scalar @{$res;} > 0)
1862 0 0 unless (Main::isa($block, 'Lit::Block'))
1885 77 935 if ($m2) { }
1893 77 935 if do { my($m2) = 'Perlito::Grammar'->if($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.if'} = $m2; 1; } else { 0; } }
1900 2 933 if ($m2) { }
1908 2 933 if do { my($m2) = 'Perlito::Grammar'->unless($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.unless'} = $m2; 1; } else { 0; } }
1915 0 933 if ($m2) { }
1923 0 933 if do { my($m2) = 'Perlito::Grammar'->when($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.when'} = $m2; 1; } else { 0; } }
1930 4 929 if ($m2) { }
1938 4 929 if do { my($m2) = 'Perlito::Grammar'->for($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.for'} = $m2; 1; } else { 0; } }
1945 6 923 if ($m2) { }
1953 6 923 if do { my($m2) = 'Perlito::Grammar'->while($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.while'} = $m2; 1; } else { 0; } }
1956 923 6 unless (do { do { $$MATCH{'capture'} = ${$$MATCH{'Perlito::Grammar.if'};} } or 1 if do { my($m2) = 'Perlito::Grammar'->if($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.if'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = ${$$MATCH{'Perlito::Grammar.unless'};} } or 1 if do { my($m2) = 'Perlito::Grammar'->unless($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.unless'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = ${$$MATCH{'Perlito::Grammar.when'};} } or 1 if do { my($m2) = 'Perlito::Grammar'->when($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.when'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = ${$$MATCH{'Perlito::Grammar.for'};} } or 1 if do { my($m2) = 'Perlito::Grammar'->for($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.for'} = $m2; 1; } else { 0; } } } or do { $$MATCH{'to'} = $pos1; do { $$MATCH{'capture'} = ${$$MATCH{'Perlito::Grammar.while'};} } or 1 if do { my($m2) = 'Perlito::Grammar'->while($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.while'} = $m2; 1; } else { 0; } } })
1960 0 923 if ($m2) { }
1968 0 923 if do { my($m2) = 'Perlito::Grammar'->loop($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'Perlito::Grammar.loop'} = $m2; 1; } else { 0; } }
1984 14 590 if 'if' eq substr($str, $MATCH->to, 2)
1987 2 588 if 'unless' eq substr($str, $MATCH->to, 6)
1990 0 588 if 'when' eq substr($str, $MATCH->to, 4)
1993 1 587 if 'for' eq substr($str, $MATCH->to, 3)
1996 1 586 if 'while' eq substr($str, $MATCH->to, 5)
1997 586 1 unless (do { $$MATCH{'to'} = 2 + $MATCH->to if 'if' eq substr($str, $MATCH->to, 2) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 6 + $MATCH->to if 'unless' eq substr($str, $MATCH->to, 6) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 4 + $MATCH->to if 'when' eq substr($str, $MATCH->to, 4) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 3 + $MATCH->to if 'for' eq substr($str, $MATCH->to, 3) } or do { $$MATCH{'to'} = $pos1; $$MATCH{'to'} = 5 + $MATCH->to if 'while' eq substr($str, $MATCH->to, 5) })
1999 0 586 if 'loop' eq substr($str, $MATCH->to, 4)
2015 944 31 unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
2017 31 944 if ($m2) { }
2028 975 0 if (do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 })
2031 0 975 if (';' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to)
2033 0 0 unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
2035 0 0 if ($m2) { }
2047 975 0 unless (do { if (';' eq substr($str, $MATCH->to, 1) and $$MATCH{'to'} = 1 + $MATCH->to) { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1; } })
2051 705 270 if ($m2) { }
2061 254 451 unless (do { $$MATCH{'to'} = 1 + $MATCH->to if ';' eq substr($str, $MATCH->to, 1) })
2062 451 254 if ';' eq substr($str, $MATCH->to, 1)
2069 153 552 unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } })
2071 552 153 if ($m2) { }
2082 705 0 if do { my($m2) = $grammar->statement_parse($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; $$MATCH{'statement_parse'} = $m2; 1; } else { 0; } } and do { my($last_pos) = $MATCH->to; unless (do { $$MATCH{'to'} = 1 + $MATCH->to if ';' eq substr($str, $MATCH->to, 1) }) { $$MATCH{'to'} = $last_pos; } ; 1 } and do { my($last_pos) = $MATCH->to; unless (do { my($m2) = 'Perlito::Grammar'->ws($str, $MATCH->to); if ($m2) { $$MATCH{'to'} = $m2->to; 1; } else { 0; } }) { $$MATCH{'to'} = $last_pos; } ; 1 }
2104 89 923 if ($res)
2108 270 653 unless ($res)
2111 41 612 if (Main::isa($${$res;}{'exp'}, 'Lit::Block'))
2114 0 653 if ($${$res;}{'end_block'})
2117 49 604 if ($${$res;}{'terminated'})
2122 586 18 unless ($modifier)
2127 0 18 unless ($modifier_exp)
2130 0 18 if ($${$modifier_exp;}{'end_block'})
2134 14 4 if ($modifier eq 'if')
2146 2 2 if ($modifier eq 'unless')
2158 1 1 if ($modifier eq 'while')
2166 1 0 if ($modifier eq 'for')