source: libyaml/trunk/include/yaml/yaml.h @ 169

Revision 169, 3.7 KB checked in by xi, 9 years ago (diff)

Add the basic autoconf infrastructure.

Line 
1
2#ifndef YAML_H
3#define YAML_H
4
5#ifdef __cplusplus
6extern "C" {
7#endif
8
9#include <stdlib.h>
10
11#include "yaml_version.h"
12#include "yaml_error.h"
13
14typedef enum {
15    YAML_DETECT_ENCODING,
16    YAML_UTF8_ENCODING,
17    YAML_UTF16LE_ENCODING,
18    YAML_UTF16BE_ENCODING
19} yaml_encoding_t;
20
21typedef enum {
22    YAML_ANY_SCALAR_STYLE,
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_ANY_SEQUENCE_STYLE,
32    YAML_BLOCK_SEQUENCE_STYLE,
33    YAML_FLOW_SEQUENCE_STYLE
34} yaml_sequence_style_t;
35
36typedef enum {
37    YAML_ANY_MAPPING_STYLE,
38    YAML_BLOCK_MAPPING_STYLE,
39    YAML_FLOW_MAPPING_STYLE
40} yaml_mapping_style_t;
41
42typedef enum {
43    YAML_STREAM_START_TOKEN,
44    YAML_STREAM_END_TOKEN,
45
46    YAML_VERSION_DIRECTIVE_TOKEN,
47    YAML_TAG_DIRECTIVE_TOKEN,
48    YAML_DOCUMENT_START_TOKEN,
49    YAML_DOCUMENT_END_TOKEN,
50
51    YAML_BLOCK_SEQUENCE_START_TOKEN,
52    YAML_BLOCK_MAPPING_START_TOKEN,
53    YAML_BLOCK_END_TOKEN,
54
55    YAML_FLOW_SEQUENCE_START_TOKEN,
56    YAML_FLOW_SEQUENCE_END_TOKEN,
57    YAML_FLOW_MAPPING_START_TOKEN,
58    YAML_FLOW_MAPPING_END_TOKEN,
59
60    YAML_BLOCK_ENTRY_TOKEN,
61    YAML_FLOW_ENTRY_TOKEN,
62    YAML_KEY_TOKEN,
63    YAML_VALUE_TOKEN,
64
65    YAML_ALIAS_TOKEN,
66    YAML_ANCHOR_TOKEN,
67    YAML_TAG_TOKEN,
68    YAML_SCALAR_TOKEN
69} yaml_token_type_t;
70
71typedef enum {
72    YAML_STREAM_START_EVENT,
73    YAML_STREAM_END_EVENT,
74
75    YAML_DOCUMENT_START_EVENT,
76    YAML_DOCUMENT_END_EVENT,
77
78    YAML_ALIAS_EVENT,
79    YAML_SCALAR_EVENT,
80
81    YAML_SEQUENCE_START_EVENT,
82    YAML_SEQUENCE_END_EVENT,
83
84    YAML_MAPPING_START_EVENT,
85    YAML_MAPPING_END_EVENT
86} yaml_event_type_t;
87
88typedef struct {
89    size_t offset;
90    size_t index;
91    size_t line;
92    size_t column;
93} yaml_mark_t;
94
95typedef struct {
96    yaml_error_type_t type;
97    char *context;
98    yaml_mark_t context_mark;
99    char *problem;
100    yaml_mark_t problem_mark;
101} yaml_error_t;
102
103typedef struct {
104    yaml_token_type_t type;
105    union {
106        yaml_encoding_t encoding;
107        char *anchor;
108        char *tag;
109        struct {
110            char *value;
111            size_t length;
112            yaml_scalar_style_t style;
113        } scalar;
114        struct {
115            int major;
116            int minor;
117        } version;
118        struct {
119          char *handle;
120          char *prefix;
121        } tag_pair;
122    } data;
123    yaml_mark_t start_mark;
124    yaml_mark_t end_mark;
125} yaml_token_t;
126
127typedef struct {
128    yaml_event_type_t type;
129    union {
130        struct {
131            yaml_encoding_t encoding;
132        } stream_start;
133        struct {
134            struct {
135                int major;
136                int minor;
137            } version;
138            struct {
139                char *handle;
140                char *prefix;
141            } **tag_pairs;
142            int implicit;
143        } document_start;
144        struct {
145            int implicit;
146        } document_end;
147        struct {
148            char *anchor;
149        } alias;
150        struct {
151            char *anchor;
152            char *tag;
153            char *value;
154            size_t length;
155            int plain_implicit;
156            int quoted_implicit;
157            yaml_scalar_style_t style;
158        } scalar;
159        struct {
160            char *anchor;
161            char *tag;
162            int implicit;
163            yaml_sequence_style_t style;
164        } sequence_start;
165        struct {
166            char *anchor;
167            char *tag;
168            int implicit;
169            yaml_mapping_style_t style;
170        } mapping_start;
171    } data;
172    yaml_mark_t start_mark;
173    yaml_mark_t end_mark;
174} yaml_event_t;
175
176/*
177typedef struct {
178} yaml_parser_t;
179
180typedef struct {
181} yaml_emitter_t;
182*/
183
184#ifdef __cplusplus
185}
186#endif
187
188#endif /* #ifndef YAML_H */
189
Note: See TracBrowser for help on using the repository browser.