diff options
author | Kirill Simonov <xi@resolvent.net> | 2007-01-07 20:11:16 +0000 |
---|---|---|
committer | Kirill Simonov <xi@resolvent.net> | 2007-01-07 20:11:16 +0000 |
commit | e27a3c886ebe97dda5b6f961b04949bb3003d4a6 (patch) | |
tree | a99269e56362f968985551445cab0267c16d2aa9 /src/yaml_private.h | |
parent | a907bf857a165a271a23140919c26cde14223dfc (diff) | |
download | libyaml-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.h | 30 |
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), \ |