| line | % | coverage | branch |
| 24 | 50 | T | F | if $$self{'error'} |
| 29 | 50 | T | F | if $$self{'error'} |
| 33 | 50 | T | F | if $$self{'error'} |
| 48 | 100 | T | F | if ($$self{'input'} =~ /^(\(|\)|\[|\]|\.\.|\.|\@|,|::)/) |
| 59 | 100 | T | F | if ($$self{'input'} =~ /^(\*)/) |
| 66 | 50 | T | F | if ($$self{'input'} =~ /^($$self{'rx'}{'NCName'}):\*/) |
| 77 | 100 | T | F | if ($$self{'input'} =~ /^((($$self{'rx'}{'NCName'})\\x3a)?($$self{'rx'}{'NCName'}))/) |
| 79 | 50 | T | F | if defined $3 |
| 80 | 50 | T | F | if defined $3 |
| 91 | 50 | T | F | if ($$self{'input'} =~ /^(comment|text|processing-instruction|node)/) |
| 102 | 100 | T | F | if ($$self{'input'} =~ m[^(and|or|mod|div|//|/|\||\+|-|=|!=|<=|<|>=|>)]) |
| 121 | 100 | T | F | if ($$self{'input'} =~ /^(('[^']*')|("[^"]*"))/) |
| 135 | 50 | T | F | if ($$self{'input'} =~ /^($$self{'rx'}{'Number'})/) |
| 146 | 0 | T | F | if ($$self{'input'} =~ /^\$($$self{'rx'}{'QName'})/) |
| 163 | 50 | T | F | if defined $content |
| 190 | 100 | T | F | if defined $prev |
| 208 | 100 | T | F | if (defined $$token{'prev'}) |
| 211 | 100 | T | F | unless ($p->match('Symbol', '@') or $p->match('Symbol', '::') or $p->match('Symbol', '(') or $p->match('Symbol', '[') or $p->match('Symbol', ',') or $p->match('Operator')) |
| 218 | 100 | T | F | if ($$token{'type'} eq 'Star') { } |
| 222 | 100 | T | F | if ($$token{'type'} eq 'NCName') |
| 224 | 50 | T | F | if ($self->is_OperatorName($$token{'content'})) { } |
| 244 | 100 | T | F | if ($token->match('NCName')) |
| 246 | 100 | T | F | if (defined $$token{'next'}) |
| 248 | 100 | T | F | if ($$token{'next'}->match('Symbol', '(')) |
| 250 | 100 | T | F | if ($self->is_NodeType($$token{'content'})) { } |
| 267 | 100 | T | F | if ($token->match('NCName')) |
| 269 | 100 | T | F | if (defined $$token{'next'}) |
| 271 | 100 | T | F | if ($$token{'next'}->match('Symbol', '::')) |
| 273 | 50 | T | F | if ($self->is_AxisName($$token{'content'})) { } |
| 296 | 100 | T | F | if ($token->match('Star')) |
| 300 | 100 | T | F | if ($token->match('NCName')) |
| 301 | 50 | T | F | if (defined $$token{'next'} and $$token{'next'}->match('NameTestPostfix')) { } |
| 307 | 50 | T | F | if (defined $$token{'next'} and $$token{'next'}->match('QNameSep') and defined $$token{'next'}{'next'} and $$token{'next'}{'next'}->match('NCName')) { } |
| 342 | 50 | T | F | if ($token->match('NameTestBase')) |
| 350 | 50 | T | F | if ($token->match('QNamePre')) |
| 371 | 50 | T | F | if $content =~ /^(and|or|mod|div)$/ |
| 378 | 100 | T | F | if $content =~ /^(comment|text|processing-instruction|node)$/ |
| 385 | 50 | T | F | if $content =~ /^(ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|
following|following-sibling|namespace|parent|preceding|preceding-sibling|self)$/x |
| 402 | 0 | T | F | unless $$self{'type'} eq $type |
| 404 | 0 | T | F | if defined $content and $$self{'content'} ne $content |
| 413 | 0 | T | F | if $$self{'absolute'} |
| 414 | 0 | T | F | if defined $$self{'content'} |
| 415 | 0 | T | F | if defined $$self{'axis'} |