| line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
|
1
|
42
|
|
|
42
|
|
756524
|
use strict; |
|
|
42
|
|
|
|
|
173
|
|
|
|
42
|
|
|
|
|
1204
|
|
|
2
|
42
|
|
|
42
|
|
203
|
use warnings; |
|
|
42
|
|
|
|
|
92
|
|
|
|
42
|
|
|
|
|
2016
|
|
|
3
|
|
|
|
|
|
|
package YAML::PP::Common; |
|
4
|
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
our $VERSION = '0.036'; # VERSION |
|
6
|
|
|
|
|
|
|
|
|
7
|
42
|
|
|
42
|
|
310
|
use base 'Exporter'; |
|
|
42
|
|
|
|
|
76
|
|
|
|
42
|
|
|
|
|
11382
|
|
|
8
|
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
my @p = qw/ |
|
10
|
|
|
|
|
|
|
PRESERVE_ALL PRESERVE_ORDER PRESERVE_SCALAR_STYLE PRESERVE_FLOW_STYLE |
|
11
|
|
|
|
|
|
|
PRESERVE_ALIAS |
|
12
|
|
|
|
|
|
|
/; |
|
13
|
|
|
|
|
|
|
my @s = qw/ |
|
14
|
|
|
|
|
|
|
YAML_ANY_SCALAR_STYLE YAML_PLAIN_SCALAR_STYLE |
|
15
|
|
|
|
|
|
|
YAML_SINGLE_QUOTED_SCALAR_STYLE YAML_DOUBLE_QUOTED_SCALAR_STYLE |
|
16
|
|
|
|
|
|
|
YAML_LITERAL_SCALAR_STYLE YAML_FOLDED_SCALAR_STYLE |
|
17
|
|
|
|
|
|
|
YAML_QUOTED_SCALAR_STYLE |
|
18
|
|
|
|
|
|
|
|
|
19
|
|
|
|
|
|
|
YAML_ANY_SEQUENCE_STYLE |
|
20
|
|
|
|
|
|
|
YAML_BLOCK_SEQUENCE_STYLE YAML_FLOW_SEQUENCE_STYLE |
|
21
|
|
|
|
|
|
|
|
|
22
|
|
|
|
|
|
|
YAML_ANY_MAPPING_STYLE |
|
23
|
|
|
|
|
|
|
YAML_BLOCK_MAPPING_STYLE YAML_FLOW_MAPPING_STYLE |
|
24
|
|
|
|
|
|
|
/; |
|
25
|
|
|
|
|
|
|
our @EXPORT_OK = (@s, @p); |
|
26
|
|
|
|
|
|
|
|
|
27
|
|
|
|
|
|
|
our %EXPORT_TAGS = ( |
|
28
|
|
|
|
|
|
|
PRESERVE => [@p], |
|
29
|
|
|
|
|
|
|
STYLES => [@s], |
|
30
|
|
|
|
|
|
|
); |
|
31
|
|
|
|
|
|
|
|
|
32
|
|
|
|
|
|
|
use constant { |
|
33
|
42
|
|
|
|
|
54027
|
YAML_ANY_SCALAR_STYLE => 0, |
|
34
|
|
|
|
|
|
|
YAML_PLAIN_SCALAR_STYLE => 1, |
|
35
|
|
|
|
|
|
|
YAML_SINGLE_QUOTED_SCALAR_STYLE => 2, |
|
36
|
|
|
|
|
|
|
YAML_DOUBLE_QUOTED_SCALAR_STYLE => 3, |
|
37
|
|
|
|
|
|
|
YAML_LITERAL_SCALAR_STYLE => 4, |
|
38
|
|
|
|
|
|
|
YAML_FOLDED_SCALAR_STYLE => 5, |
|
39
|
|
|
|
|
|
|
YAML_QUOTED_SCALAR_STYLE => 'Q', # deprecated |
|
40
|
|
|
|
|
|
|
|
|
41
|
|
|
|
|
|
|
YAML_ANY_SEQUENCE_STYLE => 0, |
|
42
|
|
|
|
|
|
|
YAML_BLOCK_SEQUENCE_STYLE => 1, |
|
43
|
|
|
|
|
|
|
YAML_FLOW_SEQUENCE_STYLE => 2, |
|
44
|
|
|
|
|
|
|
|
|
45
|
|
|
|
|
|
|
YAML_ANY_MAPPING_STYLE => 0, |
|
46
|
|
|
|
|
|
|
YAML_BLOCK_MAPPING_STYLE => 1, |
|
47
|
|
|
|
|
|
|
YAML_FLOW_MAPPING_STYLE => 2, |
|
48
|
|
|
|
|
|
|
|
|
49
|
|
|
|
|
|
|
PRESERVE_ORDER => 2, |
|
50
|
|
|
|
|
|
|
PRESERVE_SCALAR_STYLE => 4, |
|
51
|
|
|
|
|
|
|
PRESERVE_FLOW_STYLE => 8, |
|
52
|
|
|
|
|
|
|
PRESERVE_ALIAS => 16, |
|
53
|
|
|
|
|
|
|
|
|
54
|
|
|
|
|
|
|
PRESERVE_ALL => 31, |
|
55
|
42
|
|
|
42
|
|
337
|
}; |
|
|
42
|
|
|
|
|
112
|
|
|
56
|
|
|
|
|
|
|
|
|
57
|
|
|
|
|
|
|
my %scalar_style_to_string = ( |
|
58
|
|
|
|
|
|
|
YAML_PLAIN_SCALAR_STYLE() => ':', |
|
59
|
|
|
|
|
|
|
YAML_SINGLE_QUOTED_SCALAR_STYLE() => "'", |
|
60
|
|
|
|
|
|
|
YAML_DOUBLE_QUOTED_SCALAR_STYLE() => '"', |
|
61
|
|
|
|
|
|
|
YAML_LITERAL_SCALAR_STYLE() => '|', |
|
62
|
|
|
|
|
|
|
YAML_FOLDED_SCALAR_STYLE() => '>', |
|
63
|
|
|
|
|
|
|
); |
|
64
|
|
|
|
|
|
|
|
|
65
|
|
|
|
|
|
|
|
|
66
|
|
|
|
|
|
|
sub event_to_test_suite { |
|
67
|
5698
|
|
|
5698
|
1
|
42168
|
my ($event, $args) = @_; |
|
68
|
5698
|
|
|
|
|
8556
|
my $ev = $event->{name}; |
|
69
|
5698
|
|
|
|
|
7277
|
my $string; |
|
70
|
5698
|
|
|
|
|
7908
|
my $content = $event->{value}; |
|
71
|
|
|
|
|
|
|
|
|
72
|
5698
|
|
|
|
|
7454
|
my $properties = ''; |
|
73
|
5698
|
100
|
|
|
|
10910
|
$properties .= " &$event->{anchor}" if defined $event->{anchor}; |
|
74
|
5698
|
100
|
|
|
|
10193
|
$properties .= " <$event->{tag}>" if defined $event->{tag}; |
|
75
|
|
|
|
|
|
|
|
|
76
|
5698
|
100
|
|
|
|
21111
|
if ($ev eq 'document_start_event') { |
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
77
|
332
|
|
|
|
|
468
|
$string = "+DOC"; |
|
78
|
332
|
100
|
|
|
|
828
|
$string .= " ---" unless $event->{implicit}; |
|
79
|
|
|
|
|
|
|
} |
|
80
|
|
|
|
|
|
|
elsif ($ev eq 'document_end_event') { |
|
81
|
327
|
|
|
|
|
475
|
$string = "-DOC"; |
|
82
|
327
|
100
|
|
|
|
689
|
$string .= " ..." unless $event->{implicit}; |
|
83
|
|
|
|
|
|
|
} |
|
84
|
|
|
|
|
|
|
elsif ($ev eq 'stream_start_event') { |
|
85
|
267
|
|
|
|
|
400
|
$string = "+STR"; |
|
86
|
|
|
|
|
|
|
} |
|
87
|
|
|
|
|
|
|
elsif ($ev eq 'stream_end_event') { |
|
88
|
260
|
|
|
|
|
363
|
$string = "-STR"; |
|
89
|
|
|
|
|
|
|
} |
|
90
|
|
|
|
|
|
|
elsif ($ev eq 'mapping_start_event') { |
|
91
|
591
|
|
|
|
|
805
|
$string = "+MAP"; |
|
92
|
591
|
100
|
66
|
|
|
1574
|
if ($event->{style} and $event->{style} eq YAML_FLOW_MAPPING_STYLE) { |
|
93
|
175
|
100
|
|
|
|
399
|
$string .= ' {}' if $args->{flow}; |
|
94
|
|
|
|
|
|
|
} |
|
95
|
591
|
|
|
|
|
931
|
$string .= $properties; |
|
96
|
591
|
|
|
|
|
691
|
if (0) { |
|
97
|
|
|
|
|
|
|
# doesn't match yaml-test-suite format |
|
98
|
|
|
|
|
|
|
} |
|
99
|
|
|
|
|
|
|
} |
|
100
|
|
|
|
|
|
|
elsif ($ev eq 'sequence_start_event') { |
|
101
|
557
|
|
|
|
|
792
|
$string = "+SEQ"; |
|
102
|
557
|
100
|
66
|
|
|
1575
|
if ($event->{style} and $event->{style} eq YAML_FLOW_SEQUENCE_STYLE) { |
|
103
|
198
|
100
|
|
|
|
476
|
$string .= ' []' if $args->{flow}; |
|
104
|
|
|
|
|
|
|
} |
|
105
|
557
|
|
|
|
|
951
|
$string .= $properties; |
|
106
|
557
|
|
|
|
|
685
|
if (0) { |
|
107
|
|
|
|
|
|
|
# doesn't match yaml-test-suite format |
|
108
|
|
|
|
|
|
|
} |
|
109
|
|
|
|
|
|
|
} |
|
110
|
|
|
|
|
|
|
elsif ($ev eq 'mapping_end_event') { |
|
111
|
588
|
|
|
|
|
883
|
$string = "-MAP"; |
|
112
|
|
|
|
|
|
|
} |
|
113
|
|
|
|
|
|
|
elsif ($ev eq 'sequence_end_event') { |
|
114
|
557
|
|
|
|
|
813
|
$string = "-SEQ"; |
|
115
|
|
|
|
|
|
|
} |
|
116
|
|
|
|
|
|
|
elsif ($ev eq 'scalar_event') { |
|
117
|
2189
|
|
|
|
|
2977
|
$string = '=VAL'; |
|
118
|
2189
|
|
|
|
|
3727
|
$string .= $properties; |
|
119
|
|
|
|
|
|
|
|
|
120
|
2189
|
|
|
|
|
3985
|
$content =~ s/\\/\\\\/g; |
|
121
|
2189
|
|
|
|
|
3304
|
$content =~ s/\t/\\t/g; |
|
122
|
2189
|
|
|
|
|
3119
|
$content =~ s/\r/\\r/g; |
|
123
|
2189
|
|
|
|
|
3068
|
$content =~ s/\n/\\n/g; |
|
124
|
2189
|
|
|
|
|
2873
|
$content =~ s/[\b]/\\b/g; |
|
125
|
|
|
|
|
|
|
|
|
126
|
|
|
|
|
|
|
$string .= ' ' |
|
127
|
|
|
|
|
|
|
. $scalar_style_to_string{ $event->{style} } |
|
128
|
2189
|
|
|
|
|
4948
|
. $content; |
|
129
|
|
|
|
|
|
|
} |
|
130
|
|
|
|
|
|
|
elsif ($ev eq 'alias_event') { |
|
131
|
30
|
|
|
|
|
67
|
$string = "=ALI *$content"; |
|
132
|
|
|
|
|
|
|
} |
|
133
|
5698
|
|
|
|
|
16044
|
return $string; |
|
134
|
|
|
|
|
|
|
} |
|
135
|
|
|
|
|
|
|
|
|
136
|
|
|
|
|
|
|
sub test_suite_to_event { |
|
137
|
30
|
|
|
30
|
1
|
118
|
my ($str) = @_; |
|
138
|
30
|
|
|
|
|
45
|
my $event = {}; |
|
139
|
30
|
100
|
|
|
|
223
|
if ($str =~ s/^\+STR//) { |
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
100
|
|
|
|
|
|
|
|
|
50
|
|
|
|
|
|
|
140
|
1
|
|
|
|
|
3
|
$event->{name} = 'stream_start_event'; |
|
141
|
|
|
|
|
|
|
} |
|
142
|
|
|
|
|
|
|
elsif ($str =~ s/^\-STR//) { |
|
143
|
1
|
|
|
|
|
2
|
$event->{name} = 'stream_end_event'; |
|
144
|
|
|
|
|
|
|
} |
|
145
|
|
|
|
|
|
|
elsif ($str =~ s/^\+DOC//) { |
|
146
|
1
|
|
|
|
|
3
|
$event->{name} = 'document_start_event'; |
|
147
|
1
|
50
|
|
|
|
5
|
if ($str =~ s/^ ---//) { |
|
148
|
1
|
|
|
|
|
3
|
$event->{implicit} = 0; |
|
149
|
|
|
|
|
|
|
} |
|
150
|
|
|
|
|
|
|
else { |
|
151
|
0
|
|
|
|
|
0
|
$event->{implicit} = 1; |
|
152
|
|
|
|
|
|
|
} |
|
153
|
|
|
|
|
|
|
} |
|
154
|
|
|
|
|
|
|
elsif ($str =~ s/^\-DOC//) { |
|
155
|
1
|
|
|
|
|
3
|
$event->{name} = 'document_end_event'; |
|
156
|
1
|
50
|
|
|
|
3
|
if ($str =~ s/^ \.\.\.//) { |
|
157
|
0
|
|
|
|
|
0
|
$event->{implicit} = 0; |
|
158
|
|
|
|
|
|
|
} |
|
159
|
|
|
|
|
|
|
else { |
|
160
|
1
|
|
|
|
|
2
|
$event->{implicit} = 1; |
|
161
|
|
|
|
|
|
|
} |
|
162
|
|
|
|
|
|
|
} |
|
163
|
|
|
|
|
|
|
elsif ($str =~ s/^\+SEQ//) { |
|
164
|
3
|
|
|
|
|
7
|
$event->{name} = 'sequence_start_event'; |
|
165
|
3
|
50
|
|
|
|
10
|
if ($str =~ s/^ \&(\S+)//) { |
|
166
|
0
|
|
|
|
|
0
|
$event->{anchor} = $1; |
|
167
|
|
|
|
|
|
|
} |
|
168
|
3
|
100
|
|
|
|
12
|
if ($str =~ s/^ <(\S+)>//) { |
|
169
|
1
|
|
|
|
|
4
|
$event->{tag} = $1; |
|
170
|
|
|
|
|
|
|
} |
|
171
|
|
|
|
|
|
|
} |
|
172
|
|
|
|
|
|
|
elsif ($str =~ s/^\-SEQ//) { |
|
173
|
3
|
|
|
|
|
7
|
$event->{name} = 'sequence_end_event'; |
|
174
|
|
|
|
|
|
|
} |
|
175
|
|
|
|
|
|
|
elsif ($str =~ s/^\+MAP//) { |
|
176
|
5
|
|
|
|
|
11
|
$event->{name} = 'mapping_start_event'; |
|
177
|
5
|
100
|
|
|
|
13
|
if ($str =~ s/^ \&(\S+)//) { |
|
178
|
1
|
|
|
|
|
9
|
$event->{anchor} = $1; |
|
179
|
|
|
|
|
|
|
} |
|
180
|
5
|
100
|
|
|
|
18
|
if ($str =~ s/^ <(\S+)>//) { |
|
181
|
2
|
|
|
|
|
17
|
$event->{tag} = $1; |
|
182
|
|
|
|
|
|
|
} |
|
183
|
|
|
|
|
|
|
} |
|
184
|
|
|
|
|
|
|
elsif ($str =~ s/^\-MAP//) { |
|
185
|
5
|
|
|
|
|
10
|
$event->{name} = 'mapping_end_event'; |
|
186
|
|
|
|
|
|
|
} |
|
187
|
|
|
|
|
|
|
elsif ($str =~ s/^=VAL//) { |
|
188
|
4
|
|
|
|
|
10
|
$event->{name} = 'scalar_event'; |
|
189
|
4
|
100
|
|
|
|
12
|
if ($str =~ s/^ <(\S+)>//) { |
|
190
|
1
|
|
|
|
|
3
|
$event->{tag} = $1; |
|
191
|
|
|
|
|
|
|
} |
|
192
|
4
|
50
|
|
|
|
15
|
if ($str =~ s/^ [:'">|]//) { |
|
193
|
4
|
|
|
|
|
9
|
$event->{style} = $1; |
|
194
|
|
|
|
|
|
|
} |
|
195
|
4
|
50
|
|
|
|
13
|
if ($str =~ s/^(.*)//) { |
|
196
|
4
|
|
|
|
|
9
|
$event->{value} = $1; |
|
197
|
|
|
|
|
|
|
} |
|
198
|
|
|
|
|
|
|
} |
|
199
|
|
|
|
|
|
|
elsif ($str =~ s/^=ALI//) { |
|
200
|
6
|
|
|
|
|
13
|
$event->{name} = 'alias_event'; |
|
201
|
6
|
50
|
|
|
|
19
|
if ($str =~ s/^ \*(.*)//) { |
|
202
|
6
|
|
|
|
|
18
|
$event->{value} = $1; |
|
203
|
|
|
|
|
|
|
} |
|
204
|
|
|
|
|
|
|
} |
|
205
|
|
|
|
|
|
|
else { |
|
206
|
0
|
|
|
|
|
0
|
die "Could not parse event '$str'"; |
|
207
|
|
|
|
|
|
|
} |
|
208
|
30
|
|
|
|
|
65
|
return $event; |
|
209
|
|
|
|
|
|
|
} |
|
210
|
|
|
|
|
|
|
|
|
211
|
|
|
|
|
|
|
|
|
212
|
|
|
|
|
|
|
1; |
|
213
|
|
|
|
|
|
|
|
|
214
|
|
|
|
|
|
|
__END__ |