yaml-cpp/util/read.cpp

45 lines
1.2 KiB
C++
Raw Normal View History

#include <fstream>
#include <iostream>
#include "yaml-cpp/emitterstyle.h"
2014-03-23 08:18:27 +04:00
#include "yaml-cpp/eventhandler.h"
2014-03-23 07:46:04 +04:00
#include "yaml-cpp/yaml.h" // IWYU pragma: keep
2014-03-22 21:49:16 +04:00
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,
YAML::EmitterStyle::value style) {}
2014-03-22 21:49:16 +04:00
virtual void OnSequenceEnd() {}
virtual void OnMapStart(const Mark&, const std::string&, anchor_t,
YAML::EmitterStyle::value style) {}
2014-03-22 21:49:16 +04:00
virtual void OnMapEnd() {}
};
void run(YAML::Parser& parser) {
2014-03-22 21:49:16 +04:00
NullEventHandler handler;
parser.HandleNextDocument(handler);
}
int main(int argc, char** argv) {
if (argc > 1) {
std::ifstream in(argv[1]);
YAML::Parser parser(in);
run(parser);
} else {
YAML::Parser parser(std::cin);
run(parser);
}
2014-03-22 21:49:16 +04:00
return 0;
}