feat: array of tables support

This commit is contained in:
MihailRis
2024-10-13 12:09:56 +03:00
parent 68c3a646c8
commit 6a2b2062b3
2 changed files with 30 additions and 1 deletions
+22
View File
@@ -178,7 +178,29 @@ class TomlReader : BasicParser {
}
char c = nextChar();
if (c == '[') {
if (hasNext() && peek() == '[') {
pos++;
// parse list of tables
dv::value& list = parseLValue(root);
if (list == nullptr) {
list = dv::list();
} else if (!list.isList()) {
throw error("target is not an array");
}
expect(']');
expect(']');
dv::value section = dv::object();
readSection(section, root);
list.add(std::move(section));
return;
}
// parse table
dv::value& section = parseLValue(root);
if (section == nullptr) {
section = dv::object();
} else if (!section.isObject()) {
throw error("target is not a table");
}
expect(']');
readSection(section, root);
return;