Fixed bug where the parser doesn't find the end of a map or seq flow

This commit is contained in:
Jesse Beder
2012-06-09 14:39:00 -05:00
parent 2d815c5d6a
commit 68dd9b5d18
5 changed files with 47 additions and 13 deletions

View File

@@ -1,12 +1,32 @@
#include "yaml-cpp/yaml.h"
#include "yaml-cpp/eventhandler.h"
#include <iostream>
class NullEventHandler: public YAML::EventHandler
{
public:
typedef YAML::Mark Mark;
typedef YAML::anchor_t anchor_t;
NullEventHandler() {}
virtual void OnDocumentStart(const Mark&) {}
virtual void OnDocumentEnd() {}
virtual void OnNull(const Mark&, anchor_t) {}
virtual void OnAlias(const Mark&, anchor_t) {}
virtual void OnScalar(const Mark&, const std::string&, anchor_t, const std::string&) {}
virtual void OnSequenceStart(const Mark&, const std::string&, anchor_t) {}
virtual void OnSequenceEnd() {}
virtual void OnMapStart(const Mark&, const std::string&, anchor_t) {}
virtual void OnMapEnd() {}
};
int main()
{
YAML::Emitter out(std::cout);
out << YAML::BeginSeq;
out << "item 1";
out << YAML::BeginSeq << "foo 1" << "bar 2" << YAML::EndSeq;
out << YAML::EndSeq;
std::stringstream stream("---{header: {id: 1");
YAML::Parser parser(stream);
// parser.PrintTokens(std::cout);
NullEventHandler handler;
parser.HandleNextDocument(handler);
return 0;
}