update documentation of ParseResult and related functions
This commit is contained in:
parent
2fcb999749
commit
418a5829b3
@ -1326,13 +1326,13 @@ public:
|
|||||||
//!@name Handling parse errors
|
//!@name Handling parse errors
|
||||||
//!@{
|
//!@{
|
||||||
|
|
||||||
//! Whether a parse error was occured in the last parsing.
|
//! Whether a parse error has occured in the last parsing.
|
||||||
bool HasParseError() const { return parseResult_.IsError(); }
|
bool HasParseError() const { return parseResult_.IsError(); }
|
||||||
|
|
||||||
//! Get the message of parsing error.
|
//! Get the \ref ParseErrorCode of last parsing.
|
||||||
ParseErrorCode GetParseError() const { return parseResult_.Code(); }
|
ParseErrorCode GetParseError() const { return parseResult_.Code(); }
|
||||||
|
|
||||||
//! Get the offset in character of the parsing error.
|
//! Get the position of last parsing error in input, 0 otherwise.
|
||||||
size_t GetErrorOffset() const { return parseResult_.Offset(); }
|
size_t GetErrorOffset() const { return parseResult_.Offset(); }
|
||||||
|
|
||||||
//!@}
|
//!@}
|
||||||
|
@ -59,22 +59,43 @@ enum ParseErrorCode {
|
|||||||
kParseErrorNumberMissExponent //!< Miss exponent in number.
|
kParseErrorNumberMissExponent //!< Miss exponent in number.
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//! Result of parsing (wraps ParseErrorCode)
|
||||||
|
/*!
|
||||||
|
\code
|
||||||
|
Document doc;
|
||||||
|
ParseResult ok = doc.Parse("[42]");
|
||||||
|
if (!ok) {
|
||||||
|
fprintf(stderr, "JSON parse error: %s (%u)",
|
||||||
|
GetParseError_En(ok.Code()), ok.Offset());
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
\endcode
|
||||||
|
\see GenericReader::Parse, GenericDocument::Parse
|
||||||
|
*/
|
||||||
struct ParseResult {
|
struct ParseResult {
|
||||||
|
|
||||||
|
//! Default constructor, no error.
|
||||||
ParseResult() : code_(kParseErrorNone), offset_(0) {}
|
ParseResult() : code_(kParseErrorNone), offset_(0) {}
|
||||||
|
//! Constructor to set an error.
|
||||||
ParseResult(ParseErrorCode code, size_t offset) : code_(code), offset_(offset) {}
|
ParseResult(ParseErrorCode code, size_t offset) : code_(code), offset_(offset) {}
|
||||||
|
|
||||||
|
//! Get the error code.
|
||||||
ParseErrorCode Code() const { return code_; }
|
ParseErrorCode Code() const { return code_; }
|
||||||
|
//! Get the error offset, if \ref IsError(), 0 otherwise.
|
||||||
size_t Offset() const { return offset_; }
|
size_t Offset() const { return offset_; }
|
||||||
|
|
||||||
|
//! Conversion to \c bool, returns \c true, iff !\ref IsError().
|
||||||
operator bool() const { return !IsError(); }
|
operator bool() const { return !IsError(); }
|
||||||
|
//! Whether the result is an error.
|
||||||
bool IsError() const { return code_ != kParseErrorNone; }
|
bool IsError() const { return code_ != kParseErrorNone; }
|
||||||
|
|
||||||
bool operator==(const ParseResult& that) const { return code_ == that.code_; }
|
bool operator==(const ParseResult& that) const { return code_ == that.code_; }
|
||||||
bool operator==(ParseErrorCode code) const { return code_ == code; }
|
bool operator==(ParseErrorCode code) const { return code_ == code; }
|
||||||
friend bool operator==(ParseErrorCode code, const ParseResult & err) { return code == err.code_; }
|
friend bool operator==(ParseErrorCode code, const ParseResult & err) { return code == err.code_; }
|
||||||
|
|
||||||
|
//! Reset error code.
|
||||||
void Clear() { Set(kParseErrorNone); }
|
void Clear() { Set(kParseErrorNone); }
|
||||||
|
//! Update error code and offset.
|
||||||
void Set(ParseErrorCode code, size_t offset = 0) { code_ = code; offset_ = offset; }
|
void Set(ParseErrorCode code, size_t offset = 0) { code_ = code; offset_ = offset; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -324,10 +324,13 @@ public:
|
|||||||
return Parse<kParseDefaultFlags>(is, handler);
|
return Parse<kParseDefaultFlags>(is, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//! Whether a parse error has occured in the last parsing.
|
||||||
bool HasParseError() const { return parseResult_.IsError(); }
|
bool HasParseError() const { return parseResult_.IsError(); }
|
||||||
|
|
||||||
|
//! Get the \ref ParseErrorCode of last parsing.
|
||||||
ParseErrorCode GetParseErrorCode() const { return parseResult_.Code(); }
|
ParseErrorCode GetParseErrorCode() const { return parseResult_.Code(); }
|
||||||
|
|
||||||
|
//! Get the position of last parsing error in input, 0 otherwise.
|
||||||
size_t GetErrorOffset() const { return parseResult_.Offset(); }
|
size_t GetErrorOffset() const { return parseResult_.Offset(); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user