Parser Definitions


Data Structures

struct  yaml_simple_key_s
 This structure holds information about a potential simple key. More...
struct  yaml_alias_data_s
 This structure holds aliases data. More...
struct  yaml_parser_s
 The parser structure. More...

Typedefs

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 yaml_simple_key_s yaml_simple_key_t
 This structure holds information about a potential simple key.
typedef enum yaml_parser_state_e yaml_parser_state_t
 The states of the parser.
typedef yaml_alias_data_s yaml_alias_data_t
 This structure holds aliases data.
typedef yaml_parser_s yaml_parser_t
 The parser structure.

Enumerations

enum  yaml_parser_state_e {
  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. More...

Functions

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, const 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_parser_load (yaml_parser_t *parser, yaml_document_t *document)
 Parse the input stream and produce the next YAML document.

Typedef Documentation

typedef int yaml_read_handler_t(void *data, unsigned char *buffer, size_t size, size_t *size_read)

The prototype of a read handler.

The read handler is called when the parser needs to read more bytes from the source. The handler should write not more than size bytes to the buffer. The number of written bytes should be set to the length variable.

Parameters:
[in,out] data A pointer to an application data specified by yaml_parser_set_input().
[out] buffer The buffer to write the data from the source.
[in] size The size of the buffer.
[out] size_read The actual number of bytes read from the source.
Returns:
On success, the handler should return 1. If the handler failed, the returned value should be 0. On EOF, the handler should set the size_read to 0 and return 1.

typedef struct yaml_parser_s yaml_parser_t

The parser structure.

All members are internal. Manage the structure using the yaml_parser_ family of functions.


Enumeration Type Documentation

enum yaml_parser_state_e

The states of the parser.

Enumerator:
YAML_PARSE_STREAM_START_STATE  Expect STREAM-START.
YAML_PARSE_IMPLICIT_DOCUMENT_START_STATE  Expect the beginning of an implicit document.
YAML_PARSE_DOCUMENT_START_STATE  Expect DOCUMENT-START.
YAML_PARSE_DOCUMENT_CONTENT_STATE  Expect the content of a document.
YAML_PARSE_DOCUMENT_END_STATE  Expect DOCUMENT-END.
YAML_PARSE_BLOCK_NODE_STATE  Expect a block node.
YAML_PARSE_BLOCK_NODE_OR_INDENTLESS_SEQUENCE_STATE  Expect a block node or indentless sequence.
YAML_PARSE_FLOW_NODE_STATE  Expect a flow node.
YAML_PARSE_BLOCK_SEQUENCE_FIRST_ENTRY_STATE  Expect the first entry of a block sequence.
YAML_PARSE_BLOCK_SEQUENCE_ENTRY_STATE  Expect an entry of a block sequence.
YAML_PARSE_INDENTLESS_SEQUENCE_ENTRY_STATE  Expect an entry of an indentless sequence.
YAML_PARSE_BLOCK_MAPPING_FIRST_KEY_STATE  Expect the first key of a block mapping.
YAML_PARSE_BLOCK_MAPPING_KEY_STATE  Expect a block mapping key.
YAML_PARSE_BLOCK_MAPPING_VALUE_STATE  Expect a block mapping value.
YAML_PARSE_FLOW_SEQUENCE_FIRST_ENTRY_STATE  Expect the first entry of a flow sequence.
YAML_PARSE_FLOW_SEQUENCE_ENTRY_STATE  Expect an entry of a flow sequence.
YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_KEY_STATE  Expect a key of an ordered mapping.
YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_VALUE_STATE  Expect a value of an ordered mapping.
YAML_PARSE_FLOW_SEQUENCE_ENTRY_MAPPING_END_STATE  Expect the and of an ordered mapping entry.
YAML_PARSE_FLOW_MAPPING_FIRST_KEY_STATE  Expect the first key of a flow mapping.
YAML_PARSE_FLOW_MAPPING_KEY_STATE  Expect a key of a flow mapping.
YAML_PARSE_FLOW_MAPPING_VALUE_STATE  Expect a value of a flow mapping.
YAML_PARSE_FLOW_MAPPING_EMPTY_VALUE_STATE  Expect an empty value of a flow mapping.
YAML_PARSE_END_STATE  Expect nothing.


Function Documentation

int yaml_parser_initialize ( yaml_parser_t parser  ) 

Initialize a parser.

This function creates a new parser object. An application is responsible for destroying the object using the yaml_parser_delete() function.

Parameters:
[out] parser An empty parser object.
Returns:
1 if the function succeeded, 0 on error.

void yaml_parser_delete ( yaml_parser_t parser  ) 

Destroy a parser.

Parameters:
[in,out] parser A parser object.

void yaml_parser_set_input_string ( yaml_parser_t parser,
const unsigned char *  input,
size_t  size 
)

Set a string input.

Note that the input pointer must be valid while the parser object exists. The application is responsible for destroing input after destroying the parser.

Parameters:
[in,out] parser A parser object.
[in] input A source data.
[in] size The length of the source data in bytes.

void yaml_parser_set_input_file ( yaml_parser_t parser,
FILE *  file 
)

Set a file input.

file should be a file object open for reading. The application is responsible for closing the file.

Parameters:
[in,out] parser A parser object.
[in] file An open file.

void yaml_parser_set_input ( yaml_parser_t parser,
yaml_read_handler_t handler,
void *  data 
)

Set a generic input handler.

Parameters:
[in,out] parser A parser object.
[in] handler A read handler.
[in] data Any application data for passing to the read handler.

void yaml_parser_set_encoding ( yaml_parser_t parser,
yaml_encoding_t  encoding 
)

Set the source encoding.

Parameters:
[in,out] parser A parser object.
[in] encoding The source encoding.

int yaml_parser_scan ( yaml_parser_t parser,
yaml_token_t token 
)

Scan the input stream and produce the next token.

Call the function subsequently to produce a sequence of tokens corresponding to the input stream. The initial token has the type YAML_STREAM_START_TOKEN while the ending token has the type YAML_STREAM_END_TOKEN.

An application is responsible for freeing any buffers associated with the produced token object using the yaml_token_delete function.

An application must not alternate the calls of yaml_parser_scan() with the calls of yaml_parser_parse() or yaml_parser_load(). Doing this will break the parser.

Parameters:
[in,out] parser A parser object.
[out] token An empty token object.
Returns:
1 if the function succeeded, 0 on error.

int yaml_parser_parse ( yaml_parser_t parser,
yaml_event_t event 
)

Parse the input stream and produce the next parsing event.

Call the function subsequently to produce a sequence of events corresponding to the input stream. The initial event has the type YAML_STREAM_START_EVENT while the ending event has the type YAML_STREAM_END_EVENT.

An application is responsible for freeing any buffers associated with the produced event object using the yaml_event_delete() function.

An application must not alternate the calls of yaml_parser_parse() with the calls of yaml_parser_scan() or yaml_parser_load(). Doing this will break the parser.

Parameters:
[in,out] parser A parser object.
[out] event An empty event object.
Returns:
1 if the function succeeded, 0 on error.

int yaml_parser_load ( yaml_parser_t parser,
yaml_document_t document 
)

Parse the input stream and produce the next YAML document.

Call this function subsequently to produce a sequence of documents constituting the input stream.

If the produced document has no root node, it means that the document end has been reached.

An application is responsible for freeing any data associated with the produced document object using the yaml_document_delete() function.

An application must not alternate the calls of yaml_parser_load() with the calls of yaml_parser_scan() or yaml_parser_parse(). Doing this will break the parser.

Parameters:
[in,out] parser A parser object.
[out] document An empty document object.
Returns:
1 if the function succeeded, 0 on error.


Generated on Thu May 31 22:50:59 2007 for yaml by  doxygen 1.5.1