rapidyaml  0.7.1
parse and emit YAML, and do it fast
Parse in place with temporary parser

parse a mutable YAML source buffer. More...

Functions

void c4::yml::parse_in_place (csubstr filename, substr yaml, Tree *t, id_type node_id)
 (1) parse YAML into an existing tree node. The filename will be used in any error messages arising during the parse. More...
 
void c4::yml::parse_in_place (substr yaml, Tree *t, id_type node_id)
 (2) like (1) but no filename will be reported More...
 
void c4::yml::parse_in_place (csubstr filename, substr yaml, Tree *t)
 (3) parse YAML into an existing tree, into its root node. More...
 
void c4::yml::parse_in_place (substr yaml, Tree *t)
 (4) like (3) but no filename will be reported More...
 
void c4::yml::parse_in_place (csubstr filename, substr yaml, NodeRef node)
 (5) like (1) but the node is given as a NodeRef More...
 
void c4::yml::parse_in_place (substr yaml, NodeRef node)
 (6) like (5) but no filename will be reported More...
 
Tree c4::yml::parse_in_place (csubstr filename, substr yaml)
 (7) create a new tree, and parse YAML into its root node. More...
 
Tree c4::yml::parse_in_place (substr yaml)
 (8) like (7) but no filename will be reported More...
 
void c4::yml::parse_json_in_place (csubstr filename, substr json, Tree *t, id_type node_id)
 (1) parse JSON into an existing tree node. The filename will be used in any error messages arising during the parse. More...
 
void c4::yml::parse_json_in_place (substr json, Tree *t, id_type node_id)
 (2) like (1) but no filename will be reported More...
 
void c4::yml::parse_json_in_place (csubstr filename, substr json, Tree *t)
 (3) parse JSON into an existing tree, into its root node. More...
 
void c4::yml::parse_json_in_place (substr json, Tree *t)
 (4) like (3) but no filename will be reported More...
 
void c4::yml::parse_json_in_place (csubstr filename, substr json, NodeRef node)
 (5) like (1) but the node is given as a NodeRef More...
 
void c4::yml::parse_json_in_place (substr json, NodeRef node)
 (6) like (5) but no filename will be reported More...
 
Tree c4::yml::parse_json_in_place (csubstr filename, substr json)
 (7) create a new tree, and parse JSON into its root node. More...
 
Tree c4::yml::parse_json_in_place (substr json)
 (8) like (7) but no filename will be reported More...
 

Detailed Description

parse a mutable YAML source buffer.

Scalars requiring filtering are mutated in place (except in the rare cases where the filtered scalar is longer than the original scalar).

Note
These freestanding functions use a temporary parser object, and are convenience functions to enable the user to easily parse YAML without the need to explicitly instantiate a parser and event handler. Note that some properties (notably node locations in the original source code) are only available through the parser class. If you need access to any of these properties, use the appropriate overload from Parse in place with existing parser

Function Documentation

◆ parse_in_place() [1/8]

void c4::yml::parse_in_place ( csubstr  filename,
substr  yaml,
Tree t,
id_type  node_id 
)

(1) parse YAML into an existing tree node. The filename will be used in any error messages arising during the parse.

Definition at line 60 of file parse.cpp.

60 { RYML_CHECK(t); Parser::handler_type event_handler(t->callbacks()); Parser parser(&event_handler); parse_in_place(&parser, filename, yaml, t, node_id); }
Tree parse_in_place(substr yaml)
(8) like (7) but no filename will be reported
Definition: parse.cpp:67
ParseEngine< EventHandlerTree > Parser
This is the main ryml parser, where the parser events are handled to create a ryml tree.
Definition: fwd.hpp:19

References c4::yml::Tree::callbacks(), and c4::yml::parse_in_place().

◆ parse_in_place() [2/8]

void c4::yml::parse_in_place ( substr  yaml,
Tree t,
id_type  node_id 
)

(2) like (1) but no filename will be reported

Definition at line 61 of file parse.cpp.

61 { RYML_CHECK(t); Parser::handler_type event_handler(t->callbacks()); Parser parser(&event_handler); parse_in_place(&parser, {} , yaml, t, node_id); }

