line |
true |
false |
branch |
169
|
0 |
1050 |
assert(parser); /* Non-NULL parser object is expected. */ |
170
|
0 |
1050 |
assert(event); /* Non-NULL event object is expected. */ |
178
|
1050 |
0 |
if (parser->stream_end_produced || |
|
20 |
1030 |
if (parser->stream_end_produced || |
179
|
20 |
0 |
(parser->error && |
181
|
20 |
0 |
(!parser->problem_nonstrict || parser->error != YAML_READER_ERROR)) || |
|
0 |
1050 |
(!parser->problem_nonstrict || parser->error != YAML_READER_ERROR)) || |
317
|
109 |
0 |
token = PEEK_TOKEN(parser); |
|
108 |
1 |
token = PEEK_TOKEN(parser); |
318
|
1 |
108 |
if (!token) return 0; |
320
|
0 |
108 |
if (token->type != YAML_STREAM_START_TOKEN) { |
352
|
108 |
106 |
token = PEEK_TOKEN(parser); |
|
107 |
1 |
token = PEEK_TOKEN(parser); |
353
|
1 |
213 |
if (!token) return 0; |
357
|
106 |
107 |
if (!implicit) |
359
|
0 |
106 |
while (token->type == YAML_DOCUMENT_END_TOKEN) { |
361
|
0 |
0 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
362
|
0 |
0 |
if (!token) return 0; |
368
|
107 |
106 |
if (implicit && token->type != YAML_VERSION_DIRECTIVE_TOKEN && |
|
107 |
0 |
if (implicit && token->type != YAML_VERSION_DIRECTIVE_TOKEN && |
|
107 |
0 |
if (implicit && token->type != YAML_VERSION_DIRECTIVE_TOKEN && |
369
|
20 |
87 |
token->type != YAML_TAG_DIRECTIVE_TOKEN && |
370
|
15 |
5 |
token->type != YAML_DOCUMENT_START_TOKEN && |
373
|
0 |
15 |
if (!yaml_parser_process_directives(parser, NULL, NULL, NULL)) |
375
|
0 |
15 |
if (!PUSH(parser, parser->states, YAML_PARSE_DOCUMENT_END_STATE)) |
|
0 |
0 |
if (!PUSH(parser, parser->states, YAML_PARSE_DOCUMENT_END_STATE)) |
|
0 |
15 |
if (!PUSH(parser, parser->states, YAML_PARSE_DOCUMENT_END_STATE)) |
385
|
97 |
101 |
else if (token->type != YAML_STREAM_END_TOKEN) |
389
|
0 |
97 |
if (!yaml_parser_process_directives(parser, &version_directive, |
392
|
0 |
97 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
393
|
0 |
97 |
if (!token) |
395
|
0 |
97 |
if (token->type != YAML_DOCUMENT_START_TOKEN) { |
400
|
0 |
97 |
if (!PUSH(parser, parser->states, YAML_PARSE_DOCUMENT_END_STATE)) |
|
0 |
0 |
if (!PUSH(parser, parser->states, YAML_PARSE_DOCUMENT_END_STATE)) |
|
0 |
97 |
if (!PUSH(parser, parser->states, YAML_PARSE_DOCUMENT_END_STATE)) |
425
|
0 |
0 |
while (tag_directives.start != tag_directives.end) { |
445
|
97 |
0 |
token = PEEK_TOKEN(parser); |
|
96 |
1 |
token = PEEK_TOKEN(parser); |
446
|
1 |
96 |
if (!token) return 0; |
448
|
96 |
0 |
if (token->type == YAML_VERSION_DIRECTIVE_TOKEN || |
|
96 |
0 |
if (token->type == YAML_VERSION_DIRECTIVE_TOKEN || |
449
|
96 |
0 |
token->type == YAML_TAG_DIRECTIVE_TOKEN || |
450
|
96 |
0 |
token->type == YAML_DOCUMENT_START_TOKEN || |
451
|
0 |
96 |
token->type == YAML_DOCUMENT_END_TOKEN || |
477
|
106 |
0 |
token = PEEK_TOKEN(parser); |
|
106 |
0 |
token = PEEK_TOKEN(parser); |
478
|
0 |
106 |
if (!token) return 0; |
482
|
0 |
106 |
if (token->type == YAML_DOCUMENT_END_TOKEN) { |
488
|
212 |
106 |
while (!STACK_EMPTY(parser, parser->tag_directives)) { |
541
|
0 |
483 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
542
|
0 |
483 |
if (!token) return 0; |
544
|
16 |
467 |
if (token->type == YAML_ALIAS_TOKEN) |
557
|
17 |
450 |
if (token->type == YAML_ANCHOR_TOKEN) |
563
|
17 |
0 |
token = PEEK_TOKEN(parser); |
|
17 |
0 |
token = PEEK_TOKEN(parser); |
564
|
0 |
17 |
if (!token) |
566
|
4 |
13 |
if (token->type == YAML_TAG_TOKEN) |
573
|
4 |
0 |
token = PEEK_TOKEN(parser); |
|
4 |
0 |
token = PEEK_TOKEN(parser); |
574
|
0 |
4 |
if (!token) |
578
|
78 |
372 |
else if (token->type == YAML_TAG_TOKEN) |
585
|
78 |
0 |
token = PEEK_TOKEN(parser); |
|
78 |
0 |
token = PEEK_TOKEN(parser); |
586
|
0 |
78 |
if (!token) |
588
|
0 |
78 |
if (token->type == YAML_ANCHOR_TOKEN) |
593
|
0 |
0 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
594
|
0 |
0 |
if (!token) |
599
|
82 |
385 |
if (tag_handle) { |
600
|
2 |
80 |
if (!*tag_handle) { |
607
|
151 |
0 |
for (tag_directive = parser->tag_directives.start; |
610
|
80 |
71 |
if (strcmp((char *)tag_directive->handle, (char *)tag_handle) == 0) { |
614
|
0 |
80 |
if (!tag) { |
627
|
0 |
80 |
if (!tag) { |
636
|
82 |
385 |
implicit = (!tag || !*tag); |
|
0 |
82 |
implicit = (!tag || !*tag); |
637
|
224 |
243 |
if (indentless_sequence && token->type == YAML_BLOCK_ENTRY_TOKEN) { |
|
3 |
221 |
if (indentless_sequence && token->type == YAML_BLOCK_ENTRY_TOKEN) { |
645
|
335 |
129 |
if (token->type == YAML_SCALAR_TOKEN) { |
649
|
301 |
34 |
if ((token->data.scalar.style == YAML_PLAIN_SCALAR_STYLE && !tag) |
|
28 |
273 |
if ((token->data.scalar.style == YAML_PLAIN_SCALAR_STYLE && !tag) |
650
|
34 |
28 |
|| (tag && strcmp((char *)tag, "!") == 0)) { |
|
0 |
34 |
|| (tag && strcmp((char *)tag, "!") == 0)) { |
653
|
28 |
34 |
else if (!tag) { |
664
|
12 |
117 |
else if (token->type == YAML_FLOW_SEQUENCE_START_TOKEN) { |
671
|
14 |
103 |
else if (token->type == YAML_FLOW_MAPPING_START_TOKEN) { |
678
|
103 |
0 |
else if (block && token->type == YAML_BLOCK_SEQUENCE_START_TOKEN) { |
|
37 |
66 |
else if (block && token->type == YAML_BLOCK_SEQUENCE_START_TOKEN) { |
685
|
66 |
0 |
else if (block && token->type == YAML_BLOCK_MAPPING_START_TOKEN) { |
|
62 |
4 |
else if (block && token->type == YAML_BLOCK_MAPPING_START_TOKEN) { |
692
|
2 |
2 |
else if (anchor || tag) { |
|
2 |
0 |
else if (anchor || tag) { |
694
|
0 |
4 |
if (!value) { |
706
|
0 |
0 |
yaml_parser_set_parser_error_context(parser, |
736
|
37 |
107 |
if (first) { |
737
|
0 |
37 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
738
|
0 |
37 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
|
0 |
0 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
|
0 |
37 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
743
|
137 |
7 |
token = PEEK_TOKEN(parser); |
|
137 |
0 |
token = PEEK_TOKEN(parser); |
744
|
0 |
144 |
if (!token) return 0; |
746
|
107 |
37 |
if (token->type == YAML_BLOCK_ENTRY_TOKEN) |
750
|
107 |
0 |
token = PEEK_TOKEN(parser); |
|
107 |
0 |
token = PEEK_TOKEN(parser); |
751
|
0 |
107 |
if (!token) return 0; |
752
|
107 |
0 |
if (token->type != YAML_BLOCK_ENTRY_TOKEN && |
|
104 |
3 |
if (token->type != YAML_BLOCK_ENTRY_TOKEN && |
754
|
0 |
104 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
104 |
if (!PUSH(parser, parser->states, |
765
|
37 |
0 |
else if (token->type == YAML_BLOCK_END_TOKEN) |
794
|
5 |
4 |
token = PEEK_TOKEN(parser); |
|
5 |
0 |
token = PEEK_TOKEN(parser); |
795
|
0 |
9 |
if (!token) return 0; |
797
|
6 |
3 |
if (token->type == YAML_BLOCK_ENTRY_TOKEN) |
801
|
6 |
0 |
token = PEEK_TOKEN(parser); |
|
6 |
0 |
token = PEEK_TOKEN(parser); |
802
|
0 |
6 |
if (!token) return 0; |
803
|
5 |
1 |
if (token->type != YAML_BLOCK_ENTRY_TOKEN && |
|
5 |
0 |
if (token->type != YAML_BLOCK_ENTRY_TOKEN && |
804
|
5 |
0 |
token->type != YAML_KEY_TOKEN && |
805
|
5 |
0 |
token->type != YAML_VALUE_TOKEN && |
807
|
0 |
5 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
5 |
if (!PUSH(parser, parser->states, |
844
|
62 |
114 |
if (first) { |
845
|
0 |
62 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
846
|
0 |
62 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
|
0 |
0 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
|
0 |
62 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
851
|
172 |
4 |
token = PEEK_TOKEN(parser); |
|
171 |
1 |
token = PEEK_TOKEN(parser); |
852
|
1 |
175 |
if (!token) return 0; |
854
|
115 |
60 |
if (token->type == YAML_KEY_TOKEN) |
858
|
115 |
0 |
token = PEEK_TOKEN(parser); |
|
115 |
0 |
token = PEEK_TOKEN(parser); |
859
|
0 |
115 |
if (!token) return 0; |
860
|
115 |
0 |
if (token->type != YAML_KEY_TOKEN && |
|
115 |
0 |
if (token->type != YAML_KEY_TOKEN && |
861
|
115 |
0 |
token->type != YAML_VALUE_TOKEN && |
863
|
0 |
115 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
115 |
if (!PUSH(parser, parser->states, |
874
|
59 |
1 |
else if (token->type == YAML_BLOCK_END_TOKEN) |
909
|
115 |
0 |
token = PEEK_TOKEN(parser); |
|
115 |
0 |
token = PEEK_TOKEN(parser); |
910
|
0 |
115 |
if (!token) return 0; |
912
|
115 |
0 |
if (token->type == YAML_VALUE_TOKEN) |
916
|
115 |
0 |
token = PEEK_TOKEN(parser); |
|
114 |
1 |
token = PEEK_TOKEN(parser); |
917
|
1 |
114 |
if (!token) return 0; |
918
|
113 |
1 |
if (token->type != YAML_KEY_TOKEN && |
|
113 |
0 |
if (token->type != YAML_KEY_TOKEN && |
919
|
113 |
0 |
token->type != YAML_VALUE_TOKEN && |
921
|
0 |
113 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
113 |
if (!PUSH(parser, parser->states, |
959
|
12 |
14 |
if (first) { |
960
|
0 |
12 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
961
|
0 |
12 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
|
0 |
0 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
|
0 |
12 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
966
|
25 |
1 |
token = PEEK_TOKEN(parser); |
|
25 |
0 |
token = PEEK_TOKEN(parser); |
967
|
0 |
26 |
if (!token) return 0; |
969
|
14 |
12 |
if (token->type != YAML_FLOW_SEQUENCE_END_TOKEN) |
971
|
5 |
9 |
if (!first) { |
972
|
5 |
0 |
if (token->type == YAML_FLOW_ENTRY_TOKEN) { |
974
|
5 |
0 |
token = PEEK_TOKEN(parser); |
|
5 |
0 |
token = PEEK_TOKEN(parser); |
975
|
0 |
5 |
if (!token) return 0; |
984
|
1 |
13 |
if (token->type == YAML_KEY_TOKEN) { |
993
|
13 |
0 |
else if (token->type != YAML_FLOW_SEQUENCE_END_TOKEN) { |
994
|
0 |
13 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
13 |
if (!PUSH(parser, parser->states, |
1020
|
1 |
0 |
token = PEEK_TOKEN(parser); |
|
1 |
0 |
token = PEEK_TOKEN(parser); |
1021
|
0 |
1 |
if (!token) return 0; |
1023
|
1 |
0 |
if (token->type != YAML_VALUE_TOKEN && token->type != YAML_FLOW_ENTRY_TOKEN |
|
1 |
0 |
if (token->type != YAML_VALUE_TOKEN && token->type != YAML_FLOW_ENTRY_TOKEN |
1024
|
1 |
0 |
&& token->type != YAML_FLOW_SEQUENCE_END_TOKEN) { |
1025
|
0 |
1 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
1 |
if (!PUSH(parser, parser->states, |
1050
|
1 |
0 |
token = PEEK_TOKEN(parser); |
|
1 |
0 |
token = PEEK_TOKEN(parser); |
1051
|
0 |
1 |
if (!token) return 0; |
1053
|
1 |
0 |
if (token->type == YAML_VALUE_TOKEN) { |
1055
|
1 |
0 |
token = PEEK_TOKEN(parser); |
|
1 |
0 |
token = PEEK_TOKEN(parser); |
1056
|
0 |
1 |
if (!token) return 0; |
1057
|
1 |
0 |
if (token->type != YAML_FLOW_ENTRY_TOKEN |
1058
|
1 |
0 |
&& token->type != YAML_FLOW_SEQUENCE_END_TOKEN) { |
1059
|
0 |
1 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
1 |
if (!PUSH(parser, parser->states, |
1081
|
1 |
0 |
token = PEEK_TOKEN(parser); |
|
1 |
0 |
token = PEEK_TOKEN(parser); |
1082
|
0 |
1 |
if (!token) return 0; |
1110
|
14 |
11 |
if (first) { |
1111
|
0 |
14 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
1112
|
0 |
14 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
|
0 |
0 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
|
0 |
14 |
if (!PUSH(parser, parser->marks, token->start_mark)) |
1117
|
23 |
2 |
token = PEEK_TOKEN(parser); |
|
23 |
0 |
token = PEEK_TOKEN(parser); |
1118
|
0 |
25 |
if (!token) return 0; |
1120
|
11 |
14 |
if (token->type != YAML_FLOW_MAPPING_END_TOKEN) |
1122
|
3 |
8 |
if (!first) { |
1123
|
3 |
0 |
if (token->type == YAML_FLOW_ENTRY_TOKEN) { |
1125
|
3 |
0 |
token = PEEK_TOKEN(parser); |
|
3 |
0 |
token = PEEK_TOKEN(parser); |
1126
|
0 |
3 |
if (!token) return 0; |
1135
|
9 |
2 |
if (token->type == YAML_KEY_TOKEN) { |
1137
|
9 |
0 |
token = PEEK_TOKEN(parser); |
|
9 |
0 |
token = PEEK_TOKEN(parser); |
1138
|
0 |
9 |
if (!token) return 0; |
1139
|
9 |
0 |
if (token->type != YAML_VALUE_TOKEN |
1140
|
9 |
0 |
&& token->type != YAML_FLOW_ENTRY_TOKEN |
1141
|
9 |
0 |
&& token->type != YAML_FLOW_MAPPING_END_TOKEN) { |
1142
|
0 |
9 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
9 |
if (!PUSH(parser, parser->states, |
1153
|
2 |
0 |
else if (token->type != YAML_FLOW_MAPPING_END_TOKEN) { |
1154
|
0 |
2 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
2 |
if (!PUSH(parser, parser->states, |
1180
|
11 |
0 |
token = PEEK_TOKEN(parser); |
|
11 |
0 |
token = PEEK_TOKEN(parser); |
1181
|
0 |
11 |
if (!token) return 0; |
1183
|
2 |
9 |
if (empty) { |
1189
|
9 |
0 |
if (token->type == YAML_VALUE_TOKEN) { |
1191
|
9 |
0 |
token = PEEK_TOKEN(parser); |
|
9 |
0 |
token = PEEK_TOKEN(parser); |
1192
|
0 |
9 |
if (!token) return 0; |
1193
|
9 |
0 |
if (token->type != YAML_FLOW_ENTRY_TOKEN |
1194
|
9 |
0 |
&& token->type != YAML_FLOW_MAPPING_END_TOKEN) { |
1195
|
0 |
9 |
if (!PUSH(parser, parser->states, |
|
0 |
0 |
if (!PUSH(parser, parser->states, |
|
0 |
9 |
if (!PUSH(parser, parser->states, |
1217
|
0 |
7 |
if (!value) { |
1253
|
112 |
0 |
if (!STACK_INIT(parser, tag_directives, yaml_tag_directive_t*)) |
|
0 |
112 |
if (!STACK_INIT(parser, tag_directives, yaml_tag_directive_t*)) |
1256
|
0 |
112 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
1257
|
0 |
112 |
if (!token) |
1260
|
0 |
112 |
while (token->type == YAML_VERSION_DIRECTIVE_TOKEN || |
|
0 |
112 |
while (token->type == YAML_VERSION_DIRECTIVE_TOKEN || |
1263
|
0 |
0 |
if (token->type == YAML_VERSION_DIRECTIVE_TOKEN) { |
1264
|
0 |
0 |
if (version_directive) { |
1269
|
0 |
0 |
if (token->data.version_directive.major != 1 |
1270
|
0 |
0 |
|| token->data.version_directive.minor != 1) { |
1276
|
0 |
0 |
if (!version_directive) { |
1284
|
0 |
0 |
else if (token->type == YAML_TAG_DIRECTIVE_TOKEN) { |
1289
|
0 |
0 |
if (!yaml_parser_append_tag_directive(parser, value, 0, |
1292
|
0 |
0 |
if (!PUSH(parser, tag_directives, value)) |
|
0 |
0 |
if (!PUSH(parser, tag_directives, value)) |
|
0 |
0 |
if (!PUSH(parser, tag_directives, value)) |
1297
|
0 |
0 |
token = PEEK_TOKEN(parser); |
|
0 |
0 |
token = PEEK_TOKEN(parser); |
1298
|
0 |
0 |
if (!token) |
1302
|
224 |
112 |
for (default_tag_directive = default_tag_directives; |
1304
|
0 |
224 |
if (!yaml_parser_append_tag_directive(parser, *default_tag_directive, 1, |
1309
|
97 |
15 |
if (version_directive_ref) { |
1312
|
97 |
15 |
if (tag_directives_start_ref) { |
1313
|
97 |
0 |
if (STACK_EMPTY(parser, tag_directives)) { |
1326
|
15 |
97 |
if (!version_directive_ref) |
1332
|
0 |
0 |
while (!STACK_EMPTY(parser, tag_directives)) { |
1352
|
112 |
224 |
for (tag_directive = parser->tag_directives.start; |
1354
|
0 |
112 |
if (strcmp((char *)value.handle, (char *)tag_directive->handle) == 0) { |
1355
|
0 |
0 |
if (allow_duplicates) |
1364
|
224 |
0 |
if (!copy.handle || !copy.prefix) { |
|
0 |
224 |
if (!copy.handle || !copy.prefix) { |
1369
|
0 |
224 |
if (!PUSH(parser, parser->tag_directives, copy)) |
|
0 |
0 |
if (!PUSH(parser, parser->tag_directives, copy)) |
|
0 |
224 |
if (!PUSH(parser, parser->tag_directives, copy)) |