From 9e05b78ca5d1e05a5665da4d503eaad56eb49cb1 Mon Sep 17 00:00:00 2001 From: Kirill Simonov Date: Fri, 12 May 2006 19:39:56 +0000 Subject: Add yaml.h with prototypes for basic structures. --- include/yaml.h | 186 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 include/yaml.h (limited to 'include') 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 */ + -- cgit v1.2.1