yaml.h File Reference

Public interface for libyaml. More...

#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.


Detailed Description

Public interface for libyaml.

Include the header file with the code:

 #include <yaml.h>

Generated on Tue Aug 1 14:32:24 2006 for yaml by  doxygen 1.4.6