summaryrefslogtreecommitdiff
path: root/src/libyaml-parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libyaml-parser.c')
-rw-r--r--src/libyaml-parser.c144
1 files changed, 0 insertions, 144 deletions
diff --git a/src/libyaml-parser.c b/src/libyaml-parser.c
deleted file mode 100644
index b2c7f84..0000000
--- a/src/libyaml-parser.c
+++ /dev/null
@@ -1,144 +0,0 @@
-#include <yaml.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <assert.h>
-
-void print_escaped(yaml_char_t * str, size_t length);
-
-int main(int argc, char *argv[])
-{
- FILE *input;
- yaml_parser_t parser;
- yaml_event_t event;
-
- if (argc == 1)
- input = stdin;
- else if (argc == 2)
- input = fopen(argv[1], "rb");
- else {
- fprintf(stderr, "Usage: libyaml-parser [<input-file>]\n");
- return 1;
- }
- assert(input);
-
- if (!yaml_parser_initialize(&parser)) {
- fprintf(stderr, "Could not initialize the parser object\n");
- return 1;
- }
- yaml_parser_set_input_file(&parser, input);
-
- while (1) {
- yaml_event_type_t type;
- if (!yaml_parser_parse(&parser, &event)) {
- fprintf(stderr, "Parse error: %s\n", parser.problem);
- return 1;
- }
- type = event.type;
-
- if (type == YAML_NO_EVENT)
- printf("???\n");
- else if (type == YAML_STREAM_START_EVENT)
- printf("+STR\n");
- else if (type == YAML_STREAM_END_EVENT)
- printf("-STR\n");
- else if (type == YAML_DOCUMENT_START_EVENT) {
- printf("+DOC");
- if (!event.data.document_start.implicit)
- printf(" ---");
- printf("\n");
- }
- else if (type == YAML_DOCUMENT_END_EVENT) {
- printf("-DOC");
- if (!event.data.document_end.implicit)
- printf(" ...");
- printf("\n");
- }
- else if (type == YAML_MAPPING_START_EVENT) {
- printf("+MAP");
- if (event.data.mapping_start.anchor)
- printf(" &%s", event.data.mapping_start.anchor);
- if (event.data.mapping_start.tag)
- printf(" <%s>", event.data.mapping_start.tag);
- printf("\n");
- }
- else if (type == YAML_MAPPING_END_EVENT)
- printf("-MAP\n");
- else if (type == YAML_SEQUENCE_START_EVENT) {
- printf("+SEQ");
- if (event.data.sequence_start.anchor)
- printf(" &%s", event.data.sequence_start.anchor);
- if (event.data.sequence_start.tag)
- printf(" <%s>", event.data.sequence_start.tag);
- printf("\n");
- }
- else if (type == YAML_SEQUENCE_END_EVENT)
- printf("-SEQ\n");
- else if (type == YAML_SCALAR_EVENT) {
- printf("=VAL");
- if (event.data.scalar.anchor)
- printf(" &%s", event.data.scalar.anchor);
- if (event.data.scalar.tag)
- printf(" <%s>", event.data.scalar.tag);
- switch (event.data.scalar.style) {
- case YAML_PLAIN_SCALAR_STYLE:
- printf(" :");
- break;
- case YAML_SINGLE_QUOTED_SCALAR_STYLE:
- printf(" '");
- break;
- case YAML_DOUBLE_QUOTED_SCALAR_STYLE:
- printf(" \"");
- break;
- case YAML_LITERAL_SCALAR_STYLE:
- printf(" |");
- break;
- case YAML_FOLDED_SCALAR_STYLE:
- printf(" >");
- break;
- case YAML_ANY_SCALAR_STYLE:
- abort();
- }
- print_escaped(event.data.scalar.value, event.data.scalar.length);
- printf("\n");
- }
- else if (type == YAML_ALIAS_EVENT)
- printf("=ALI *%s\n", event.data.alias.anchor);
- else
- abort();
-
- yaml_event_delete(&event);
-
- if (type == YAML_STREAM_END_EVENT)
- break;
- }
-
- assert(!fclose(input));
- yaml_parser_delete(&parser);
- fflush(stdout);
-
- return 0;
-}
-
-void print_escaped(yaml_char_t * str, size_t length)
-{
- int i;
- char c;
-
- for (i = 0; i < length; i++) {
- c = *(str + i);
- if (c == '\\')
- printf("\\\\");
- else if (c == '\0')
- printf("\\0");
- else if (c == '\b')
- printf("\\b");
- else if (c == '\n')
- printf("\\n");
- else if (c == '\r')
- printf("\\r");
- else if (c == '\t')
- printf("\\t");
- else
- printf("%c", c);
- }
-}