root/pysyck/trunk/sandbox/emit-it/emit-it.c

Revision 25, 2.0 kB (checked in by xi, 5 years ago)

Adding some docstrings.

Line 
1
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <stdarg.h>
5 #include <error.h>
6 #include <string.h>
7
8 #include <syck.h>
9
10 void output_handler(SyckEmitter *e, char *str, long len)
11 {
12     fwrite(str, 1, len, stdout);
13 }
14
15 void emitter_handler(SyckEmitter *e, st_data_t id)
16 {
17     switch (id) {
18 /*
19         case 1:
20             syck_emit_seq(e, "tag:domainmyseq.tld,2002:zz", seq_none);
21             syck_emit_item(e, 2);
22             syck_emit_item(e, 3);
23             syck_emit_item(e, 4);
24             syck_emit_end(e);
25             break;
26         case 2:
27             syck_emit_scalar(e, "tag:yaml.org,2002:str", scalar_none, 0, 0, 0, "Mark McGwire ", strlen("Mark McGwire "));
28             break;
29         case 3:
30             syck_emit_scalar(e, "tag:python.yaml.org,2002:object", scalar_none, 0, 0, 0, "Sammy Sosa", strlen("Sammy Sosa"));
31             break;
32         case 4:
33             syck_emit_scalar(e, "x-private:myowntype", scalar_none, 0, 0, 0, "Ken Griffey", strlen("Ken Griffey"));
34             break;
35 */
36
37         case 1:
38             syck_emit_map(e, NULL, map_none);
39             syck_emit_item(e, 2);
40             syck_emit_item(e, 3);
41             syck_emit_end(e);
42             break;
43
44         case 2:
45             syck_emit_map(e, "x-private:key", map_none);
46             syck_emit_item(e, 4);
47             syck_emit_item(e, 5);
48             syck_emit_end(e);
49             break;
50
51         case 3:
52         case 4:
53         case 5:
54             syck_emit_scalar(e, NULL, scalar_none, 0, 0, 0, "foo", 3);
55             break;
56     }
57        
58 }
59
60 int main(int argc, char *argv[])
61 {
62     SyckEmitter *e;
63
64     e = syck_new_emitter();
65     syck_emitter_handler(e, emitter_handler);
66     syck_output_handler(e, output_handler);
67     syck_emitter_mark_node(e, 1);
68     syck_emitter_mark_node(e, 2);
69     syck_emitter_mark_node(e, 3);
70     syck_emitter_mark_node(e, 4);
71     syck_emitter_mark_node(e, 5);
72 /*    syck_emitter_mark_node(e, 2);
73     syck_emitter_mark_node(e, 1);*/
74     syck_emit(e, 1);
75     syck_emitter_flush(e, 0);
76     syck_free_emitter(e);
77 }
78
Note: See TracBrowser for help on using the browser.