Branch Coverage

blib/lib/AtteanX/Parser/SPARQL.pm
Criterion Covered Total %
branch 519 904 57.4


line true false branch
124 1 52 if (my $handler = delete $args{'handler'})
148 9 19 ref $self ? :
162 0 14 ref $self ? :
179 0 2 unless ref $q
181 0 2 unless ref $a
196 0 42 unless ref $q
198 0 42 unless ref $a
223 13 2 if ($self->_Verb_test) { }
229 0 15 if ($commas)
234 0 15 if ($self->_test_token(8))
246 33 14 unless ($self->update)
248 0 33 unless (defined $t)
259 1 46 if ($self->baseURI)
280 28 21 if ($self->_optional_token(42, 'SELECT')) { }
3 18 elsif ($self->_optional_token(42, 'CONSTRUCT')) { }
1 17 elsif ($self->_optional_token(42, 'DESCRIBE')) { }
4 13 elsif ($self->_optional_token(42, 'ASK')) { }
0 13 elsif ($self->_test_token(42, 'CREATE')) { }
0 13 elsif ($self->_test_token(42, 'DROP')) { }
0 13 elsif ($self->_test_token(42, 'LOAD')) { }
0 13 elsif ($self->_test_token(42, 'CLEAR')) { }
9 4 elsif ($self->_test_token(42, qr/^(WITH|INSERT|DELETE)/u)) { }
0 4 elsif ($self->_test_token(42, 'COPY')) { }
0 4 elsif ($self->_test_token(42, 'MOVE')) { }
3 1 elsif ($self->_test_token(42, 'ADD')) { }
0 1 elsif ($self->_test_token(24)) { }
293 0 0 unless ($self->update)
299 0 0 unless ($self->update)
305 0 0 unless ($self->update)
311 0 0 unless ($self->update)
317 0 9 unless ($self->update)
322 0 9 if ($self->_optional_token(42, "WITH"))
327 3 6 if ($self->_optional_token(42, 'INSERT')) { }
6 0 elsif ($self->_optional_token(42, 'DELETE')) { }
328 1 2 if ($self->_optional_token(42, 'DATA')) { }
329 0 1 unless ($self->update)
337 1 5 if ($self->_optional_token(42, 'DATA')) { }
338 0 1 unless ($self->update)
357 0 0 if $self->_Query_test
360 0 1 if ($self->update and not $self->_peek_token)
368 35 11 if $read_query
369 2 9 if ($self->_optional_token(24))
370 2 0 if ($self->_Query_test)
379 0 44 if ($t)
384 2 42 if ($count == 0 or $count > 1)
390 0 0 if ($seen{$b->value}++)
403 4 4 if ($group eq 'NAMED') { }
412 9 35 if ($update) { }
432 0 47 if ($self->_optional_token(42, "BASE"))
444 0 15 if (scalar @args > 1)
450 0 15 if (@base)
459 0 47 if defined $base
497 0 2 if ($graph)
505 0 0 if ($self->_optional_token(42, "NAMED"))
510 0 0 if ($named) { }
518 0 1 if ($graph) { }
543 0 1 if ($t->has_blanks) { }
546 0 0 if ($term->does('Attean::API::Blank')) { }
547 0 0 if (my $b = $fresh_blank_map{$term->value}) { }
574 0 5 if ($self->_optional_token(42, 'WHERE')) { }
575 0 0 if ($graph)
585 0 0 if (scalar @blanks > 0)
589 0 0 if ($s->does('Attean::API::QuadPattern')) { }
614 0 5 if ($self->_optional_token(42, "INSERT"))
621 0 5 if ($graph)
622 0 0 $_->does('Attean::API::QuadPattern') ? :
623 0 0 $_->does('Attean::API::QuadPattern') ? :
629 3 6 if ($self->_optional_token(42, "NAMED"))
634 3 6 if ($named) { }
643 0 5 if ($graph) { }
657 0 5 if (scalar @insert_triples)
660 5 0 if (scalar @delete_triples)
663 0 5 if (scalar @blanks > 0)
675 9 9 if $self->_TriplesBlock_test
676 0 9 if $self->_test_token(42, "GRAPH")
696 9 0 if ($self->_TriplesBlock_test) { }
702 0 9 if ($graph)
726 0 0 $self->_optional_token(42, 'SILENT') ? :
729 0 0 if ($self->_optional_token(42, 'INTO')) { }
745 0 0 $self->_optional_token(42, 'SILENT') ? :
757 0 0 $self->_optional_token(42, 'SILENT') ? :
758 0 0 if ($self->_optional_token(42, 'GRAPH')) { }
0 0 elsif ($self->_optional_token(42, 'DEFAULT')) { }
0 0 elsif ($self->_optional_token(42, 'NAMED')) { }
0 0 elsif ($self->_optional_token(42, 'ALL')) { }
779 0 0 $self->_optional_token(42, 'SILENT') ? :
780 0 0 if ($self->_optional_token(42, 'GRAPH')) { }
0 0 elsif ($self->_optional_token(42, 'DEFAULT')) { }
0 0 elsif ($self->_optional_token(42, 'NAMED')) { }
0 0 elsif ($self->_optional_token(42, 'ALL')) { }
800 3 3 if ($self->_optional_token(42, 'DEFAULT')) { }
814 0 3 $self->_optional_token(42, 'SILENT') ? :
817 0 3 if ($op eq 'COPY') { }
0 3 elsif ($op eq 'MOVE') { }
823 3 0 if (my $from = $self->__graph)
827 0 3 if (my $to = $self->__graph)
838 0 28 if ($self->_optional_token(42, qr/^(DISTINCT)/u)) { }
1 27 elsif ($self->_optional_token(42, qr/^(REDUCED)/u)) { }
852 1 27 if ($self->_optional_token(42, "VALUES"))
857 0 1 if ($self->_optional_token(46)) { }
860 1 0 if ($self->_optional_token(17))
867 1 0 if ($parens)
873 0 1 if (not $parens and $count == 0) { }
0 2 elsif (not $parens and $count > 1) { }
881 0 1 if ($self->_optional_token(46)) { }
884 1 0 if (not $short or $short and $self->_test_token(17)) { }
901 0 1 unless $bindings->{'terms'}
906 2 0 if (&blessed($r->[$i]))
930 25 7 if ($self->_test_token(53)) { }
938 1 6 if (scalar @s > 1) { }
952 7 0 if ($v->does("Attean::API::Variable"))
954 0 7 if ($seen{$name}++)
961 0 29 if ($count == 0)
984 1 10 if $self->_test_token(17)
991 1 6 if ($self->_test_token(17)) { }
1005 3 0 if ($self->_test_token(15))
1010 0 3 if ($shortcut) { }
1020 0 3 if (&blessed($triples) and $triples->isa("Attean::Algebra::BGP"))
1042 0 1 if ($self->_optional_token(53)) { }
1055 1 0 if ($self->_WhereClause_test) { }
1066 0 1 $star ? :
1098 4 4 if ($self->_test_token(42, 'NAMED')) { }
1132 1 0 if $self->_test_token(42, "WHERE")
1133 0 0 if $self->_test_token(15)
1170 0 0 if ($self->_TriplesBlock_test)
1196 0 2 unless ($self->_BindingValue_test)
1209 2 4 if $self->_IRIref_test
1210 0 4 if $self->_test_token(42, "UNDEF")
1211 3 1 if $self->_test_literal_token
1212 0 1 if $self->_IRIref_test
1213 0 1 if $self->_test_token(3)
1214 0 1 if $self->_test_token(46)
1215 0 1 if $self->_test_token(32)
1221 0 5 if ($self->_optional_token(42, 'UNDEF')) { }
0 5 elsif ($self->_test_token(32)) { }
1233 0 2 if $self->_BuiltInCall_test
1234 0 2 if $self->_IRIref_test
1235 0 2 if $self->_test_token(17)
1236 0 2 if $self->_test_token(54)
1242 0 2 if ($self->_optional_token(17)) { }
0 2 elsif ($self->_IRIref_test) { }
0 2 elsif ($self->_BuiltInCall_test) { }
1245 0 0 if ($self->_optional_token(42, 'AS')) { }
1273 2 31 if ($self->_test_token(42, "GROUP"))
1277 1 32 if ($self->_test_token(42, "RANK"))
1281 1 32 if ($self->_test_token(42, "HAVING"))
1285 1 32 if ($self->_OrderClause_test)
1289 2 31 if ($self->_LimitOffsetClauses_test)
1300 0 2 if ($self->{'build'}{'star'})
1318 2 0 if ($var->does("Attean::API::Variable"))
1359 1 0 $dir eq 'ASC' ? :
1387 1 32 if $self->_test_token(42, "LIMIT")
1388 1 31 if $self->_test_token(42, "OFFSET")
1394 1 1 if ($self->_LimitClause_test) { }
1396 1 0 if ($self->_OffsetClause_test)
1401 0 1 if ($self->_LimitClause_test)
1410 1 32 if $self->_test_token(42, "ORDER")
1433 0 2 if $self->_test_token(42, "ASC")
1434 0 2 if $self->_test_token(42, "DESC")
1435 0 2 if $self->_test_token(54)
1436 0 2 if $self->_Constraint_test
1443 1 1 if (my $t = $self->_optional_token(42, qr/^(ASC|DESC)/u)) { }
1 0 elsif ($self->_test_token(54)) { }
1490 1 53 if ($self->_SubSelect_test) { }
1505 41 12 if ($self->_TriplesBlock_test)
1513 13 4 if ($self->_GraphPatternNotTriples_test) { }
4 0 elsif ($self->_test_token(42, 'FILTER')) { }
1525 0 17 if ($need_dot or $self->_test_token(8))
1527 0 0 if ($got_pattern) { }
1535 1 16 if ($self->_TriplesBlock_test)
1537 0 1 if (&blessed($peek) and $peek->isa('Attean::Algebra::BGP')) { }
1541 0 0 if ($rhs->isa('Attean::Algebra::BGP')) { }
1554 0 17 if &refaddr($t) == &refaddr($cur)
1562 4 49 if (@filters)
1573 1 12 unless $data
1575 2 10 if ($class =~ /^Attean::Algebra::(LeftJoin|Minus)$/u) { }
0 10 elsif ($class eq 'Attean::Algebra::Table') { }
2 8 elsif ($class eq 'Attean::Algebra::Extend') { }
2 6 elsif ($class eq 'Attean::Algebra::Service') { }
6 0 elsif ($class =~ /Attean::Algebra::(Union|Graph|Join)$/u) { }
1581 0 2 unless ($ggp)
1596 0 2 unless ($ggp)
1601 0 2 if (exists $in_scope{$var->value})
1608 0 2 if ($endpoint->does('Attean::API::Variable')) { }
1640 0 1 if ($self->{'baseURI'})
1645 0 1 if (my $t = $self->_optional_token(42, qr/^(DISTINCT|REDUCED)/u))
1656 0 1 if ($self->{'build'}{'options'}{'orderby'})
1671 0 1 if ($self->_optional_token(42, "VALUES"))
1674 0 0 if ($self->_optional_token(17))
1681 0 0 if ($parens)
1685 0 0 if (not $parens and $count == 0) { }
0 0 elsif (not $parens and $count > 1) { }
1693 0 0 if (not $short or $short and $self->_test_token(17)) { }
1715 0 0 if (&blessed($r->[$i]))
1744 50 59 if $self->_test_token(54)
1745 0 59 if $self->_test_token(46)
1746 0 59 if $self->_test_token(37)
1747 0 59 if $self->_test_token(3)
1748 1 58 if $self->_test_token(17)
1749 0 58 if $self->_test_token(16)
1750 2 56 if $self->_test_token(32)
1751 10 46 if $self->_IRIref_test
1752 0 46 if $self->_test_literal_token
1758 10 74 if $self->_test_token(25)
1759 0 74 if $self->_test_token(27)
1760 1 73 if $self->_test_token(26)
1761 1 72 if $self->_test_token(28)
1762 0 72 if $self->_test_token(7)
1763 0 72 if $self->_test_token(9)
1764 0 72 if $self->_test_token(12)
1765 0 72 if $self->_test_token(4)
1789 0 9 if ($got_dot)
1794 0 9 if ($self->_TriplesBlock_test)
1804 3 14 if $self->_test_token(15)
1806 0 14 unless $t
1807 0 14 unless $t->type == 42
1813 0 13 if ($self->_test_token(42, 'VALUES')) { }
2 11 elsif ($self->_test_token(42, 'SERVICE')) { }
1 10 elsif ($self->_test_token(42, 'MINUS')) { }
2 8 elsif ($self->_test_token(42, 'BIND')) { }
1 7 elsif ($self->_test_token(42, 'HINT')) { }
1 6 elsif ($self->_test_token(42, 'OPTIONAL')) { }
3 3 elsif ($self->_test_token(15)) { }
1838 0 0 if ($self->_optional_token(17))
1845 0 0 if ($parens)
1850 0 0 if (not $parens and $count == 0) { }
0 0 elsif (not $parens and $count > 1) { }
1859 0 0 if (not $short or $short and $self->_test_token(17)) { }
1880 0 0 $_->does('Attean::API::TriplePattern') ? :
1920 0 2 $self->_optional_token(42, 'SILENT') ? :
1922 0 2 if ($self->_test_token(54)) { }
1931 0 2 $silent ? :
1944 0 4 if (@filters)
1950 0 0 unless ($ggp)
1985 0 3 if ($self->{'__data_pattern'})
1986 0 0 if ($self->{'__graph_nesting_level'}++)
1994 2 1 if ($graph->does('Attean::API::IRI')) { }
2000 0 3 if ($self->{'__data_pattern'})
2020 1 2 if ($self->_test_token(42, 'UNION')) { }
2046 0 2 if $self->_test_token(17)
2047 0 2 if $self->_BuiltInCall_test
2048 0 2 if $self->_IRIref_test
2054 4 1 if ($self->_test_token(17)) { }
0 1 elsif ($self->_BuiltInCall_test) { }
2073 0 1 if (my $func = "Attean"->get_global_aggregate($iri))
2079 0 1 if ($iri->value =~ m[^http://www[.]w3[.]org/2001/XMLSchema#(?:integer|decimal|float|double|boolean|string|dateTime)$]u) { }
2092 0 1 if $self->_test_token(46)
2098 0 2 if ($self->_optional_token(46)) { }
2103 2 0 unless ($self->_test_token(23))
2122 3 0 if ($self->_ConstructTriples_test)
2141 0 0 if ($self->_ConstructTriples_test)
2151 1 2 if ($self->_TriplesNode_test) { }
2178 0 51 if ($self->_TriplesNode_test) { }
2208 0 0 if ($self->_Verb_test)
2222 0 1 if ($self->_Verb_test)
2230 25 28 if ($self->_VerbPath_test) { }
2240 9 0 if ($self->_VerbPath_test or $self->_test_token(54))
2241 9 0 if ($self->_VerbPath_test) { }
2258 0 0 if ($self->_Verb_test)
2282 2 62 if ($self->_optional_token(33))
2297 2 14 if $self->_test_token(1)
2298 1 13 if $self->_test_token(54)
2299 10 3 if $self->_IRIref_test
2305 6 13 if ($self->_optional_token(1)) { }
2327 36 35 if $self->_IRIref_test
2328 0 35 if $self->_test_token(41)
2329 0 35 if $self->_test_token(48)
2330 0 35 if $self->_test_token(38)
2331 0 35 if $self->_test_token(17)
2332 7 28 if $self->_test_token(1)
2369 1 0 if ($self->_optional_token(52)) { }
2387 1 34 if ($self->_PathMod_test)
2391 1 0 if (defined $mod) { }
2405 0 35 if ($self->_optional_token(41)) { }
2417 1 34 if $self->_test_token(53)
2418 0 34 if $self->_test_token(51)
2419 0 34 if $self->_test_token(50)
2420 0 34 if $self->_test_token(15)
2426 1 0 if ($self->_test_token(53) or $self->_test_token(51) or $self->_test_token(50))
2429 1 0 if ($t->type == 53) { }
0 0 elsif ($t->type == 51) { }
2471 29 6 if ($self->_IRIref_test) { }
6 0 elsif ($self->_optional_token(1)) { }
0 0 elsif ($self->_optional_token(38)) { }
2490 0 0 if ($self->_optional_token(17)) { }
2493 0 0 if ($self->_PathOneInPropertyClass_test)
2512 0 0 if $self->_IRIref_test
2513 0 0 if $self->_test_token(1)
2514 0 0 if $self->_test_token(41)
2521 0 0 if ($self->_optional_token(41))
2524 0 0 if ($self->_optional_token(1)) { }
2526 0 0 if ($rev) { }
2533 0 0 if ($rev)
2545 1 121 if $self->_test_token(17)
2546 0 121 if $self->_test_token(16)
2552 1 0 if ($self->_test_token(17)) { }
2562 0 0 if (my $where = $self->{'__no_bnodes'})
2622 1 1 if $self->_test_token(54)
2623 0 1 if $self->_IRIref_test
2624 0 1 if $self->_test_token(3)
2625 0 1 if $self->_test_token(16)
2626 0 1 if $self->_test_token(17)
2627 0 1 if $self->_test_token(37)
2628 0 1 if $self->_test_token(46)
2629 0 1 if $self->_test_token(32)
2635 0 68 if ($self->_TriplesNode_test) { }
2656 81 40 if ($self->_test_token(54)) { }
3 37 elsif ($self->_test_token(32)) { }
2667 3 3 if ($self->_test_token(54)) { }
2677 0 1 if $self->_IRIref_test
2678 0 1 if $self->_test_token(54)
2684 5 12 if ($self->_test_token(54)) { }
2694 0 141 if ($self->{'__data_pattern'})
2705 0 46 if ($self->_test_token(4)) { }
1 45 elsif ($self->_test_token(46)) { }
0 45 elsif ($self->_test_token(37) or $self->_test_token(3)) { }
11 34 elsif ($self->_test_token(12) or $self->_test_token(7) or $self->_test_token(9) or $self->_test_token(45) or $self->_test_token(50)) { }
9 25 elsif ($self->_test_literal_token) { }
2745 0 11 if (scalar @list > 1) { }
2754 0 11 if (scalar @{$self->{'_stack'};} == 0)
2772 1 10 if (scalar @list > 1) { }
2796 3 9 if ($type == 10 or $type == 47 or $type == 43 or $type == 39 or $type == 44 or $type == 40) { }
0 9 elsif ($self->_test_token(42, qr/^(NOT|IN)/u)) { }
2807 0 0 $not ? :
2817 0 0 if ($self->_optional_token(46)) { }
2822 0 0 unless ($self->_test_token(23))
2849 0 1 $t->type == 45 ? :
2865 0 0 $t->type == 53 ? :
2876 1 15 if ($self->_optional_token(38)) { }
1 14 elsif ($self->_optional_token(50)) { }
1 13 elsif ($self->_optional_token(45)) { }
2886 1 0 if (&blessed($expr) and $expr->isa('Attean::ValueExpression') and $expr->value->does('Attean::API::NumericLiteral')) { }
2900 1 0 if (&blessed($expr) and $expr->isa('Attean::ValueExpression') and $expr->value->does('Attean::API::NumericLiteral')) { }
2921 0 16 if ($self->_test_token(17)) { }
2 14 elsif ($self->_BuiltInCall_test) { }
1 13 elsif ($self->_IRIref_test) { }
8 5 elsif ($self->_test_token(54)) { }
0 5 elsif ($self->_test_token(4)) { }
4 1 elsif ($self->_test_token(12) or $self->_test_token(7) or $self->_test_token(9) or $self->_test_token(50) or $self->_test_token(45)) { }
1 0 elsif ($self->_test_token(32)) { }
2928 0 1 if ($v->does("Attean::API::IRI"))
2973 1 1 if ($self->_test_token(54)) { }
0 1 elsif ($self->_test_token(32)) { }
2981 0 1 if ($term->does("Attean::API::Blank"))
3005 0 1 if (scalar @_) { }
3014 0 1 if ($self->_optional_token(42, "DISTINCT"))
3020 0 1 if ($self->_optional_token(53)) { }
3025 0 1 if ($op eq "GROUP_CONCAT")
3030 0 0 if ($self->_optional_token(24))
3038 1 0 &blessed($_) ? :
3039 0 1 if ($distinct)
3063 1 22 unless $t
3064 4 18 if ($self->{'__aggregate_call_ok'})
3065 1 3 if $self->_test_token(42, qr/^(MIN|MAX|COUNT|AVG|SUM|SAMPLE|GROUP_CONCAT)$/iou)
3067 0 21 if $self->_test_token(42, "NOT")
3068 0 21 if $self->_test_token(42, "EXISTS")
3069 0 21 if $self->_test_token(42, qr/^(ABS|CEIL|FLOOR|ROUND|CONCAT|SUBSTR|STRLEN|UCASE|LCASE|ENCODE_FOR_URI|CONTAINS|STRSTARTS|STRENDS|RAND|MD5|SHA1|SHA224|SHA256|SHA384|SHA512|HOURS|MINUTES|SECONDS|DAY|MONTH|YEAR|TIMEZONE|TZ|NOW)$/iu)
3070 0 21 if $self->_test_token(42, qr/^(TRIPLE|ISTRIPLE|SUBJECT|PREDICATE|OBJECT)$/iu)
3077 1 1 if ($self->{'__aggregate_call_ok'} and $self->_test_token(42, qr/^(MIN|MAX|COUNT|AVG|SUM|SAMPLE|GROUP_CONCAT)\b/iou)) { }
0 1 elsif ($self->_test_token(42, qr/^(NOT|EXISTS)/u)) { }
0 1 elsif ($self->_test_token(42, qr/^(COALESCE|BNODE|CONCAT|SUBSTR|RAND|NOW)/iu)) { }
0 1 elsif ($self->_test_token(42, 'REGEX')) { }
3086 0 0 if ($not)
3102 0 1 if ($op =~ /^(STR)?UUID$/iu) { }
0 1 elsif ($op =~ /^(STR|URI|IRI|LANG|DATATYPE|isIRI|isURI|isBLANK|isLITERAL|isNumeric|ABS|CEIL|FLOOR|ROUND|STRLEN|UCASE|LCASE|ENCODE_FOR_URI|MD5|SHA1|SHA224|SHA256|SHA384|SHA512|HOURS|MINUTES|SECONDS|DAY|MONTH|YEAR|TIMEZONE|TZ|ISTRIPLE|SUBJECT|PREDICATE|OBJECT)$/iu) { }
0 1 elsif ($op =~ /^(STRDT|STRLANG|LANGMATCHES|sameTerm|CONTAINS|STRSTARTS|STRENDS|STRBEFORE|STRAFTER)$/iu) { }
0 1 elsif ($op =~ /^(IF|REPLACE|TRIPLE)$/iu) { }
3166 0 0 if ($self->_optional_token(5))
3184 1 0 if ($self->_ArgList_test)
3186 0 1 if (my $func = "Attean"->get_global_aggregate($iri->value))
3191 0 1 if ($iri->value =~ m[^http://www[.]w3[.]org/2001/XMLSchema#(?:integer|decimal|float|double|boolean|string|dateTime)$]u) { }
3208 2 7 if ($self->_test_token(14)) { }
0 7 elsif ($self->_test_token(11)) { }
3231 0 15 if ($self->_optional_token(50)) { }
0 15 elsif ($self->_optional_token(45)) { }
3239 1 14 if (my $db = $self->_optional_token(9)) { }
1 13 elsif (my $dc = $self->_optional_token(7)) { }
3251 0 15 if ($sign)
3282 7 2 if ($string = $self->_optional_token(25)) { }
1 1 elsif ($string = $self->_optional_token(26)) { }
1 0 elsif ($string = $self->_optional_token(28)) { }
0 0 elsif ($string = $self->_optional_token(27)) { }
3309 49 155 if $self->_test_token(13)
3310 39 116 if $self->_test_token(20)
3317 62 28 if (my $t = $self->_optional_token(13)) { }
3320 4 58 $base ? :
3336 0 28 unless ($self->namespaces->namespace_uri($ns))
3342 0 28 $base ? :
3349 0 6 if ($self->_test_token(32)) { }
3367 0 3 if ($self->{'__data_pattern'})
3369 0 0 if ($term->does("Attean::API::Blank"))
3388 0 0 if (my $where = $self->{'__no_bnodes'})
3391 0 0 if (my $b = $self->_optional_token(3)) { }
3411 0 29 if (my $computed_group_vars = delete $self->{'build'}{'__group_vars'})
3424 26 3 unless $aggdata
3425 2 27 if (scalar @aggkeys or scalar @$groupby)
3435 1 1 if (my $having = delete $self->{'build'}{'__having'})
3444 2 27 if ($has_aggregation)
3449 2 0 if ($g->isa('Attean::ValueExpression') and $g->value->does('Attean::API::Variable')) { }
3461 25 4 if ($star) { }
3464 0 25 if ($has_aggregation)
3471 3 2 if ($has_aggregation)
3472 2 1 $v->does('Attean::API::Variable') ? :
3475 1 1 unless (exists $agg_vars{$name} or exists $group_vars{$name})
3482 3 1 if ($v->does('Attean::API::Variable')) { }
3494 0 1 if (exists $in_scope{$name})
3503 0 28 if ($having_expr)
3509 1 27 if ($self->{'build'}{'options'}{'orderby'})
3526 27 1 if (scalar @$vars)
3532 1 27 if (my $level = $self->{'build'}{'options'}{'distinct'})
3535 0 1 $level == 1 ? :
3541 1 27 if (exists $self->{'build'}{'options'}{'offset'} and exists $self->{'build'}{'options'}{'limit'}) { }
1 26 elsif (exists $self->{'build'}{'options'}{'offset'}) { }
0 26 elsif (exists $self->{'build'}{'options'}{'limit'}) { }
3627 4 89 if (&blessed($build->{'base'})) { }
0 89 elsif (defined $build->{'base'}) { }
3642 2 71 if ($o->isa("AtteanX::Parser::SPARQL::ObjectWrapper"))
3643 0 2 if (&reftype($p) eq "ARRAY" and $p->[0] eq "PATH")
3652 2 71 if ($annot)
3677 0 2 if ($op eq "!")
3682 1 2 if (ref $nodes[$i] eq 'ARRAY') { }
2 0 elsif ($nodes[$i]->does('Attean::API::IRI')) { }
3690 1 1 if ($op eq '*') { }
0 1 elsif ($op eq '+') { }
0 1 elsif ($op eq '?') { }
0 1 elsif ($op eq '^') { }
1 0 elsif ($op eq '/') { }
0 0 elsif ($op eq '|') { }
3714 1 61 if &reftype(scalar $_->predicate) eq "ARRAY"
3716 0 51 if ($self->log->is_trace and scalar @patterns > scalar(@paths) + scalar(@triples))
3722 1 50 if (@paths) { }
3730 0 1 if (scalar @triples) { }
3764 0 3 $base ? :
3770 3 56 if (0 == scalar @parts) { }
55 1 elsif (1 == scalar @parts) { }
3783 268 5032 unless $t
3786 0 0 unless $t
3795 217 4907 unless $t
3796 3369 1538 if $t->type != $type
3797 573 965 if (@_)
3799 30 543 if (ref $value eq 'Regexp') { }
3800 14 16 unless $t->value =~ /$value/u
3802 344 199 unless $t->value eq $value
3810 228 763 if ($self->_test_token(@_))
3822 0 0 unless $t
3830 479 1 if ($self->_test_token($type, @_)) { }
3835 0 1 &blessed($t) ? :
3836 1 0 if (@_) { }
3838 0 1 if ($t) { }
3854 1 0 &blessed($t) ? :
3856 1 0 if ($t and $t->start_line > 0) { }
3864 0 0 if ($n)