source: pysyck/trunk/sandbox/emit-it/emit-it.c @ 25

Revision 25, 2.0 KB checked in by xi, 9 years ago (diff)

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
10void output_handler(SyckEmitter *e, char *str, long len)
11{
12    fwrite(str, 1, len, stdout);
13}
14
15void 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
60int 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 repository browser.