yaml-cpp/util/parse.cpp

47 lines
1.2 KiB
C++
Raw Normal View History

#include <fstream>
#include <iostream>
#include <vector>
2014-03-23 08:14:48 +04:00
#include "yaml-cpp/eventhandler.h"
#include "yaml-cpp/yaml.h" // IWYU pragma: keep
2014-03-22 22:05:03 +04:00
class NullEventHandler : public YAML::EventHandler {
public:
void OnDocumentStart(const YAML::Mark&) override {}
void OnDocumentEnd() override {}
2014-03-22 22:05:03 +04:00
void OnNull(const YAML::Mark&, YAML::anchor_t) override {}
void OnAlias(const YAML::Mark&, YAML::anchor_t) override {}
void OnScalar(const YAML::Mark&, const std::string&, YAML::anchor_t,
const std::string&) override {}
2014-03-22 22:05:03 +04:00
void OnSequenceStart(const YAML::Mark&, const std::string&, YAML::anchor_t,
YAML::EmitterStyle::value) override {}
void OnSequenceEnd() override {}
2014-03-22 22:05:03 +04:00
void OnMapStart(const YAML::Mark&, const std::string&, YAML::anchor_t,
YAML::EmitterStyle::value) override {}
void OnMapEnd() override {}
};
2014-03-22 22:05:03 +04:00
void parse(std::istream& input) {
try {
YAML::Node doc = YAML::Load(input);
std::cout << doc << "\n";
2015-01-24 22:11:43 +03:00
} catch (const YAML::Exception& e) {
2014-03-22 22:05:03 +04:00
std::cerr << e.what() << "\n";
}
}
2014-03-22 22:05:03 +04:00
int main(int argc, char** argv) {
if (argc > 1) {
std::ifstream fin;
fin.open(argv[1]);
parse(fin);
} else {
parse(std::cin);
}
2014-03-22 22:05:03 +04:00
return 0;
}