1247738Sbapt#include <yaml.h> 2247738Sbapt 3247738Sbapt#include <stdlib.h> 4247738Sbapt#include <stdio.h> 5247738Sbapt 6247738Sbapt#ifdef NDEBUG 7247738Sbapt#undef NDEBUG 8247738Sbapt#endif 9247738Sbapt#include <assert.h> 10247738Sbapt 11247738Sbaptint 12247738Sbaptmain(int argc, char *argv[]) 13247738Sbapt{ 14247738Sbapt int number; 15247738Sbapt 16247738Sbapt if (argc < 2) { 17247738Sbapt printf("Usage: %s file1.yaml ...\n", argv[0]); 18247738Sbapt return 0; 19247738Sbapt } 20247738Sbapt 21247738Sbapt for (number = 1; number < argc; number ++) 22247738Sbapt { 23247738Sbapt FILE *file; 24247738Sbapt yaml_parser_t parser; 25247738Sbapt yaml_token_t token; 26247738Sbapt int done = 0; 27247738Sbapt int count = 0; 28247738Sbapt int error = 0; 29247738Sbapt 30247738Sbapt printf("[%d] Scanning '%s': ", number, argv[number]); 31247738Sbapt fflush(stdout); 32247738Sbapt 33247738Sbapt file = fopen(argv[number], "rb"); 34247738Sbapt assert(file); 35247738Sbapt 36247738Sbapt assert(yaml_parser_initialize(&parser)); 37247738Sbapt 38247738Sbapt yaml_parser_set_input_file(&parser, file); 39247738Sbapt 40247738Sbapt while (!done) 41247738Sbapt { 42247738Sbapt if (!yaml_parser_scan(&parser, &token)) { 43247738Sbapt error = 1; 44247738Sbapt break; 45247738Sbapt } 46247738Sbapt 47247738Sbapt done = (token.type == YAML_STREAM_END_TOKEN); 48247738Sbapt 49247738Sbapt yaml_token_delete(&token); 50247738Sbapt 51247738Sbapt count ++; 52247738Sbapt } 53247738Sbapt 54247738Sbapt yaml_parser_delete(&parser); 55247738Sbapt 56247738Sbapt assert(!fclose(file)); 57247738Sbapt 58247738Sbapt printf("%s (%d tokens)\n", (error ? "FAILURE" : "SUCCESS"), count); 59247738Sbapt } 60247738Sbapt 61247738Sbapt return 0; 62247738Sbapt} 63247738Sbapt 64