summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Simonov <xi@resolvent.net>2006-05-12 19:39:56 +0000
committerKirill Simonov <xi@resolvent.net>2006-05-12 19:39:56 +0000
commit9e05b78ca5d1e05a5665da4d503eaad56eb49cb1 (patch)
tree8d8f34c4ba810146cc5e59e190f5d02fee366253
parentceebf81b0b02e0bbe3e04979357022749349d6d9 (diff)
downloadlibyaml-hg-9e05b78ca5d1e05a5665da4d503eaad56eb49cb1.tar.gz
Add yaml.h with prototypes for basic structures.
-rw-r--r--include/yaml.h186
1 files changed, 186 insertions, 0 deletions
diff --git a/include/yaml.h b/include/yaml.h
new file mode 100644
index 0000000..b5e2403
--- /dev/null
+++ b/include/yaml.h
@@ -0,0 +1,186 @@
+
+#ifndef _YAML_H
+#define _YAML_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ YAML_READER_ERROR,
+ YAML_SCANNER_ERROR,
+ YAML_PARSER_ERROR,
+ YAML_EMITTER_ERROR
+} yaml_error_type_t;
+
+typedef enum {
+ YAML_UTF8_ENCODING,
+ YAML_UTF16LE_ENCODING,
+ YAML_UTF16BE_ENCODING
+} yaml_encoding_t;
+
+typedef enum {
+ YAML_PLAIN_SCALAR_STYLE,
+ YAML_SINGLE_QUOTED_SCALAR_STYLE,
+ YAML_DOUBLE_QUOTED_SCALAR_STYLE,
+ YAML_LITERAL_SCALAR_STYLE,
+ YAML_FOLDED_SCALAR_STYLE
+} yaml_scalar_style_t;
+
+typedef enum {
+ YAML_BLOCK_SEQUENCE_STYLE,
+ YAML_FLOW_SEQUENCE_STYLE
+} yaml_sequence_style_t;
+
+typedef enum {
+ YAML_BLOCK_MAPPING_STYLE,
+ YAML_FLOW_MAPPING_STYLE
+} yaml_mapping_style_t;
+
+typedef enum {
+ YAML_STREAM_START_TOKEN,
+ YAML_STREAM_END_TOKEN,
+ YAML_VERSION_DIRECTIVE_TOKEN,
+ YAML_TAG_DIRECTIVE_TOKEN,
+ YAML_DOCUMENT_START_TOKEN,
+ YAML_DOCUMENT_END_TOKEN,
+ YAML_BLOCK_SEQUENCE_START_TOKEN,
+ YAML_BLOCK_MAPPING_START_TOKEN,
+ YAML_BLOCK_END_TOKEN,
+ YAML_FLOW_SEQUENCE_START_TOKEN,
+ YAML_FLOW_SEQUENCE_END_TOKEN,
+ YAML_FLOW_MAPPING_START_TOKEN,
+ YAML_FLOW_MAPPING_END_TOKEN,
+ YAML_BLOCK_ENTRY_TOKEN,
+ YAML_FLOW_ENTRY_TOKEN,
+ YAML_KEY_TOKEN,
+ YAML_VALUE_TOKEN,
+ YAML_ALIAS_TOKEN,
+ YAML_ANCHOR_TOKEN,
+ YAML_TAG_TOKEN,
+ YAML_SCALAR_TOKEN
+} yaml_token_type_t;
+
+typedef enum {
+ YAML_STREAM_START_EVENT,
+ YAML_STREAM_END_EVENT,
+ YAML_DOCUMENT_START_EVENT,
+ YAML_DOCUMENT_END_EVENT,
+ YAML_ALIAS_EVENT,
+ YAML_SEQUENCE_START_EVENT,
+ YAML_SEQUENCE_END_EVENT,
+ YAML_MAPPING_START_EVENT,
+ YAML_MAPPING_END_EVENT,
+ YAML_SCALAR_EVENT
+} yaml_event_type_t;
+
+typedef struct {
+ char *value;
+ size_t length;
+} yaml_string_t;
+
+typedef struct {
+ size_t index;
+ size_t line;
+ size_t column;
+} yaml_mark_t;
+
+typedef struct {
+ yaml_error_type_t type;
+ char *context;
+ yaml_mark_t context_mark;
+ char *problem;
+ yaml_mark_t problem_mark;
+} yaml_error_t;
+
+typedef struct {
+ yaml_token_type_t type;
+ union {
+ yaml_encoding_t encoding;
+ yaml_string_t anchor;
+ yaml_string_t tag;
+ struct {
+ yaml_string_t value;
+ yaml_scalar_style_t style;
+ } scalar;
+ struct {
+ int major;
+ int minor;
+ } version;
+ struct {
+ yaml_string_t handle;
+ yaml_string_t prefix;
+ } tag_pair;
+ } data;
+ yaml_mark_t start_mark;
+ yaml_mark_t end_mark;
+} yaml_token_t;
+
+typedef struct {
+ yaml_event_type_t type;
+ union {
+ struct {
+ yaml_encoding_t encoding;
+ } stream_start;
+ struct {
+ struct {
+ int major;
+ int minor;
+ } version;
+ struct {
+ yaml_string_t handle;
+ yaml_string_t prefix;
+ } **tag_pairs;
+ int implicit;
+ } document_start;
+ struct {
+ int implicit;
+ } document_end;
+ struct {
+ yaml_string_t anchor;
+ } alias;
+ struct {
+ yaml_string_t anchor;
+ yaml_string_t tag;
+ int plain_implicit;
+ int quoted_implicit;
+ yaml_scalar_style_t style;
+ } scalar;
+ struct {
+ yaml_string_t anchor;
+ yaml_string_t tag;
+ int implicit;
+ yaml_sequence_style_t style;
+ } sequence_start;
+ struct {
+ yaml_string_t anchor;
+ yaml_string_t tag;
+ int implicit;
+ yaml_mapping_style_t style;
+ } mapping_start;
+ } data;
+ yaml_mark_t start_mark;
+ yaml_mark_t end_mark;
+} yaml_event_t;
+
+typedef struct {
+} yaml_scanner_t;
+
+typedef struct {
+} yaml_parser_t;
+
+typedef struct {
+} yaml_composer_t;
+
+typedef struct {
+} yaml_emitter_t;
+
+typedef struct {
+} yaml_serializer_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #ifndef _YAML_H */
+