summaryrefslogtreecommitdiff
path: root/src/yaml_private.h
diff options
context:
space:
mode:
authorKirill Simonov <xi@resolvent.net>2007-01-07 20:11:16 +0000
committerKirill Simonov <xi@resolvent.net>2007-01-07 20:11:16 +0000
commite27a3c886ebe97dda5b6f961b04949bb3003d4a6 (patch)
treea99269e56362f968985551445cab0267c16d2aa9 /src/yaml_private.h
parenta907bf857a165a271a23140919c26cde14223dfc (diff)
downloadlibyaml-git-e27a3c886ebe97dda5b6f961b04949bb3003d4a6.tar.gz
Add functions for constructing, parsing and emitting YAML documents.
Diffstat (limited to 'src/yaml_private.h')
-rw-r--r--src/yaml_private.h30
1 files changed, 23 insertions, 7 deletions
diff --git a/src/yaml_private.h b/src/yaml_private.h
index 3378735..10c4219 100644
--- a/src/yaml_private.h
+++ b/src/yaml_private.h
@@ -580,27 +580,44 @@ yaml_queue_extend(void **start, void **head, void **tail, void **end);
(EVENT_INIT((event),YAML_MAPPING_END_EVENT,(start_mark),(end_mark)))
/*
+ * Document initializer.
+ */
+
+#define DOCUMENT_INIT(document,document_nodes_start,document_nodes_end, \
+ document_version_directive,document_tag_directives_start, \
+ document_tag_directives_end,document_start_implicit, \
+ document_end_implicit,start_mark,end_mark) \
+ (memset(&(document), 0, sizeof(yaml_document_t)), \
+ (document).nodes.start = (document_nodes_start), \
+ (document).nodes.end = (document_nodes_end), \
+ (document).nodes.top = (document_nodes_start), \
+ (document).version_directive = (document_version_directive), \
+ (document).tag_directives.start = (document_tag_directives_start), \
+ (document).tag_directives.end = (document_tag_directives_end), \
+ (document).start_implicit = (document_start_implicit), \
+ (document).end_implicit = (document_end_implicit))
+
+/*
* Node initializers.
*/
-#define NODE_INIT(node,node_type,node_start_mark,node_end_mark) \
+#define NODE_INIT(node,node_type,node_tag,node_start_mark,node_end_mark) \
(memset(&(node), 0, sizeof(yaml_node_t)), \
(node).type = (node_type), \
+ (node).tag = (node_tag), \
(node).start_mark = (node_start_mark), \
(node).end_mark = (node_end_mark))
#define SCALAR_NODE_INIT(node,node_tag,node_value,node_length, \
node_style,start_mark,end_mark) \
- (EVENT_INIT((node),YAML_SCALAR_NODE,(start_mark),(end_mark)), \
- (node).data.scalar.tag = (node_tag), \
+ (NODE_INIT((node),YAML_SCALAR_NODE,(node_tag),(start_mark),(end_mark)), \
(node).data.scalar.value = (node_value), \
(node).data.scalar.length = (node_length), \
(node).data.scalar.style = (node_style))
#define SEQUENCE_NODE_INIT(node,node_tag,node_items_start,node_items_end, \
node_style,start_mark,end_mark) \
- (NODE_INIT((node),YAML_SEQUENCE_NODE,(start_mark),(end_mark)), \
- (node).data.sequence.tag = (node_tag), \
+ (NODE_INIT((node),YAML_SEQUENCE_NODE,(node_tag),(start_mark),(end_mark)), \
(node).data.sequence.items.start = (node_items_start), \
(node).data.sequence.items.end = (node_items_end), \
(node).data.sequence.items.top = (node_items_start), \
@@ -608,8 +625,7 @@ yaml_queue_extend(void **start, void **head, void **tail, void **end);
#define MAPPING_NODE_INIT(node,node_tag,node_pairs_start,node_pairs_end, \
node_style,start_mark,end_mark) \
- (NODE_INIT((node),YAML_MAPPING_NODE,(start_mark),(end_mark)), \
- (node).data.mapping.tag = (node_tag), \
+ (NODE_INIT((node),YAML_MAPPING_NODE,(node_tag),(start_mark),(end_mark)), \
(node).data.mapping.pairs.start = (node_pairs_start), \
(node).data.mapping.pairs.end = (node_pairs_end), \
(node).data.mapping.pairs.top = (node_pairs_start), \