int
main(int argc, char *argv[])
{
- FILE *file;
- yaml_parser_t parser;
- yaml_token_t token;
- int done = 0;
- int count = 0;
-
- if (argc != 2) {
- printf("Usage: %s file.yaml\n", argv[0]);
+ int number;
+
+ if (argc < 2) {
+ printf("Usage: %s file1.yaml ...\n", argv[0]);
return 0;
}
- file = fopen(argv[1], "rb");
- assert(file);
- assert(yaml_parser_initialize(&parser));
+ for (number = 1; number < argc; number ++)
+ {
+ FILE *file;
+ yaml_parser_t parser;
+ yaml_token_t token;
+ int done = 0;
+ int count = 0;
+ int error = 0;
- yaml_parser_set_input_file(&parser, file);
+ printf("[%d] Scanning '%s': ", number, argv[number]);
+ fflush(stdout);
- while (!done)
- {
- assert(yaml_parser_scan(&parser, &token));
+ file = fopen(argv[number], "rb");
+ assert(file);
- done = (token.type == YAML_STREAM_END_TOKEN);
+ assert(yaml_parser_initialize(&parser));
- yaml_token_delete(&token);
+ yaml_parser_set_input_file(&parser, file);
- count ++;
- }
+ while (!done)
+ {
+ if (!yaml_parser_scan(&parser, &token)) {
+ error = 1;
+ break;
+ }
- yaml_parser_delete(&parser);
+ done = (token.type == YAML_STREAM_END_TOKEN);
- fclose(file);
+ yaml_token_delete(&token);
- printf("Parsing the file '%s': %d tokens\n", argv[1], count);
+ count ++;
+ }
+
+ yaml_parser_delete(&parser);
+
+ assert(!fclose(file));
+
+ printf("%s (%d tokens)\n", (error ? "FAILURE" : "SUCCESS"), count);
+ }
return 0;
}