2012-05-20 10:46:08 +04:00
|
|
|
#include <iostream>
|
|
|
|
|
|
2015-01-24 21:19:20 +03:00
|
|
|
#include "yaml-cpp/emitterstyle.h"
|
2014-03-23 07:46:04 +04:00
|
|
|
#include "yaml-cpp/eventhandler.h"
|
|
|
|
|
#include "yaml-cpp/yaml.h" // IWYU pragma: keep
|
|
|
|
|
|
2014-03-22 21:49:16 +04:00
|
|
|
class NullEventHandler : public YAML::EventHandler {
|
|
|
|
|
public:
|
2020-06-15 23:27:08 +03:00
|
|
|
using Mark = YAML::Mark;
|
|
|
|
|
using anchor_t = YAML::anchor_t;
|
2014-03-22 21:49:16 +04:00
|
|
|
|
2020-06-15 23:19:21 +03:00
|
|
|
NullEventHandler() = default;
|
2014-03-22 21:49:16 +04:00
|
|
|
|
2020-06-15 23:20:22 +03:00
|
|
|
void OnDocumentStart(const Mark&) override {}
|
|
|
|
|
void OnDocumentEnd() override {}
|
|
|
|
|
void OnNull(const Mark&, anchor_t) override {}
|
|
|
|
|
void OnAlias(const Mark&, anchor_t) override {}
|
|
|
|
|
void OnScalar(const Mark&, const std::string&, anchor_t,
|
|
|
|
|
const std::string&) override {}
|
|
|
|
|
void OnSequenceStart(const Mark&, const std::string&, anchor_t,
|
Make pseudo enum classes into proper enum classes
This changes some constructs like this
struct FmtScope {
enum value { Local, Global };
};
struct GroupType {
enum value { NoType, Seq, Map };
};
struct FlowType {
enum value { NoType, Flow, Block };
};
into this
enum class FmtScope { Local, Global };
enum class GroupType { NoType, Seq, Map };
enum class FlowType { NoType, Flow, Block };
The full list of pseudo enum classes now turned into real enum classes:
enum class State { WaitingForSequenceEntry, WaitingForKey, WaitingForValue };
enum class EmitterNodeType { NoType, Property, Scalar, FlowSeq, BlockSeq, FlowMap, BlockMap };
enum class Type { Verbatim, PrimaryHandle, NamedHandle };
enum class EmitterStyle { Default, Block, Flow };
enum class iterator_type { NoneType, Sequence, Map };
enum class NodeType { Undefined, Null, Scalar, Sequence, Map };
enum class CollectionType { NoCollection, BlockMap, BlockSeq, FlowMap, FlowSeq, CompactMap };
enum class FmtScope { Local, Global };
enum class GroupType { NoType, Seq, Map };
enum class FlowType { NoType, Flow, Block };
enum class StringFormat { Plain, SingleQuoted, DoubleQuoted, Literal };
enum class StringEscaping { None, NonAscii, JSON };
Signed-off-by: Ted Lyngmo <ted@lyncon.se>
2021-04-23 10:41:10 +03:00
|
|
|
YAML::EmitterStyle style) override {}
|
2020-06-15 23:20:22 +03:00
|
|
|
void OnSequenceEnd() override {}
|
|
|
|
|
void OnMapStart(const Mark&, const std::string&, anchor_t,
|
Make pseudo enum classes into proper enum classes
This changes some constructs like this
struct FmtScope {
enum value { Local, Global };
};
struct GroupType {
enum value { NoType, Seq, Map };
};
struct FlowType {
enum value { NoType, Flow, Block };
};
into this
enum class FmtScope { Local, Global };
enum class GroupType { NoType, Seq, Map };
enum class FlowType { NoType, Flow, Block };
The full list of pseudo enum classes now turned into real enum classes:
enum class State { WaitingForSequenceEntry, WaitingForKey, WaitingForValue };
enum class EmitterNodeType { NoType, Property, Scalar, FlowSeq, BlockSeq, FlowMap, BlockMap };
enum class Type { Verbatim, PrimaryHandle, NamedHandle };
enum class EmitterStyle { Default, Block, Flow };
enum class iterator_type { NoneType, Sequence, Map };
enum class NodeType { Undefined, Null, Scalar, Sequence, Map };
enum class CollectionType { NoCollection, BlockMap, BlockSeq, FlowMap, FlowSeq, CompactMap };
enum class FmtScope { Local, Global };
enum class GroupType { NoType, Seq, Map };
enum class FlowType { NoType, Flow, Block };
enum class StringFormat { Plain, SingleQuoted, DoubleQuoted, Literal };
enum class StringEscaping { None, NonAscii, JSON };
Signed-off-by: Ted Lyngmo <ted@lyncon.se>
2021-04-23 10:41:10 +03:00
|
|
|
YAML::EmitterStyle style) override {}
|
2020-06-15 23:20:22 +03:00
|
|
|
void OnMapEnd() override {}
|
2012-06-09 23:39:00 +04:00
|
|
|
};
|
|
|
|
|
|
2014-03-22 21:49:16 +04:00
|
|
|
int main() {
|
2015-01-25 02:58:58 +03:00
|
|
|
YAML::Node root;
|
2015-01-25 02:22:45 +03:00
|
|
|
|
|
|
|
|
for (;;) {
|
2015-01-25 02:58:58 +03:00
|
|
|
YAML::Node node;
|
|
|
|
|
root = node;
|
2015-01-25 02:22:45 +03:00
|
|
|
}
|
2014-03-22 21:49:16 +04:00
|
|
|
return 0;
|
2012-05-20 10:46:08 +04:00
|
|
|
}
|