line |
true |
false |
branch |
67
|
0 |
1 |
if $XML::XPathEngine::DEBUG |
83
|
22 |
13 |
if ($results->isa('XML::XPathEngine::NodeSet')) { } |
96
|
0 |
0 |
if (grep {"$node" eq "$_";} @nodes) |
106
|
2 |
0 |
if ($results->isa('XML::XPathEngine::NodeSet')) { } |
107
|
2 |
0 |
wantarray ? : |
109
|
0 |
0 |
wantarray ? : |
124
|
0 |
0 |
if ($results->isa('XML::XPathEngine::NodeSet')) { } |
|
0 |
0 |
elsif ($results->isa('XML::XPathEngine::Boolean')) { } |
|
0 |
0 |
elsif ($results->isa('XML::XPathEngine::Node')) { } |
144
|
0 |
0 |
if ($results->isa('XML::XPathEngine::NodeSet')) { } |
|
0 |
0 |
elsif ($results->isa('XML::XPathEngine::Boolean')) { } |
|
0 |
0 |
elsif ($results->isa('XML::XPathEngine::Node')) { } |
162
|
18 |
13 |
if ($results->isa('XML::XPathEngine::NodeSet')) |
172
|
2 |
0 |
if ($results->isa('XML::XPathEngine::NodeSet')) |
182
|
0 |
0 |
unless defined $self |
184
|
0 |
0 |
scalar @nodeset ? : |
217
|
0 |
0 |
$$self{'uses_namespaces'} ? : |
|
0 |
0 |
$node ? : |
242
|
4 |
34 |
if ($XML::XPathEngine::CACHE{$context}) |
249
|
0 |
34 |
if ($$self{'_tokpos'} < scalar @$tokens) |
259
|
0 |
34 |
if $XML::XPathEngine::DEBUG |
271
|
0 |
34 |
if $XML::XPathEngine::DEBUG |
279
|
3 |
397 |
if ($expected eq 'RE' and $path =~ /\G\s*($XML::XPathEngine::REGEXP_RE $XML::XPathEngine::REGEXP_MOD_RE?)\s*/cgosx) { } |
|
363 |
34 |
elsif ($path =~ m{\G
\s* # ignore all whitespace
( # tokens
$XML::XPathEngine::LITERAL|
$XML::XPathEngine::NUMBER_RE| # digits
\.\.| # parent
\.| # current
($XML::XPathEngine::AXIS_NAME)?$XML::XPathEngine::NODE_TYPE| # tests
processing-instruction|
\@($XML::XPathEngine::NCWild|$XML::XPathEngine::QName|$XML::XPathEngine::QNWild)| # attrib
\$$XML::XPathEngine::QName| # variable reference
($XML::XPathEngine::AXIS_NAME)?($XML::XPathEngine::NCWild|$XML::XPathEngine::QName|$XML::XPathEngine::QNWild)| # NCName,NodeType,Axis::Test
\!=|<=|\-|>=|//|and|or|mod|div| # multi-char seps
=~|\!~| # regexp (not in the XPath spec)
[,\+=\|<>/\(\[\]\)]| # single char seps
(?
|
307
|
3 |
360 |
$token =~ /^[=!]~$/ ? : |
312
|
332 |
34 |
if (length $token) |
313
|
0 |
332 |
if $XML::XPathEngine::DEBUG |
319
|
0 |
34 |
if (pos $path < length $path) |
345
|
341 |
1501 |
unless $$self{'_tokpos'} < @$tokens |
351
|
269 |
1232 |
if ($$tokens[$$self{'_tokpos'}] =~ /^$match$/) { } |
357
|
0 |
1232 |
if ($fatal) { } |
369
|
0 |
88 |
if $XML::XPathEngine::DEBUG |
377
|
0 |
88 |
if $XML::XPathEngine::DEBUG |
397
|
0 |
89 |
if $XML::XPathEngine::DEBUG |
417
|
0 |
91 |
if $XML::XPathEngine::DEBUG |
439
|
0 |
94 |
if $XML::XPathEngine::DEBUG |
459
|
0 |
112 |
if $XML::XPathEngine::DEBUG |
479
|
0 |
113 |
if $XML::XPathEngine::DEBUG |
499
|
0 |
113 |
if $XML::XPathEngine::DEBUG |
519
|
0 |
113 |
if $XML::XPathEngine::DEBUG |
521
|
0 |
113 |
if (_match($self, $tokens, '-')) { } |
536
|
0 |
113 |
if $XML::XPathEngine::DEBUG |
556
|
0 |
113 |
if $XML::XPathEngine::DEBUG |
569
|
35 |
78 |
if ($test =~ m[^(//?|\.\.?)$]) { } |
|
18 |
60 |
elsif (_is_step($self, $tokens)) { } |
582
|
10 |
50 |
if (_match($self, $tokens, '//?')) |
585
|
3 |
7 |
if ($$self{'_curr_match'} eq '//') |
602
|
0 |
60 |
if $XML::XPathEngine::DEBUG |
617
|
0 |
60 |
if $XML::XPathEngine::DEBUG |
621
|
20 |
40 |
if (_match($self, $tokens, $XML::XPathEngine::LITERAL)) { } |
|
3 |
37 |
elsif (_match($self, $tokens, "$XML::XPathEngine::REGEXP_RE$XML::XPathEngine::REGEXP_MOD_RE?")) { } |
|
12 |
25 |
elsif (_match($self, $tokens, $XML::XPathEngine::NUMBER_RE)) { } |
|
3 |
22 |
elsif (_match($self, $tokens, '\\(')) { } |
|
0 |
22 |
elsif (_match($self, $tokens, "\\\$$XML::XPathEngine::QName")) { } |
|
22 |
0 |
elsif (_match($self, $tokens, $XML::XPathEngine::QName)) { } |
631
|
0 |
3 |
if ($mod) |
671
|
0 |
22 |
if $XML::XPathEngine::DEBUG |
675
|
0 |
22 |
if ($$tokens[$$self{'_tokpos'}] eq ')') |
690
|
0 |
53 |
if $XML::XPathEngine::DEBUG |
694
|
5 |
48 |
if (_match($self, $tokens, '/')) { } |
|
22 |
26 |
elsif (_match($self, $tokens, '//')) { } |
696
|
0 |
5 |
if $XML::XPathEngine::DEBUG |
698
|
5 |
0 |
if (_is_step($self, $tokens)) |
699
|
0 |
5 |
if $XML::XPathEngine::DEBUG |
707
|
16 |
6 |
if (not $optimised) { } |
726
|
0 |
29 |
if $XML::XPathEngine::DEBUG |
731
|
15 |
14 |
if ($$tokens[$tokpos + 1] and $$tokens[$tokpos + 1] eq '[') { } |
|
0 |
14 |
elsif ($$tokens[$tokpos] =~ /^\.\.?$/) { } |
740
|
0 |
14 |
if $XML::XPathEngine::DEBUG |
742
|
1 |
13 |
if ($$step{'axis'} ne 'child') |
758
|
0 |
63 |
if $XML::XPathEngine::DEBUG |
764
|
7 |
15 |
if ($$self{'_curr_match'} eq '//') |
766
|
0 |
7 |
if (not $optimised) { } |
775
|
7 |
15 |
if (@steps > 1 and $steps[-1]{'axis'} eq 'self' and $steps[-1]{'test'} == 9) |
788
|
0 |
99 |
if $XML::XPathEngine::DEBUG |
790
|
21 |
78 |
if (_match($self, $tokens, '\\.')) { } |
|
1 |
77 |
elsif (_match($self, $tokens, '\\.\\.')) { } |
802
|
0 |
77 |
if $XML::XPathEngine::DEBUG |
805
|
0 |
77 |
if ($token eq 'processing-instruction') { } |
|
28 |
49 |
elsif ($token =~ /^\@($XML::XPathEngine::NCWild|$XML::XPathEngine::QName|$XML::XPathEngine::QNWild)$/o) { } |
|
0 |
49 |
elsif ($token =~ /^($XML::XPathEngine::NCName):\*$/o) { } |
|
8 |
41 |
elsif ($token =~ /^$XML::XPathEngine::QNWild$/o) { } |
|
34 |
7 |
elsif ($token =~ /^$XML::XPathEngine::QName$/o) { } |
|
0 |
7 |
elsif ($token eq 'comment()') { } |
|
0 |
7 |
elsif ($token eq 'text()') { } |
|
0 |
7 |
elsif ($token eq 'node()') { } |
|
0 |
7 |
elsif ($token eq 'processing-instruction()') { } |
|
7 |
0 |
elsif ($token =~ /^$XML::XPathEngine::AXIS_NAME($XML::XPathEngine::NCWild|$XML::XPathEngine::QName|$XML::XPathEngine::QNWild|$XML::XPathEngine::NODE_TYPE)$/o) { } |
817
|
3 |
25 |
if ($token eq '@*') { } |
|
0 |
25 |
elsif ($token =~ /^\@($XML::XPathEngine::NCName):\*$/o) { } |
|
25 |
0 |
elsif ($token =~ /^\@($XML::XPathEngine::QName)$/o) { } |
878
|
0 |
7 |
if ($token eq 'processing-instruction') { } |
|
0 |
7 |
elsif ($token =~ /^($XML::XPathEngine::NCName):\*$/o) { } |
|
1 |
6 |
elsif ($token =~ /^$XML::XPathEngine::QNWild$/o) { } |
|
6 |
0 |
elsif ($token =~ /^$XML::XPathEngine::QName$/o) { } |
|
0 |
0 |
elsif ($token eq 'comment()') { } |
|
0 |
0 |
elsif ($token eq 'text()') { } |
|
0 |
0 |
elsif ($token eq 'node()') { } |
|
0 |
0 |
elsif ($token eq 'processing-instruction()') { } |
888
|
0 |
0 |
$axis eq 'attribute' ? : |
896
|
0 |
1 |
$axis eq 'attribute' ? : |
904
|
0 |
6 |
$axis eq 'attribute' ? : |
949
|
0 |
83 |
unless defined $token |
951
|
0 |
83 |
if $XML::XPathEngine::DEBUG |
955
|
23 |
60 |
if ($token eq 'processing-instruction' or $token =~ /^\@($XML::XPathEngine::NCWild|$XML::XPathEngine::QName|$XML::XPathEngine::QNWild)$/o or $token =~ /^($XML::XPathEngine::NCWild|$XML::XPathEngine::QName|$XML::XPathEngine::QNWild)$/o and ($$tokens[$$self{'_tokpos'} + 1] || '') ne '(' or $token =~ /^$XML::XPathEngine::NODE_TYPE$/o or $token =~ /^$XML::XPathEngine::AXIS_NAME($XML::XPathEngine::NCWild|$XML::XPathEngine::QName|$XML::XPathEngine::QNWild|$XML::XPathEngine::NODE_TYPE)$/o) { } |
964
|
0 |
60 |
if $XML::XPathEngine::DEBUG |