From 4d347d87d741ee4efdbd4a1a6c738f47cf877236 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Fri, 30 Jan 2015 18:18:16 +0100 Subject: Added parsing of cardinalities to parseGeneric --- src/core/common/VariantReader.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') 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 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); -- cgit v1.2.3