References c4::yml::Tree::callbacks(), and c4::yml::parse_in_place().

◆ parse_in_place() [3/8]

void c4::yml::parse_in_place ( csubstr  filename,
substr  yaml,
Tree t 
)

(3) parse YAML into an existing tree, into its root node.

Definition at line 62 of file parse.cpp.

62 { RYML_CHECK(t); Parser::handler_type event_handler(t->callbacks()); Parser parser(&event_handler); parse_in_place(&parser, filename, yaml, t, t->root_id()); }

References c4::yml::Tree::callbacks(), c4::yml::parse_in_place(), and c4::yml::Tree::root_id().

◆ parse_in_place() [4/8]

void c4::yml::parse_in_place ( substr  yaml,
Tree t 
)

(4) like (3) but no filename will be reported

Definition at line 63 of file parse.cpp.

63 { RYML_CHECK(t); Parser::handler_type event_handler(t->callbacks()); Parser parser(&event_handler); parse_in_place(&parser, {} , yaml, t, t->root_id()); }

References c4::yml::Tree::callbacks(), c4::yml::parse_in_place(), and c4::yml::Tree::root_id().

◆ parse_in_place() [5/8]

void c4::yml::parse_in_place ( csubstr  filename,
substr  yaml,
NodeRef  node 
)

(5) like (1) but the node is given as a NodeRef

Definition at line 64 of file parse.cpp.

64 { RYML_CHECK(!node.invalid()); Parser::handler_type event_handler(node.tree()->callbacks()); Parser parser(&event_handler); parse_in_place(&parser, filename, yaml, node.tree(), node.id()); }

References c4::yml::Tree::callbacks(), c4::yml::NodeRef::id(), c4::yml::NodeRef::invalid(), c4::yml::parse_in_place(), and c4::yml::NodeRef::tree().

◆ parse_in_place() [6/8]

void c4::yml::parse_in_place ( substr  yaml,
NodeRef  node 
)

(6) like (5) but no filename will be reported

Definition at line 65 of file parse.cpp.

65 { RYML_CHECK(!node.invalid()); Parser::handler_type event_handler(node.tree()->callbacks()); Parser parser(&event_handler); parse_in_place(&parser, {} , yaml, node.tree(), node.id()); }

References c4::yml::Tree::callbacks(), c4::yml::NodeRef::id(), c4::yml::NodeRef::invalid(), c4::yml::parse_in_place(), and c4::yml::NodeRef::tree().

◆ parse_in_place() [7/8]

Tree c4::yml::parse_in_place ( csubstr  filename,
substr  yaml 
)

(7) create a new tree, and parse YAML into its root node.

Definition at line 66 of file parse.cpp.

66 { Parser::handler_type event_handler; Parser parser(&event_handler); Tree tree(parser.callbacks()); parse_in_place(&parser, filename, yaml, &tree, tree.root_id()); return tree; }

References c4::yml::ParseEngine< EventHandler >::callbacks(), c4::yml::parse_in_place(), and c4::yml::Tree::root_id().

◆ parse_in_place() [8/8]

Tree c4::yml::parse_in_place ( substr  yaml)

(8) like (7) but no filename will be reported

Definition at line 67 of file parse.cpp.

67 { Parser::handler_type event_handler; Parser parser(&event_handler); Tree tree(parser.callbacks()); parse_in_place(&parser, {} , yaml, &tree, tree.root_id()); return tree; }

References c4::yml::ParseEngine< EventHandler >::callbacks(), c4::yml::parse_in_place(), and c4::yml::Tree::root_id().

◆ parse_json_in_place() [1/8]

void c4::yml::parse_json_in_place ( csubstr  filename,
substr  json,
Tree t,
id_type  node_id 
)

(1) parse JSON into an existing tree node. The filename will be used in any error messages arising during the parse.

Definition at line 80 of file parse.cpp.

80 { RYML_CHECK(t); Parser::handler_type event_handler(t->callbacks()); Parser parser(&event_handler); parse_json_in_place(&parser, filename, json, t, node_id); }
Tree parse_json_in_place(substr json)
(8) like (7) but no filename will be reported
Definition: parse.cpp:87

