summaryrefslogtreecommitdiff
path: root/yaml_interp.c
diff options
context:
space:
mode:
authorJoshua Tolley2010-11-26 17:22:01 +0000
committerJoshua Tolley2010-11-26 17:22:01 +0000
commitfe9d8f21bbdfb442b8233b4627a0c67dc458a8bd (patch)
treea88daa49fc47e64777af3d331cf142e0604c2d48 /yaml_interp.c
Import from CVSHEADmaster
Diffstat (limited to 'yaml_interp.c')
-rw-r--r--yaml_interp.c135
1 files changed, 135 insertions, 0 deletions
diff --git a/yaml_interp.c b/yaml_interp.c
new file mode 100644
index 0000000..3676a04
--- /dev/null
+++ b/yaml_interp.c
@@ -0,0 +1,135 @@
+
+void process_event(yaml_event_t *event) {
+ switch (event->type) {
+ case YAML_NO_EVENT:
+ printf("YAML_NO_EVENT\n");
+ break;
+ case YAML_STREAM_START_EVENT:
+ printf("YAML_STREAM_START_EVENT\n");
+ switch (event->data.stream_start.encoding) {
+ case YAML_ANY_ENCODING:
+ printf("\tYAML_ANY_ENCODING\n");
+ break;
+ case YAML_UTF8_ENCODING:
+ printf("\tYAML_UTF8_ENCODING\n");
+ break;
+ case YAML_UTF16LE_ENCODING:
+ printf("\tYAML_UTF16LE_ENCODING\n");
+ break;
+ case YAML_UTF16BE_ENCODING:
+ printf("\tYAML_UTF16BE_ENCODING\n");
+ break;
+ }
+ break;
+ case YAML_STREAM_END_EVENT:
+ printf("YAML_STREAM_END_EVENT\n");
+ break;
+ case YAML_DOCUMENT_START_EVENT:
+ printf("YAML_DOCUMENT_START_EVENT\n");
+ if (event->data.document_start.version_directive != NULL) {
+ printf("\tVersion directive: %d.%d\n",
+ event->data.document_start.version_directive->major,
+ event->data.document_start.version_directive->minor);
+ }
+ printf("\t\"document indicator\" is %simplicit, whatever that means\n", event->data.document_start.implicit ? "" : "not ");
+ if (event->data.document_start.tag_directives.start != NULL) {
+ printf("\tTag directives start: tag handle: %s\t\ttag prefix: %s\n",
+ event->data.document_start.tag_directives.start->handle,
+ event->data.document_start.tag_directives.start->prefix);
+ }
+ if (event->data.document_start.tag_directives.end != NULL) {
+ printf("\tTag directives end: tag handle: %s\t\ttag prefix: %s\n",
+ event->data.document_start.tag_directives.end->handle,
+ event->data.document_start.tag_directives.end->prefix);
+ }
+ break;
+ case YAML_DOCUMENT_END_EVENT:
+ printf("YAML_DOCUMENT_END_EVENT\n");
+ printf("\t\"document indicator\" is %simplicit, whatever that means\n", event->data.document_end.implicit ? "" : "not ");
+ break;
+ case YAML_ALIAS_EVENT:
+ printf("YAML_ALIAS_EVENT\n");
+ if (event->data.alias.anchor != NULL) {
+ printf("\tAnchor: %s\n", event->data.alias.anchor);
+ }
+ break;
+ case YAML_SCALAR_EVENT:
+ printf("YAML_SCALAR_EVENT\n");
+ if (event->data.scalar.anchor != NULL)
+ printf("\tAnchor: %s\n", event->data.scalar.anchor);
+ if (event->data.scalar.tag != NULL)
+ printf("\tTag: %s\n", event->data.scalar.tag);
+ if (event->data.scalar.value != NULL)
+ printf("\tValue: %s\n", event->data.scalar.value);
+ printf("\tLength: %d\n", event->data.scalar.length);
+ printf("\t\"plain_implicit\" is %simplicit, whatever that means\n", event->data.scalar.plain_implicit ? "" : "not ");
+ printf("\t\"quoted_implicit\" is %simplicit, whatever that means\n", event->data.scalar.quoted_implicit ? "" : "not ");
+ switch (event->data.scalar.style) {
+ case YAML_ANY_SCALAR_STYLE:
+ printf("\tYAML_ANY_SCALAR_STYLE\n");
+ break;
+ case YAML_PLAIN_SCALAR_STYLE:
+ printf("\tYAML_PLAIN_SCALAR_STYLE\n");
+ break;
+ case YAML_SINGLE_QUOTED_SCALAR_STYLE:
+ printf("\tYAML_SINGLE_QUOTED_SCALAR_STYLE\n");
+ break;
+ case YAML_DOUBLE_QUOTED_SCALAR_STYLE:
+ printf("\tYAML_DOUBLE_QUOTED_SCALAR_STYLE\n");
+ break;
+ case YAML_LITERAL_SCALAR_STYLE:
+ printf("\tYAML_LITERAL_SCALAR_STYLE\n");
+ break;
+ case YAML_FOLDED_SCALAR_STYLE:
+ printf("\tYAML_FOLDED_SCALAR_STYLE\n");
+ break;
+ }
+ break;
+ case YAML_SEQUENCE_START_EVENT:
+ printf("YAML_SEQUENCE_START_EVENT\n");
+ if (event->data.sequence_start.anchor != NULL)
+ printf("\tAnchor: %s\n", event->data.sequence_start.anchor);
+ if (event->data.sequence_start.tag != NULL)
+ printf("\tTag: %s\n", event->data.sequence_start.tag);
+ printf("\ttag is %simplicit, whatever that means\n", event->data.sequence_start.implicit ? "" : "not ");
+ switch (event->data.sequence_start.style) {
+ case YAML_ANY_SEQUENCE_STYLE:
+ printf("\tYAML_ANY_SEQUENCE_STYLE\n");
+ break;
+ case YAML_BLOCK_SEQUENCE_STYLE:
+ printf("\tYAML_BLOCK_SEQUENCE_STYLE\n");
+ break;
+ case YAML_FLOW_SEQUENCE_STYLE:
+ printf("\tYAML_FLOW_SEQUENCE_STYLE\n");
+ break;
+ }
+ break;
+ case YAML_SEQUENCE_END_EVENT:
+ printf("YAML_SEQUENCE_END_EVENT\n");
+ break;
+ case YAML_MAPPING_START_EVENT:
+ printf("YAML_MAPPING_START_EVENT\n");
+ if (event->data.mapping_start.anchor != NULL)
+ printf("\tAnchor: %s\n", event->data.mapping_start.anchor);
+ if (event->data.mapping_start.tag != NULL)
+ printf("\tTag: %s\n", event->data.mapping_start.tag);
+ printf("\tmapping is %simplicit, whatever that means\n", event->data.mapping_start.implicit ? "" : "not ");
+ switch (event->data.sequence_start.style) {
+ case YAML_ANY_MAPPING_STYLE:
+ printf("\tYAML_ANY_MAPPING_STYLE\n");
+ break;
+ case YAML_BLOCK_MAPPING_STYLE:
+ printf("\tYAML_BLOCK_MAPPING_STYLE\n");
+ break;
+ case YAML_FLOW_MAPPING_STYLE:
+ printf("\tYAML_FLOW_MAPPING_STYLE\n");
+ break;
+ }
+ break;
+ case YAML_MAPPING_END_EVENT:
+ printf("YAML_MAPPING_END_EVENT\n");
+ break;
+ };
+}
+
+