line |
true |
false |
branch |
30
|
5 |
6 |
if $to eq "MF::STRING"
|
67
|
33 |
1 |
if ($op eq "." and $right->isa("MF::NAME"))
|
68
|
33 |
0 |
if (my $attr = $self->attribute($right->token))
|
69
|
33 |
0 |
ref $attr eq 'CODE' ? :
|
74
|
1 |
0 |
if $op eq "~"
|
92
|
63 |
52 |
$value ? :
|
|
115 |
50 |
unless defined $token
|
98
|
6 |
0 |
if ($op eq "not")
|
108
|
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 '->') { }
|
110
|
6 |
0 |
$op eq 'xor' ? :
|
|
7 |
6 |
$op eq 'or' ? :
|
|
10 |
13 |
$op eq 'and' ? :
|
115
|
23 |
0 |
if defined $v
|
118
|
0 |
3 |
unless $self->value
|
127
|
51 |
47 |
$_[1] ? :
|
142
|
3 |
173 |
if ref $token eq "SCALAR"
|
151
|
5 |
0 |
substr($token, 0, 1) eq q['] ? :
|
|
101 |
5 |
substr($token, 0, 1) eq '"' ? :
|
159
|
11 |
3 |
ref $self eq 'MF::STRING' && $to eq 'MF::PATTERN' ? :
|
|
14 |
14 |
ref $self eq 'MF::STRING' && $to eq 'MF::REGEXP' ? :
|
168
|
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') { }
|
169
|
5 |
1 |
$right->isa('MF::STRING') ? :
|
170
|
6 |
0 |
if $r
|
173
|
0 |
9 |
$right->isa('MF::REGEXP') ? :
|
|
9 |
0 |
if (my $r = $right->isa("MF::REGEXP") ? $right : $right->cast("MF::REGEXP", $context))
|
174
|
7 |
2 |
if (my(@captures) = $self->value =~ $r->regexp)
|
182
|
0 |
4 |
$right->isa('MF::REGEXP') ? :
|
183
|
4 |
0 |
if $r
|
187
|
2 |
10 |
$right->isa('MF::PATTERN') || $right->isa('MF::REGEXP') ? :
|
188
|
6 |
6 |
$op eq 'like' ? :
|
|
0 |
12 |
!$r ? :
|
190
|
12 |
0 |
if $r
|
193
|
21 |
0 |
$right->isa('MF::STRING') ? :
|
206
|
0 |
8 |
unless $string_attrs{$_[1]}
|
218
|
4 |
8 |
$_[0]->value == 0 ? :
|
|
1 |
3 |
$to eq 'MF::FLOAT' ? :
|
|
12 |
4 |
$to eq 'MF::BOOLEAN' ? :
|
225
|
5 |
0 |
$op eq '-' ? :
|
|
4 |
5 |
$op eq '+' ? :
|
234
|
3 |
52 |
if $op eq "and" or $op eq "or" or $op eq "xor"
|
237
|
1 |
51 |
if $right->isa("MF::TIMEZONE")
|
240
|
47 |
5 |
if ($right->isa("MF::INTEGER") or $right->isa("MF::FLOAT"))
|
241
|
2 |
25 |
$op eq '%' ? :
|
|
4 |
27 |
$op eq '*' ? :
|
|
4 |
31 |
$op eq '-' ? :
|
|
12 |
35 |
$op eq '+' ? :
|
246
|
22 |
25 |
if defined $v
|
248
|
24 |
1 |
if $op eq "<=>"
|
251
|
1 |
0 |
if $op eq "/"
|
255
|
2 |
3 |
if $op eq "*" and $right->isa("MF::DURATION")
|
273
|
0 |
123 |
unless my($v, $m) = $_[1] =~ /^ ( [0-9]+ (?: _[0-9][0-9][0-9] )* ) ($multipliers)? $/ux
|
276
|
3 |
120 |
$2 ? :
|
282
|
0 |
2 |
unless $int_attrs{$_[1]}
|
294
|
4 |
20 |
$t =~ /[e.]/u ? :
|
298
|
1 |
1 |
$to eq 'MF::INTEGER' ? :
|
304
|
5 |
0 |
$op eq '-' ? :
|
|
4 |
5 |
$op eq '+' ? :
|
313
|
0 |
17 |
if $op eq "and" or $op eq "or" or $op eq "xor"
|
316
|
1 |
16 |
if $right->isa("MF::TIMEZONE")
|
319
|
17 |
0 |
if ($right->isa("MF::FLOAT") or $right->isa("MF::INTEGER"))
|
321
|
2 |
6 |
$op eq '/' ? :
|
|
2 |
8 |
$op eq '%' ? :
|
|
3 |
10 |
$op eq '*' ? :
|
|
2 |
13 |
$op eq '-' ? :
|
|
2 |
15 |
$op eq '+' ? :
|
327
|
11 |
6 |
if defined $v
|
329
|
6 |
0 |
if $op eq "<=>"
|
358
|
0 |
37 |
unless $token =~ /^
|
378
|
1 |
0 |
$to eq 'MF::DATE' ? :
|
|
1 |
1 |
$to eq 'MF::TIME' ? :
|
387
|
3 |
18 |
if ($op eq "+" or $op eq "-")
|
389
|
2 |
1 |
if ($right->isa("MF::DURATION"))
|
390
|
1 |
1 |
$op eq '+' ? :
|
393
|
1 |
0 |
if ($op eq "-")
|
394
|
1 |
0 |
$right->isa('MF::DATETIME') ? :
|
399
|
8 |
10 |
if ($op eq "<=>")
|
400
|
5 |
3 |
if $right->isa("MF::DATETIME")
|
403
|
3 |
0 |
if ($right->isa("MF::DATE"))
|
406
|
0 |
3 |
$date =~ /\+/u ? :
|
407
|
1 |
2 |
if "DateTime"->compare($begin, $self->value) > 0
|
409
|
0 |
2 |
$date =~ /\+/u ? :
|
410
|
1 |
1 |
'DateTime'->compare($self->value, $end) > 0 ? :
|
427
|
0 |
10 |
unless $dt_attrs{$_[1]} or $MF::DATE::date_attrs{$_[1]}
|
448
|
0 |
11 |
unless $token =~ /^
|
462
|
2 |
1 |
if ($to eq "MF::INTEGER")
|
469
|
1 |
0 |
if ($to eq "MF::DATETIME")
|
471
|
1 |
0 |
$t =~ /\+/u ? :
|
482
|
1 |
11 |
if ($op eq "+" and $right->isa("MF::TIME"))
|
492
|
1 |
10 |
if ($op eq "-" and $right->isa("MF::DATE"))
|
496
|
2 |
8 |
if ($op eq "+" or $op eq "-")
|
497
|
2 |
0 |
$right->isa('MF::DURATION') ? :
|
498
|
0 |
2 |
if $r and $r->token =~ /T.*[1-9]/u
|
503
|
1 |
1 |
$op eq '+' ? :
|
507
|
4 |
4 |
if ($op eq "<=>")
|
508
|
4 |
0 |
$right->isa('MF::DATE') ? :
|
513
|
1 |
3 |
unless $ld ne $rd or ($ltz // "") eq ($rtz // "")
|
529
|
0 |
4 |
unless $date_attrs{$_[1]}
|
544
|
2 |
5 |
$ns ? :
|
550
|
0 |
23 |
unless $token =~ /^ ([01][0-9]|2[0-3]) \: ([0-5][0-9]) \: ([0-5][0-9]) (?:(\.[0-9]+))? $/ux
|
563
|
0 |
10 |
unless $time_attrs{$_[1]}
|
567
|
1 |
7 |
if ($ns < 0) { }
|
|
0 |
7 |
elsif ($ns > 1000000000) { }
|
580
|
8 |
5 |
if ($op eq "+" or $op eq "-")
|
585
|
3 |
5 |
$right->isa('MF::TIME') ? :
|
|
5 |
3 |
if (my $r = $right->isa("MF::TIME") ? $right : $right->cast("MF::TIME", $context))
|
589
|
2 |
3 |
$diff->{'nanosecond'} ? :
|
594
|
3 |
0 |
$right->isa('MF::DURATION') ? :
|
|
3 |
0 |
if (my $r = $right->isa("MF::DURATION") ? $right : $right->cast("MF::DURATION", $context))
|
599
|
2 |
1 |
$op eq '+' ? :
|
600
|
2 |
1 |
$op eq '+' ? :
|
620
|
2 |
2 |
if $count < 0
|
630
|
0 |
12 |
unless $token =~ /^ ([+-]) (0[0-9]|1[012]) ([0-5][0-9]) $/ux
|
633
|
3 |
9 |
$1 eq '-' ? :
|
638
|
5 |
1 |
if ($to->isa("MF::INTEGER") or $to->isa("MF::FLOAT"))
|
652
|
0 |
2 |
unless $tz_attrs{$_[1]}
|
656
|
1 |
0 |
$op eq '-' ? :
|
|
1 |
1 |
$op eq '+' ? :
|
665
|
3 |
2 |
if ($op eq "+" or $op eq "-")
|
666
|
3 |
0 |
$right->isa('MF::DURATION') ? :
|
|
3 |
0 |
if (my $d = $right->isa("MF::DURATION") ? $right : $right->cast("MF::DURATION"))
|
667
|
2 |
1 |
$op eq '-' ? :
|
692
|
3 |
10 |
$_[1]->is_negative ? :
|
698
|
2 |
38 |
$negative ? :
|
703
|
1 |
0 |
$op eq '-' ? :
|
|
1 |
1 |
$op eq '+' ? :
|
712
|
4 |
12 |
if ($op eq '+' or $op eq '-') { }
|
|
4 |
8 |
elsif ($op eq '*') { }
|
|
6 |
2 |
elsif ($op eq '<=>') { }
|
713
|
4 |
0 |
$right->isa('MF::DURATION') ? :
|
715
|
2 |
2 |
$op eq '+' ? :
|
|
0 |
4 |
!$r ? :
|
716
|
4 |
0 |
if $r
|
719
|
4 |
0 |
$right->isa('MF::INTEGER') ? :
|
720
|
4 |
0 |
if $r
|
723
|
6 |
0 |
$right->isa('MF::DURATION') ? :
|
724
|
6 |
0 |
if $r
|
741
|
0 |
2 |
unless $dur_attrs{$_[1]}
|
760
|
0 |
0 |
unless $name =~ qr/^$pattern$/ou
|
770
|
0 |
2 |
if ($type->isa("MF::FRAGMENT"))
|
771
|
0 |
0 |
$self->token eq '' ? :
|
772
|
0 |
0 |
if $frag
|
781
|
4 |
0 |
if $op eq "exists"
|
792
|
4 |
17 |
if ($op eq ".")
|
793
|
1 |
3 |
$name eq '' ? :
|
794
|
4 |
0 |
if $left
|
797
|
7 |
10 |
if ($op eq "#")
|
798
|
7 |
0 |
$name eq '' ? :
|
799
|
7 |
0 |
if $left
|
802
|
5 |
5 |
if ($op eq "//")
|
803
|
1 |
4 |
defined $context->formula($name) ? :
|
807
|
5 |
0 |
$left ? :
|
835
|
2 |
104 |
if (length $char == 2)
|
836
|
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 ',') { }
|
841
|
1 |
1 |
$in_range && $regexp[-1] eq '[' ? :
|
842
|
1 |
4 |
$in_range ? :
|
|
4 |
1 |
unless $in_range
|
843
|
1 |
4 |
$in_range ? :
|
|
4 |
1 |
unless $in_range
|
844
|
8 |
2 |
$in_alts ? :
|
868
|
2 |
15 |
if defined $self->[2]
|
889
|
7 |
8 |
if ($op eq "#" and $right->isa("MF::NAME"))
|
890
|
0 |
7 |
unless my $fragment = $self->context->fragment($name)
|
897
|
8 |
0 |
if ($op eq "." and $right->isa("MF::NAME"))
|
899
|
8 |
0 |
if $result
|