--- a/src/XMLDocumentConstructor.h Sun May 09 00:17:54 2021 +0200
+++ b/src/XMLDocumentConstructor.h Tue Jun 08 22:53:20 2021 +0200
@@ -38,8 +38,8 @@
enum class Mode {
ROOT,
SEQUENCE,
- MAPPING,
- MAP_KEY
+ MAP_KEY,
+ MAP_VALUE
};
std::string rootName = "yaml";
@@ -111,10 +111,10 @@
} else if (event.type == YAML_SCALAR_EVENT) {
if (mode.back() == Mode::SEQUENCE) {
current->add_child(itemName)->add_child_text(y2x(event.data.scalar.value));
- } else if (mode.back() == Mode::MAPPING) {
+ } else if (mode.back() == Mode::MAP_KEY) {
current = current->add_child(y2xname(event.data.scalar.value));
- mode.push_back(Mode::MAP_KEY);
- } else if (mode.back() == Mode::MAP_KEY) {
+ mode.push_back(Mode::MAP_VALUE);
+ } else if (mode.back() == Mode::MAP_VALUE) {
current->add_child_text(y2x(event.data.scalar.value));
current = parentOrSelf(current);
mode.pop_back();
@@ -133,7 +133,7 @@
} else {
itemName = "item";
}
- if (mode.back() == Mode::MAP_KEY) mode.pop_back();
+ if (mode.back() == Mode::MAP_VALUE) mode.pop_back();
mode.push_back(Mode::SEQUENCE);
} else if (event.type == YAML_SEQUENCE_END_EVENT) {
mode.pop_back(); // TODO: assert sequence?
@@ -142,13 +142,13 @@
if (mode.back() == Mode::ROOT) {
} else if (mode.back() == Mode::SEQUENCE) {
current = current->add_child(itemName);
- } else if (mode.back() == Mode::MAP_KEY) {
+ } else if (mode.back() == Mode::MAP_VALUE) {
mode.pop_back();
} else {
// TODO: map might be a key of another map → wrap/nest
}
- mode.push_back(Mode::MAPPING);
+ mode.push_back(Mode::MAP_KEY);
} else if (event.type == YAML_MAPPING_END_EVENT) {
current = parentOrSelf(current);
mode.pop_back(); // TODO: assert map?