mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-09 12:41:17 +00:00
More useful error messages.
Applied the patch given in jbeder/yaml-cpp#200 with the correct code style.
This commit is contained in:
@@ -17,6 +17,7 @@ std::string node_data::empty_scalar;
|
||||
|
||||
node_data::node_data()
|
||||
: m_isDefined(false),
|
||||
m_mark(Mark::null_mark()),
|
||||
m_type(NodeType::Null),
|
||||
m_style(EmitterStyle::Default),
|
||||
m_seqSize(0) {}
|
||||
@@ -27,6 +28,10 @@ void node_data::mark_defined() {
|
||||
m_isDefined = true;
|
||||
}
|
||||
|
||||
void node_data::set_mark(const Mark& mark) {
|
||||
m_mark = mark;
|
||||
}
|
||||
|
||||
void node_data::set_type(NodeType::value type) {
|
||||
if (type == NodeType::Undefined) {
|
||||
m_type = type;
|
||||
|
@@ -28,8 +28,8 @@ void NodeBuilder::OnDocumentStart(const Mark&) {}
|
||||
|
||||
void NodeBuilder::OnDocumentEnd() {}
|
||||
|
||||
void NodeBuilder::OnNull(const Mark& /* mark */, anchor_t anchor) {
|
||||
detail::node& node = Push(anchor);
|
||||
void NodeBuilder::OnNull(const Mark& mark, anchor_t anchor) {
|
||||
detail::node& node = Push(mark, anchor);
|
||||
node.set_null();
|
||||
Pop();
|
||||
}
|
||||
@@ -40,18 +40,18 @@ void NodeBuilder::OnAlias(const Mark& /* mark */, anchor_t anchor) {
|
||||
Pop();
|
||||
}
|
||||
|
||||
void NodeBuilder::OnScalar(const Mark& /* mark */, const std::string& tag,
|
||||
void NodeBuilder::OnScalar(const Mark& mark, const std::string& tag,
|
||||
anchor_t anchor, const std::string& value) {
|
||||
detail::node& node = Push(anchor);
|
||||
detail::node& node = Push(mark, anchor);
|
||||
node.set_scalar(value);
|
||||
node.set_tag(tag);
|
||||
Pop();
|
||||
}
|
||||
|
||||
void NodeBuilder::OnSequenceStart(const Mark& /* mark */,
|
||||
void NodeBuilder::OnSequenceStart(const Mark& mark,
|
||||
const std::string& tag, anchor_t anchor,
|
||||
EmitterStyle::value style) {
|
||||
detail::node& node = Push(anchor);
|
||||
detail::node& node = Push(mark, anchor);
|
||||
node.set_tag(tag);
|
||||
node.set_type(NodeType::Sequence);
|
||||
node.set_style(style);
|
||||
@@ -59,9 +59,9 @@ void NodeBuilder::OnSequenceStart(const Mark& /* mark */,
|
||||
|
||||
void NodeBuilder::OnSequenceEnd() { Pop(); }
|
||||
|
||||
void NodeBuilder::OnMapStart(const Mark& /* mark */, const std::string& tag,
|
||||
void NodeBuilder::OnMapStart(const Mark& mark, const std::string& tag,
|
||||
anchor_t anchor, EmitterStyle::value style) {
|
||||
detail::node& node = Push(anchor);
|
||||
detail::node& node = Push(mark, anchor);
|
||||
node.set_type(NodeType::Map);
|
||||
node.set_tag(tag);
|
||||
node.set_style(style);
|
||||
@@ -74,8 +74,9 @@ void NodeBuilder::OnMapEnd() {
|
||||
Pop();
|
||||
}
|
||||
|
||||
detail::node& NodeBuilder::Push(anchor_t anchor) {
|
||||
detail::node& NodeBuilder::Push(const Mark& mark, anchor_t anchor) {
|
||||
detail::node& node = m_pMemory->create_node();
|
||||
node.set_mark(mark);
|
||||
RegisterAnchor(anchor, node);
|
||||
Push(node);
|
||||
return node;
|
||||
|
@@ -48,7 +48,7 @@ class NodeBuilder : public EventHandler {
|
||||
virtual void OnMapEnd();
|
||||
|
||||
private:
|
||||
detail::node& Push(anchor_t anchor);
|
||||
detail::node& Push(const Mark& mark, anchor_t anchor);
|
||||
void Push(detail::node& node);
|
||||
void Pop();
|
||||
void RegisterAnchor(anchor_t anchor, detail::node& node);
|
||||
|
Reference in New Issue
Block a user