#include #include #include #ifdef NDEBUG #undef NDEBUG #endif #include int main(int argc, char *argv[]) { int number; if (argc < 2) { printf("Usage: %s file1.yaml ...\n", argv[0]); return 0; } for (number = 1; number < argc; number ++) { FILE *file; yaml_parser_t parser; yaml_event_t event; int done = 0; int count = 0; int error = 0; printf("[%d] Parsing '%s': ", number, argv[number]); fflush(stdout); file = fopen(argv[number], "rb"); assert(file); assert(yaml_parser_initialize(&parser)); yaml_parser_set_input_file(&parser, file); while (!done) { if (!yaml_parser_parse(&parser, &event)) { error = 1; break; } done = (event.type == YAML_STREAM_END_EVENT); yaml_event_delete(&event); count ++; } yaml_parser_delete(&parser); assert(!fclose(file)); printf("%s (%d events)\n", (error ? "FAILURE" : "SUCCESS"), count); } return 0; }