mirror of
https://github.com/nlohmann/json.git
synced 2026-11-02 19:05:35 +00:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
379756e92e | ||
|
|
b18b6fc7e6 |
No files matched your search
@@ -573,11 +573,7 @@ class parser
|
|||||||
|
|
||||||
std::string exception_message(const token_type expected, const std::string& context)
|
std::string exception_message(const token_type expected, const std::string& context)
|
||||||
{
|
{
|
||||||
std::string error_msg = "syntax error ";
|
std::string error_msg = concat("syntax error while parsing ", context, " - ");
|
||||||
|
|
||||||
error_msg += concat("while parsing ", context, ' ');
|
|
||||||
|
|
||||||
error_msg += "- ";
|
|
||||||
|
|
||||||
if (last_token == token_type::parse_error)
|
if (last_token == token_type::parse_error)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -230,7 +230,8 @@ void value_range(const document_data& d, const node* n, std::size_t& start, std:
|
|||||||
|
|
||||||
/// the context basic_json puts in front of the message of an exception about
|
/// the context basic_json puts in front of the message of an exception about
|
||||||
/// a value: "(/path) " with JSON_DIAGNOSTICS (none for the root), then
|
/// a value: "(/path) " with JSON_DIAGNOSTICS (none for the root), then
|
||||||
/// "(bytes a-b) " with JSON_DIAGNOSTIC_POSITIONS (also for the root)
|
/// "(bytes a-b) " with JSON_DIAGNOSTIC_POSITIONS (also for the root); with
|
||||||
|
/// JSON_DIAGNOSTICS, nothing for a value that is no longer part of the document
|
||||||
///
|
///
|
||||||
/// This and the throw helpers that take an error_site are templates, so that
|
/// This and the throw helpers that take an error_site are templates, so that
|
||||||
/// the path and range code is instantiated only where an exception can be
|
/// the path and range code is instantiated only where an exception can be
|
||||||
@@ -251,8 +252,14 @@ std::string diagnostics(const error_site site)
|
|||||||
std::string context;
|
std::string context;
|
||||||
#if JSON_DIAGNOSTICS
|
#if JSON_DIAGNOSTICS
|
||||||
std::vector<std::string> tokens;
|
std::vector<std::string> tokens;
|
||||||
// a value that is not found leaves no tokens, like the root
|
// a value that is no longer part of the document has no path, and its
|
||||||
static_cast<void>(edited ? value_path<true>(d, site.value(), tokens) : value_path<false>(d, site.value(), tokens));
|
// node still holds the bytes it had in the source: no context at all
|
||||||
|
const bool found = edited ? value_path<true>(d, site.value(), tokens) : value_path<false>(d, site.value(), tokens);
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
// context is still empty; returning it keeps the copy elided (-Wnrvo)
|
||||||
|
return context;
|
||||||
|
}
|
||||||
if (!tokens.empty())
|
if (!tokens.empty())
|
||||||
{
|
{
|
||||||
// the root value has no path, but still has a byte range
|
// the root value has no path, but still has a byte range
|
||||||
|
|||||||
Generated
+1
-5
@@ -23802,11 +23802,7 @@ class parser
|
|||||||
|
|
||||||
std::string exception_message(const token_type expected, const std::string& context)
|
std::string exception_message(const token_type expected, const std::string& context)
|
||||||
{
|
{
|
||||||
std::string error_msg = "syntax error ";
|
std::string error_msg = concat("syntax error while parsing ", context, " - ");
|
||||||
|
|
||||||
error_msg += concat("while parsing ", context, ' ');
|
|
||||||
|
|
||||||
error_msg += "- ";
|
|
||||||
|
|
||||||
if (last_token == token_type::parse_error)
|
if (last_token == token_type::parse_error)
|
||||||
{
|
{
|
||||||
|
|||||||
Generated
+10
-3
@@ -5059,7 +5059,8 @@ void value_range(const document_data& d, const node* n, std::size_t& start, std:
|
|||||||
|
|
||||||
/// the context basic_json puts in front of the message of an exception about
|
/// the context basic_json puts in front of the message of an exception about
|
||||||
/// a value: "(/path) " with JSON_DIAGNOSTICS (none for the root), then
|
/// a value: "(/path) " with JSON_DIAGNOSTICS (none for the root), then
|
||||||
/// "(bytes a-b) " with JSON_DIAGNOSTIC_POSITIONS (also for the root)
|
/// "(bytes a-b) " with JSON_DIAGNOSTIC_POSITIONS (also for the root); with
|
||||||
|
/// JSON_DIAGNOSTICS, nothing for a value that is no longer part of the document
|
||||||
///
|
///
|
||||||
/// This and the throw helpers that take an error_site are templates, so that
|
/// This and the throw helpers that take an error_site are templates, so that
|
||||||
/// the path and range code is instantiated only where an exception can be
|
/// the path and range code is instantiated only where an exception can be
|
||||||
@@ -5080,8 +5081,14 @@ std::string diagnostics(const error_site site)
|
|||||||
std::string context;
|
std::string context;
|
||||||
#if JSON_DIAGNOSTICS
|
#if JSON_DIAGNOSTICS
|
||||||
std::vector<std::string> tokens;
|
std::vector<std::string> tokens;
|
||||||
// a value that is not found leaves no tokens, like the root
|
// a value that is no longer part of the document has no path, and its
|
||||||
static_cast<void>(edited ? value_path<true>(d, site.value(), tokens) : value_path<false>(d, site.value(), tokens));
|
// node still holds the bytes it had in the source: no context at all
|
||||||
|
const bool found = edited ? value_path<true>(d, site.value(), tokens) : value_path<false>(d, site.value(), tokens);
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
// context is still empty; returning it keeps the copy elided (-Wnrvo)
|
||||||
|
return context;
|
||||||
|
}
|
||||||
if (!tokens.empty())
|
if (!tokens.empty())
|
||||||
{
|
{
|
||||||
// the root value has no path, but still has a byte range
|
// the root value has no path, but still has a byte range
|
||||||
|
|||||||
Reference in new issue
Block a user