#include <stdlib.h>
#include <stdio.h>
#include <string.h>
Data Structures | |
| struct | yaml_version_directive_t |
| The version directive data. More... | |
| struct | yaml_tag_directive_t |
| The tag directive data. More... | |
| struct | yaml_mark_t |
| The pointer position. More... | |
| struct | yaml_token_t |
| The token structure. More... | |
| struct | yaml_event_t |
| The event structure. More... | |
| struct | yaml_simple_key_t |
| This structure holds information about a potential simple key. More... | |
| struct | yaml_parser_t |
| The parser structure. More... | |
| struct | yaml_emitter_t |
| The emitter structure. More... | |
Defines | |
| #define | YAML_DECLARE(type) type |
| The public API declaration. | |
Typedefs | |
| typedef unsigned char | yaml_char_t |
| The character type (UTF-8 octet). | |
| typedef int | yaml_read_handler_t (void *data, unsigned char *buffer, size_t size, size_t *size_read) |
| The prototype of a read handler. | |
| typedef int | yaml_write_handler_t (void *data, unsigned char *buffer, size_t size) |
| The prototype of a write handler. | |
Enumerations | |
| enum | yaml_encoding_t { YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING } |
| The stream encoding. | |
| enum | yaml_break_t { YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK } |
| Line break types. | |
| enum | yaml_error_type_t { YAML_NO_ERROR, YAML_MEMORY_ERROR, YAML_READER_ERROR, YAML_SCANNER_ERROR, YAML_PARSER_ERROR, YAML_WRITER_ERROR, YAML_EMITTER_ERROR } |
| Many bad things could happen with the parser and emitter. | |
| enum | yaml_scalar_style_t { YAML_ANY_SCALAR_STYLE, YAML_PLAIN_SCALAR_STYLE, YAML_SINGLE_QUOTED_SCALAR_STYLE, YAML_DOUBLE_QUOTED_SCALAR_STYLE, YAML_LITERAL_SCALAR_STYLE, YAML_FOLDED_SCALAR_STYLE } |
| Scalar styles. | |
| enum | yaml_sequence_style_t { YAML_ANY_SEQUENCE_STYLE, YAML_BLOCK_SEQUENCE_STYLE, YAML_FLOW_SEQUENCE_STYLE } |
| Sequence styles. | |
| enum | yaml_mapping_style_t { YAML_ANY_MAPPING_STYLE, YAML_BLOCK_MAPPING_STYLE, YAML_FLOW_MAPPING_STYLE } |
| Mapping styles. | |
| enum | yaml_token_type_t { YAML_NO_TOKEN, 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 } |
| Token types. | |
| enum | yaml_event_type_t { YAML_NO_EVENT, YAML_STREAM_START_EVENT, YAML_STREAM_END_EVENT, YAML_DOCUMENT_START_EVENT, YAML_DOCUMENT_END_EVENT, YAML_ALIAS_EVENT, YAML_SCALAR_EVENT, YAML_SEQUENCE_START_EVENT, YAML_SEQUENCE_END_EVENT, YAML_MAPPING_START_EVENT, YAML_MAPPING_END_EVENT } |
| Event types. | |
| enum | yaml_parser_state_t { YAML_PARSE_STREAM_START_STATE, YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE, YAML_PARSE_DOCUMENT_START_STATE, YAML_PARSE_DOCUMENT_CONTENT_STATE, YAML_PARSE_DOCUMENT_END_STATE, YAML_PARSE_BLOCK_NODE_STATE, YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE, YAML_PARSE_FLOW_NODE_STATE, YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE, YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE, YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE, YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE, YAML_PARSE_BLOCK_MAPPING_KEY_STATE, YAML_PARSE_BLOCK_MAPPING_VALUE_STATE, YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE, YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE, YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE, YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE, YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE, YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE, YAML_PARSE_FLOW_MAPPING_KEY_STATE, YAML_PARSE_FLOW_MAPPING_VALUE_STATE, YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE, YAML_PARSE_END_STATE } |
| The states of the parser. | |
| enum | yaml_emitter_state_t { YAML_EMIT_STREAM_START_STATE, YAML_EMIT_FIRST_DOCUMENT_START_STATE, YAML_EMIT_DOCUMENT_START_STATE, YAML_EMIT_DOCUMENT_CONTENT_STATE, YAML_EMIT_DOCUMENT_END_STATE, YAML_EMIT_FLOW_SEQUENCE_FIRST_ITEM_STATE, YAML_EMIT_FLOW_SEQUENCE_ITEM_STATE, YAML_EMIT_FLOW_MAPPING_FIRST_KEY_STATE, YAML_EMIT_FLOW_MAPPING_KEY_STATE, YAML_EMIT_FLOW_MAPPING_SIMPLE_VALUE_STATE, YAML_EMIT_FLOW_MAPPING_VALUE_STATE, YAML_EMIT_BLOCK_SEQUENCE_FIRST_ITEM_STATE, YAML_EMIT_BLOCK_SEQUENCE_ITEM_STATE, YAML_EMIT_BLOCK_MAPPING_FIRST_KEY_STATE, YAML_EMIT_BLOCK_MAPPING_KEY_STATE, YAML_EMIT_BLOCK_MAPPING_SIMPLE_VALUE_STATE, YAML_EMIT_BLOCK_MAPPING_VALUE_STATE, YAML_EMIT_END_STATE } |
| The emitter states. | |
Functions | |
| const char * | yaml_get_version_string (void) |
| Get the library version as a string. | |
| void | yaml_get_version (int *major, int *minor, int *patch) |
| Get the library version numbers. | |
| void | yaml_token_delete (yaml_token_t *token) |
| Free any memory allocated for a token object. | |
| int | yaml_stream_start_event_initialize (yaml_event_t *event, yaml_encoding_t encoding) |
| Create the STREAM-START event. | |
| int | yaml_stream_end_event_initialize (yaml_event_t *event) |
| Create the STREAM-END event. | |
| int | yaml_document_start_event_initialize (yaml_event_t *event, yaml_version_directive_t *version_directive, yaml_tag_directive_t *tag_directives_start, yaml_tag_directive_t *tag_directives_end, int implicit) |
| Create the DOCUMENT-START event. | |
| int | yaml_document_end_event_initialize (yaml_event_t *event, int implicit) |
| Create the DOCUMENT-END event. | |
| int | yaml_alias_event_initialize (yaml_event_t *event, yaml_char_t *anchor) |
| Create an ALIAS event. | |
| int | yaml_scalar_event_initialize (yaml_event_t *event, yaml_char_t *anchor, yaml_char_t *tag, yaml_char_t *value, int length, int plain_implicit, int quoted_implicit, yaml_scalar_style_t style) |
| Create a SCALAR event. | |
| int | yaml_sequence_start_event_initialize (yaml_event_t *event, yaml_char_t *anchor, yaml_char_t *tag, int implicit, yaml_sequence_style_t style) |
| Create a SEQUENCE-START event. | |
| int | yaml_sequence_end_event_initialize (yaml_event_t *event) |
| Create a SEQUENCE-END event. | |
| int | yaml_mapping_start_event_initialize (yaml_event_t *event, yaml_char_t *anchor, yaml_char_t *tag, int implicit, yaml_mapping_style_t style) |
| Create a MAPPING-START event. | |
| int | yaml_mapping_end_event_initialize (yaml_event_t *event) |
| Create a MAPPING-END event. | |
| void | yaml_event_delete (yaml_event_t *event) |
| Free any memory allocated for an event object. | |
| int | yaml_parser_initialize (yaml_parser_t *parser) |
| Initialize a parser. | |
| void | yaml_parser_delete (yaml_parser_t *parser) |
| Destroy a parser. | |
| void | yaml_parser_set_input_string (yaml_parser_t *parser, unsigned char *input, size_t size) |
| Set a string input. | |
| void | yaml_parser_set_input_file (yaml_parser_t *parser, FILE *file) |
| Set a file input. | |
| void | yaml_parser_set_input (yaml_parser_t *parser, yaml_read_handler_t *handler, void *data) |
| Set a generic input handler. | |
| void | yaml_parser_set_encoding (yaml_parser_t *parser, yaml_encoding_t encoding) |
| Set the source encoding. | |
| int | yaml_parser_scan (yaml_parser_t *parser, yaml_token_t *token) |
| Scan the input stream and produce the next token. | |
| int | yaml_parser_parse (yaml_parser_t *parser, yaml_event_t *event) |
| Parse the input stream and produce the next parsing event. | |
| int | yaml_emitter_initialize (yaml_emitter_t *emitter) |
| Initialize an emitter. | |
| void | yaml_emitter_delete (yaml_emitter_t *emitter) |
| Destroy an emitter. | |
| void | yaml_emitter_set_output_string (yaml_emitter_t *emitter, unsigned char *output, size_t size, size_t *size_written) |
| Set a string output. | |
| void | yaml_emitter_set_output_file (yaml_emitter_t *emitter, FILE *file) |
| Set a file output. | |
| void | yaml_emitter_set_output (yaml_emitter_t *emitter, yaml_write_handler_t *handler, void *data) |
| Set a generic output handler. | |
| void | yaml_emitter_set_encoding (yaml_emitter_t *emitter, yaml_encoding_t encoding) |
| Set the output encoding. | |
| void | yaml_emitter_set_canonical (yaml_emitter_t *emitter, int canonical) |
| Set if the output should be in the "canonical" format as in the YAML specification. | |
| void | yaml_emitter_set_indent (yaml_emitter_t *emitter, int indent) |
| Set the intendation increment. | |
| void | yaml_emitter_set_width (yaml_emitter_t *emitter, int width) |
| Set the preferred line width. | |
| void | yaml_emitter_set_unicode (yaml_emitter_t *emitter, int unicode) |
| Set if unescaped non-ASCII characters are allowed. | |
| void | yaml_emitter_set_break (yaml_emitter_t *emitter, yaml_break_t line_break) |
| Set the preferred line break. | |
| int | yaml_emitter_emit (yaml_emitter_t *emitter, yaml_event_t *event) |
| Emit an event. | |
| int | yaml_emitter_flush (yaml_emitter_t *emitter) |
| Flush the accumulated characters to the output. | |
Include the header file with the code:
#include <yaml.h>
1.4.6