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.
[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. |
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.
enum yaml_parser_state_e |
The states of the parser.
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.
[out] | parser | An empty parser object. |
1
if the function succeeded, 0
on error. void yaml_parser_delete | ( | yaml_parser_t * | parser | ) |
Destroy a parser.
[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.
[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.
[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.
[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.
[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.
[in,out] | parser | A parser object. |
[out] | token | An empty token object. |
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.
[in,out] | parser | A parser object. |
[out] | event | An empty event object. |
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.
[in,out] | parser | A parser object. |
[out] | document | An empty document object. |
1
if the function succeeded, 0
on error.