References c4::yml::Tree::callbacks(), and c4::yml::parse_json_in_place().

◆ parse_json_in_place() [2/8]

void c4::yml::parse_json_in_place ( substr  json,
Tree t,
id_type  node_id 
)

(2) like (1) but no filename will be reported

Definition at line 81 of file parse.cpp.

81 { RYML_CHECK(t); Parser::handler_type event_handler(t->callbacks()); Parser parser(&event_handler); parse_json_in_place(&parser, {} , json, t, node_id); }

References c4::yml::Tree::callbacks(), and c4::yml::parse_json_in_place().

◆ parse_json_in_place() [3/8]

void c4::yml::parse_json_in_place ( csubstr  filename,
substr  json,
Tree t 
)

(3) parse JSON into an existing tree, into its root node.

Definition at line 82 of file parse.cpp.

82 { RYML_CHECK(t); Parser::handler_type event_handler(t->callbacks()); Parser parser(&event_handler); parse_json_in_place(&parser, filename, json, t, t->root_id()); }

References c4::yml::Tree::callbacks(), c4::yml::parse_json_in_place(), and c4::yml::Tree::root_id().

◆ parse_json_in_place() [4/8]

void c4::yml::parse_json_in_place ( substr  json,
Tree t 
)

(4) like (3) but no filename will be reported

Definition at line 83 of file parse.cpp.

83 { RYML_CHECK(t); Parser::handler_type event_handler(t->callbacks()); Parser parser(&event_handler); parse_json_in_place(&parser, {} , json, t, t->root_id()); }

References c4::yml::Tree::callbacks(), c4::yml::parse_json_in_place(), and c4::yml::Tree::root_id().

◆ parse_json_in_place() [5/8]

void c4::yml::parse_json_in_place ( csubstr  filename,
substr  json,
NodeRef  node 
)

(5) like (1) but the node is given as a NodeRef

Definition at line 84 of file parse.cpp.

84 { RYML_CHECK(!node.invalid()); Parser::handler_type event_handler(node.tree()->callbacks()); Parser parser(&event_handler); parse_json_in_place(&parser, filename, json, node.tree(), node.id()); }

References c4::yml::Tree::callbacks(), c4::yml::NodeRef::id(), c4::yml::NodeRef::invalid(), c4::yml::parse_json_in_place(), and c4::yml::NodeRef::tree().

◆ parse_json_in_place() [6/8]

void c4::yml::parse_json_in_place ( substr  json,
NodeRef  node 
)

(6) like (5) but no filename will be reported

Definition at line 85 of file parse.cpp.

85 { RYML_CHECK(!node.invalid()); Parser::handler_type event_handler(node.tree()->callbacks()); Parser parser(&event_handler); parse_json_in_place(&parser, {} , json, node.tree(), node.id()); }

References c4::yml::Tree::callbacks(), c4::yml::NodeRef::id(), c4::yml::NodeRef::invalid(), c4::yml::parse_json_in_place(), and c4::yml::NodeRef::tree().

◆ parse_json_in_place() [7/8]

Tree c4::yml::parse_json_in_place ( csubstr  filename,
substr  json 
)

(7) create a new tree, and parse JSON into its root node.

Definition at line 86 of file parse.cpp.

86 { Parser::handler_type event_handler; Parser parser(&event_handler); Tree tree(parser.callbacks()); parse_json_in_place(&parser, filename, json, &tree, tree.root_id()); return tree; }

References c4::yml::ParseEngine< EventHandler >::callbacks(), c4::yml::parse_json_in_place(), and c4::yml::Tree::root_id().

◆ parse_json_in_place() [8/8]

Tree c4::yml::parse_json_in_place ( substr  json)

(8) like (7) but no filename will be reported

Definition at line 87 of file parse.cpp.

87 { Parser::handler_type event_handler; Parser parser(&event_handler); Tree tree(parser.callbacks()); parse_json_in_place(&parser, {} , json, &tree, tree.root_id()); return tree; }

References c4::yml::ParseEngine< EventHandler >::callbacks(), c4::yml::parse_json_in_place(), and c4::yml::Tree::root_id().