summaryrefslogtreecommitdiff
path: root/src/runtime/c/gu/yaml.h
blob: 5a61d0786396094a693af0a2059214f29b8e943d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef GU_YAML_H_
#define GU_YAML_H_

#include <gu/mem.h>
#include <gu/write.h>
#include <gu/string.h>

typedef struct GuYaml GuYaml;

typedef int GuYamlAnchor;

extern const GuYamlAnchor gu_yaml_null_anchor;

GuYaml* gu_new_yaml(GuWriter* wtr, GuExn* err, GuPool* pool);

GuYamlAnchor gu_yaml_anchor(GuYaml* yaml);

void gu_yaml_tag_primary(GuYaml* yaml, const char* tag);
void gu_yaml_tag_secondary(GuYaml* yaml, const char* tag);
void gu_yaml_tag_named(GuYaml* yaml, const char* handle, const char* tag);
void gu_yaml_tag_verbatim(GuYaml* yaml, const char* uri);
void gu_yaml_tag_non_specific(GuYaml* yaml);
void gu_yaml_comment(GuYaml* yaml, GuString comment);


void gu_yaml_scalar(GuYaml* yaml, GuString scalar);

void gu_yaml_alias(GuYaml* yaml, GuYamlAnchor anchor);

void gu_yaml_begin_document(GuYaml* yaml);

void gu_yaml_begin_sequence(GuYaml* yaml);

void gu_yaml_begin_mapping(GuYaml* yaml);

void gu_yaml_end(GuYaml* yaml);

#endif // GU_YAML_H_