From 93b4b6aa3ee3a9871ff8b9f67845f4cfe35835cb Mon Sep 17 00:00:00 2001 From: Mirek Rusin Date: Mon, 27 Sep 2010 22:26:55 +0100 Subject: [PATCH] Events update --- test/{events.m => events.c} | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) rename test/{events.m => events.c} (73%) diff --git a/test/events.m b/test/events.c similarity index 73% rename from test/events.m rename to test/events.c index 9e8c8e8..2394ef3 100644 --- a/test/events.m +++ b/test/events.c @@ -1,21 +1,25 @@ // -// events.m +// events.c // YAML Serialization support by Mirek Rusin based on C library LibYAML by Kirill Simonov // // Copyright 2010 Mirek Rusin, Released under MIT License // -#import -#import "YAMLSerialization.h" +//#import +//#import "YAMLSerialization.h" #include #include +#include "yaml.h" #ifdef NDEBUG #undef NDEBUG #endif #include +#define PRINT_INDENT() for (int i = 0; i < indent; i++) printf(" ") + + int main(int argc, char *argv[]) { @@ -35,7 +39,7 @@ int count = 0; int error = 0; - printf("[%d] Parsing '%s': ", number, argv[number]); + printf("[%d] Parsing '%s': \n", number, argv[number]); fflush(stdout); file = fopen(argv[number], "rb"); @@ -45,6 +49,8 @@ yaml_parser_set_input_file(&parser, file); + int indent = 0; + while (!done) { if (!yaml_parser_parse(&parser, &event)) { @@ -54,37 +60,41 @@ switch (event.type) { case YAML_NO_EVENT: - printf("no\t\n"); break; case YAML_STREAM_START_EVENT: - printf("no\t\n"); break; case YAML_STREAM_END_EVENT: - printf("no\t\n"); break; case YAML_DOCUMENT_START_EVENT: - printf("no\t\n"); + printf("%%YAML 1.2\n---\n"); break; case YAML_DOCUMENT_END_EVENT: - printf("no\t\n"); break; case YAML_ALIAS_EVENT: - printf("al\t\n"); + PRINT_INDENT(); + printf("*%s\n", event.data.alias.anchor); break; case YAML_SCALAR_EVENT: - printf("scal\t\n"); + PRINT_INDENT(); + if (event.data.scalar.anchor) + printf("&%s ", event.data.scalar.anchor); + printf("!!str \"%s\"\n", event.data.scalar.value); break; case YAML_SEQUENCE_START_EVENT: printf("seq,s\t\n"); + indent++; break; case YAML_SEQUENCE_END_EVENT: + indent--; printf("seq,e\t\n"); break; case YAML_MAPPING_START_EVENT: - printf("map,s\t\n"); + printf("!!map {\n"); + indent++; break; case YAML_MAPPING_END_EVENT: - printf("map,e\t\n"); + indent--; + printf("}\n"); break; default: printf("unkn\t\n");