#include #include #include static char* fy_event_type_[0x10]; #define map_fy_event_type(t) fy_event_type_[t]=#t extern void map_fy_event_type_all(); int main(void) { struct fy_parser *fyp = fy_parser_create(NULL); if (!fyp) return EXIT_FAILURE; // Set input fy_parser_set_input_fp(fyp, "stdin", stdin); // Process events struct fy_event *fye; while ((fye = fy_parser_parse(fyp)) != NULL) { enum fy_event_type type = fye->type; printf("\n%s\n" , fy_event_type_[type]); switch (type) { case FYET_SCALAR: printf("%s\n", fy_token_get_text0(fy_event_get_token(fye))); break; default: break; } fy_parser_event_free(fyp, fye); } fy_parser_destroy(fyp); return 0; } void map_fy_event_type_all() { map_fy_event_type(FYET_NONE); map_fy_event_type(FYET_STREAM_START); map_fy_event_type(FYET_STREAM_END); map_fy_event_type(FYET_DOCUMENT_START); map_fy_event_type(FYET_DOCUMENT_END); map_fy_event_type(FYET_MAPPING_START); map_fy_event_type(FYET_MAPPING_END); map_fy_event_type(FYET_SEQUENCE_START); map_fy_event_type(FYET_SEQUENCE_END); map_fy_event_type(FYET_SCALAR); map_fy_event_type(FYET_ALIAS); }