]> andersk Git - libyaml.git/blame - include/yaml.h
Add yaml.h with prototypes for basic structures.
[libyaml.git] / include / yaml.h
CommitLineData
9e05b78c
KS
1
2#ifndef _YAML_H
3#define _YAML_H
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9typedef enum {
10 YAML_READER_ERROR,
11 YAML_SCANNER_ERROR,
12 YAML_PARSER_ERROR,
13 YAML_EMITTER_ERROR
14} yaml_error_type_t;
15
16typedef enum {
17 YAML_UTF8_ENCODING,
18 YAML_UTF16LE_ENCODING,
19 YAML_UTF16BE_ENCODING
20} yaml_encoding_t;
21
22typedef enum {
23 YAML_PLAIN_SCALAR_STYLE,
24 YAML_SINGLE_QUOTED_SCALAR_STYLE,
25 YAML_DOUBLE_QUOTED_SCALAR_STYLE,
26 YAML_LITERAL_SCALAR_STYLE,
27 YAML_FOLDED_SCALAR_STYLE
28} yaml_scalar_style_t;
29
30typedef enum {
31 YAML_BLOCK_SEQUENCE_STYLE,
32 YAML_FLOW_SEQUENCE_STYLE
33} yaml_sequence_style_t;
34
35typedef enum {
36 YAML_BLOCK_MAPPING_STYLE,
37 YAML_FLOW_MAPPING_STYLE
38} yaml_mapping_style_t;
39
40typedef enum {
41 YAML_STREAM_START_TOKEN,
42 YAML_STREAM_END_TOKEN,
43 YAML_VERSION_DIRECTIVE_TOKEN,
44 YAML_TAG_DIRECTIVE_TOKEN,
45 YAML_DOCUMENT_START_TOKEN,
46 YAML_DOCUMENT_END_TOKEN,
47 YAML_BLOCK_SEQUENCE_START_TOKEN,
48 YAML_BLOCK_MAPPING_START_TOKEN,
49 YAML_BLOCK_END_TOKEN,
50 YAML_FLOW_SEQUENCE_START_TOKEN,
51 YAML_FLOW_SEQUENCE_END_TOKEN,
52 YAML_FLOW_MAPPING_START_TOKEN,
53 YAML_FLOW_MAPPING_END_TOKEN,
54 YAML_BLOCK_ENTRY_TOKEN,
55 YAML_FLOW_ENTRY_TOKEN,
56 YAML_KEY_TOKEN,
57 YAML_VALUE_TOKEN,
58 YAML_ALIAS_TOKEN,
59 YAML_ANCHOR_TOKEN,
60 YAML_TAG_TOKEN,
61 YAML_SCALAR_TOKEN
62} yaml_token_type_t;
63
64typedef enum {
65 YAML_STREAM_START_EVENT,
66 YAML_STREAM_END_EVENT,
67 YAML_DOCUMENT_START_EVENT,
68 YAML_DOCUMENT_END_EVENT,
69 YAML_ALIAS_EVENT,
70 YAML_SEQUENCE_START_EVENT,
71 YAML_SEQUENCE_END_EVENT,
72 YAML_MAPPING_START_EVENT,
73 YAML_MAPPING_END_EVENT,
74 YAML_SCALAR_EVENT
75} yaml_event_type_t;
76
77typedef struct {
78 char *value;
79 size_t length;
80} yaml_string_t;
81
82typedef struct {
83 size_t index;
84 size_t line;
85 size_t column;
86} yaml_mark_t;
87
88typedef struct {
89 yaml_error_type_t type;
90 char *context;
91 yaml_mark_t context_mark;
92 char *problem;
93 yaml_mark_t problem_mark;
94} yaml_error_t;
95
96typedef struct {
97 yaml_token_type_t type;
98 union {
99 yaml_encoding_t encoding;
100 yaml_string_t anchor;
101 yaml_string_t tag;
102 struct {
103 yaml_string_t value;
104 yaml_scalar_style_t style;
105 } scalar;
106 struct {
107 int major;
108 int minor;
109 } version;
110 struct {
111 yaml_string_t handle;
112 yaml_string_t prefix;
113 } tag_pair;
114 } data;
115 yaml_mark_t start_mark;
116 yaml_mark_t end_mark;
117} yaml_token_t;
118
119typedef struct {
120 yaml_event_type_t type;
121 union {
122 struct {
123 yaml_encoding_t encoding;
124 } stream_start;
125 struct {
126 struct {
127 int major;
128 int minor;
129 } version;
130 struct {
131 yaml_string_t handle;
132 yaml_string_t prefix;
133 } **tag_pairs;
134 int implicit;
135 } document_start;
136 struct {
137 int implicit;
138 } document_end;
139 struct {
140 yaml_string_t anchor;
141 } alias;
142 struct {
143 yaml_string_t anchor;
144 yaml_string_t tag;
145 int plain_implicit;
146 int quoted_implicit;
147 yaml_scalar_style_t style;
148 } scalar;
149 struct {
150 yaml_string_t anchor;
151 yaml_string_t tag;
152 int implicit;
153 yaml_sequence_style_t style;
154 } sequence_start;
155 struct {
156 yaml_string_t anchor;
157 yaml_string_t tag;
158 int implicit;
159 yaml_mapping_style_t style;
160 } mapping_start;
161 } data;
162 yaml_mark_t start_mark;
163 yaml_mark_t end_mark;
164} yaml_event_t;
165
166typedef struct {
167} yaml_scanner_t;
168
169typedef struct {
170} yaml_parser_t;
171
172typedef struct {
173} yaml_composer_t;
174
175typedef struct {
176} yaml_emitter_t;
177
178typedef struct {
179} yaml_serializer_t;
180
181#ifdef __cplusplus
182}
183#endif
184
185#endif /* #ifndef _YAML_H */
186
This page took 0.068611 seconds and 5 git commands to generate.