6000{
6001 const std::string yaml = ""
6002 "--- !!map" "\n"
6003 "a: 0" "\n"
6004 "b: 1" "\n"
6005 "--- !map" "\n"
6006 "a: b" "\n"
6007 "--- !!seq" "\n"
6008 "- a" "\n"
6009 "- b" "\n"
6010 "--- !!str a b" "\n"
6011 "--- !!str 'a: b'" "\n"
6012 "---" "\n"
6013 "!!str a: b" "\n"
6014 "--- !!set" "\n"
6015 "? a" "\n"
6016 "? b" "\n"
6017 "--- !!set" "\n"
6018 "a:" "\n"
6019 "--- !!seq" "\n"
6020 "- !!int 0" "\n"
6021 "- !!str 1" "\n"
6022 "";
6028 CHECK(doc.is_doc());
6029
6030 CHECK(root[0].has_val_tag());
6031 CHECK(root[0].val_tag() ==
"!!map");
6032 CHECK(root[1].val_tag() ==
"!map");
6033 CHECK(root[2].val_tag() ==
"!!seq");
6034 CHECK(root[3].val_tag() ==
"!!str");
6035 CHECK(root[4].val_tag() ==
"!!str");
6036 CHECK(root[5][
"a"].has_key_tag());
6037 CHECK(root[5][
"a"].key_tag() ==
"!!str");
6038 CHECK(root[6].val_tag() ==
"!!set");
6039 CHECK(root[7].val_tag() ==
"!!set");
6040 CHECK(root[8].val_tag() ==
"!!seq");
6041 CHECK(root[8][0].val_tag() ==
"!!int");
6042 CHECK(root[8][1].val_tag() ==
"!!str");
6043
6044
6051
6058
6065
6072
6080
6087
6088
6092 "--- !!map" "\n"
6093 "a: 0" "\n"
6094 "b: 1" "\n"
6095 "--- !map" "\n"
6096 "a: b" "\n"
6097 "--- !!seq" "\n"
6098 "- a" "\n"
6099 "- b" "\n"
6100 "--- !!str a b" "\n"
6101 "--- !!str 'a: b'" "\n"
6102 "---" "\n"
6103 "!!str a: b" "\n"
6104 "--- !!set" "\n"
6105 "a: " "\n"
6106 "b: " "\n"
6107 "--- !!set" "\n"
6108 "a: " "\n"
6109 "--- !!seq" "\n"
6110 "- !!int 0" "\n"
6111 "- !!str 1" "\n"
6112 "");
6116 "--- !<tag:yaml.org,2002:map>" "\n"
6117 "a: 0" "\n"
6118 "b: 1" "\n"
6119 "--- !map" "\n"
6120 "a: b" "\n"
6121 "--- !<tag:yaml.org,2002:seq>" "\n"
6122 "- a" "\n"
6123 "- b" "\n"
6124 "--- !<tag:yaml.org,2002:str> a b" "\n"
6125 "--- !<tag:yaml.org,2002:str> 'a: b'" "\n"
6126 "---" "\n"
6127 "!<tag:yaml.org,2002:str> a: b" "\n"
6128 "--- !<tag:yaml.org,2002:set>" "\n"
6129 "a: " "\n"
6130 "b: " "\n"
6131 "--- !<tag:yaml.org,2002:set>" "\n"
6132 "a: " "\n"
6133 "--- !<tag:yaml.org,2002:seq>" "\n"
6134 "- !<tag:yaml.org,2002:int> 0" "\n"
6135 "- !<tag:yaml.org,2002:str> 1" "\n"
6136 "");
6137}
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).