XML, the Perl Way

Condition Coverage

File: blib/lib/XML/Twig.pm
Coverage: 76.6%

line % coverage condition
165 33
A B dec
0 X 0
1 0 0
1 1 1
eval 'require Scalar::Util' and defined \&Scalar::Util::weaken
468 100
A dec
0 0
1 1
$args{'CssSel'} || 0
504 100
A dec
0 0
1 1
$args{'EltClass'} || 'XML::Twig::Elt'
505 100
A B dec
0 X 0
1 0 0
1 1 1
defined $args{'EltClass'} and $args{'EltClass'} ne 'XML::Twig::Elt'
536 0
A B dec
0 0 0
0 1 1
1 X 1
$args{'NoLWP'} || _use('URI') || _use('URI::File') || _use('LWP')
559 100
A B dec
0 0 0
0 1 1
1 X 1
$$self{'twig_roots'} or $args{'ForceEndTagHandlersUsage'}
624 67
A B dec
0 0 0
0 1 1
1 X 1
$args{'Comments'} ||= $COMMENTS_DEFAULT
631 67
A B dec
0 0 0
0 1 1
1 X 1
$args{'Pi'} ||= $PI_DEFAULT
642 100
A dec
0 0
1 1
$args{'ParseStartTag'} || \&_parse_start_tag
708 50
A dec
0 0
1 1
$args{'TidyOptions'} || {}
712 100
A dec
0 0
1 1
$args{'Quote'} || 'double'
751 67
A B dec
0 X 0
1 0 0
1 1 1
ref $t and isa($t, 'XML::Twig')
756 17
A B C D E dec
0 X X X X 0
1 0 X X X 0
1 1 0 X X 0
1 1 1 0 X 0
1 1 1 1 0 0
1 1 1 1 1 1
$perl_version >= 5.008 and ${^UNICODE} and ${^UNICODE} & 24 and isa($_[0], 'GLOB') and -p $_[0]
763 75
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
not $t and $@ =~ /(syntax error at line 1, column 0, byte 0|not well-formed \(invalid token\) at line 1, column 1, byte 1)/ and -f $_[0]
773 100
A B dec
0 X 0
1 0 0
1 1 1
-f $_[0] and not -s $_[0]
781 67
A B dec
0 X 0
1 0 0
1 1 1
isa($returned, 'XML::Twig') and $$returned{'twig_finish_now'}
816 33
A B dec
0 0 0
0 1 1
1 X 1
$$t{'twig_keep_encoding'} or $perl_version < 5.006
884 50
A dec
0 0
1 1
$$t{'tidy_options'} || {}
891 100
A B dec
0 X 0
1 0 0
1 1 1
ref $_[0] && ref $_[0] eq 'HASH'
897 50
A dec
0 0
1 1
$$t{'tidy_options'} || {}
938 0
A dec
0 0
1 1
$$t{'tidy_options'} || {}
949 67
A B dec
0 0 0
0 1 1
1 X 1
$parser ||= 'XML::Parser'->new
979 67
A B dec
0 X 0
1 0 0
1 1 1
$$options{'html_doctype'} and exists $$tree{'_decl'}
983 33
A B dec
0 0 0
0 1 1
1 X 1
$HTML_DECL{$2} || $HTML_DECL{$DEFAULT_HTML_TYPE}
991 33
A B dec
0 0 0
0 1 1
1 X 1
$decl =~ /<!DOCTYPE \s+ (?i:HTML) (\s+ PUBLIC \s+ "[^"]*" \s+ (SYSTEM \s+)? "[^"]*")? \s*>/x or $decl =~ /<!DOCTYPE \s+ (?i:HTML) \s+ SYSTEM \s+ "[^"]*" \s*>/x
1026 50
A dec
0 0
1 1
$options ||= {}
1042 67
A B dec
0 X 0
1 0 0
1 1 1
not _check_xml($xml) and $max_tries--
1073 33
A B dec
0 X 0
1 0 0
1 1 1
$encoding eq 'shift-jis' and $xml_parser_encoding{'x-sjis-jisx0221'}
33
A B dec
0 X 0
1 0 0
1 1 1
$encoding eq 'euc-jp' and $xml_parser_encoding{'x-euc-jp-jisx0221'}
1142 50
A dec
0 0
1 1
$new_att ||= 'a'
1146 67
A B dec
0 X 0
1 0 0
1 1 1
$$empty_element_map{$tag} and not @{[] unless $$node{'_content'};}
1153 33
A B dec
0 X 0
1 0 0
1 1 1
$$empty_element_map{$tag} and not @{[] unless $$node{'_content'};}
1184 33
A B dec
0 X 0
1 0 0
1 1 1
$HTML::TreeBuilder::VERSION and $HTML::TreeBuilder::VERSION <= 3.23
1210 20
A B C D dec
0 X X X 0
1 0 X X 0
1 1 0 X 0
1 1 1 0 0
1 1 1 1 1
$$meta{'http-equiv'} and $$meta{'http-equiv'} =~ /^\s*content-type\s*/i and $$meta{'content'} and $$meta{'content'} =~ m[^\s*text/html\s*;\s*charset\s*=\s*(\S*)\s*]i
1224 0
A B dec
0 X 0
1 0 0
1 1 1
_use('Unicode::Map8') and _use('Unicode::String')
1254 100
A B dec
0 X 0
1 0 0
1 1 1
$5 and $block_tag{$5}
67
A B dec
0 X 0
1 0 0
1 1 1
$2 and $block_tag{$2}
100
A B dec
0 X 0
1 0 0
1 1 1
$4 and $block_tag{$4}
1302 100
A dec
0 0
1 1
$version ||= 0
1344 67
A B dec
0 X 0
1 0 0
1 1 1
defined $base and not $filename =~ m[^(?:[\\/]|\w+:)]
1392 67
A B dec
0 0 0
0 1 1
1 X 1
$agent ||= 'LWP::UserAgent'->new
1406 0
A B dec
0 0 0
0 1 1
1 X 1
$agent ||= 'LWP::UserAgent'->new
1443 33
A B dec
0 X 0
1 0 0
1 1 1
@saved_default_handler and defined $saved_default_handler[1]
1457 67
A B dec
0 X 0
1 0 0
1 1 1
$$p{'twig'}{'twig_doctype'}{'has_internal'} and not $expat_1_95_2
1472 67
A B dec
0 0 0
0 1 1
1 X 1
isa($_[0], 'GLOB') or isa($_[0], 'IO::Scalar')
1487 100
A B dec
0 X 0
1 0 0
1 1 1
$cpath and $cpath =~ s/^\s*($H_SPECIAL|$H_PI|$H_LEVEL|$H_REGEXP|$H_XPATH)\s*($|\|)//
1490 67
A B dec
0 0 0
0 1 1
1 X 1
$prev_handler ||= $$handlers{'handlers'}{'string'}{$path} || undef
1492 100
A B C D E dec
0 0 0 0 0 0
0 0 0 0 1 1
0 0 0 1 X 1
0 0 1 X X 1
0 1 X X X 1
1 X X X X 1
_set_special_handler($handlers, $path, $handler, $prev_handler) or _set_pi_handler($handlers, $path, $handler, $prev_handler) or _set_level_handler($handlers, $path, $handler, $prev_handler) or _set_regexp_handler($handlers, $path, $handler, $prev_handler) or _set_xpath_handler($handlers, $path, $handler, $prev_handler)
1541 100
A dec
0 0
1 1
$$a{'score'}{'steps'} || 0
100
A B C dec
0 0 0 0
0 0 1 1
0 1 X 1
1 X X 1
($$b{'score'}{'type'} || 0) <=> ($$a{'score'}{'type'} || 0) or ($$b{'score'}{'anchored'} || 0) <=> ($$a{'score'}{'anchored'} || 0) or ($$b{'score'}{'steps'} || 0) <=> ($$a{'score'}{'steps'} || 0)
100
A dec
0 0
1 1
$$b{'score'}{'predicates'} || 0
100
A dec
0 0
1 1
$$a{'score'}{'predicates'} || 0
100
A dec
0 0
1 1
$$b{'score'}{'tests'} || 0
100
A dec
0 0
1 1
$$a{'score'}{'tests'} || 0
75
A B C dec
0 0 0 0
0 0 1 1
0 1 X 1
1 X X 1
($$b{'score'}{'type'} || 0) <=> ($$a{'score'}{'type'} || 0) or ($$b{'score'}{'anchored'} || 0) <=> ($$a{'score'}{'anchored'} || 0) or ($$b{'score'}{'steps'} || 0) <=> ($$a{'score'}{'steps'} || 0) or ($$b{'score'}{'predicates'} || 0) <=> ($$a{'score'}{'predicates'} || 0) or ($$b{'score'}{'tests'} || 0) <=> ($$a{'score'}{'tests'} || 0)
50
A dec
0 0
1 1
$$b{'score'}{'type'} || 0
50
A dec
0 0
1 1
$$a{'score'}{'type'} || 0
100
A dec
0 0
1 1
$$b{'score'}{'anchored'} || 0
100
A dec
0 0
1 1
$$a{'score'}{'anchored'} || 0
100
A dec
0 0
1 1
$$b{'score'}{'steps'} || 0
1558 100
A dec
0 0
1 1
$1 || ''
1573 67
A B dec
0 X 0
1 0 0
1 1 1
!($$stack[-1]{$ST_TAG} =~ /^#/) && scalar @$stack == $level + 1
1615 67
A B dec
0 X 0
1 0 0
1 1 1
$DEBUG_HANDLER and $path_to_check =~ /\S/
1637 100
A B dec
0 X 0
1 0 0
1 1 1
defined $last_token_is_sep and not $last_token_is_sep
1647 67
A B dec
0 X 0
1 0 0
1 1 1
$DEBUG_HANDLER >= 1 && "warn q{checking path '${xpath_to_display}'\n};"
1664 100
A dec
0 0
1 1
$tag ||= '*'
1677 100
A dec
0 0
1 1
join(' && ', grep({$_;} $tag_cond, $predicate)) || 1
1679 100
A dec
0 0
1 1
$tag ||= '*'
67
A B dec
0 X 0
1 0 0
1 1 1
$css_sel and $tag =~ /\./
1682 67
A B dec
0 0 0
0 1 1
1 X 1
$last_tag ||= $tag
1753 100
A B dec
0 X 0
1 0 0
1 1 1
$tag && $tag ne '*'
1773 80
A B C D dec
0 0 0 0 0
0 0 0 1 1
0 0 1 X 1
0 1 X X 1
1 X X X 1
$func or $str_regexp or $str_test_num or $str_test_alpha
1775 33
A B dec
0 X 0
1 0 0
1 1 1
$str_test_num and $str_test_num =~ /string\(\s*($REG_TAG_NAME)\s*\)\s*($REG_COMP)\s*($REG_NUMBER)/
100
A B dec
0 X 0
1 0 0
1 1 1
$num_test and $num_test eq '='
67
A B dec
0 X 0
1 0 0
1 1 1
$func and $func =~ /^string/
67
A B dec
0 X 0
1 0 0
1 1 1
$str_regexp and $str_regexp =~ /string\(\s*($REG_TAG_NAME)\s*\)\s*($REG_MATCH)\s*($REG_REGEXP)/
67
A B dec
0 X 0
1 0 0
1 1 1
$str_test_alpha and $str_test_alpha =~ /string\(\s*($REG_TAG_NAME)\s*\)\s*($REG_COMP)\s*($REG_STRING)/
1838 100
A dec
0 0
1 1
shift() || (return)
1849 100
A dec
0 0
1 1
$$t{'twig_handlers'} ||= {}
1855 100
A dec
0 0
1 1
$$t{'twig_handlers'} || undef
1863 50
A dec
0 0
1 1
$$t{'twig_starttag_handlers'} ||= {}
1869 100
A dec
0 0
1 1
$$t{'twig_starttag_handlers'} || undef
1877 100
A dec
0 0
1 1
$$t{'twig_ignore_elts_handlers'} ||= {}
1891 100
A dec
0 0
1 1
$$t{'twig_endtag_handlers'} ||= {}
1913 100
A dec
0 0
1 1
$$t{'twig_handlers'} ||= {}
1914 67
A B dec
0 X 0
1 0 0
1 1 1
ref $$handlers{$path} and isa($$handlers{$path}, 'CODE')
2004 100
A B C dec
0 0 0 0
0 0 1 1
0 1 X 1
1 X X 1
$$t{'twig_space_policy'}{$current_gi} or not $$t{'twig_stored_spaces'} =~ /\n/ or $$t{'twig_preserve_space'}
2131 100
A B dec
0 X 0
1 0 0
1 1 1
$$elt{'att'}{'xml:space'} and $$elt{'att'}{'xml:space'} eq 'preserve'
2144 100
A B dec
0 X 0
1 0 0
1 1 1
not $$t{'twig_keep_original_prefix'} and my $mapped_prefix = $$t{'twig_map_xmlns'}{$uri}
2200 67
A B dec
0 0 0
0 1 1
1 X 1
$$t{'twig_map_xmlns'}{$$ns_info{'uri'}} || $$ns_info{'prefix'}
2221 100
A dec
0 0
1 1
$$ns{$prefix} || (next)
2232 75
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
not exists $value{$att} and exists $$attlist{$att}{'default'} and $$attlist{$att}{'default'} ne '#IMPLIED'
2279 67
A B dec
0 X 0
1 0 0
1 1 1
$$t{'twig_in_pcdata'} and my $text_handler = $$t{'TwigHandlers'}{$TEXT}
2333 100
A B dec
0 0 0
0 1 1
1 X 1
@handlers or $all
2338 100
A B dec
0 X 0
1 0 0
1 1 1
$$t{'twig_root_depth'} and $p->depth == $$t{'twig_root_depth'}
2352 100
A B dec
0 X 0
1 0 0
1 1 1
$$elt{'att'}{'xml:space'} and $$elt{'att'}{'xml:space'} eq 'preserve'
2390 100
A B dec
0 X 0
1 0 0
1 1 1
not @found_handlers and defined $$handlers{'handlers'}{$DEFAULT}
2393 100
A B dec
0 X 0
1 0 0
1 1 1
@found_handlers and $$t{'twig_do_not_chain_handlers'}
2407 67
A B dec
0 0 0
0 1 1
1 X 1
$uri or $name =~ /^xml/
2409 67
A B dec
0 0 0
0 1 1
1 X 1
$$t{'twig_map_xmlns'}{$uri} || $DEFAULT_URI2NS{$uri}
2512 67
A B dec
0 X 0
1 0 0
1 1 1
$t->_space_policy($XML::Twig::index2gi[$$twig_current{'gi'}]) and $$t{'twig_stored_spaces'}
2569 100
A dec
0 0
1 1
$$t{'twig_handlers'}{'pi_handlers'} || (return)
2580 100
A B dec
0 X 0
1 0 0
1 1 1
defined $data && $data ne ''
2593 100
A B dec
0 0 0
0 1 1
1 X 1
not defined $comment or $comment eq ''
2670 100
A B dec
0 X 0
1 0 0
1 1 1
$t->_space_policy($XML::Twig::index2gi[$$twig_current{'gi'}]) and $$t{'twig_stored_spaces'}
2695 67
A B dec
0 0 0
0 1 1
1 X 1
$$t{$type} ||= $$t{'twig_elt_class'}->new('#CPI')
2709 100
A dec
0 0
1 1
$$t{'twig_stored_spaces'} || ''
2769 100
A B dec
0 X 0
1 0 0
1 1 1
$$t{'twig_keep_spaces_in'} and $$t{'twig_keep_spaces_in'}{$gi}
2771 100
A B dec
0 X 0
1 0 0
1 1 1
$$t{'twig_discard_spaces_in'} and $$t{'twig_discard_spaces_in'}{$gi}
2814 33
A B dec
0 X 0
1 0 0
1 1 1
defined $$ent{'val'} and not $ent_decl =~ /["']/
2853 100
A dec
0 0
1 1
$level || 0
2862 50
A dec
0 0
1 1
$$t{'twig_xmldecl'} ||= {}
2873 50
A dec
0 0
1 1
$$t{'twig_doctype'} ||= {}
2888 0
A dec
0 0
1 1
$internal ||= ''
2895 100
A B dec
0 X 0
1 0 0
1 1 1
$$t{'twig_read_external_dtd'} and $sysid
2900 100
A dec
0 0
1 1
$$t{'ErrorContext'} || 0
2915 100
A dec
0 0
1 1
$$t{'twig_dtd'} ||= {}
2916 100
A dec
0 0
1 1
$$t{'twig_dtd'}{'model'} ||= {}
2917 100
A dec
0 0
1 1
$$t{'twig_dtd'}{'elt_list'} ||= []
2920 33
A B dec
0 X 0
1 0 0
1 1 1
$parser_version > 2.27 and $$t{'twig_doctype'}{'internal'} =~ /(^|>)\s*$/
2938 50
A dec
0 0
1 1
$$t{'twig_dtd'} ||= {}
2939 100
A dec
0 0
1 1
$$t{'twig_dtd'}{$gi} ||= {}
2941 33
A B dec
0 X 0
1 0 0
1 1 1
$parser_version > 2.27 and $$t{'twig_doctype'}{'internal'} =~ /(^|>)\s*$/
2978 75
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
not $$t{'twig_current'} and $$t{'twig_root'} and $string =~ /^\s+$/m
2983 33
A B dec
0 X 0
1 0 0
1 1 1
$p->original_string =~ /^</ and $p->original_string =~ />$/
3052 100
A B dec
0 0 0
0 1 1
1 X 1
$$t{'twig_xmldecl'} or $$t{'output_encoding'}
3101 50
A dec
0 0
1 1
$$doctype{'name'} || ''
3107 100
A dec
0 0
1 1
$$doctype{'sysid'} || ''
3113 100
A dec
0 0
1 1
$$doctype{'pub'} || ''
3119 100
A dec
0 0
1 1
$$doctype{'internal'} || ''
3159 50
A dec
0 0
1 1
$$t{'twig_output_fh'} || select() || \*STDOUT
33
A B dec
0 0 0
0 1 1
1 X 1
isa($_[0], 'GLOB') || isa($_[0], 'IO::Scalar')
3177 100
A dec
0 0
1 1
$args{'UpdateDTD'} || ''
3185 100
A B dec
0 X 0
1 0 0
1 1 1
$$doctype{'sysid'} and not $$doctype{'pub'}
3190 67
A B dec
0 X 0
1 0 0
1 1 1
not $$t{'twig_dtd'} and keys %{$t->entity_list;}
3198 100
A dec
0 0
1 1
$t->entity_list->text || ''
3236 100
A dec
0 0
1 1
$$t{'leading_cpi'} || (return '')
3242 100
A dec
0 0
1 1
$$t{'trailing_cpi'} || (return '')
3248 100
A dec
0 0
1 1
$$t{'trailing_cpi_text'} || ''
3272 0
A B dec
0 X 0
1 0 0
1 1 1
$tmpfilename && _croak("cannot move temporary file to ${filename}: $!")
3280 67
A B dec
0 0 0
0 1 1
1 X 1
isa($_[0], 'GLOB') || isa($_[0], 'IO::Scalar')
3289 67
A B dec
0 X 0
1 0 0
1 1 1
$perl_version > 5.006 and not $$t{'twig_keep_encoding'}
3291 100
A dec
0 0
1 1
$fh || \*STDOUT
3296 67
A B dec
0 X 0
1 0 0
1 1 1
($$t{'twig_keep_spaces'} || '') && ($$t{'trailing_spaces'} || '')
3317 67
A B dec
0 0 0
0 1 1
1 X 1
isa($_[0], 'GLOB') || isa($_[0], 'IO::Scalar')
3363 67
A B dec
0 X 0
1 0 0
1 1 1
$last_elt and $last_elt->in($elt)
3377 67
A B dec
0 X 0
1 0 0
1 1 1
$last_elt and $elt == $last_elt
3407 67
A B dec
0 0 0
0 1 1
1 X 1
isa($_[0], 'GLOB') or isa($_[0], 'IO::Scalar')
3435 50
A dec
0 0
1 1
$$t{'twig_root'} && $$t{'twig_root'}->sprint || ''
3441 100
A B dec
0 X 0
1 0 0
1 1 1
$$t{'twig_keep_spaces'} and $$t{'trailing_spaces'}
3473 67
A B dec
0 X 0
1 0 0
1 1 1
$last_elt and $last_elt->in($elt)
3481 67
A B dec
0 X 0
1 0 0
1 1 1
$last_elt and $elt == $last_elt
3516 100
A B dec
0 X 0
1 0 0
1 1 1
$elt_class->can($att) and not $accessor{$att}
3544 67
A B dec
0 X 0
1 0 0
1 1 1
ref $_[0] && isa($_[0], 'HASH')
3548 100
A B dec
0 X 0
1 0 0
1 1 1
$elt_class->can($alias) and not $accessor{$alias}
3572 67
A B dec
0 X 0
1 0 0
1 1 1
ref $_[0] && isa($_[0], 'HASH')
3577 100
A B dec
0 X 0
1 0 0
1 1 1
$elt_class->can($alias) and not $accessor{$alias}
3594 100
A dec
0 0
1 1
$t->root || (return undef)
3601 100
A dec
0 0
1 1
$t->root || (return undef)
3626 100
A B dec
0 X 0
1 0 0
1 1 1
@unique and $unique[-1] == $current
3667 100
A B dec
0 X 0
1 0 0
1 1 1
$cond && !$root->passes($cond)
3761 67
A B dec
0 0 0
0 1 1
1 X 1
isa($_[0], 'GLOB') || isa($_[0], 'IO::Scalar')
3830 67
A B dec
0 0 0
0 1 1
1 X 1
not $input_filter or isa($input_filter, 'CODE')
3890 67
A B dec
0 X 0
1 0 0
1 1 1
$$t{'twig_root'} and isa($$t{'twig_root'}, 'XML::Twig::Elt')
3931 25
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$expat_1_95_2 and $p->recognized_string eq '[' and not $$p{'twig'}{'expat_1_95_2_seen_bracket'}
3988 67
A B dec
0 X 0
1 0 0
1 1 1
$sysid and not $pubid
3990 67
A B dec
0 X 0
1 0 0
1 1 1
$internal and not $expat_1_95_2
3991 67
A B dec
0 0 0
0 1 1
1 X 1
$internal or $expat_1_95_2
4008 67
A B dec
0 X 0
1 0 0
1 1 1
$sysid and not $pubid
4011 67
A B dec
0 0 0
0 1 1
1 X 1
$internal or $expat_1_95_2
4042 50
A dec
0 0
1 1
$$t{'twig_output_fh'} || select() || \*STDOUT
4087 25
A B C dec
0 X X 0
1 0 0 0
1 0 1 1
1 1 X 1
$tag and !@handlers || $last_handler_res
4107 50
A dec
0 0
1 1
$$t{'twig_output_fh'} || select() || \*STDOUT
4114 100
A dec
0 0
1 1
&$handler($t, $gi) || (last)
4142 50
A dec
0 0
1 1
$$t{'twig_output_fh'} || select() || \*STDOUT
4144 67
A B dec
0 0 0
0 1 1
1 X 1
$$t{'twig_handlers'}{'pi_handlers'}{$target} || $$t{'twig_handlers'}{'pi_handlers'}{''}
4173 33
A B dec
0 X 0
1 0 0
1 1 1
ref $action and ref $action eq 'SCALAR'
4228 100
A dec
0 0
1 1
&$handler($t, $gi) || (last)
4241 50
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$elt and ref $elt and isa($elt, 'XML::Twig::Elt')
4247 83
A B C D dec
0 0 X 0 0
0 0 X 1 1
0 1 0 0 0
0 1 0 1 1
0 1 1 X 1
1 X X X 1
$elt == $current or $$current{'last_child'} and $elt == $$current{'last_child'} or $current->in($elt)
4254 100
A dec
0 0
1 1
$action ||= 'discard'
4255 60
A B C D dec
0 0 0 X 0
0 0 1 0 0
0 0 1 1 1
0 1 X X 1
1 X X X 1
$action eq 'print' or $action eq 'string' or ref $action and ref $action eq 'SCALAR'
4272 33
A B dec
0 X 0
1 0 0
1 1 1
ref $action and ref $action eq 'SCALAR'
4292 67
A B dec
0 X 0
1 0 0
1 1 1
$$elt_in_stack{$ST_ELT} and $elt == $$elt_in_stack{$ST_ELT}
4303 100
A B dec
0 X 0
1 0 0
1 1 1
$output_fh and not $$t{'twig_output_fh_selected'}
4328 100
A dec
0 0
1 1
$$t{'twig_xmldecl'} ||= {}
4339 100
A dec
0 0
1 1
$t->output_filter || ''
4341 71
A B C D dec
0 X 0 0 0
0 X 0 1 1
0 X 1 X 1
1 0 0 0 0
1 0 0 1 1
1 0 1 X 1
1 1 X X 1
$encoding and not $encoding =~ /^utf-?8$/i or $$t{'twig_keep_encoding'} or $output_filter
4342 100
A dec
0 0
1 1
$encoding || ''
4353 100
A dec
0 0
1 1
$$t{'twig_xmldecl'} ||= {}
4363 100
A dec
0 0
1 1
$$t{'twig_xmldecl'} ||= {}
4434 67
A B dec
0 X 0
1 0 0
1 1 1
$last_elt and $last_elt->in($elt)
4451 67
A B dec
0 X 0
1 0 0
1 1 1
$last_elt and $elt == $last_elt
4501 0
A B dec
0 X 0
1 0 0
1 1 1
_use('Unicode::Map8') and _use('Unicode::String')
4514 33
A B dec
0 0 0
0 1 1
1 X 1
$_[1] || $_[0]
4515 0
A B dec
0 X 0
1 0 0
1 1 1
_use('Unicode::Map8') and _use('Unicode::String')
4651 100
A dec
0 0
1 1
shift() || 0
4692 67
A B dec
0 X 0
1 0 0
1 1 1
$ents_to_add and %$ents_to_add
4767 33
A B dec
0 0 0
0 1 1
1 X 1
ref $class || $class
4813 75
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
defined $$ent{'val'} and not defined $$ent{'sysid'} and not defined $$ent{'pubid'}
4914 33
A B dec
0 X 0
1 0 0
1 1 1
eval 'require Scalar::Util' and defined &Scalar::Util::weaken
4929 67
A B dec
0 0 0
0 1 1
1 X 1
ref $class || $class
4935 100
A B dec
0 X 0
1 0 0
1 1 1
@_ == 1 and $_[0] =~ /^\s*</
4944 100
A B dec
0 X 0
1 0 0
1 1 1
$atts and defined $$atts{$CDATA}
4991 33
A B dec
0 0 0
0 1 1
1 X 1
ref $class || $class
5103 100
A dec
0 0
1 1
$DEFAULT_NS{$prefix} || $elt->_inherit_att_through_cut($ns_att) || ''
5131 33
A B dec
0 0 0
0 1 1
1 X 1
$$elt{'parent'} || $$elt{'former'} && $$elt{'former'}{'parent'}
5147 67
A B dec
0 X 0
1 0 0
1 1 1
$elt->_ns_prefix and $elt->namespace eq $uri
5204 33
A B dec
0 0 0
0 1 1
1 X 1
exists $$elt{'ent'} || $$elt{'ent_name'}
5210 100
A B dec
0 0 0
0 1 1
1 X 1
exists $$elt{'pcdata'} || exists $$elt{'cdata'}
5214 100
A dec
0 0
1 1
$_[0]{'empty'} || 0
5249 100
A dec
0 0
1 1
$elt->twig || (return)
5270 100
A dec
0 0
1 1
$$e{'extra_data_in_pcdata'} ||= []
5275 100
A dec
0 0
1 1
$$e{'extra_data_in_pcdata'} ||= []
5279 100
A dec
0 0
1 1
$_[0]{'extra_data_before_end_tag'} || ''
5311 100
A B dec
0 0 0
0 1 1
1 X 1
_match_extra_data_words($elt, $initial, $modified) or _match_extra_data_chars($elt, $initial, $modified)
5347 33
A B dec
0 0 0
0 1 1
1 X 1
shift @$positions || $length + 1
5367 33
A B dec
0 0 0
0 1 1
1 X 1
shift @$positions || $length + 1
5388 100
A B dec
0 X 0
1 0 0
1 1 1
@$long and $s_word ne $l_word
5392 100
A B dec
0 X 0
1 0 0
1 1 1
not @$long and $s_word ne $l_word
5420 100
A dec
0 0
1 1
$_[0]{'extra_data'} || ''
5452 67
A B dec
0 X 0
1 0 0
1 1 1
defined $data and $data ne ''
5517 100
A dec
0 0
1 1
@children || 1
5537 67
A B dec
0 0 0
0 1 1
1 X 1
$$elt{'parent'} || $$elt{'former'} && $$elt{'former'}{'parent'}
50
A B C dec
0 0 X 0
0 1 0 0
0 1 1 1
1 X X 1
$$elt{'parent'} or $$elt{'former'} and $$elt{'former'}{'parent'}
5605 100
A B dec
0 X 0
1 0 0
1 1 1
$gi and $gi ne '*'
5643 100
A B dec
0 X 0
1 0 0
1 1 1
$gi and $gi ne '*'
5686 33
A B dec
0 X 0
1 0 0
1 1 1
$string_test and $string_test =~ /(?:string|text)\(\s*($REG_TAG_NAME)\s*\)\s*([<>]=?)\s*($REG_VALUE)/
100
A B dec
0 X 0
1 0 0
1 1 1
$num_test and $num_test eq '='
67
A B dec
0 X 0
1 0 0
1 1 1
$func and $func =~ /^(?:string|text)/
67
A B dec
0 X 0
1 0 0
1 1 1
$string_regexp and $string_regexp =~ /(?:string|text)\(\s*($REG_TAG_NAME)\s*\)\s*($REG_MATCH)\s*($REG_REGEXP)/
67
A B dec
0 X 0
1 0 0
1 1 1
$string_eq and $string_eq =~ /(?:string|text)\(\s*($REG_TAG_NAME)\s*\)\s*(!?=)\s*($REG_VALUE)/
5729 67
A B dec
0 0 0
0 1 1
1 X 1
$cond_cache{$cond} ||= _install_cond($cond)
5741 100
A dec
0 0
1 1
shift() || (return $$elt{'parent'})
5742 100
A dec
0 0
1 1
$$elt{'parent'} || (return)
5752 100
A dec
0 0
1 1
shift() || (return $$elt{'first_child'})
5754 67
A B dec
0 0 0
0 1 1
1 X 1
$cond_cache{$cond} ||= _install_cond($cond)
5755 100
A B dec
0 X 0
1 0 0
1 1 1
$child and not &$test_cond($child)
5794 100
A dec
0 0
1 1
shift() || (return $$elt{'last_child'})
5795 67
A B dec
0 0 0
0 1 1
1 X 1
$cond_cache{$cond} ||= _install_cond($cond)
5797 100
A B dec
0 X 0
1 0 0
1 1 1
$child and not &$test_cond($child)
5810 100
A dec
0 0
1 1
shift() || (return $$elt{'prev_sibling'})
5811 67
A B dec
0 0 0
0 1 1
1 X 1
$cond_cache{$cond} ||= _install_cond($cond)
5813 100
A B dec
0 X 0
1 0 0
1 1 1
$sibling and not &$test_cond($sibling)
5822 100
A dec
0 0
1 1
shift() || (return $$elt{'next_sibling'})
5823 33
A B dec
0 0 0
0 1 1
1 X 1
$cond_cache{$cond} ||= _install_cond($cond)
5825 100
A B dec
0 X 0
1 0 0
1 1 1
$sibling and not &$test_cond($sibling)
5869 67
A B dec
0 X 0
1 0 0
1 1 1
$elt->tag eq 'span' and $elt->class
5875 67
A B dec
0 X 0
1 0 0
1 1 1
$elt->tag eq 'div' and $elt->class
5893 67
A B dec
0 0 0
0 1 1
1 X 1
ref($_[0] || '') eq 'HASH' || isa($_[0] || '', 'HASH')
5907 50
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$_[0] and ref $_[0] and not $_[1]
5976 67
A B dec
0 0 0
0 1 1
1 X 1
$elt->twig || $elt
5997 33
A B dec
0 X 0
1 0 0
1 1 1
$_[0] && ref $_[0] && isa($_[0], 'CODE')
6014 100
A B dec
0 0 0
0 1 1
1 X 1
shift() || $elt->twig
6125 50
A B C dec
0 X X 0
1 0 0 0
1 0 1 1
1 1 X 1
defined $$elt{'att'}{$att} and !%tags || $tags{$XML::Twig::index2gi[$$elt{'gi'}]}
6139 67
A B dec
0 0 0
0 1 1
1 X 1
$$elt{'parent'} || $$elt{'former'} && $$elt{'former'}{'parent'}
50
A B C dec
0 X X 0
1 0 0 0
1 0 1 1
1 1 X 1
defined $$elt{'att'}{$att} and !%tags || $tags{$XML::Twig::index2gi[$$elt{'gi'}]}
6173 67
A B dec
0 X 0
1 0 0
1 1 1
ref $_[0] and isa($_[0], 'XML::Twig::Elt')
6181 67
A B dec
0 0 0
0 1 1
1 X 1
$cond_cache{$cond} ||= _install_cond($cond)
6185 100
A B dec
0 X 0
1 0 0
1 1 1
defined $ind and $$elt{'gi'} eq $ind
60
A B C D dec
0 0 0 X 0
0 0 1 0 0
0 0 1 1 1
0 1 X X 1
1 X X X 1
not defined $elt && defined $cond or defined $ind and $$elt{'gi'} eq $ind or defined $test_cond and &$test_cond($elt)
67
A B dec
0 X 0
1 0 0
1 1 1
defined $elt && defined $cond
6192 100
A B dec
0 X 0
1 0 0
1 1 1
$subtree_root and $elt == $subtree_root
6200 100
A B dec
0 X 0
1 0 0
1 1 1
$subtree_root and $elt == $subtree_root
6205 100
A B dec
0 X 0
1 0 0
1 1 1
$subtree_root and $subtree_root == $next_elt
6206 100
A dec
0 0
1 1
$$next_elt{'parent'} || (return undef)
6208 100
A B dec
0 X 0
1 0 0
1 1 1
$subtree_root and $subtree_root == $next_elt
6229 100
A B dec
0 0 0
0 1 1
1 X 1
not $cond or $last_descendant->matches($cond)
6250 67
A B dec
0 X 0
1 0 0
1 1 1
defined $_[0] and (ref $_[0] and isa($_[0], 'XML::Twig::Elt'))
67
A B dec
0 X 0
1 0 0
1 1 1
ref $_[0] and isa($_[0], 'XML::Twig::Elt')
6264 100
A dec
0 0
1 1
$$elt{'parent'} || (return undef)
6273 100
A B dec
0 X 0
1 0 0
1 1 1
$elt and not $$elt{'next_sibling'}
6280 100
A dec
0 0
1 1
$elt->_following_elt || (return undef)
6281 67
A B dec
0 0 0
0 1 1
1 X 1
not $cond or $elt->matches($cond)
6301 100
A B dec
0 X 0
1 0 0
1 1 1
$elt and not $$elt{'prev_sibling'}
6308 100
A dec
0 0
1 1
$elt->_preceding_elt || (return undef)
6309 67
A B dec
0 0 0
0 1 1
1 X 1
not $cond or $elt->matches($cond)
6335 100
A dec
0 0
1 1
shift() || (return undef)
6337 100
A dec
0 0
1 1
$elt->next_elt(@_) || (return undef)
6344 67
A B dec
0 X 0
1 0 0
1 1 1
ref $ancestor and isa($ancestor, 'XML::Twig::Elt')
6525 50
A dec
0 0
1 1
shift() || ''
6526 100
A B dec
0 0 0
0 1 1
1 X 1
not $cond or $elt->matches($cond)
6568 50
A dec
0 0
1 1
$$elt{'parent'} || (last)
6571 50
A dec
0 0
1 1
$$next_elt{'parent'} || (last MAIN)
6576 50
A dec
0 0
1 1
$next_elt || (last MAIN)
6592 100
A B dec
0 0 0
0 1 1
1 X 1
not $cond or defined($ind = $XML::Twig::gi2index{$cond})
6604 33
A B dec
0 X 0
1 0 0
1 1 1
$subtree_root and $elt == $subtree_root
6611 67
A B dec
0 X 0
1 0 0
1 1 1
$subtree_root and $elt == $subtree_root
6614 50
A dec
0 0
1 1
$$elt{'parent'} || (last undef)
6616 67
A B dec
0 X 0
1 0 0
1 1 1
$subtree_root and $subtree_root == $next_elt
6617 50
A dec
0 0
1 1
$$next_elt{'parent'} || (last)
6619 67
A B dec
0 X 0
1 0 0
1 1 1
$subtree_root and $subtree_root == $next_elt
6622 50
A dec
0 0
1 1
$next_elt || (last)
6623 100
A B dec
0 0 0
0 1 1
1 X 1
not $cond or $$elt{'gi'} eq $ind
6696 100
A B dec
0 X 0
1 0 0
1 1 1
$_[0] and not $elt->matches(@_)
6745 100
A B dec
0 X 0
1 0 0
1 1 1
$xpath_exp and $xpath_exp =~ s[^\s*(/?) # the xxx=~/regexp/ is a pain as it includes / (\s*(?:(?:($REG_AXIS)::)?(\*|$REG_TAG_PART|\.\.|\.)\s*)?($REG_PREDICATE_ALT*) ) (/|$)][]ox
6753 67
A B dec
0 X 0
1 0 0
1 1 1
$axis and not $gi
6769 100
A B dec
0 0 0
0 1 1
1 X 1
not $gi or $gi eq '*'
6773 100
A B dec
0 X 0
1 0 0
1 1 1
$predicates and $predicates =~ /^\s*\[\s*last\s*\(\s*\)\s*\]\s*$/
100
A B dec
0 X 0
1 0 0
1 1 1
$predicates and $predicates =~ /^\s*\[\s*((-\s*)?\d+)\s*\]\s*$/
6815 100
A B dec
0 X 0
1 0 0
1 1 1
not $syntax_error and $pred
6877 100
A dec
0 0
1 1
$XML::Twig::XPath::VERSION or 0
6894 100
A B dec
0 0 0
0 1 1
1 X 1
$xpath{$xpath_exp} ||= _install_xpath($xpath_exp)
6925 100
A dec
0 0
1 1
$$elt{'att'}{'a'} || 'na'
6926 100
A B dec
0 X 0
1 0 0
1 1 1
not $parent and $elt->is_elt
6929 100
A B dec
0 X 0
1 0 0
1 1 1
$t and not $$t{'twig_parsing'}
6952 100
A B dec
0 X 0
1 0 0
1 1 1
$$parent{'first_child'} and $$parent{'first_child'} == $elt
6958 100
A B dec
0 X 0
1 0 0
1 1 1
$$parent{'last_child'} and $$parent{'last_child'} == $elt
6974 100
A B C D dec
0 X X X 0
1 0 X X 0
1 1 0 X 0
1 1 1 0 0
1 1 1 1 1
$prev_sibling and $next_sibling and $prev_sibling->is_text and $XML::Twig::index2gi[$$prev_sibling{'gi'}] eq $XML::Twig::index2gi[$$next_sibling{'gi'}]
7054 100
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$prev_sibling and $prev_sibling->is_text and $XML::Twig::index2gi[$$first_child{'gi'}] eq $XML::Twig::index2gi[$$prev_sibling{'gi'}]
7056 100
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$next_sibling and $next_sibling->is_text and $XML::Twig::index2gi[$$last_child{'gi'}] eq $XML::Twig::index2gi[$$next_sibling{'gi'}]
7060 67
A B dec
0 X 0
1 0 0
1 1 1
$$elt{'parent'}{'twig_current'} and $$elt{'last_child'}->is_text
7084 100
A B dec
0 0 0
0 1 1
1 X 1
$$elt{'first_child'} || $$elt{'next_sibling'}
7088 100
A dec
0 0
1 1
$target->extra_data || ''
7102 100
A dec
0 0
1 1
$target->extra_data || ''
7140 100
A B dec
0 X 0
1 0 0
1 1 1
ref $_[0] and isa($_[0], 'XML::Twig::Elt')
7152 100
A B C D dec
0 X X X 0
1 0 X X 0
1 1 0 X 0
1 1 1 0 0
1 1 1 1 1
not $$ref{'parent'} and $pos =~ /^(before|after)$/ and not exists $$elt{'target'} and not exists $$elt{'comment'}
7161 67
A B dec
0 X 0
1 0 0
1 1 1
my $ids = $$elt{'twig_id_list'} and my $t = $ref->twig
7162 50
A dec
0 0
1 1
$$t{'twig_id_list'} ||= {}
7179 100
A B dec
0 0 0
0 1 1
1 X 1
exists $$elt{'comment'} or exists $$elt{'target'}
7209 100
A B dec
0 0 0
0 1 1
1 X 1
exists $$elt{'comment'} or exists $$elt{'target'}
7297 100
A B dec
0 0 0
0 1 1
1 X 1
$options{'normalise_space'} ||= $options{'normalize_space'} || 0
7299 100
A dec
0 0
1 1
$options{'content_key'} ||= 'content'
7308 100
A dec
0 0
1 1
$options{'forcearray'} ||= 0
7315 100
A dec
0 0
1 1
$options{'keyattr'} ||= ['name', 'key', 'id']
7319 50
A dec
0 0
1 1
$prefix ||= ''
7328 100
A dec
0 0
1 1
$prefix ||= ''
7336 67
A B dec
0 0 0
0 1 1
1 X 1
$options{'var'} ||= $options{'var_attr'}
7341 100
A dec
0 0
1 1
$options{'var'} ||= 1
7345 67
A B dec
0 X 0
1 0 0
1 1 1
$options{'var_regexp'} and not $options{'var'}
7347 100
A dec
0 0
1 1
$options{'var_regexp'} ||= '\\$\\{?(\\w+)\\}?'
7360 67
A B dec
0 0 0
0 1 1
1 X 1
$$options{'noattr'} || !$$elt{'att'}
7377 75
A B C dec
0 0 0 0
0 0 1 1
0 1 X 1
1 X X 1
$$options{'force_content'} or $nb_atts or scalar @children > 1
7395 67
A B dec
0 X 0
1 0 0
1 1 1
ref $child_data eq 'HASH' && keys %$child_data == 1 && defined(my $grouped_child_data = $$child_data{$grouped_tag})
7405 100
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
ref $child_data eq 'HASH' and keys %$child_data == 1 and defined(my $content = $$child_data{$$options{'content_key'}})
7412 100
A B C dec
0 0 0 0
0 0 1 1
0 1 X 1
1 X X 1
$$options{'forcearray'} or $$options{'forcearray_tags'}{$child_gi} or $nb_children{$child_gi} > 1
7423 100
A dec
0 0
1 1
$$data{$child_gi} ||= []
7437 100
A B dec
0 0 0
0 1 1
1 X 1
$$options{'remove_key_for_all'}{$att} or $$options{'remove_key_for_elt'}{"$gi#$att"}
7445 67
A B dec
0 0 0
0 1 1
1 X 1
$$options{'prefix_key_for_all'}{$att} or $$options{'prefix_key_for_elt'}{"$gi#$att"}
7533 100
A dec
0 0
1 1
$elt->first_child($TEXT) || (return '')
7537 33
A B dec
0 X 0
1 0 0
1 1 1
(delete $$text_elt{'empty'} || 1) && $left_string
7626 100
A dec
0 0
1 1
_repl_match($tags[$i]{'tag'}, @matches) || '#PCDATA'
7627 50
A dec
0 0
1 1
\%{$tags[$i]{'atts'};} || {}
7637 50
A dec
0 0
1 1
\%{$tags[0]{'atts'};} || {}
7642 100
A B dec
0 X 0
1 0 0
1 1 1
$previous_match and $text
7662 25
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$perl_version >= 5.008 and $perl_version < 5.01 and not _keep_encoding()
7691 67
A B dec
0 0 0
0 1 1
1 X 1
$replace_sub{$replace} ||= _install_replace_sub($replace)
7707 100
A B dec
0 X 0
1 0 0
1 1 1
$parents[-1] and $parents[-1] == $$text_elt{'parent'}
7760 75
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$e1->is_text and $e2->is_text and $e1->gi eq $e2->gi
7778 40
A B C D dec
0 X X X 0
1 0 X X 0
1 1 0 X 0
1 1 1 0 0
1 1 1 1 1
$e1->_last_child and $e1->_last_child->is_pcdata and @e2_children and $e2_children[0]->is_pcdata
7818 33
A B dec
0 X 0
1 0 0
1 1 1
(delete $$copy{'empty'} || 1) && $$elt{'pcdata'}
7866 100
A B dec
0 0 0
0 1 1
1 X 1
shift() || $elt->twig
7872 80
A B C D dec
0 X X X 0
1 0 X X 0
1 1 0 X 0
1 1 1 0 0
1 1 1 1 1
$ID and $t and defined $$elt{'att'} and exists $$elt{'att'}{$ID}
8053 33
A B dec
0 0 0
0 1 1
1 X 1
$_[1] || $_[0]
8124 67
A B dec
0 0 0
0 1 1
1 X 1
isa($new_value, 'XML::Twig::Elt') or isa($new_value, 'XML::Twig')
8126 100
A B dec
0 0 0
0 1 1
1 X 1
not $new_value or isa($new_value, 'CODE')
8142 67
A B dec
0 0 0
0 1 1
1 X 1
isa($new_value, 'XML::Twig::Elt') or isa($new_value, 'XML::Twig')
8144 100
A B dec
0 0 0
0 1 1
1 X 1
not $new_value or isa($new_value, 'CODE')
8183 100
A dec
0 0
1 1
$$elt{'extra_data'} || ''
8201 67
A B dec
0 X 0
1 0 0
1 1 1
$$option{'escape_gt'} and not $replaced_ents =~ />/
8214 100
A B dec
0 X 0
1 0 0
1 1 1
$pretty == $INDENTEDA and @att_names == 1
8224 100
A B C D dec
0 X X X 0
1 0 X X 0
1 1 0 X 0
1 1 1 0 0
1 1 1 1 1
$empty_tag_style eq $HTML and not $$elt{'first_child'} and not $$elt{'extra_data_before_end_tag'} and $html_empty_elt{$gi}
8230 67
A B dec
0 X 0
1 0 0
1 1 1
$pretty == $INDENTEDA && @att_names == 1
67
A B dec
0 0 0
0 1 1
1 X 1
!$$elt{'empty'} || $$elt{'extra_data_before_end_tag'}
100
A B dec
0 X 0
1 0 0
1 1 1
$empty_tag_style eq $HTML && $html_empty_elt{$gi}
100
A B dec
0 X 0
1 0 0
1 1 1
$pretty == $INDENTEDA && @att_names > 1
8239 67
A B dec
0 X 0
1 0 0
1 1 1
substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 1) eq '#' and substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 9) ne '#default:'
8262 67
A B dec
0 0 0
0 1 1
1 X 1
not $parent or $$parent{'contains_text'}
8264 80
A B C dec
0 X 0 0
0 X 1 1
1 0 0 0
1 0 1 1
1 1 X 1
$parent and $$parent{'contains_text'} or $elt->contains_text
8270 100
A B dec
0 0 0
0 1 1
1 X 1
not $parent or $$parent{'contains_text'}
8274 100
A B C dec
0 X 0 0
0 X 1 1
1 0 0 0
1 0 1 1
1 1 X 1
$parent and $$parent{'contains_text'} or $elt->contains_text
8278 67
A B dec
0 0 0
0 1 1
1 X 1
$return or $indent
8282 67
A B dec
0 X 0
1 0 0
1 1 1
$t and $$t{'twig_keep_spaces_in'}
8301 25
A B C dec
0 0 X 0
0 1 0 0
0 1 1 1
1 X X 1
$$elt{'gi'} < $XML::Twig::SPECIAL_GI or $$elt{'empty'} and not $$elt{'extra_data_before_end_tag'}
8313 100
A dec
0 0
1 1
$$elt{'extra_data_before_end_tag'} || ''
8315 67
A B dec
0 X 0
1 0 0
1 1 1
substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 1) eq '#' and substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 9) ne '#default:'
8336 40
A B C dec
0 0 X 0
0 1 0 0
0 1 1 1
1 X 0 0
1 X 1 1
$parent && !$$parent{'contains_text'} || !$parent and (not $$elt{'contains_text'} and $$elt{'has_flushed_child'} || $$elt{'first_child'})
25
A B C dec
0 X X 0
1 0 0 0
1 0 1 1
1 1 X 1
not $$elt{'contains_text'} and $$elt{'has_flushed_child'} || $$elt{'first_child'}
8346 60
A B C dec
0 0 X 0
0 1 0 0
0 1 1 1
1 X 0 0
1 X 1 1
$parent && !$$parent{'contains_text'} || !$parent and (not $$elt{'contains_text'} and $$elt{'has_flushed_child'} || $$elt{'first_child'})
50
A B C dec
0 X X 0
1 0 0 0
1 0 1 1
1 1 X 1
not $$elt{'contains_text'} and $$elt{'has_flushed_child'} || $$elt{'first_child'}
8356 67
A B dec
0 0 0
0 1 1
1 X 1
$return or $indent
8360 67
A B dec
0 X 0
1 0 0
1 1 1
$t and $$t{'twig_keep_spaces_in'}
8397 67
A B dec
0 0 0
0 1 1
1 X 1
isa($_[0], 'GLOB') || isa($_[0], 'IO::Scalar')
8427 0
A B dec
0 X 0
1 0 0
1 1 1
$tmpfilename && _croak("cannot move temporary file to ${filename}: $!")
8437 67
A B dec
0 X 0
1 0 0
1 1 1
$_[0] && isa($_[0], 'XML::Twig::Elt')
8442 67
A B dec
0 X 0
1 0 0
1 1 1
$_[0] && isa($_[0], 'XML::Twig::Elt')
8450 33
A B dec
0 0 0
0 1 1
1 X 1
isa($_[0], 'GLOB') || isa($_[0], 'IO::Scalar')
8454 50
A dec
0 0
1 1
$elt->inherit_att('xml:space') || ''
8468 50
A dec
0 0
1 1
$$elt{'att'}{'xml:space'} || ''
8505 67
A B dec
0 X 0
1 0 0
1 1 1
@options and grep {lc $_ eq 'no_recurse';} @options
8511 100
A dec
0 0
1 1
$$elt{'first_child'} || ''
8528 100
A B dec
0 0 0
0 1 1
1 X 1
$_->is_text or exists $$_{'ent'}
8539 100
A B dec
0 X 0
1 0 0
1 1 1
$_[0] and isa($_[0], 'HASH')
8545 100
A dec
0 0
1 1
$elt->inherit_att('xml:space') || ''
8552 40
A B C dec
0 0 X 0
0 1 0 0
0 1 1 1
1 X 0 0
1 X 1 1
$pretty == $WRAPPED || $pretty == $INDENTEDC and not $xml_space_preserve
8583 100
A dec
0 0
1 1
shift() || 0
8588 100
A dec
0 0
1 1
$$elt{'att'}{'xml:space'} || ''
8606 100
A B dec
0 X 0
1 0 0
1 1 1
$pretty >= $INDENTED and not $$elt{'parent'}{'contains_text'}
8609 100
A B dec
0 X 0
1 0 0
1 1 1
$pretty >= $INDENTED and not $$elt{'parent'}{'contains_text'}
8630 75
A B C dec
0 0 0 0
0 0 1 1
0 1 X 1
1 X X 1
not $replaced_ents or $keep_encoding or $$elt{'asis'}
8637 67
A B dec
0 0 0
0 1 1
1 X 1
$keep_encoding or $$elt{'asis'}
8642 67
A B dec
0 0 0
0 1 1
1 X 1
$keep_encoding or $$elt{'asis'}
8696 25
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$_[0] and $_[0]{'escape_gt'} and not $replace =~ />/
8731 40
A B C D dec
0 X X X 0
1 0 X X 0
1 1 0 X 0
1 1 1 0 0
1 1 1 1 1
$expand_external_entities and $t = $ent->twig and $el = $t->entity_list and $ent_string = $$el{'entities'}{$ent->ent_name}{'val'}
8745 67
A B dec
0 X 0
1 0 0
1 1 1
@options and grep {lc $_ eq 'no_recurse';} @options
8755 100
A dec
0 0
1 1
$$elt{'first_child'} || ''
8768 100
A B dec
0 0 0
0 1 1
1 X 1
$_->is_text or exists $$_{'ent'}
8802 33
A B dec
0 X 0
1 0 0
1 1 1
(delete $$cdata{'empty'} || 1) && $data
8805 33
A B dec
0 X 0
1 0 0
1 1 1
(delete $$cdata{'empty'} || 1) && $$cdata{'cdata'}
8823 100
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
@descendants and $$desc{'next_sibling'} and $$desc{'next_sibling'} == $descendants[0]
8843 67
A B dec
0 X 0
1 0 0
1 1 1
$data and my $start_element = $handler->can('start_element')
8849 67
A B dec
0 X 0
1 0 0
1 1 1
my $data = &$end_tag_data($elt) and my $end_element = $handler->can('end_element')
8854 67
A B dec
0 X 0
1 0 0
1 1 1
exists $$elt{'comment'} and my $comment = $handler->can('comment')
100
A B dec
0 X 0
1 0 0
1 1 1
exists $$elt{'pcdata'} and my $characters = $handler->can('characters')
67
A B dec
0 X 0
1 0 0
1 1 1
exists $$elt{'target'} and my $pi = $handler->can('processing_instruction')
8886 67
A B dec
0 X 0
1 0 0
1 1 1
substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 1) eq '#' and substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 9) ne '#default:'
8897 67
A B dec
0 X 0
1 0 0
1 1 1
substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 1) eq '#' and substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 9) ne '#default:'
8906 67
A B dec
0 X 0
1 0 0
1 1 1
substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 1) eq '#' and substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 9) ne '#default:'
8943 100
A B dec
0 X 0
1 0 0
1 1 1
my $start_prefix_mapping = $handler->can('start_prefix_mapping') and my(@new_prefix_mappings) = grep({/^\{$XMLNS_URI\}/ unless /^\{[^}]*\}xmlns/;} keys %{$$data{'Attributes'};})
8954 100
A dec
0 0
1 1
$$elt{'twig_end_prefix_mapping'} ||= []
8970 67
A B dec
0 X 0
1 0 0
1 1 1
substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 1) eq '#' and substr($XML::Twig::index2gi[$$elt{'gi'}], 0, 9) ne '#default:'
8978 100
A B dec
0 0 0
0 1 1
1 X 1
$child->is_text or exists $$child{'ent'}
8992 67
A B dec
0 X 0
1 0 0
1 1 1
(delete $$elt{'empty'} || 1) && $string
8997 33
A B dec
0 X 0
1 0 0
1 1 1
(delete $$elt{'empty'} || 1) && $string
9034 100
A B dec
0 X 0
1 0 0
1 1 1
not ref $_[0] and $_[0] eq $EMPTY
9039 100
A B C D dec
0 0 X X 0
0 1 0 X 0
0 1 1 0 0
0 1 1 1 1
1 X 0 X 0
1 X 1 0 0
1 X 1 1 1
$XML::Twig::index2gi[$$elt{'gi'}] eq $PCDATA || $elt->contains_a_single($PCDATA) and @_ == 1 and not ref $_[0]
50
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$XML::Twig::index2gi[$$elt{'gi'}] eq $CDATA and @_ == 1 and not ref $_[0]
9056 67
A B dec
0 X 0
1 0 0
1 1 1
ref $child and isa($child, 'XML::Twig::Elt')
9062 100
A B dec
0 X 0
1 0 0
1 1 1
my $pcdata = $$elt{'last_child'} and $$elt{'last_child'}->is_pcdata
9064 33
A B dec
0 X 0
1 0 0
1 1 1
(delete $$pcdata{'empty'} || 1) && $$pcdata{'pcdata'} . $child
9091 67
A B dec
0 X 0
1 0 0
1 1 1
defined $args[0] and isa($args[0], 'HASH')
9111 100
A B C D dec
0 0 0 0 0
0 0 0 1 1
0 0 1 X 1
0 1 X X 1
1 X X X 1
$position eq 'before' or $position eq 'after' or $position eq 'first_child' or $position eq 'last_child'
9148 25
A B C dec
0 X X 0
1 0 X 0
1 1 0 0
1 1 1 1
$twig and $twig->root and $twig->root eq $elt
9170 67
A B dec
0 X 0
1 0 0
1 1 1
defined $_[0] and isa($_[0], 'HASH')
9184 33
A B dec
0 X 0
1 0 0
1 1 1
$ref->twig and $ref == $ref->twig->root
9229 100
A B dec
0 X 0
1 0 0
1 1 1
$option && $option eq 'asis'
9230 50
A B C dec
0 X X 0
1 0 0 0
1 0 1 1
1 1 X 1
exists $$elt{'pcdata'} and $asis && $$elt{'asis'} || !($asis || $$elt{'asis'})
60
A B C D dec
0 X X X 0
1 0 X X 0
1 1 0 0 0
1 1 0 1 1
1 1 1 X 1
$$elt{'first_child'} and $$elt{'first_child'}->is_pcdata and $asis && $$elt{'first_child'}{'asis'} || !($asis || $$elt{'first_child'}{'asis'})
9233 33
A B dec
0 X 0
1 0 0
1 1 1
(delete $$elt{'empty'} || 1) && $prefix . $$elt{'pcdata'}
9253 100
A B dec
0 X 0
1 0 0
1 1 1
$option && $option eq 'asis'
9254 50
A B C dec
0 X X 0
1 0 0 0
1 0 1 1
1 1 X 1
exists $$elt{'pcdata'} and $asis && $$elt{'asis'} || !($asis || $$elt{'asis'})
60
A B C D dec
0 X X X 0
1 0 X X 0
1 1 0 0 0
1 1 0 1 1
1 1 1 X 1
$$elt{'last_child'} and $$elt{'last_child'}->is_pcdata and $asis && $$elt{'last_child'}{'asis'} || !($asis || $$elt{'last_child'}{'asis'})
9257 33
A B dec
0 X 0
1 0 0
1 1 1
(delete $$elt{'empty'} || 1) && $$elt{'pcdata'} . $suffix
9286 100
A B dec
0 X 0
1 0 0
1 1 1
$index == 1 and not $ancestor->next_sibling($gi)
9302 50
A dec
0 0
1 1
$child->start_tag({'escape_gt', 1}) || ''
9335 100
A dec
0 0
1 1
$atts ||= {}
9364 67
A B dec
0 0 0
0 1 1
1 X 1
$att ||= $cond
9373 67
A B dec
0 0 0
0 1 1
1 X 1
$tag ||= $att
9404 100
A dec
0 0
1 1
$opt{'order'} ||= 'normal'
9405 100
A dec
0 0
1 1
$opt{'type'} ||= 'alpha'
9491 100
A dec
0 0
1 1
$$a_prev{'prev_sibling'} || (return -1)
9493 100
A dec
0 0
1 1
$$a_next{'next_sibling'} || (return 1)
9495 100
A dec
0 0
1 1
$$b_prev{'prev_sibling'} || (return 1)
9497 100
A dec
0 0
1 1
$$b_next{'next_sibling'} || (return -1)
9518 100
A B dec
0 X 0
1 0 0
1 1 1
$atts and my(@atts) = $elt->att_names
9568 100
A B dec
0 0 0
0 1 1
1 X 1
not $length or length $string < $length