| line |
true |
false |
branch |
|
43
|
5 |
6 |
if $to eq "MF::STRING"
|
|
77
|
35 |
1 |
if ($right->isa("MF::NAME"))
|
|
79
|
33 |
2 |
if ($op eq '.') { }
|
|
80
|
33 |
0 |
if (my $attr = $self->attribute($token))
|
|
81
|
33 |
0 |
ref $attr eq 'CODE' ? :
|
|
85
|
0 |
2 |
unless defined $context->formula($token)
|
|
94
|
1 |
0 |
if $op eq "~"
|
|
112
|
64 |
53 |
$value ? :
|
|
|
117 |
52 |
unless defined $token
|
|
118
|
6 |
0 |
if ($op eq "not")
|
|
128
|
19 |
7 |
$right->isa('MF::BOOLEAN') ? :
|
|
|
23 |
3 |
if (my $r = $right->isa('MF::BOOLEAN') ? $right : $right->cast('MF::BOOLEAN', $context)) { }
|
|
|
3 |
0 |
elsif ($op eq '->') { }
|
|
130
|
6 |
0 |
$op eq 'xor' ? :
|
|
|
7 |
6 |
$op eq 'or' ? :
|
|
|
10 |
13 |
$op eq 'and' ? :
|
|
136
|
23 |
0 |
if defined $v
|
|
139
|
0 |
3 |
unless $self->value
|
|
148
|
51 |
47 |
$_[1] ? :
|
|
163
|
3 |
188 |
if ref $token eq "SCALAR"
|
|
172
|
5 |
0 |
substr($token, 0, 1) eq q['] ? :
|
|
|
101 |
5 |
if (substr($token, 0, 1) eq '"') { }
|
|
180
|
11 |
3 |
ref $self eq __PACKAGE__ && $to eq 'MF::PATTERN' ? :
|
|
|
14 |
14 |
if (ref $self eq __PACKAGE__ and $to eq 'MF::REGEXP') { }
|
|
189
|
6 |
54 |
if ($op eq '~') { }
|
|
|
9 |
45 |
elsif ($op eq '=~') { }
|
|
|
4 |
41 |
elsif ($op eq '!~') { }
|
|
|
12 |
29 |
elsif ($op eq 'like' or $op eq 'unlike') { }
|
|
|
21 |
8 |
elsif ($op eq 'cmp') { }
|
|
190
|
5 |
1 |
$right->isa('MF::STRING') ? :
|
|
191
|
6 |
0 |
if $r
|
|
194
|
0 |
9 |
$right->isa('MF::REGEXP') ? :
|
|
|
9 |
0 |
if (my $r = $right->isa("MF::REGEXP") ? $right : $right->cast("MF::REGEXP", $context))
|
|
195
|
7 |
2 |
if (my(@captures) = $self->value =~ $r->regexp)
|
|
203
|
0 |
4 |
$right->isa('MF::REGEXP') ? :
|
|
204
|
4 |
0 |
if $r
|
|
208
|
2 |
10 |
$right->isa('MF::PATTERN') || $right->isa('MF::REGEXP') ? :
|
|
209
|
6 |
6 |
$op eq 'like' ? :
|
|
|
0 |
12 |
!$r ? :
|
|
213
|
12 |
0 |
if $r
|
|
216
|
21 |
0 |
$right->isa('MF::STRING') ? :
|
|
229
|
0 |
8 |
unless $string_attrs{$_[1]}
|
|
241
|
4 |
8 |
$_[0]->value == 0 ? :
|
|
|
1 |
3 |
$to eq 'MF::FLOAT' ? :
|
|
|
12 |
4 |
if ($to eq 'MF::BOOLEAN') { }
|
|
248
|
5 |
0 |
$op eq '-' ? :
|
|
|
4 |
5 |
if ($op eq '+') { }
|
|
257
|
3 |
56 |
if $op eq "and" or $op eq "or" or $op eq "xor"
|
|
260
|
1 |
55 |
if $right->isa("MF::TIMEZONE")
|
|
263
|
49 |
7 |
if ($right->isa("MF::INTEGER") or $right->isa("MF::FLOAT"))
|
|
264
|
2 |
25 |
$op eq '%' ? :
|
|
|
6 |
27 |
$op eq '*' ? :
|
|
|
4 |
33 |
$op eq '-' ? :
|
|
|
12 |
37 |
$op eq '+' ? :
|
|
270
|
24 |
25 |
if defined $v
|
|
272
|
24 |
1 |
if $op eq "<=>"
|
|
275
|
1 |
0 |
if $op eq "/"
|
|
279
|
2 |
5 |
if $op eq "*" and $right->isa("MF::DURATION")
|
|
297
|
0 |
126 |
unless my($v, $m) = $_[1] =~ /^ ( [0-9]+ (?: _[0-9][0-9][0-9] )* ) ($multipliers)? $/ux
|
|
300
|
3 |
123 |
$2 ? :
|
|
306
|
0 |
2 |
unless $int_attrs{$_[1]}
|
|
318
|
4 |
20 |
$t =~ /[e.]/u ? :
|
|
322
|
1 |
1 |
$to eq 'MF::INTEGER' ? :
|
|
328
|
5 |
0 |
$op eq '-' ? :
|
|
|
4 |
5 |
if ($op eq '+') { }
|
|
337
|
0 |
17 |
if $op eq "and" or $op eq "or" or $op eq "xor"
|
|
340
|
1 |
16 |
if $right->isa("MF::TIMEZONE")
|
|
343
|
17 |
0 |
if ($right->isa("MF::FLOAT") or $right->isa("MF::INTEGER"))
|
|
345
|
2 |
6 |
$op eq '/' ? :
|
|
|
2 |
8 |
$op eq '%' ? :
|
|
|
3 |
10 |
$op eq '*' ? :
|
|
|
2 |
13 |
$op eq '-' ? :
|
|
|
2 |
15 |
$op eq '+' ? :
|
|
352
|
11 |
6 |
if defined $v
|
|
354
|
6 |
0 |
if $op eq "<=>"
|
|
383
|
0 |
37 |
unless $token =~ /^
|
|
402
|
1 |
0 |
$to eq 'MF::DATE' ? :
|
|
|
1 |
1 |
if ($to eq 'MF::TIME') { }
|
|
411
|
3 |
18 |
if ($op eq "+" or $op eq "-")
|
|
413
|
2 |
1 |
if ($right->isa("MF::DURATION"))
|
|
414
|
1 |
1 |
$op eq '+' ? :
|
|
417
|
1 |
0 |
if ($op eq "-")
|
|
418
|
1 |
0 |
$right->isa('MF::DATETIME') ? :
|
|
423
|
8 |
10 |
if ($op eq "<=>")
|
|
424
|
5 |
3 |
if $right->isa("MF::DATETIME")
|
|
427
|
3 |
0 |
if ($right->isa("MF::DATE"))
|
|
430
|
0 |
3 |
$date =~ /\+/u ? :
|
|
431
|
1 |
2 |
if "DateTime"->compare($begin, $self->value) > 0
|
|
433
|
0 |
2 |
$date =~ /\+/u ? :
|
|
434
|
1 |
1 |
'DateTime'->compare($self->value, $end) > 0 ? :
|
|
451
|
0 |
10 |
unless $dt_attrs{$_[1]} or $MF::DATE::date_attrs{$_[1]}
|
|
472
|
0 |
11 |
unless $token =~ /^
|
|
486
|
2 |
1 |
if ($to eq "MF::INTEGER")
|
|
493
|
1 |
0 |
if ($to eq "MF::DATETIME")
|
|
495
|
1 |
0 |
$t =~ /\+/u ? :
|
|
506
|
1 |
11 |
if ($op eq "+" and $right->isa("MF::TIME"))
|
|
516
|
1 |
10 |
if ($op eq "-" and $right->isa("MF::DATE"))
|
|
520
|
2 |
8 |
if ($op eq "+" or $op eq "-")
|
|
521
|
2 |
0 |
$right->isa('MF::DURATION') ? :
|
|
522
|
0 |
2 |
if $r and $r->token =~ /T.*[1-9]/u
|
|
526
|
1 |
1 |
$op eq '+' ? :
|
|
530
|
4 |
4 |
if ($op eq "<=>")
|
|
531
|
4 |
0 |
$right->isa('MF::DATE') ? :
|
|
536
|
1 |
3 |
unless $ld ne $rd or ($ltz // "") eq ($rtz // "")
|
|
551
|
0 |
4 |
unless $date_attrs{$_[1]}
|
|
566
|
2 |
5 |
$ns ? :
|
|
572
|
0 |
23 |
unless $token =~ /^ ([01][0-9]|2[0-3]) \: ([0-5][0-9]) \: ([0-5][0-9]) (?:(\.[0-9]+))? $/ux
|
|
585
|
0 |
10 |
unless $time_attrs{$_[1]}
|
|
589
|
1 |
7 |
if ($ns < 0) { }
|
|
|
0 |
7 |
elsif ($ns > 1000000000) { }
|
|
602
|
8 |
5 |
if ($op eq "+" or $op eq "-")
|
|
607
|
3 |
5 |
$right->isa('MF::TIME') ? :
|
|
|
5 |
3 |
if (my $r = $right->isa("MF::TIME") ? $right : $right->cast("MF::TIME", $context))
|
|
611
|
2 |
3 |
$diff->{'nanosecond'} ? :
|
|
616
|
3 |
0 |
$right->isa('MF::DURATION') ? :
|
|
|
3 |
0 |
if (my $r = $right->isa("MF::DURATION") ? $right : $right->cast("MF::DURATION", $context))
|
|
621
|
2 |
1 |
$op eq '+' ? :
|
|
622
|
2 |
1 |
$op eq '+' ? :
|
|
642
|
2 |
2 |
if $count < 0
|
|
652
|
0 |
12 |
unless $token =~ /^ ([+-]) (0[0-9]|1[012]) ([0-5][0-9]) $/ux
|
|
655
|
3 |
9 |
$1 eq '-' ? :
|
|
660
|
5 |
1 |
if ($to->isa("MF::INTEGER") or $to->isa("MF::FLOAT"))
|
|
674
|
0 |
2 |
unless $tz_attrs{$_[1]}
|
|
678
|
1 |
0 |
$op eq '-' ? :
|
|
|
1 |
1 |
if ($op eq '+') { }
|
|
687
|
3 |
2 |
if ($op eq "+" or $op eq "-")
|
|
688
|
3 |
0 |
$right->isa('MF::DURATION') ? :
|
|
|
3 |
0 |
if (my $d = $right->isa("MF::DURATION") ? $right : $right->cast("MF::DURATION"))
|
|
689
|
2 |
1 |
$op eq '-' ? :
|
|
714
|
3 |
10 |
$_[1]->is_negative ? :
|
|
720
|
2 |
38 |
$negative ? :
|
|
725
|
1 |
0 |
$op eq '-' ? :
|
|
|
1 |
1 |
if ($op eq '+') { }
|
|
734
|
4 |
12 |
if ($op eq '+' or $op eq '-') { }
|
|
|
4 |
8 |
elsif ($op eq '*') { }
|
|
|
6 |
2 |
elsif ($op eq '<=>') { }
|
|
735
|
4 |
0 |
$right->isa('MF::DURATION') ? :
|
|
737
|
2 |
2 |
$op eq '+' ? :
|
|
|
0 |
4 |
!$r ? :
|
|
738
|
4 |
0 |
if $r
|
|
741
|
4 |
0 |
$right->isa('MF::INTEGER') ? :
|
|
742
|
4 |
0 |
if $r
|
|
745
|
6 |
0 |
$right->isa('MF::DURATION') ? :
|
|
746
|
6 |
0 |
if $r
|
|
763
|
0 |
2 |
unless $dur_attrs{$_[1]}
|
|
783
|
0 |
0 |
unless $name =~ qr/^$pattern$/ou
|
|
792
|
0 |
2 |
if ($type->isa("MF::FRAGMENT"))
|
|
793
|
0 |
0 |
$self->token eq '' ? :
|
|
794
|
0 |
0 |
if $frag
|
|
803
|
4 |
0 |
if $op eq "exists"
|
|
814
|
4 |
18 |
if ($op eq ".")
|
|
815
|
1 |
3 |
$name eq '' ? :
|
|
816
|
4 |
0 |
if $left
|
|
819
|
7 |
11 |
if ($op eq "#")
|
|
820
|
7 |
0 |
$name eq '' ? :
|
|
821
|
7 |
0 |
if $left
|
|
824
|
5 |
6 |
if ($op eq "//")
|
|
825
|
1 |
4 |
defined $context->formula($name) ? :
|
|
829
|
6 |
0 |
$left ? :
|
|
858
|
2 |
104 |
if (length $char == 2)
|
|
859
|
6 |
57 |
$in_range ? :
|
|
|
63 |
41 |
if (not $char =~ /^[\[\]*?{},!]$/u) { }
|
|
|
12 |
29 |
elsif ($char eq '*') { }
|
|
|
1 |
28 |
elsif ($char eq '?') { }
|
|
|
3 |
25 |
elsif ($char eq '[') { }
|
|
|
3 |
22 |
elsif ($char eq ']') { }
|
|
|
2 |
20 |
elsif ($char eq '!') { }
|
|
|
5 |
15 |
elsif ($char eq '{') { }
|
|
|
5 |
10 |
elsif ($char eq '}') { }
|
|
|
10 |
0 |
elsif ($char eq ',') { }
|
|
864
|
1 |
1 |
$in_range && $regexp[-1] eq '[' ? :
|
|
865
|
1 |
4 |
$in_range ? :
|
|
|
4 |
1 |
unless $in_range
|
|
866
|
1 |
4 |
$in_range ? :
|
|
|
4 |
1 |
unless $in_range
|
|
867
|
8 |
2 |
$in_alts ? :
|
|
891
|
2 |
15 |
if defined $self->[2]
|
|
912
|
7 |
8 |
if ($op eq "#" and $right->isa("MF::NAME"))
|
|
913
|
0 |
7 |
unless my $fragment = $self->context->fragment($name)
|
|
919
|
8 |
0 |
if ($op eq "." and $right->isa("MF::NAME"))
|
|
921
|
8 |
0 |
if $result
|