diff options
Diffstat (limited to 'tests/run-parser.c')
-rw-r--r-- | tests/run-parser.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/run-parser.c b/tests/run-parser.c new file mode 100644 index 0000000..16f4ce1 --- /dev/null +++ b/tests/run-parser.c @@ -0,0 +1,46 @@ +#include <yaml.h> + +#include <stdlib.h> +#include <stdio.h> +#include <assert.h> + +int +main(int argc, char *argv[]) +{ + FILE *file; + yaml_parser_t parser; + yaml_event_t event; + int done = 0; + int count = 0; + + if (argc != 2) { + printf("Usage: %s file.yaml\n", argv[0]); + return 0; + } + file = fopen(argv[1], "rb"); + assert(file); + + assert(yaml_parser_initialize(&parser)); + + yaml_parser_set_input_file(&parser, file); + + while (!done) + { + assert(yaml_parser_parse(&parser, &event)); + + done = (event.type == YAML_STREAM_END_EVENT); + + yaml_event_delete(&event); + + count ++; + } + + yaml_parser_delete(&parser); + + fclose(file); + + printf("Parsing the file '%s': %d events\n", argv[1], count); + + return 0; +} + |