nutcracker 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +22 -0
- data/Rakefile +55 -0
- data/bin/nutcracker +2 -0
- data/ext/nutcracker/ChangeLog +66 -0
- data/ext/nutcracker/LICENSE +177 -0
- data/ext/nutcracker/Makefile.am +7 -0
- data/ext/nutcracker/Makefile.in +726 -0
- data/ext/nutcracker/NOTICE +124 -0
- data/ext/nutcracker/README.md +240 -0
- data/ext/nutcracker/aclocal.m4 +956 -0
- data/ext/nutcracker/conf/nutcracker.leaf.yml +10 -0
- data/ext/nutcracker/conf/nutcracker.root.yml +8 -0
- data/ext/nutcracker/conf/nutcracker.yml +67 -0
- data/ext/nutcracker/config.h.in +316 -0
- data/ext/nutcracker/config/config.guess +1561 -0
- data/ext/nutcracker/config/config.sub +1686 -0
- data/ext/nutcracker/config/depcomp +630 -0
- data/ext/nutcracker/config/install-sh +520 -0
- data/ext/nutcracker/config/ltmain.sh +8413 -0
- data/ext/nutcracker/config/missing +376 -0
- data/ext/nutcracker/configure +18862 -0
- data/ext/nutcracker/configure.ac +155 -0
- data/ext/nutcracker/contrib/Makefile.am +3 -0
- data/ext/nutcracker/contrib/Makefile.in +560 -0
- data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/LICENSE +19 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.am +20 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.in +736 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/README +27 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/aclocal.m4 +956 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in +80 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/config.guess +1561 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/config.sub +1686 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/depcomp +630 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/install-sh +520 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/ltmain.sh +8406 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config/missing +376 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/configure +13085 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/configure.ac +75 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/doxygen.cfg +222 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/include/yaml.h +1971 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/libtool.m4 +7357 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltoptions.m4 +368 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltsugar.m4 +123 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltversion.m4 +23 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/m4/lt~obsolete.m4 +92 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.am +4 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.in +484 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/api.c +1392 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.c +394 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.c +2329 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.c +432 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.c +1374 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.c +465 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.c +3570 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.c +141 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/yaml_private.h +640 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.am +8 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.in +675 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.c +800 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.c +1130 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.c +217 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.c +202 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.c +311 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.c +327 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.c +63 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.c +63 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.c +63 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-reader.c +354 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-version.c +29 -0
- data/ext/nutcracker/extconf.rb +5 -0
- data/ext/nutcracker/m4/libtool.m4 +7376 -0
- data/ext/nutcracker/m4/ltoptions.m4 +368 -0
- data/ext/nutcracker/m4/ltsugar.m4 +123 -0
- data/ext/nutcracker/m4/ltversion.m4 +23 -0
- data/ext/nutcracker/m4/lt~obsolete.m4 +92 -0
- data/ext/nutcracker/notes/c-styleguide.txt +425 -0
- data/ext/nutcracker/notes/debug.txt +96 -0
- data/ext/nutcracker/notes/memcache.txt +123 -0
- data/ext/nutcracker/notes/recommendation.md +118 -0
- data/ext/nutcracker/notes/redis.md +415 -0
- data/ext/nutcracker/notes/socket.txt +131 -0
- data/ext/nutcracker/scripts/multi_get.sh +26 -0
- data/ext/nutcracker/scripts/nutcracker.init +73 -0
- data/ext/nutcracker/scripts/nutcracker.spec +52 -0
- data/ext/nutcracker/scripts/pipelined_read.sh +23 -0
- data/ext/nutcracker/scripts/pipelined_write.sh +29 -0
- data/ext/nutcracker/scripts/populate_memcached.sh +24 -0
- data/ext/nutcracker/scripts/redis-check.py +23 -0
- data/ext/nutcracker/scripts/redis-check.sh +564 -0
- data/ext/nutcracker/src/Makefile.am +46 -0
- data/ext/nutcracker/src/Makefile.in +726 -0
- data/ext/nutcracker/src/hashkit/Makefile.am +22 -0
- data/ext/nutcracker/src/hashkit/Makefile.in +501 -0
- data/ext/nutcracker/src/hashkit/nc_crc32.c +105 -0
- data/ext/nutcracker/src/hashkit/nc_fnv.c +82 -0
- data/ext/nutcracker/src/hashkit/nc_hashkit.h +74 -0
- data/ext/nutcracker/src/hashkit/nc_hsieh.c +93 -0
- data/ext/nutcracker/src/hashkit/nc_jenkins.c +230 -0
- data/ext/nutcracker/src/hashkit/nc_ketama.c +240 -0
- data/ext/nutcracker/src/hashkit/nc_md5.c +379 -0
- data/ext/nutcracker/src/hashkit/nc_modula.c +144 -0
- data/ext/nutcracker/src/hashkit/nc_murmur.c +99 -0
- data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +51 -0
- data/ext/nutcracker/src/hashkit/nc_random.c +146 -0
- data/ext/nutcracker/src/nc.c +573 -0
- data/ext/nutcracker/src/nc_array.c +204 -0
- data/ext/nutcracker/src/nc_array.h +73 -0
- data/ext/nutcracker/src/nc_client.c +189 -0
- data/ext/nutcracker/src/nc_client.h +28 -0
- data/ext/nutcracker/src/nc_conf.c +1766 -0
- data/ext/nutcracker/src/nc_conf.h +134 -0
- data/ext/nutcracker/src/nc_connection.c +392 -0
- data/ext/nutcracker/src/nc_connection.h +99 -0
- data/ext/nutcracker/src/nc_core.c +334 -0
- data/ext/nutcracker/src/nc_core.h +131 -0
- data/ext/nutcracker/src/nc_event.c +214 -0
- data/ext/nutcracker/src/nc_event.h +39 -0
- data/ext/nutcracker/src/nc_log.c +254 -0
- data/ext/nutcracker/src/nc_log.h +120 -0
- data/ext/nutcracker/src/nc_mbuf.c +285 -0
- data/ext/nutcracker/src/nc_mbuf.h +67 -0
- data/ext/nutcracker/src/nc_message.c +828 -0
- data/ext/nutcracker/src/nc_message.h +253 -0
- data/ext/nutcracker/src/nc_proxy.c +359 -0
- data/ext/nutcracker/src/nc_proxy.h +34 -0
- data/ext/nutcracker/src/nc_queue.h +788 -0
- data/ext/nutcracker/src/nc_rbtree.c +348 -0
- data/ext/nutcracker/src/nc_rbtree.h +47 -0
- data/ext/nutcracker/src/nc_request.c +588 -0
- data/ext/nutcracker/src/nc_response.c +332 -0
- data/ext/nutcracker/src/nc_server.c +841 -0
- data/ext/nutcracker/src/nc_server.h +143 -0
- data/ext/nutcracker/src/nc_signal.c +131 -0
- data/ext/nutcracker/src/nc_signal.h +34 -0
- data/ext/nutcracker/src/nc_stats.c +1188 -0
- data/ext/nutcracker/src/nc_stats.h +206 -0
- data/ext/nutcracker/src/nc_string.c +109 -0
- data/ext/nutcracker/src/nc_string.h +112 -0
- data/ext/nutcracker/src/nc_util.c +619 -0
- data/ext/nutcracker/src/nc_util.h +214 -0
- data/ext/nutcracker/src/proto/Makefile.am +14 -0
- data/ext/nutcracker/src/proto/Makefile.in +482 -0
- data/ext/nutcracker/src/proto/nc_memcache.c +1306 -0
- data/ext/nutcracker/src/proto/nc_proto.h +155 -0
- data/ext/nutcracker/src/proto/nc_redis.c +2102 -0
- data/lib/nutcracker.rb +7 -0
- data/lib/nutcracker/version.rb +3 -0
- metadata +194 -0
|
@@ -0,0 +1,1130 @@
|
|
|
1
|
+
|
|
2
|
+
#include <yaml.h>
|
|
3
|
+
|
|
4
|
+
#include <stdlib.h>
|
|
5
|
+
#include <stdio.h>
|
|
6
|
+
|
|
7
|
+
int
|
|
8
|
+
main(int argc, char *argv[])
|
|
9
|
+
{
|
|
10
|
+
int help = 0;
|
|
11
|
+
int canonical = 0;
|
|
12
|
+
int unicode = 0;
|
|
13
|
+
int k;
|
|
14
|
+
int done = 0;
|
|
15
|
+
|
|
16
|
+
yaml_parser_t parser;
|
|
17
|
+
yaml_emitter_t emitter;
|
|
18
|
+
yaml_event_t input_event;
|
|
19
|
+
yaml_event_t output_event;
|
|
20
|
+
|
|
21
|
+
/* Clear the objects. */
|
|
22
|
+
|
|
23
|
+
memset(&parser, 0, sizeof(parser));
|
|
24
|
+
memset(&emitter, 0, sizeof(emitter));
|
|
25
|
+
memset(&input_event, 0, sizeof(input_event));
|
|
26
|
+
memset(&output_event, 0, sizeof(output_event));
|
|
27
|
+
|
|
28
|
+
/* Analyze command line options. */
|
|
29
|
+
|
|
30
|
+
for (k = 1; k < argc; k ++)
|
|
31
|
+
{
|
|
32
|
+
if (strcmp(argv[k], "-h") == 0
|
|
33
|
+
|| strcmp(argv[k], "--help") == 0) {
|
|
34
|
+
help = 1;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
else if (strcmp(argv[k], "-c") == 0
|
|
38
|
+
|| strcmp(argv[k], "--canonical") == 0) {
|
|
39
|
+
canonical = 1;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
else if (strcmp(argv[k], "-u") == 0
|
|
43
|
+
|| strcmp(argv[k], "--unicode") == 0) {
|
|
44
|
+
unicode = 1;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
else {
|
|
48
|
+
fprintf(stderr, "Unrecognized option: %s\n"
|
|
49
|
+
"Try `%s --help` for more information.\n",
|
|
50
|
+
argv[k], argv[0]);
|
|
51
|
+
return 1;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* Display the help string. */
|
|
56
|
+
|
|
57
|
+
if (help)
|
|
58
|
+
{
|
|
59
|
+
printf("%s <input\n"
|
|
60
|
+
"or\n%s -h | --help\nDeconstruct a YAML stream\n\nOptions:\n"
|
|
61
|
+
"-h, --help\t\tdisplay this help and exit\n"
|
|
62
|
+
"-c, --canonical\t\toutput in the canonical YAML format\n"
|
|
63
|
+
"-u, --unicode\t\toutput unescaped non-ASCII characters\n",
|
|
64
|
+
argv[0], argv[0]);
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Initialize the parser and emitter objects. */
|
|
69
|
+
|
|
70
|
+
if (!yaml_parser_initialize(&parser)) {
|
|
71
|
+
fprintf(stderr, "Could not initialize the parser object\n");
|
|
72
|
+
return 1;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (!yaml_emitter_initialize(&emitter)) {
|
|
76
|
+
yaml_parser_delete(&parser);
|
|
77
|
+
fprintf(stderr, "Could not inialize the emitter object\n");
|
|
78
|
+
return 1;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* Set the parser parameters. */
|
|
82
|
+
|
|
83
|
+
yaml_parser_set_input_file(&parser, stdin);
|
|
84
|
+
|
|
85
|
+
/* Set the emitter parameters. */
|
|
86
|
+
|
|
87
|
+
yaml_emitter_set_output_file(&emitter, stdout);
|
|
88
|
+
|
|
89
|
+
yaml_emitter_set_canonical(&emitter, canonical);
|
|
90
|
+
yaml_emitter_set_unicode(&emitter, unicode);
|
|
91
|
+
|
|
92
|
+
/* Create and emit the STREAM-START event. */
|
|
93
|
+
|
|
94
|
+
if (!yaml_stream_start_event_initialize(&output_event, YAML_UTF8_ENCODING))
|
|
95
|
+
goto event_error;
|
|
96
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
97
|
+
goto emitter_error;
|
|
98
|
+
|
|
99
|
+
/* Create and emit the DOCUMENT-START event. */
|
|
100
|
+
|
|
101
|
+
if (!yaml_document_start_event_initialize(&output_event,
|
|
102
|
+
NULL, NULL, NULL, 0))
|
|
103
|
+
goto event_error;
|
|
104
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
105
|
+
goto emitter_error;
|
|
106
|
+
|
|
107
|
+
/* Create and emit the SEQUENCE-START event. */
|
|
108
|
+
|
|
109
|
+
if (!yaml_sequence_start_event_initialize(&output_event,
|
|
110
|
+
NULL, "tag:yaml.org,2002:seq", 1,
|
|
111
|
+
YAML_BLOCK_SEQUENCE_STYLE))
|
|
112
|
+
goto event_error;
|
|
113
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
114
|
+
goto emitter_error;
|
|
115
|
+
|
|
116
|
+
/* Loop through the input events. */
|
|
117
|
+
|
|
118
|
+
while (!done)
|
|
119
|
+
{
|
|
120
|
+
/* Get the next event. */
|
|
121
|
+
|
|
122
|
+
if (!yaml_parser_parse(&parser, &input_event))
|
|
123
|
+
goto parser_error;
|
|
124
|
+
|
|
125
|
+
/* Check if this is the stream end. */
|
|
126
|
+
|
|
127
|
+
if (input_event.type == YAML_STREAM_END_EVENT) {
|
|
128
|
+
done = 1;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* Create and emit a MAPPING-START event. */
|
|
132
|
+
|
|
133
|
+
if (!yaml_mapping_start_event_initialize(&output_event,
|
|
134
|
+
NULL, "tag:yaml.org,2002:map", 1,
|
|
135
|
+
YAML_BLOCK_MAPPING_STYLE))
|
|
136
|
+
goto event_error;
|
|
137
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
138
|
+
goto emitter_error;
|
|
139
|
+
|
|
140
|
+
/* Analyze the event. */
|
|
141
|
+
|
|
142
|
+
switch (input_event.type)
|
|
143
|
+
{
|
|
144
|
+
case YAML_STREAM_START_EVENT:
|
|
145
|
+
|
|
146
|
+
/* Write 'type'. */
|
|
147
|
+
|
|
148
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
149
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
150
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
151
|
+
goto event_error;
|
|
152
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
153
|
+
goto emitter_error;
|
|
154
|
+
|
|
155
|
+
/* Write 'STREAM-START'. */
|
|
156
|
+
|
|
157
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
158
|
+
NULL, "tag:yaml.org,2002:str", "STREAM-START", -1,
|
|
159
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
160
|
+
goto event_error;
|
|
161
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
162
|
+
goto emitter_error;
|
|
163
|
+
|
|
164
|
+
/* Display encoding information. */
|
|
165
|
+
|
|
166
|
+
if (input_event.data.stream_start.encoding)
|
|
167
|
+
{
|
|
168
|
+
yaml_encoding_t encoding
|
|
169
|
+
= input_event.data.stream_start.encoding;
|
|
170
|
+
|
|
171
|
+
/* Write 'encoding'. */
|
|
172
|
+
|
|
173
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
174
|
+
NULL, "tag:yaml.org,2002:str", "encoding", -1,
|
|
175
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
176
|
+
goto event_error;
|
|
177
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
178
|
+
goto emitter_error;
|
|
179
|
+
|
|
180
|
+
/* Write the stream encoding. */
|
|
181
|
+
|
|
182
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
183
|
+
NULL, "tag:yaml.org,2002:str",
|
|
184
|
+
(encoding == YAML_UTF8_ENCODING ? "utf-8" :
|
|
185
|
+
encoding == YAML_UTF16LE_ENCODING ? "utf-16-le" :
|
|
186
|
+
encoding == YAML_UTF16BE_ENCODING ? "utf-16-be" :
|
|
187
|
+
"unknown"), -1,
|
|
188
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
189
|
+
goto event_error;
|
|
190
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
191
|
+
goto emitter_error;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
break;
|
|
195
|
+
|
|
196
|
+
case YAML_STREAM_END_EVENT:
|
|
197
|
+
|
|
198
|
+
/* Write 'type'. */
|
|
199
|
+
|
|
200
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
201
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
202
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
203
|
+
goto event_error;
|
|
204
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
205
|
+
goto emitter_error;
|
|
206
|
+
|
|
207
|
+
/* Write 'STREAM-END'. */
|
|
208
|
+
|
|
209
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
210
|
+
NULL, "tag:yaml.org,2002:str", "STREAM-END", -1,
|
|
211
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
212
|
+
goto event_error;
|
|
213
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
214
|
+
goto emitter_error;
|
|
215
|
+
|
|
216
|
+
break;
|
|
217
|
+
|
|
218
|
+
case YAML_DOCUMENT_START_EVENT:
|
|
219
|
+
|
|
220
|
+
/* Write 'type'. */
|
|
221
|
+
|
|
222
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
223
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
224
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
225
|
+
goto event_error;
|
|
226
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
227
|
+
goto emitter_error;
|
|
228
|
+
|
|
229
|
+
/* Write 'DOCUMENT-START'. */
|
|
230
|
+
|
|
231
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
232
|
+
NULL, "tag:yaml.org,2002:str", "DOCUMENT-START", -1,
|
|
233
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
234
|
+
goto event_error;
|
|
235
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
236
|
+
goto emitter_error;
|
|
237
|
+
|
|
238
|
+
/* Display the document version numbers. */
|
|
239
|
+
|
|
240
|
+
if (input_event.data.document_start.version_directive)
|
|
241
|
+
{
|
|
242
|
+
yaml_version_directive_t *version
|
|
243
|
+
= input_event.data.document_start.version_directive;
|
|
244
|
+
char number[64];
|
|
245
|
+
|
|
246
|
+
/* Write 'version'. */
|
|
247
|
+
|
|
248
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
249
|
+
NULL, "tag:yaml.org,2002:str", "version", -1,
|
|
250
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
251
|
+
goto event_error;
|
|
252
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
253
|
+
goto emitter_error;
|
|
254
|
+
|
|
255
|
+
/* Write '{'. */
|
|
256
|
+
|
|
257
|
+
if (!yaml_mapping_start_event_initialize(&output_event,
|
|
258
|
+
NULL, "tag:yaml.org,2002:map", 1,
|
|
259
|
+
YAML_FLOW_MAPPING_STYLE))
|
|
260
|
+
goto event_error;
|
|
261
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
262
|
+
goto emitter_error;
|
|
263
|
+
|
|
264
|
+
/* Write 'major'. */
|
|
265
|
+
|
|
266
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
267
|
+
NULL, "tag:yaml.org,2002:str", "major", -1,
|
|
268
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
269
|
+
goto event_error;
|
|
270
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
271
|
+
goto emitter_error;
|
|
272
|
+
|
|
273
|
+
/* Write a number. */
|
|
274
|
+
|
|
275
|
+
sprintf(number, "%d", version->major);
|
|
276
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
277
|
+
NULL, "tag:yaml.org,2002:int", number, -1,
|
|
278
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
279
|
+
goto event_error;
|
|
280
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
281
|
+
goto emitter_error;
|
|
282
|
+
|
|
283
|
+
/* Write 'minor'. */
|
|
284
|
+
|
|
285
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
286
|
+
NULL, "tag:yaml.org,2002:str", "minor", -1,
|
|
287
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
288
|
+
goto event_error;
|
|
289
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
290
|
+
goto emitter_error;
|
|
291
|
+
|
|
292
|
+
/* Write a number. */
|
|
293
|
+
|
|
294
|
+
sprintf(number, "%d", version->minor);
|
|
295
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
296
|
+
NULL, "tag:yaml.org,2002:int", number, -1,
|
|
297
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
298
|
+
goto event_error;
|
|
299
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
300
|
+
goto emitter_error;
|
|
301
|
+
|
|
302
|
+
/* Write '}'. */
|
|
303
|
+
|
|
304
|
+
if (!yaml_mapping_end_event_initialize(&output_event))
|
|
305
|
+
goto event_error;
|
|
306
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
307
|
+
goto emitter_error;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
/* Display the document tag directives. */
|
|
311
|
+
|
|
312
|
+
if (input_event.data.document_start.tag_directives.start
|
|
313
|
+
!= input_event.data.document_start.tag_directives.end)
|
|
314
|
+
{
|
|
315
|
+
yaml_tag_directive_t *tag;
|
|
316
|
+
|
|
317
|
+
/* Write 'tags'. */
|
|
318
|
+
|
|
319
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
320
|
+
NULL, "tag:yaml.org,2002:str", "tags", -1,
|
|
321
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
322
|
+
goto event_error;
|
|
323
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
324
|
+
goto emitter_error;
|
|
325
|
+
|
|
326
|
+
/* Start a block sequence. */
|
|
327
|
+
|
|
328
|
+
if (!yaml_sequence_start_event_initialize(&output_event,
|
|
329
|
+
NULL, "tag:yaml.org,2002:seq", 1,
|
|
330
|
+
YAML_BLOCK_SEQUENCE_STYLE))
|
|
331
|
+
goto event_error;
|
|
332
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
333
|
+
goto emitter_error;
|
|
334
|
+
|
|
335
|
+
for (tag = input_event.data.document_start.tag_directives.start;
|
|
336
|
+
tag != input_event.data.document_start.tag_directives.end;
|
|
337
|
+
tag ++)
|
|
338
|
+
{
|
|
339
|
+
/* Write '{'. */
|
|
340
|
+
|
|
341
|
+
if (!yaml_mapping_start_event_initialize(&output_event,
|
|
342
|
+
NULL, "tag:yaml.org,2002:map", 1,
|
|
343
|
+
YAML_FLOW_MAPPING_STYLE))
|
|
344
|
+
goto event_error;
|
|
345
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
346
|
+
goto emitter_error;
|
|
347
|
+
|
|
348
|
+
/* Write 'handle'. */
|
|
349
|
+
|
|
350
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
351
|
+
NULL, "tag:yaml.org,2002:str", "handle", -1,
|
|
352
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
353
|
+
goto event_error;
|
|
354
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
355
|
+
goto emitter_error;
|
|
356
|
+
|
|
357
|
+
/* Write the tag directive handle. */
|
|
358
|
+
|
|
359
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
360
|
+
NULL, "tag:yaml.org,2002:str",
|
|
361
|
+
tag->handle, -1,
|
|
362
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
363
|
+
goto event_error;
|
|
364
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
365
|
+
goto emitter_error;
|
|
366
|
+
|
|
367
|
+
/* Write 'prefix'. */
|
|
368
|
+
|
|
369
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
370
|
+
NULL, "tag:yaml.org,2002:str", "prefix", -1,
|
|
371
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
372
|
+
goto event_error;
|
|
373
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
374
|
+
goto emitter_error;
|
|
375
|
+
|
|
376
|
+
/* Write the tag directive prefix. */
|
|
377
|
+
|
|
378
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
379
|
+
NULL, "tag:yaml.org,2002:str",
|
|
380
|
+
tag->prefix, -1,
|
|
381
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
382
|
+
goto event_error;
|
|
383
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
384
|
+
goto emitter_error;
|
|
385
|
+
|
|
386
|
+
/* Write '}'. */
|
|
387
|
+
|
|
388
|
+
if (!yaml_mapping_end_event_initialize(&output_event))
|
|
389
|
+
goto event_error;
|
|
390
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
391
|
+
goto emitter_error;
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
/* End a block sequence. */
|
|
395
|
+
|
|
396
|
+
if (!yaml_sequence_end_event_initialize(&output_event))
|
|
397
|
+
goto event_error;
|
|
398
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
399
|
+
goto emitter_error;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
/* Write 'implicit'. */
|
|
403
|
+
|
|
404
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
405
|
+
NULL, "tag:yaml.org,2002:str", "implicit", -1,
|
|
406
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
407
|
+
goto event_error;
|
|
408
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
409
|
+
goto emitter_error;
|
|
410
|
+
|
|
411
|
+
/* Write if the document is implicit. */
|
|
412
|
+
|
|
413
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
414
|
+
NULL, "tag:yaml.org,2002:bool",
|
|
415
|
+
(input_event.data.document_start.implicit ?
|
|
416
|
+
"true" : "false"), -1,
|
|
417
|
+
1, 0, YAML_PLAIN_SCALAR_STYLE))
|
|
418
|
+
goto event_error;
|
|
419
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
420
|
+
goto emitter_error;
|
|
421
|
+
|
|
422
|
+
break;
|
|
423
|
+
|
|
424
|
+
case YAML_DOCUMENT_END_EVENT:
|
|
425
|
+
|
|
426
|
+
/* Write 'type'. */
|
|
427
|
+
|
|
428
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
429
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
430
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
431
|
+
goto event_error;
|
|
432
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
433
|
+
goto emitter_error;
|
|
434
|
+
|
|
435
|
+
/* Write 'DOCUMENT-END'. */
|
|
436
|
+
|
|
437
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
438
|
+
NULL, "tag:yaml.org,2002:str", "DOCUMENT-END", -1,
|
|
439
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
440
|
+
goto event_error;
|
|
441
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
442
|
+
goto emitter_error;
|
|
443
|
+
|
|
444
|
+
/* Write 'implicit'. */
|
|
445
|
+
|
|
446
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
447
|
+
NULL, "tag:yaml.org,2002:str", "implicit", -1,
|
|
448
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
449
|
+
goto event_error;
|
|
450
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
451
|
+
goto emitter_error;
|
|
452
|
+
|
|
453
|
+
/* Write if the document is implicit. */
|
|
454
|
+
|
|
455
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
456
|
+
NULL, "tag:yaml.org,2002:bool",
|
|
457
|
+
(input_event.data.document_end.implicit ?
|
|
458
|
+
"true" : "false"), -1,
|
|
459
|
+
1, 0, YAML_PLAIN_SCALAR_STYLE))
|
|
460
|
+
goto event_error;
|
|
461
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
462
|
+
goto emitter_error;
|
|
463
|
+
|
|
464
|
+
break;
|
|
465
|
+
|
|
466
|
+
case YAML_ALIAS_EVENT:
|
|
467
|
+
|
|
468
|
+
/* Write 'type'. */
|
|
469
|
+
|
|
470
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
471
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
472
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
473
|
+
goto event_error;
|
|
474
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
475
|
+
goto emitter_error;
|
|
476
|
+
|
|
477
|
+
/* Write 'ALIAS'. */
|
|
478
|
+
|
|
479
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
480
|
+
NULL, "tag:yaml.org,2002:str", "ALIAS", -1,
|
|
481
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
482
|
+
goto event_error;
|
|
483
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
484
|
+
goto emitter_error;
|
|
485
|
+
|
|
486
|
+
/* Write 'anchor'. */
|
|
487
|
+
|
|
488
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
489
|
+
NULL, "tag:yaml.org,2002:str", "anchor", -1,
|
|
490
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
491
|
+
goto event_error;
|
|
492
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
493
|
+
goto emitter_error;
|
|
494
|
+
|
|
495
|
+
/* Write the alias anchor. */
|
|
496
|
+
|
|
497
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
498
|
+
NULL, "tag:yaml.org,2002:str",
|
|
499
|
+
input_event.data.alias.anchor, -1,
|
|
500
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
501
|
+
goto event_error;
|
|
502
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
503
|
+
goto emitter_error;
|
|
504
|
+
|
|
505
|
+
break;
|
|
506
|
+
|
|
507
|
+
case YAML_SCALAR_EVENT:
|
|
508
|
+
|
|
509
|
+
/* Write 'type'. */
|
|
510
|
+
|
|
511
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
512
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
513
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
514
|
+
goto event_error;
|
|
515
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
516
|
+
goto emitter_error;
|
|
517
|
+
|
|
518
|
+
/* Write 'SCALAR'. */
|
|
519
|
+
|
|
520
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
521
|
+
NULL, "tag:yaml.org,2002:str", "SCALAR", -1,
|
|
522
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
523
|
+
goto event_error;
|
|
524
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
525
|
+
goto emitter_error;
|
|
526
|
+
|
|
527
|
+
/* Display the scalar anchor. */
|
|
528
|
+
|
|
529
|
+
if (input_event.data.scalar.anchor)
|
|
530
|
+
{
|
|
531
|
+
/* Write 'anchor'. */
|
|
532
|
+
|
|
533
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
534
|
+
NULL, "tag:yaml.org,2002:str", "anchor", -1,
|
|
535
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
536
|
+
goto event_error;
|
|
537
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
538
|
+
goto emitter_error;
|
|
539
|
+
|
|
540
|
+
/* Write the scalar anchor. */
|
|
541
|
+
|
|
542
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
543
|
+
NULL, "tag:yaml.org,2002:str",
|
|
544
|
+
input_event.data.scalar.anchor, -1,
|
|
545
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
546
|
+
goto event_error;
|
|
547
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
548
|
+
goto emitter_error;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
/* Display the scalar tag. */
|
|
552
|
+
|
|
553
|
+
if (input_event.data.scalar.tag)
|
|
554
|
+
{
|
|
555
|
+
/* Write 'tag'. */
|
|
556
|
+
|
|
557
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
558
|
+
NULL, "tag:yaml.org,2002:str", "tag", -1,
|
|
559
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
560
|
+
goto event_error;
|
|
561
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
562
|
+
goto emitter_error;
|
|
563
|
+
|
|
564
|
+
/* Write the scalar tag. */
|
|
565
|
+
|
|
566
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
567
|
+
NULL, "tag:yaml.org,2002:str",
|
|
568
|
+
input_event.data.scalar.tag, -1,
|
|
569
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
570
|
+
goto event_error;
|
|
571
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
572
|
+
goto emitter_error;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
/* Display the scalar value. */
|
|
576
|
+
|
|
577
|
+
/* Write 'value'. */
|
|
578
|
+
|
|
579
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
580
|
+
NULL, "tag:yaml.org,2002:str", "value", -1,
|
|
581
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
582
|
+
goto event_error;
|
|
583
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
584
|
+
goto emitter_error;
|
|
585
|
+
|
|
586
|
+
/* Write the scalar value. */
|
|
587
|
+
|
|
588
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
589
|
+
NULL, "tag:yaml.org,2002:str",
|
|
590
|
+
input_event.data.scalar.value,
|
|
591
|
+
input_event.data.scalar.length,
|
|
592
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
593
|
+
goto event_error;
|
|
594
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
595
|
+
goto emitter_error;
|
|
596
|
+
|
|
597
|
+
/* Display if the scalar tag is implicit. */
|
|
598
|
+
|
|
599
|
+
/* Write 'implicit'. */
|
|
600
|
+
|
|
601
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
602
|
+
NULL, "tag:yaml.org,2002:str", "implicit", -1,
|
|
603
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
604
|
+
goto event_error;
|
|
605
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
606
|
+
goto emitter_error;
|
|
607
|
+
|
|
608
|
+
/* Write '{'. */
|
|
609
|
+
|
|
610
|
+
if (!yaml_mapping_start_event_initialize(&output_event,
|
|
611
|
+
NULL, "tag:yaml.org,2002:map", 1,
|
|
612
|
+
YAML_FLOW_MAPPING_STYLE))
|
|
613
|
+
goto event_error;
|
|
614
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
615
|
+
goto emitter_error;
|
|
616
|
+
|
|
617
|
+
/* Write 'plain'. */
|
|
618
|
+
|
|
619
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
620
|
+
NULL, "tag:yaml.org,2002:str", "plain", -1,
|
|
621
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
622
|
+
goto event_error;
|
|
623
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
624
|
+
goto emitter_error;
|
|
625
|
+
|
|
626
|
+
/* Write if the scalar is implicit in the plain style. */
|
|
627
|
+
|
|
628
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
629
|
+
NULL, "tag:yaml.org,2002:bool",
|
|
630
|
+
(input_event.data.scalar.plain_implicit ?
|
|
631
|
+
"true" : "false"), -1,
|
|
632
|
+
1, 0, YAML_PLAIN_SCALAR_STYLE))
|
|
633
|
+
goto event_error;
|
|
634
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
635
|
+
goto emitter_error;
|
|
636
|
+
|
|
637
|
+
/* Write 'quoted'. */
|
|
638
|
+
|
|
639
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
640
|
+
NULL, "tag:yaml.org,2002:str", "non-plain", -1,
|
|
641
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
642
|
+
goto event_error;
|
|
643
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
644
|
+
goto emitter_error;
|
|
645
|
+
|
|
646
|
+
/* Write if the scalar is implicit in a non-plain style. */
|
|
647
|
+
|
|
648
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
649
|
+
NULL, "tag:yaml.org,2002:bool",
|
|
650
|
+
(input_event.data.scalar.quoted_implicit ?
|
|
651
|
+
"true" : "false"), -1,
|
|
652
|
+
1, 0, YAML_PLAIN_SCALAR_STYLE))
|
|
653
|
+
goto event_error;
|
|
654
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
655
|
+
goto emitter_error;
|
|
656
|
+
|
|
657
|
+
/* Write '}'. */
|
|
658
|
+
|
|
659
|
+
if (!yaml_mapping_end_event_initialize(&output_event))
|
|
660
|
+
goto event_error;
|
|
661
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
662
|
+
goto emitter_error;
|
|
663
|
+
|
|
664
|
+
/* Display the style information. */
|
|
665
|
+
|
|
666
|
+
if (input_event.data.scalar.style)
|
|
667
|
+
{
|
|
668
|
+
yaml_scalar_style_t style = input_event.data.scalar.style;
|
|
669
|
+
|
|
670
|
+
/* Write 'style'. */
|
|
671
|
+
|
|
672
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
673
|
+
NULL, "tag:yaml.org,2002:str", "style", -1,
|
|
674
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
675
|
+
goto event_error;
|
|
676
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
677
|
+
goto emitter_error;
|
|
678
|
+
|
|
679
|
+
/* Write the scalar style. */
|
|
680
|
+
|
|
681
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
682
|
+
NULL, "tag:yaml.org,2002:str",
|
|
683
|
+
(style == YAML_PLAIN_SCALAR_STYLE ? "plain" :
|
|
684
|
+
style == YAML_SINGLE_QUOTED_SCALAR_STYLE ?
|
|
685
|
+
"single-quoted" :
|
|
686
|
+
style == YAML_DOUBLE_QUOTED_SCALAR_STYLE ?
|
|
687
|
+
"double-quoted" :
|
|
688
|
+
style == YAML_LITERAL_SCALAR_STYLE ? "literal" :
|
|
689
|
+
style == YAML_FOLDED_SCALAR_STYLE ? "folded" :
|
|
690
|
+
"unknown"), -1,
|
|
691
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
692
|
+
goto event_error;
|
|
693
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
694
|
+
goto emitter_error;
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
break;
|
|
698
|
+
|
|
699
|
+
case YAML_SEQUENCE_START_EVENT:
|
|
700
|
+
|
|
701
|
+
/* Write 'type'. */
|
|
702
|
+
|
|
703
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
704
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
705
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
706
|
+
goto event_error;
|
|
707
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
708
|
+
goto emitter_error;
|
|
709
|
+
|
|
710
|
+
/* Write 'SEQUENCE-START'. */
|
|
711
|
+
|
|
712
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
713
|
+
NULL, "tag:yaml.org,2002:str", "SEQUENCE-START", -1,
|
|
714
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
715
|
+
goto event_error;
|
|
716
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
717
|
+
goto emitter_error;
|
|
718
|
+
|
|
719
|
+
/* Display the sequence anchor. */
|
|
720
|
+
|
|
721
|
+
if (input_event.data.sequence_start.anchor)
|
|
722
|
+
{
|
|
723
|
+
/* Write 'anchor'. */
|
|
724
|
+
|
|
725
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
726
|
+
NULL, "tag:yaml.org,2002:str", "anchor", -1,
|
|
727
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
728
|
+
goto event_error;
|
|
729
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
730
|
+
goto emitter_error;
|
|
731
|
+
|
|
732
|
+
/* Write the sequence anchor. */
|
|
733
|
+
|
|
734
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
735
|
+
NULL, "tag:yaml.org,2002:str",
|
|
736
|
+
input_event.data.sequence_start.anchor, -1,
|
|
737
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
738
|
+
goto event_error;
|
|
739
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
740
|
+
goto emitter_error;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
/* Display the sequence tag. */
|
|
744
|
+
|
|
745
|
+
if (input_event.data.sequence_start.tag)
|
|
746
|
+
{
|
|
747
|
+
/* Write 'tag'. */
|
|
748
|
+
|
|
749
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
750
|
+
NULL, "tag:yaml.org,2002:str", "tag", -1,
|
|
751
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
752
|
+
goto event_error;
|
|
753
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
754
|
+
goto emitter_error;
|
|
755
|
+
|
|
756
|
+
/* Write the sequence tag. */
|
|
757
|
+
|
|
758
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
759
|
+
NULL, "tag:yaml.org,2002:str",
|
|
760
|
+
input_event.data.sequence_start.tag, -1,
|
|
761
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
762
|
+
goto event_error;
|
|
763
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
764
|
+
goto emitter_error;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
/* Write 'implicit'. */
|
|
768
|
+
|
|
769
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
770
|
+
NULL, "tag:yaml.org,2002:str", "implicit", -1,
|
|
771
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
772
|
+
goto event_error;
|
|
773
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
774
|
+
goto emitter_error;
|
|
775
|
+
|
|
776
|
+
/* Write if the sequence tag is implicit. */
|
|
777
|
+
|
|
778
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
779
|
+
NULL, "tag:yaml.org,2002:bool",
|
|
780
|
+
(input_event.data.sequence_start.implicit ?
|
|
781
|
+
"true" : "false"), -1,
|
|
782
|
+
1, 0, YAML_PLAIN_SCALAR_STYLE))
|
|
783
|
+
goto event_error;
|
|
784
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
785
|
+
goto emitter_error;
|
|
786
|
+
|
|
787
|
+
/* Display the style information. */
|
|
788
|
+
|
|
789
|
+
if (input_event.data.sequence_start.style)
|
|
790
|
+
{
|
|
791
|
+
yaml_sequence_style_t style
|
|
792
|
+
= input_event.data.sequence_start.style;
|
|
793
|
+
|
|
794
|
+
/* Write 'style'. */
|
|
795
|
+
|
|
796
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
797
|
+
NULL, "tag:yaml.org,2002:str", "style", -1,
|
|
798
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
799
|
+
goto event_error;
|
|
800
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
801
|
+
goto emitter_error;
|
|
802
|
+
|
|
803
|
+
/* Write the scalar style. */
|
|
804
|
+
|
|
805
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
806
|
+
NULL, "tag:yaml.org,2002:str",
|
|
807
|
+
(style == YAML_BLOCK_SEQUENCE_STYLE ? "block" :
|
|
808
|
+
style == YAML_FLOW_SEQUENCE_STYLE ? "flow" :
|
|
809
|
+
"unknown"), -1,
|
|
810
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
811
|
+
goto event_error;
|
|
812
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
813
|
+
goto emitter_error;
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
break;
|
|
817
|
+
|
|
818
|
+
case YAML_SEQUENCE_END_EVENT:
|
|
819
|
+
|
|
820
|
+
/* Write 'type'. */
|
|
821
|
+
|
|
822
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
823
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
824
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
825
|
+
goto event_error;
|
|
826
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
827
|
+
goto emitter_error;
|
|
828
|
+
|
|
829
|
+
/* Write 'SEQUENCE-END'. */
|
|
830
|
+
|
|
831
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
832
|
+
NULL, "tag:yaml.org,2002:str", "SEQUENCE-END", -1,
|
|
833
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
834
|
+
goto event_error;
|
|
835
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
836
|
+
goto emitter_error;
|
|
837
|
+
|
|
838
|
+
break;
|
|
839
|
+
|
|
840
|
+
case YAML_MAPPING_START_EVENT:
|
|
841
|
+
|
|
842
|
+
/* Write 'type'. */
|
|
843
|
+
|
|
844
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
845
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
846
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
847
|
+
goto event_error;
|
|
848
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
849
|
+
goto emitter_error;
|
|
850
|
+
|
|
851
|
+
/* Write 'MAPPING-START'. */
|
|
852
|
+
|
|
853
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
854
|
+
NULL, "tag:yaml.org,2002:str", "MAPPING-START", -1,
|
|
855
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
856
|
+
goto event_error;
|
|
857
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
858
|
+
goto emitter_error;
|
|
859
|
+
|
|
860
|
+
/* Display the mapping anchor. */
|
|
861
|
+
|
|
862
|
+
if (input_event.data.mapping_start.anchor)
|
|
863
|
+
{
|
|
864
|
+
/* Write 'anchor'. */
|
|
865
|
+
|
|
866
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
867
|
+
NULL, "tag:yaml.org,2002:str", "anchor", -1,
|
|
868
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
869
|
+
goto event_error;
|
|
870
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
871
|
+
goto emitter_error;
|
|
872
|
+
|
|
873
|
+
/* Write the mapping anchor. */
|
|
874
|
+
|
|
875
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
876
|
+
NULL, "tag:yaml.org,2002:str",
|
|
877
|
+
input_event.data.mapping_start.anchor, -1,
|
|
878
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
879
|
+
goto event_error;
|
|
880
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
881
|
+
goto emitter_error;
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
/* Display the mapping tag. */
|
|
885
|
+
|
|
886
|
+
if (input_event.data.mapping_start.tag)
|
|
887
|
+
{
|
|
888
|
+
/* Write 'tag'. */
|
|
889
|
+
|
|
890
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
891
|
+
NULL, "tag:yaml.org,2002:str", "tag", -1,
|
|
892
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
893
|
+
goto event_error;
|
|
894
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
895
|
+
goto emitter_error;
|
|
896
|
+
|
|
897
|
+
/* Write the mapping tag. */
|
|
898
|
+
|
|
899
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
900
|
+
NULL, "tag:yaml.org,2002:str",
|
|
901
|
+
input_event.data.mapping_start.tag, -1,
|
|
902
|
+
0, 1, YAML_DOUBLE_QUOTED_SCALAR_STYLE))
|
|
903
|
+
goto event_error;
|
|
904
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
905
|
+
goto emitter_error;
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
/* Write 'implicit'. */
|
|
909
|
+
|
|
910
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
911
|
+
NULL, "tag:yaml.org,2002:str", "implicit", -1,
|
|
912
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
913
|
+
goto event_error;
|
|
914
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
915
|
+
goto emitter_error;
|
|
916
|
+
|
|
917
|
+
/* Write if the mapping tag is implicit. */
|
|
918
|
+
|
|
919
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
920
|
+
NULL, "tag:yaml.org,2002:bool",
|
|
921
|
+
(input_event.data.mapping_start.implicit ?
|
|
922
|
+
"true" : "false"), -1,
|
|
923
|
+
1, 0, YAML_PLAIN_SCALAR_STYLE))
|
|
924
|
+
goto event_error;
|
|
925
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
926
|
+
goto emitter_error;
|
|
927
|
+
|
|
928
|
+
/* Display the style information. */
|
|
929
|
+
|
|
930
|
+
if (input_event.data.mapping_start.style)
|
|
931
|
+
{
|
|
932
|
+
yaml_mapping_style_t style
|
|
933
|
+
= input_event.data.mapping_start.style;
|
|
934
|
+
|
|
935
|
+
/* Write 'style'. */
|
|
936
|
+
|
|
937
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
938
|
+
NULL, "tag:yaml.org,2002:str", "style", -1,
|
|
939
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
940
|
+
goto event_error;
|
|
941
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
942
|
+
goto emitter_error;
|
|
943
|
+
|
|
944
|
+
/* Write the scalar style. */
|
|
945
|
+
|
|
946
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
947
|
+
NULL, "tag:yaml.org,2002:str",
|
|
948
|
+
(style == YAML_BLOCK_MAPPING_STYLE ? "block" :
|
|
949
|
+
style == YAML_FLOW_MAPPING_STYLE ? "flow" :
|
|
950
|
+
"unknown"), -1,
|
|
951
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
952
|
+
goto event_error;
|
|
953
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
954
|
+
goto emitter_error;
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
break;
|
|
958
|
+
|
|
959
|
+
case YAML_MAPPING_END_EVENT:
|
|
960
|
+
|
|
961
|
+
/* Write 'type'. */
|
|
962
|
+
|
|
963
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
964
|
+
NULL, "tag:yaml.org,2002:str", "type", -1,
|
|
965
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
966
|
+
goto event_error;
|
|
967
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
968
|
+
goto emitter_error;
|
|
969
|
+
|
|
970
|
+
/* Write 'MAPPING-END'. */
|
|
971
|
+
|
|
972
|
+
if (!yaml_scalar_event_initialize(&output_event,
|
|
973
|
+
NULL, "tag:yaml.org,2002:str", "MAPPING-END", -1,
|
|
974
|
+
1, 1, YAML_PLAIN_SCALAR_STYLE))
|
|
975
|
+
goto event_error;
|
|
976
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
977
|
+
goto emitter_error;
|
|
978
|
+
|
|
979
|
+
break;
|
|
980
|
+
|
|
981
|
+
default:
|
|
982
|
+
/* It couldn't really happen. */
|
|
983
|
+
break;
|
|
984
|
+
}
|
|
985
|
+
|
|
986
|
+
/* Delete the event object. */
|
|
987
|
+
|
|
988
|
+
yaml_event_delete(&input_event);
|
|
989
|
+
|
|
990
|
+
/* Create and emit a MAPPING-END event. */
|
|
991
|
+
|
|
992
|
+
if (!yaml_mapping_end_event_initialize(&output_event))
|
|
993
|
+
goto event_error;
|
|
994
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
995
|
+
goto emitter_error;
|
|
996
|
+
}
|
|
997
|
+
|
|
998
|
+
/* Create and emit the SEQUENCE-END event. */
|
|
999
|
+
|
|
1000
|
+
if (!yaml_sequence_end_event_initialize(&output_event))
|
|
1001
|
+
goto event_error;
|
|
1002
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
1003
|
+
goto emitter_error;
|
|
1004
|
+
|
|
1005
|
+
/* Create and emit the DOCUMENT-END event. */
|
|
1006
|
+
|
|
1007
|
+
if (!yaml_document_end_event_initialize(&output_event, 0))
|
|
1008
|
+
goto event_error;
|
|
1009
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
1010
|
+
goto emitter_error;
|
|
1011
|
+
|
|
1012
|
+
/* Create and emit the STREAM-END event. */
|
|
1013
|
+
|
|
1014
|
+
if (!yaml_stream_end_event_initialize(&output_event))
|
|
1015
|
+
goto event_error;
|
|
1016
|
+
if (!yaml_emitter_emit(&emitter, &output_event))
|
|
1017
|
+
goto emitter_error;
|
|
1018
|
+
|
|
1019
|
+
yaml_parser_delete(&parser);
|
|
1020
|
+
yaml_emitter_delete(&emitter);
|
|
1021
|
+
|
|
1022
|
+
return 0;
|
|
1023
|
+
|
|
1024
|
+
parser_error:
|
|
1025
|
+
|
|
1026
|
+
/* Display a parser error message. */
|
|
1027
|
+
|
|
1028
|
+
switch (parser.error)
|
|
1029
|
+
{
|
|
1030
|
+
case YAML_MEMORY_ERROR:
|
|
1031
|
+
fprintf(stderr, "Memory error: Not enough memory for parsing\n");
|
|
1032
|
+
break;
|
|
1033
|
+
|
|
1034
|
+
case YAML_READER_ERROR:
|
|
1035
|
+
if (parser.problem_value != -1) {
|
|
1036
|
+
fprintf(stderr, "Reader error: %s: #%X at %d\n", parser.problem,
|
|
1037
|
+
parser.problem_value, parser.problem_offset);
|
|
1038
|
+
}
|
|
1039
|
+
else {
|
|
1040
|
+
fprintf(stderr, "Reader error: %s at %d\n", parser.problem,
|
|
1041
|
+
parser.problem_offset);
|
|
1042
|
+
}
|
|
1043
|
+
break;
|
|
1044
|
+
|
|
1045
|
+
case YAML_SCANNER_ERROR:
|
|
1046
|
+
if (parser.context) {
|
|
1047
|
+
fprintf(stderr, "Scanner error: %s at line %d, column %d\n"
|
|
1048
|
+
"%s at line %d, column %d\n", parser.context,
|
|
1049
|
+
parser.context_mark.line+1, parser.context_mark.column+1,
|
|
1050
|
+
parser.problem, parser.problem_mark.line+1,
|
|
1051
|
+
parser.problem_mark.column+1);
|
|
1052
|
+
}
|
|
1053
|
+
else {
|
|
1054
|
+
fprintf(stderr, "Scanner error: %s at line %d, column %d\n",
|
|
1055
|
+
parser.problem, parser.problem_mark.line+1,
|
|
1056
|
+
parser.problem_mark.column+1);
|
|
1057
|
+
}
|
|
1058
|
+
break;
|
|
1059
|
+
|
|
1060
|
+
case YAML_PARSER_ERROR:
|
|
1061
|
+
if (parser.context) {
|
|
1062
|
+
fprintf(stderr, "Parser error: %s at line %d, column %d\n"
|
|
1063
|
+
"%s at line %d, column %d\n", parser.context,
|
|
1064
|
+
parser.context_mark.line+1, parser.context_mark.column+1,
|
|
1065
|
+
parser.problem, parser.problem_mark.line+1,
|
|
1066
|
+
parser.problem_mark.column+1);
|
|
1067
|
+
}
|
|
1068
|
+
else {
|
|
1069
|
+
fprintf(stderr, "Parser error: %s at line %d, column %d\n",
|
|
1070
|
+
parser.problem, parser.problem_mark.line+1,
|
|
1071
|
+
parser.problem_mark.column+1);
|
|
1072
|
+
}
|
|
1073
|
+
break;
|
|
1074
|
+
|
|
1075
|
+
default:
|
|
1076
|
+
/* Couldn't happen. */
|
|
1077
|
+
fprintf(stderr, "Internal error\n");
|
|
1078
|
+
break;
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
yaml_event_delete(&input_event);
|
|
1082
|
+
yaml_event_delete(&output_event);
|
|
1083
|
+
yaml_parser_delete(&parser);
|
|
1084
|
+
yaml_emitter_delete(&emitter);
|
|
1085
|
+
|
|
1086
|
+
return 1;
|
|
1087
|
+
|
|
1088
|
+
emitter_error:
|
|
1089
|
+
|
|
1090
|
+
/* Display an emitter error message. */
|
|
1091
|
+
|
|
1092
|
+
switch (emitter.error)
|
|
1093
|
+
{
|
|
1094
|
+
case YAML_MEMORY_ERROR:
|
|
1095
|
+
fprintf(stderr, "Memory error: Not enough memory for emitting\n");
|
|
1096
|
+
break;
|
|
1097
|
+
|
|
1098
|
+
case YAML_WRITER_ERROR:
|
|
1099
|
+
fprintf(stderr, "Writer error: %s\n", emitter.problem);
|
|
1100
|
+
break;
|
|
1101
|
+
|
|
1102
|
+
case YAML_EMITTER_ERROR:
|
|
1103
|
+
fprintf(stderr, "Emitter error: %s\n", emitter.problem);
|
|
1104
|
+
break;
|
|
1105
|
+
|
|
1106
|
+
default:
|
|
1107
|
+
/* Couldn't happen. */
|
|
1108
|
+
fprintf(stderr, "Internal error\n");
|
|
1109
|
+
break;
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
yaml_event_delete(&input_event);
|
|
1113
|
+
yaml_event_delete(&output_event);
|
|
1114
|
+
yaml_parser_delete(&parser);
|
|
1115
|
+
yaml_emitter_delete(&emitter);
|
|
1116
|
+
|
|
1117
|
+
return 1;
|
|
1118
|
+
|
|
1119
|
+
event_error:
|
|
1120
|
+
|
|
1121
|
+
fprintf(stderr, "Memory error: Not enough memory for creating an event\n");
|
|
1122
|
+
|
|
1123
|
+
yaml_event_delete(&input_event);
|
|
1124
|
+
yaml_event_delete(&output_event);
|
|
1125
|
+
yaml_parser_delete(&parser);
|
|
1126
|
+
yaml_emitter_delete(&emitter);
|
|
1127
|
+
|
|
1128
|
+
return 1;
|
|
1129
|
+
}
|
|
1130
|
+
|