1#ifndef YAML_C_WRAPPER_H
2#define YAML_C_WRAPPER_H
13#define YAML_API __declspec(dllexport)
15#define YAML_API __attribute__((visibility("default")))
19typedef void* YAMLTreeHandle;
20typedef size_t YAMLNodeId;
23#define YAML_NULL_ID ((size_t)-1)
26#define END ((size_t)-1)
32 YAMLTreeHandle original;
34 YAMLTreeHandle included;
36 YAMLTreeHandle expanded;
59YAML_API
struct lattices
get_lattices(const char* filename,
60 const char* lattice_name);
74YAML_API YAMLTreeHandle
parse_file(
const char* filename);
85YAML_API YAMLTreeHandle
parse_string(
const char* yaml_str);
119YAML_API
void remove_node(YAMLTreeHandle tree, YAMLNodeId parent,
130YAML_API YAMLNodeId
get_root(YAMLTreeHandle tree);
139YAML_API YAMLNodeId
get_parent(YAMLTreeHandle tree, YAMLNodeId node);
172YAML_API
size_t get_size(YAMLTreeHandle tree, YAMLNodeId node);
183YAML_API
char*
get_node_key(YAMLTreeHandle tree, YAMLNodeId node);
195YAML_API
bool is_map(YAMLTreeHandle tree, YAMLNodeId node);
205YAML_API
bool is_sequence(YAMLTreeHandle tree, YAMLNodeId node);
215YAML_API
bool is_scalar(YAMLTreeHandle tree, YAMLNodeId node);
229YAML_API
char*
as_string(YAMLTreeHandle tree, YAMLNodeId node);
243YAML_API YAMLNodeId
add_scalar(YAMLTreeHandle tree, YAMLNodeId parent,
244 const char* key,
const char* value,
257YAML_API YAMLNodeId
add_map(YAMLTreeHandle tree, YAMLNodeId parent,
258 const char* key,
size_t index);
271YAML_API YAMLNodeId
add_sequence(YAMLTreeHandle tree, YAMLNodeId parent,
272 const char* key,
size_t index);
283YAML_API
void set_scalar(YAMLTreeHandle tree, YAMLNodeId node,
295YAML_API
void set_node_key(YAMLTreeHandle tree, YAMLNodeId node,
313YAML_API
void deep_copy_node(YAMLTreeHandle dst_tree, YAMLNodeId dst_node,
314 YAMLTreeHandle src_tree, YAMLNodeId src_node);
335 YAMLTreeHandle src_tree, YAMLNodeId src_node,
348YAML_API
char*
node_to_string(YAMLTreeHandle tree, YAMLNodeId node);
369YAML_API
bool write_file(YAMLTreeHandle tree,
const char* filename);
YAMLNodeId get_root(YAMLTreeHandle tree)
Definition yaml_c_wrapper.cpp:621
YAMLNodeId get_parent(YAMLTreeHandle tree, YAMLNodeId node)
Definition yaml_c_wrapper.cpp:626
void set_scalar(YAMLTreeHandle tree, YAMLNodeId node, const char *value)
Definition yaml_c_wrapper.cpp:738
void yaml_free_string(char *str)
Definition yaml_c_wrapper.cpp:810
char * as_string(YAMLTreeHandle tree, YAMLNodeId node)
Definition yaml_c_wrapper.cpp:685
bool write_file(YAMLTreeHandle tree, const char *filename)
Definition yaml_c_wrapper.cpp:799
bool is_sequence(YAMLTreeHandle tree, YAMLNodeId node)
Definition yaml_c_wrapper.cpp:673
YAMLTreeHandle parse_string(const char *yaml_str)
Definition yaml_c_wrapper.cpp:587
bool is_scalar(YAMLTreeHandle tree, YAMLNodeId node)
Definition yaml_c_wrapper.cpp:678
void delete_tree(YAMLTreeHandle tree)
Definition yaml_c_wrapper.cpp:609
char * get_node_key(YAMLTreeHandle tree, YAMLNodeId node)
Definition yaml_c_wrapper.cpp:655
YAMLNodeId add_sequence(YAMLTreeHandle tree, YAMLNodeId parent, const char *key, size_t index)
Definition yaml_c_wrapper.cpp:726
YAMLNodeId add_scalar(YAMLTreeHandle tree, YAMLNodeId parent, const char *key, const char *value, size_t index)
Definition yaml_c_wrapper.cpp:698
void remove_node(YAMLTreeHandle tree, YAMLNodeId parent, YAMLNodeId child)
Definition yaml_c_wrapper.cpp:613
YAMLNodeId add_map(YAMLTreeHandle tree, YAMLNodeId parent, const char *key, size_t index)
Definition yaml_c_wrapper.cpp:714
struct lattices get_lattices(const char *filename, const char *lattice_name)
Definition yaml_c_wrapper.cpp:560
bool is_map(YAMLTreeHandle tree, YAMLNodeId node)
Definition yaml_c_wrapper.cpp:668
YAMLNodeId get_child_by_index(YAMLTreeHandle tree, YAMLNodeId parent, size_t index)
Definition yaml_c_wrapper.cpp:641
char * node_to_string(YAMLTreeHandle tree, YAMLNodeId node)
Definition yaml_c_wrapper.cpp:784
YAMLTreeHandle create_empty_tree()
Definition yaml_c_wrapper.cpp:603
void set_node_key(YAMLTreeHandle tree, YAMLNodeId node, const char *key)
Definition yaml_c_wrapper.cpp:746
size_t get_size(YAMLTreeHandle tree, YAMLNodeId node)
Definition yaml_c_wrapper.cpp:650
YAMLNodeId get_child_by_key(YAMLTreeHandle tree, YAMLNodeId parent, const char *key)
Definition yaml_c_wrapper.cpp:632
YAMLTreeHandle parse_file(const char *filename)
Definition yaml_c_wrapper.cpp:571
void deep_copy_children(YAMLTreeHandle dst_tree, YAMLNodeId dst_node, YAMLTreeHandle src_tree, YAMLNodeId src_node, size_t index)
Definition yaml_c_wrapper.cpp:764
char * tree_to_string(YAMLTreeHandle tree)
Definition yaml_c_wrapper.cpp:795
void deep_copy_node(YAMLTreeHandle dst_tree, YAMLNodeId dst_node, YAMLTreeHandle src_tree, YAMLNodeId src_node)
Definition yaml_c_wrapper.cpp:754