6084{
6085 const std::string yaml = ""
6086 "--- !!map" "\n"
6087 "a: 0" "\n"
6088 "b: 1" "\n"
6089 "--- !map" "\n"
6090 "a: b" "\n"
6091 "--- !!seq" "\n"
6092 "- a" "\n"
6093 "- b" "\n"
6094 "--- !!str a b" "\n"
6095 "--- !!str 'a: b'" "\n"
6096 "---" "\n"
6097 "!!str a: b" "\n"
6098 "--- !!set" "\n"
6099 "? a" "\n"
6100 "? b" "\n"
6101 "--- !!set" "\n"
6102 "a:" "\n"
6103 "--- !!seq" "\n"
6104 "- !!int 0" "\n"
6105 "- !!str 1" "\n"
6106 "";
6112 CHECK(doc.is_doc());
6113
6114 CHECK(root[0].has_val_tag());
6115 CHECK(root[0].val_tag() ==
"!!map");
6116 CHECK(root[1].val_tag() ==
"!map");
6117 CHECK(root[2].val_tag() ==
"!!seq");
6118 CHECK(root[3].val_tag() ==
"!!str");
6119 CHECK(root[4].val_tag() ==
"!!str");
6120 CHECK(root[5][
"a"].has_key_tag());
6121 CHECK(root[5][
"a"].key_tag() ==
"!!str");
6122 CHECK(root[6].val_tag() ==
"!!set");
6123 CHECK(root[7].val_tag() ==
"!!set");
6124 CHECK(root[8].val_tag() ==
"!!seq");
6125 CHECK(root[8][0].val_tag() ==
"!!int");
6126 CHECK(root[8][1].val_tag() ==
"!!str");
6127
6128
6135
6142
6149
6156
6164
6171
6172
6176 "--- !!map" "\n"
6177 "a: 0" "\n"
6178 "b: 1" "\n"
6179 "--- !map" "\n"
6180 "a: b" "\n"
6181 "--- !!seq" "\n"
6182 "- a" "\n"
6183 "- b" "\n"
6184 "--- !!str a b" "\n"
6185 "--- !!str 'a: b'" "\n"
6186 "---" "\n"
6187 "!!str a: b" "\n"
6188 "--- !!set" "\n"
6189 "a: " "\n"
6190 "b: " "\n"
6191 "--- !!set" "\n"
6192 "a: " "\n"
6193 "--- !!seq" "\n"
6194 "- !!int 0" "\n"
6195 "- !!str 1" "\n"
6196 "");
6200 "--- !<tag:yaml.org,2002:map>" "\n"
6201 "a: 0" "\n"
6202 "b: 1" "\n"
6203 "--- !map" "\n"
6204 "a: b" "\n"
6205 "--- !<tag:yaml.org,2002:seq>" "\n"
6206 "- a" "\n"
6207 "- b" "\n"
6208 "--- !<tag:yaml.org,2002:str> a b" "\n"
6209 "--- !<tag:yaml.org,2002:str> 'a: b'" "\n"
6210 "---" "\n"
6211 "!<tag:yaml.org,2002:str> a: b" "\n"
6212 "--- !<tag:yaml.org,2002:set>" "\n"
6213 "a: " "\n"
6214 "b: " "\n"
6215 "--- !<tag:yaml.org,2002:set>" "\n"
6216 "a: " "\n"
6217 "--- !<tag:yaml.org,2002:seq>" "\n"
6218 "- !<tag:yaml.org,2002:int> 0" "\n"
6219 "- !<tag:yaml.org,2002:str> 1" "\n"
6220 "");
6221}
Holds a pointer to an existing tree, and a node id.
const_children_view children() const RYML_NOEXCEPT
get an iterable view over children
NodeRef rootref()
Get the root as a NodeRef . Note that a non-const Tree implicitly converts to NodeRef.
void normalize_tags_long()
substr emitrs_yaml(Tree const &t, id_type id, EmitOptions const &opts, CharOwningContainer *cont, bool append=false)
(1) emit+resize: emit YAML to the given std::string/std::vector<char>-like container,...
void parse_in_arena(Parser *parser, csubstr filename, csubstr yaml, Tree *tree, id_type node_id)
(1) parse YAML into an existing tree node. The filename will be used in any error messages arising du...
#define CHECK(predicate)
a testing assertion, used only in this quickstart
csubstr to_csubstr(const char(&s)[N]) noexcept
csubstr from_tag_long(YamlTag_e tag)
csubstr normalize_tag_long(csubstr tag)
csubstr normalize_tag(csubstr tag)
csubstr from_tag(YamlTag_e tag)
YamlTag_e to_tag(csubstr tag)
bool is_stream() const RYML_NOEXCEPT
Forward to Tree::is_stream().
id_type num_children() const RYML_NOEXCEPT
O(num_children).