nutcracker 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. data/README.md +22 -0
  2. data/Rakefile +55 -0
  3. data/bin/nutcracker +2 -0
  4. data/ext/nutcracker/ChangeLog +66 -0
  5. data/ext/nutcracker/LICENSE +177 -0
  6. data/ext/nutcracker/Makefile.am +7 -0
  7. data/ext/nutcracker/Makefile.in +726 -0
  8. data/ext/nutcracker/NOTICE +124 -0
  9. data/ext/nutcracker/README.md +240 -0
  10. data/ext/nutcracker/aclocal.m4 +956 -0
  11. data/ext/nutcracker/conf/nutcracker.leaf.yml +10 -0
  12. data/ext/nutcracker/conf/nutcracker.root.yml +8 -0
  13. data/ext/nutcracker/conf/nutcracker.yml +67 -0
  14. data/ext/nutcracker/config.h.in +316 -0
  15. data/ext/nutcracker/config/config.guess +1561 -0
  16. data/ext/nutcracker/config/config.sub +1686 -0
  17. data/ext/nutcracker/config/depcomp +630 -0
  18. data/ext/nutcracker/config/install-sh +520 -0
  19. data/ext/nutcracker/config/ltmain.sh +8413 -0
  20. data/ext/nutcracker/config/missing +376 -0
  21. data/ext/nutcracker/configure +18862 -0
  22. data/ext/nutcracker/configure.ac +155 -0
  23. data/ext/nutcracker/contrib/Makefile.am +3 -0
  24. data/ext/nutcracker/contrib/Makefile.in +560 -0
  25. data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
  26. data/ext/nutcracker/contrib/yaml-0.1.4/LICENSE +19 -0
  27. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.am +20 -0
  28. data/ext/nutcracker/contrib/yaml-0.1.4/Makefile.in +736 -0
  29. data/ext/nutcracker/contrib/yaml-0.1.4/README +27 -0
  30. data/ext/nutcracker/contrib/yaml-0.1.4/aclocal.m4 +956 -0
  31. data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in +80 -0
  32. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.guess +1561 -0
  33. data/ext/nutcracker/contrib/yaml-0.1.4/config/config.sub +1686 -0
  34. data/ext/nutcracker/contrib/yaml-0.1.4/config/depcomp +630 -0
  35. data/ext/nutcracker/contrib/yaml-0.1.4/config/install-sh +520 -0
  36. data/ext/nutcracker/contrib/yaml-0.1.4/config/ltmain.sh +8406 -0
  37. data/ext/nutcracker/contrib/yaml-0.1.4/config/missing +376 -0
  38. data/ext/nutcracker/contrib/yaml-0.1.4/configure +13085 -0
  39. data/ext/nutcracker/contrib/yaml-0.1.4/configure.ac +75 -0
  40. data/ext/nutcracker/contrib/yaml-0.1.4/doc/doxygen.cfg +222 -0
  41. data/ext/nutcracker/contrib/yaml-0.1.4/include/yaml.h +1971 -0
  42. data/ext/nutcracker/contrib/yaml-0.1.4/m4/libtool.m4 +7357 -0
  43. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltoptions.m4 +368 -0
  44. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltsugar.m4 +123 -0
  45. data/ext/nutcracker/contrib/yaml-0.1.4/m4/ltversion.m4 +23 -0
  46. data/ext/nutcracker/contrib/yaml-0.1.4/m4/lt~obsolete.m4 +92 -0
  47. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.am +4 -0
  48. data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile.in +484 -0
  49. data/ext/nutcracker/contrib/yaml-0.1.4/src/api.c +1392 -0
  50. data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.c +394 -0
  51. data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.c +2329 -0
  52. data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.c +432 -0
  53. data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.c +1374 -0
  54. data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.c +465 -0
  55. data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.c +3570 -0
  56. data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.c +141 -0
  57. data/ext/nutcracker/contrib/yaml-0.1.4/src/yaml_private.h +640 -0
  58. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.am +8 -0
  59. data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile.in +675 -0
  60. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.c +800 -0
  61. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.c +1130 -0
  62. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.c +217 -0
  63. data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.c +202 -0
  64. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.c +311 -0
  65. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.c +327 -0
  66. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.c +63 -0
  67. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.c +63 -0
  68. data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.c +63 -0
  69. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-reader.c +354 -0
  70. data/ext/nutcracker/contrib/yaml-0.1.4/tests/test-version.c +29 -0
  71. data/ext/nutcracker/extconf.rb +5 -0
  72. data/ext/nutcracker/m4/libtool.m4 +7376 -0
  73. data/ext/nutcracker/m4/ltoptions.m4 +368 -0
  74. data/ext/nutcracker/m4/ltsugar.m4 +123 -0
  75. data/ext/nutcracker/m4/ltversion.m4 +23 -0
  76. data/ext/nutcracker/m4/lt~obsolete.m4 +92 -0
  77. data/ext/nutcracker/notes/c-styleguide.txt +425 -0
  78. data/ext/nutcracker/notes/debug.txt +96 -0
  79. data/ext/nutcracker/notes/memcache.txt +123 -0
  80. data/ext/nutcracker/notes/recommendation.md +118 -0
  81. data/ext/nutcracker/notes/redis.md +415 -0
  82. data/ext/nutcracker/notes/socket.txt +131 -0
  83. data/ext/nutcracker/scripts/multi_get.sh +26 -0
  84. data/ext/nutcracker/scripts/nutcracker.init +73 -0
  85. data/ext/nutcracker/scripts/nutcracker.spec +52 -0
  86. data/ext/nutcracker/scripts/pipelined_read.sh +23 -0
  87. data/ext/nutcracker/scripts/pipelined_write.sh +29 -0
  88. data/ext/nutcracker/scripts/populate_memcached.sh +24 -0
  89. data/ext/nutcracker/scripts/redis-check.py +23 -0
  90. data/ext/nutcracker/scripts/redis-check.sh +564 -0
  91. data/ext/nutcracker/src/Makefile.am +46 -0
  92. data/ext/nutcracker/src/Makefile.in +726 -0
  93. data/ext/nutcracker/src/hashkit/Makefile.am +22 -0
  94. data/ext/nutcracker/src/hashkit/Makefile.in +501 -0
  95. data/ext/nutcracker/src/hashkit/nc_crc32.c +105 -0
  96. data/ext/nutcracker/src/hashkit/nc_fnv.c +82 -0
  97. data/ext/nutcracker/src/hashkit/nc_hashkit.h +74 -0
  98. data/ext/nutcracker/src/hashkit/nc_hsieh.c +93 -0
  99. data/ext/nutcracker/src/hashkit/nc_jenkins.c +230 -0
  100. data/ext/nutcracker/src/hashkit/nc_ketama.c +240 -0
  101. data/ext/nutcracker/src/hashkit/nc_md5.c +379 -0
  102. data/ext/nutcracker/src/hashkit/nc_modula.c +144 -0
  103. data/ext/nutcracker/src/hashkit/nc_murmur.c +99 -0
  104. data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +51 -0
  105. data/ext/nutcracker/src/hashkit/nc_random.c +146 -0
  106. data/ext/nutcracker/src/nc.c +573 -0
  107. data/ext/nutcracker/src/nc_array.c +204 -0
  108. data/ext/nutcracker/src/nc_array.h +73 -0
  109. data/ext/nutcracker/src/nc_client.c +189 -0
  110. data/ext/nutcracker/src/nc_client.h +28 -0
  111. data/ext/nutcracker/src/nc_conf.c +1766 -0
  112. data/ext/nutcracker/src/nc_conf.h +134 -0
  113. data/ext/nutcracker/src/nc_connection.c +392 -0
  114. data/ext/nutcracker/src/nc_connection.h +99 -0
  115. data/ext/nutcracker/src/nc_core.c +334 -0
  116. data/ext/nutcracker/src/nc_core.h +131 -0
  117. data/ext/nutcracker/src/nc_event.c +214 -0
  118. data/ext/nutcracker/src/nc_event.h +39 -0
  119. data/ext/nutcracker/src/nc_log.c +254 -0
  120. data/ext/nutcracker/src/nc_log.h +120 -0
  121. data/ext/nutcracker/src/nc_mbuf.c +285 -0
  122. data/ext/nutcracker/src/nc_mbuf.h +67 -0
  123. data/ext/nutcracker/src/nc_message.c +828 -0
  124. data/ext/nutcracker/src/nc_message.h +253 -0
  125. data/ext/nutcracker/src/nc_proxy.c +359 -0
  126. data/ext/nutcracker/src/nc_proxy.h +34 -0
  127. data/ext/nutcracker/src/nc_queue.h +788 -0
  128. data/ext/nutcracker/src/nc_rbtree.c +348 -0
  129. data/ext/nutcracker/src/nc_rbtree.h +47 -0
  130. data/ext/nutcracker/src/nc_request.c +588 -0
  131. data/ext/nutcracker/src/nc_response.c +332 -0
  132. data/ext/nutcracker/src/nc_server.c +841 -0
  133. data/ext/nutcracker/src/nc_server.h +143 -0
  134. data/ext/nutcracker/src/nc_signal.c +131 -0
  135. data/ext/nutcracker/src/nc_signal.h +34 -0
  136. data/ext/nutcracker/src/nc_stats.c +1188 -0
  137. data/ext/nutcracker/src/nc_stats.h +206 -0
  138. data/ext/nutcracker/src/nc_string.c +109 -0
  139. data/ext/nutcracker/src/nc_string.h +112 -0
  140. data/ext/nutcracker/src/nc_util.c +619 -0
  141. data/ext/nutcracker/src/nc_util.h +214 -0
  142. data/ext/nutcracker/src/proto/Makefile.am +14 -0
  143. data/ext/nutcracker/src/proto/Makefile.in +482 -0
  144. data/ext/nutcracker/src/proto/nc_memcache.c +1306 -0
  145. data/ext/nutcracker/src/proto/nc_proto.h +155 -0
  146. data/ext/nutcracker/src/proto/nc_redis.c +2102 -0
  147. data/lib/nutcracker.rb +7 -0
  148. data/lib/nutcracker/version.rb +3 -0
  149. 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
+