mirror of
https://github.com/yaml/libyaml.git
synced 2026-01-26 11:14:28 +00:00
Add yaml.h with prototypes for basic structures.
This commit is contained in:
parent
ceebf81b0b
commit
9e05b78ca5
186
include/yaml.h
Normal file
186
include/yaml.h
Normal file
@ -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 */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user