Maxim Integrated / Mbed OS MAXREFDES155#

Dependencies:   MaximInterface

Committer:
IanBenzMaxim
Date:
Fri Oct 04 12:10:11 2019 -0500
Revision:
17:5926077e5345
Parent:
16:a004191a79ab
Set pin maps through the mbed configuration system. Added support for MAX32625MBED target. Updated mbed-os to version 5.7.7 for MAX32625 I2C fixes. Consolidated simplelink hook definitions.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
IanBenzMaxim 0:33d4e66780c0 1 // Tencent is pleased to support the open source community by making RapidJSON available.
IanBenzMaxim 0:33d4e66780c0 2 //
IanBenzMaxim 0:33d4e66780c0 3 // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
IanBenzMaxim 0:33d4e66780c0 4 //
IanBenzMaxim 0:33d4e66780c0 5 // Licensed under the MIT License (the "License"); you may not use this file except
IanBenzMaxim 0:33d4e66780c0 6 // in compliance with the License. You may obtain a copy of the License at
IanBenzMaxim 0:33d4e66780c0 7 //
IanBenzMaxim 0:33d4e66780c0 8 // http://opensource.org/licenses/MIT
IanBenzMaxim 0:33d4e66780c0 9 //
IanBenzMaxim 0:33d4e66780c0 10 // Unless required by applicable law or agreed to in writing, software distributed
IanBenzMaxim 0:33d4e66780c0 11 // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
IanBenzMaxim 0:33d4e66780c0 12 // CONDITIONS OF ANY KIND, either express or implied. See the License for the
IanBenzMaxim 0:33d4e66780c0 13 // specific language governing permissions and limitations under the License.
IanBenzMaxim 0:33d4e66780c0 14
IanBenzMaxim 0:33d4e66780c0 15 #ifndef RAPIDJSON_ERROR_ERROR_H_
IanBenzMaxim 0:33d4e66780c0 16 #define RAPIDJSON_ERROR_ERROR_H_
IanBenzMaxim 0:33d4e66780c0 17
IanBenzMaxim 0:33d4e66780c0 18 #include "../rapidjson.h"
IanBenzMaxim 0:33d4e66780c0 19
IanBenzMaxim 0:33d4e66780c0 20 #ifdef __clang__
IanBenzMaxim 0:33d4e66780c0 21 RAPIDJSON_DIAG_PUSH
IanBenzMaxim 0:33d4e66780c0 22 RAPIDJSON_DIAG_OFF(padded)
IanBenzMaxim 0:33d4e66780c0 23 #endif
IanBenzMaxim 0:33d4e66780c0 24
IanBenzMaxim 0:33d4e66780c0 25 /*! \file error.h */
IanBenzMaxim 0:33d4e66780c0 26
IanBenzMaxim 0:33d4e66780c0 27 /*! \defgroup RAPIDJSON_ERRORS RapidJSON error handling */
IanBenzMaxim 0:33d4e66780c0 28
IanBenzMaxim 0:33d4e66780c0 29 ///////////////////////////////////////////////////////////////////////////////
IanBenzMaxim 0:33d4e66780c0 30 // RAPIDJSON_ERROR_CHARTYPE
IanBenzMaxim 0:33d4e66780c0 31
IanBenzMaxim 0:33d4e66780c0 32 //! Character type of error messages.
IanBenzMaxim 0:33d4e66780c0 33 /*! \ingroup RAPIDJSON_ERRORS
IanBenzMaxim 0:33d4e66780c0 34 The default character type is \c char.
IanBenzMaxim 0:33d4e66780c0 35 On Windows, user can define this macro as \c TCHAR for supporting both
IanBenzMaxim 0:33d4e66780c0 36 unicode/non-unicode settings.
IanBenzMaxim 0:33d4e66780c0 37 */
IanBenzMaxim 0:33d4e66780c0 38 #ifndef RAPIDJSON_ERROR_CHARTYPE
IanBenzMaxim 0:33d4e66780c0 39 #define RAPIDJSON_ERROR_CHARTYPE char
IanBenzMaxim 0:33d4e66780c0 40 #endif
IanBenzMaxim 0:33d4e66780c0 41
IanBenzMaxim 0:33d4e66780c0 42 ///////////////////////////////////////////////////////////////////////////////
IanBenzMaxim 0:33d4e66780c0 43 // RAPIDJSON_ERROR_STRING
IanBenzMaxim 0:33d4e66780c0 44
IanBenzMaxim 0:33d4e66780c0 45 //! Macro for converting string literial to \ref RAPIDJSON_ERROR_CHARTYPE[].
IanBenzMaxim 0:33d4e66780c0 46 /*! \ingroup RAPIDJSON_ERRORS
IanBenzMaxim 0:33d4e66780c0 47 By default this conversion macro does nothing.
IanBenzMaxim 0:33d4e66780c0 48 On Windows, user can define this macro as \c _T(x) for supporting both
IanBenzMaxim 0:33d4e66780c0 49 unicode/non-unicode settings.
IanBenzMaxim 0:33d4e66780c0 50 */
IanBenzMaxim 0:33d4e66780c0 51 #ifndef RAPIDJSON_ERROR_STRING
IanBenzMaxim 0:33d4e66780c0 52 #define RAPIDJSON_ERROR_STRING(x) x
IanBenzMaxim 0:33d4e66780c0 53 #endif
IanBenzMaxim 0:33d4e66780c0 54
IanBenzMaxim 0:33d4e66780c0 55 RAPIDJSON_NAMESPACE_BEGIN
IanBenzMaxim 0:33d4e66780c0 56
IanBenzMaxim 0:33d4e66780c0 57 ///////////////////////////////////////////////////////////////////////////////
IanBenzMaxim 0:33d4e66780c0 58 // ParseErrorCode
IanBenzMaxim 0:33d4e66780c0 59
IanBenzMaxim 0:33d4e66780c0 60 //! Error code of parsing.
IanBenzMaxim 0:33d4e66780c0 61 /*! \ingroup RAPIDJSON_ERRORS
IanBenzMaxim 0:33d4e66780c0 62 \see GenericReader::Parse, GenericReader::GetParseErrorCode
IanBenzMaxim 0:33d4e66780c0 63 */
IanBenzMaxim 0:33d4e66780c0 64 enum ParseErrorCode {
IanBenzMaxim 0:33d4e66780c0 65 kParseErrorNone = 0, //!< No error.
IanBenzMaxim 0:33d4e66780c0 66
IanBenzMaxim 0:33d4e66780c0 67 kParseErrorDocumentEmpty, //!< The document is empty.
IanBenzMaxim 0:33d4e66780c0 68 kParseErrorDocumentRootNotSingular, //!< The document root must not follow by other values.
IanBenzMaxim 0:33d4e66780c0 69
IanBenzMaxim 0:33d4e66780c0 70 kParseErrorValueInvalid, //!< Invalid value.
IanBenzMaxim 0:33d4e66780c0 71
IanBenzMaxim 0:33d4e66780c0 72 kParseErrorObjectMissName, //!< Missing a name for object member.
IanBenzMaxim 0:33d4e66780c0 73 kParseErrorObjectMissColon, //!< Missing a colon after a name of object member.
IanBenzMaxim 0:33d4e66780c0 74 kParseErrorObjectMissCommaOrCurlyBracket, //!< Missing a comma or '}' after an object member.
IanBenzMaxim 0:33d4e66780c0 75
IanBenzMaxim 0:33d4e66780c0 76 kParseErrorArrayMissCommaOrSquareBracket, //!< Missing a comma or ']' after an array element.
IanBenzMaxim 0:33d4e66780c0 77
IanBenzMaxim 0:33d4e66780c0 78 kParseErrorStringUnicodeEscapeInvalidHex, //!< Incorrect hex digit after \\u escape in string.
IanBenzMaxim 0:33d4e66780c0 79 kParseErrorStringUnicodeSurrogateInvalid, //!< The surrogate pair in string is invalid.
IanBenzMaxim 0:33d4e66780c0 80 kParseErrorStringEscapeInvalid, //!< Invalid escape character in string.
IanBenzMaxim 0:33d4e66780c0 81 kParseErrorStringMissQuotationMark, //!< Missing a closing quotation mark in string.
IanBenzMaxim 0:33d4e66780c0 82 kParseErrorStringInvalidEncoding, //!< Invalid encoding in string.
IanBenzMaxim 0:33d4e66780c0 83
IanBenzMaxim 0:33d4e66780c0 84 kParseErrorNumberTooBig, //!< Number too big to be stored in double.
IanBenzMaxim 0:33d4e66780c0 85 kParseErrorNumberMissFraction, //!< Miss fraction part in number.
IanBenzMaxim 0:33d4e66780c0 86 kParseErrorNumberMissExponent, //!< Miss exponent in number.
IanBenzMaxim 0:33d4e66780c0 87
IanBenzMaxim 0:33d4e66780c0 88 kParseErrorTermination, //!< Parsing was terminated.
IanBenzMaxim 0:33d4e66780c0 89 kParseErrorUnspecificSyntaxError //!< Unspecific syntax error.
IanBenzMaxim 0:33d4e66780c0 90 };
IanBenzMaxim 0:33d4e66780c0 91
IanBenzMaxim 0:33d4e66780c0 92 //! Result of parsing (wraps ParseErrorCode)
IanBenzMaxim 0:33d4e66780c0 93 /*!
IanBenzMaxim 0:33d4e66780c0 94 \ingroup RAPIDJSON_ERRORS
IanBenzMaxim 0:33d4e66780c0 95 \code
IanBenzMaxim 0:33d4e66780c0 96 Document doc;
IanBenzMaxim 0:33d4e66780c0 97 ParseResult ok = doc.Parse("[42]");
IanBenzMaxim 0:33d4e66780c0 98 if (!ok) {
IanBenzMaxim 0:33d4e66780c0 99 fprintf(stderr, "JSON parse error: %s (%u)",
IanBenzMaxim 0:33d4e66780c0 100 GetParseError_En(ok.Code()), ok.Offset());
IanBenzMaxim 0:33d4e66780c0 101 exit(EXIT_FAILURE);
IanBenzMaxim 0:33d4e66780c0 102 }
IanBenzMaxim 0:33d4e66780c0 103 \endcode
IanBenzMaxim 0:33d4e66780c0 104 \see GenericReader::Parse, GenericDocument::Parse
IanBenzMaxim 0:33d4e66780c0 105 */
IanBenzMaxim 0:33d4e66780c0 106 struct ParseResult {
IanBenzMaxim 0:33d4e66780c0 107 public:
IanBenzMaxim 0:33d4e66780c0 108 //! Default constructor, no error.
IanBenzMaxim 0:33d4e66780c0 109 ParseResult() : code_(kParseErrorNone), offset_(0) {}
IanBenzMaxim 0:33d4e66780c0 110 //! Constructor to set an error.
IanBenzMaxim 0:33d4e66780c0 111 ParseResult(ParseErrorCode code, size_t offset) : code_(code), offset_(offset) {}
IanBenzMaxim 0:33d4e66780c0 112
IanBenzMaxim 0:33d4e66780c0 113 //! Get the error code.
IanBenzMaxim 0:33d4e66780c0 114 ParseErrorCode Code() const { return code_; }
IanBenzMaxim 0:33d4e66780c0 115 //! Get the error offset, if \ref IsError(), 0 otherwise.
IanBenzMaxim 0:33d4e66780c0 116 size_t Offset() const { return offset_; }
IanBenzMaxim 0:33d4e66780c0 117
IanBenzMaxim 0:33d4e66780c0 118 //! Conversion to \c bool, returns \c true, iff !\ref IsError().
IanBenzMaxim 0:33d4e66780c0 119 operator bool() const { return !IsError(); }
IanBenzMaxim 0:33d4e66780c0 120 //! Whether the result is an error.
IanBenzMaxim 0:33d4e66780c0 121 bool IsError() const { return code_ != kParseErrorNone; }
IanBenzMaxim 0:33d4e66780c0 122
IanBenzMaxim 0:33d4e66780c0 123 bool operator==(const ParseResult& that) const { return code_ == that.code_; }
IanBenzMaxim 0:33d4e66780c0 124 bool operator==(ParseErrorCode code) const { return code_ == code; }
IanBenzMaxim 0:33d4e66780c0 125 friend bool operator==(ParseErrorCode code, const ParseResult & err) { return code == err.code_; }
IanBenzMaxim 0:33d4e66780c0 126
IanBenzMaxim 0:33d4e66780c0 127 //! Reset error code.
IanBenzMaxim 0:33d4e66780c0 128 void Clear() { Set(kParseErrorNone); }
IanBenzMaxim 0:33d4e66780c0 129 //! Update error code and offset.
IanBenzMaxim 0:33d4e66780c0 130 void Set(ParseErrorCode code, size_t offset = 0) { code_ = code; offset_ = offset; }
IanBenzMaxim 0:33d4e66780c0 131
IanBenzMaxim 0:33d4e66780c0 132 private:
IanBenzMaxim 0:33d4e66780c0 133 ParseErrorCode code_;
IanBenzMaxim 0:33d4e66780c0 134 size_t offset_;
IanBenzMaxim 0:33d4e66780c0 135 };
IanBenzMaxim 0:33d4e66780c0 136
IanBenzMaxim 0:33d4e66780c0 137 //! Function pointer type of GetParseError().
IanBenzMaxim 0:33d4e66780c0 138 /*! \ingroup RAPIDJSON_ERRORS
IanBenzMaxim 0:33d4e66780c0 139
IanBenzMaxim 0:33d4e66780c0 140 This is the prototype for \c GetParseError_X(), where \c X is a locale.
IanBenzMaxim 0:33d4e66780c0 141 User can dynamically change locale in runtime, e.g.:
IanBenzMaxim 0:33d4e66780c0 142 \code
IanBenzMaxim 0:33d4e66780c0 143 GetParseErrorFunc GetParseError = GetParseError_En; // or whatever
IanBenzMaxim 0:33d4e66780c0 144 const RAPIDJSON_ERROR_CHARTYPE* s = GetParseError(document.GetParseErrorCode());
IanBenzMaxim 0:33d4e66780c0 145 \endcode
IanBenzMaxim 0:33d4e66780c0 146 */
IanBenzMaxim 0:33d4e66780c0 147 typedef const RAPIDJSON_ERROR_CHARTYPE* (*GetParseErrorFunc)(ParseErrorCode);
IanBenzMaxim 0:33d4e66780c0 148
IanBenzMaxim 0:33d4e66780c0 149 RAPIDJSON_NAMESPACE_END
IanBenzMaxim 0:33d4e66780c0 150
IanBenzMaxim 0:33d4e66780c0 151 #ifdef __clang__
IanBenzMaxim 0:33d4e66780c0 152 RAPIDJSON_DIAG_POP
IanBenzMaxim 0:33d4e66780c0 153 #endif
IanBenzMaxim 0:33d4e66780c0 154
IanBenzMaxim 0:33d4e66780c0 155 #endif // RAPIDJSON_ERROR_ERROR_H_