diff --git a/src/util/json/parser.cpp b/src/util/json/parser.cpp index f1ec12f..48e8676 100644 --- a/src/util/json/parser.cpp +++ b/src/util/json/parser.cpp @@ -211,14 +211,16 @@ Value Parser::getNumber() } } - if (fractionPosition == exponentPosition - 1) { - reportError(token, "invalid exponent sign, expected number"); - return nullptr; - } + if (fractionPosition != 0 || exponentPosition != 0) { + if (fractionPosition == exponentPosition - 1) { + reportError(token, "invalid exponent sign, expected number"); + return nullptr; + } - if (fractionPosition == length - 1 || exponentPosition == length - 1) { - reportError(token, "invalid number"); - return nullptr; + if (fractionPosition == length - 1 || exponentPosition == length - 1) { + reportError(token, "invalid number"); + return nullptr; + } } return std::stod(token.symbol);