summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/common/VariantReader.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/core/common/VariantReader.cpp b/src/core/common/VariantReader.cpp
index 1f13cc1..7403b4a 100644
--- a/src/core/common/VariantReader.cpp
+++ b/src/core/common/VariantReader.cpp
@@ -737,6 +737,19 @@ std::pair<bool, Variant> VariantReader::parseGenericToken(
reader.resetPeek();
}
+ // Try to parse a cardinality
+ if (c == '{') {
+ CharReaderFork readerFork = reader.fork();
+ LoggerFork loggerFork = logger.fork();
+ auto res = parseCardinality(readerFork, logger);
+ if (res.first) {
+ readerFork.commit();
+ loggerFork.commit();
+ return std::make_pair(true, Variant{res.second});
+ }
+ reader.resetPeek();
+ }
+
// Try to parse an object
if (c == '[') {
return parseComplex(reader, logger, 0, ComplexMode::BOTH);