mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-06 11:31:49 +00:00
feat: array of tables support
This commit is contained in:
parent
68c3a646c8
commit
6a2b2062b3
2 changed files with 30 additions and 1 deletions
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue