1 // Tencent is pleased to support the open source community by making RapidJSON available. 2 // 3 // Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. 4 // 5 // Licensed under the MIT License (the "License"); you may not use this file except 6 // in compliance with the License. You may obtain a copy of the License at 7 // 8 // http://opensource.org/licenses/MIT 9 // 10 // Unless required by applicable law or agreed to in writing, software distributed 11 // under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 12 // CONDITIONS OF ANY KIND, either express or implied. See the License for the 13 // specific language governing permissions and limitations under the License. 14 15 #ifndef RAPIDJSON_ERROR_EN_H_ 16 #define RAPIDJSON_ERROR_EN_H_ 17 18 #include "error.h" 19 20 #ifdef __clang__ 21 RAPIDJSON_DIAG_PUSH 22 RAPIDJSON_DIAG_OFF(switch-enum) 23 RAPIDJSON_DIAG_OFF(covered-switch-default) 24 #endif 25 26 RAPIDJSON_NAMESPACE_BEGIN 27 28 //! Maps error code of parsing into error message. 29 /*! 30 \ingroup RAPIDJSON_ERRORS 31 \param parseErrorCode Error code obtained in parsing. 32 \return the error message. 33 \note User can make a copy of this function for localization. 34 Using switch-case is safer for future modification of error codes. 35 */ GetParseError_En(ParseErrorCode parseErrorCode)36inline const RAPIDJSON_ERROR_CHARTYPE* GetParseError_En(ParseErrorCode parseErrorCode) { 37 switch (parseErrorCode) { 38 case kParseErrorNone: return RAPIDJSON_ERROR_STRING("No error."); 39 40 case kParseErrorDocumentEmpty: return RAPIDJSON_ERROR_STRING("The document is empty."); 41 case kParseErrorDocumentRootNotSingular: return RAPIDJSON_ERROR_STRING("The document root must not be followed by other values."); 42 43 case kParseErrorValueInvalid: return RAPIDJSON_ERROR_STRING("Invalid value."); 44 45 case kParseErrorObjectMissName: return RAPIDJSON_ERROR_STRING("Missing a name for object member."); 46 case kParseErrorObjectMissColon: return RAPIDJSON_ERROR_STRING("Missing a colon after a name of object member."); 47 case kParseErrorObjectMissCommaOrCurlyBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or '}' after an object member."); 48 49 case kParseErrorArrayMissCommaOrSquareBracket: return RAPIDJSON_ERROR_STRING("Missing a comma or ']' after an array element."); 50 51 case kParseErrorStringUnicodeEscapeInvalidHex: return RAPIDJSON_ERROR_STRING("Incorrect hex digit after \\u escape in string."); 52 case kParseErrorStringUnicodeSurrogateInvalid: return RAPIDJSON_ERROR_STRING("The surrogate pair in string is invalid."); 53 case kParseErrorStringEscapeInvalid: return RAPIDJSON_ERROR_STRING("Invalid escape character in string."); 54 case kParseErrorStringMissQuotationMark: return RAPIDJSON_ERROR_STRING("Missing a closing quotation mark in string."); 55 case kParseErrorStringInvalidEncoding: return RAPIDJSON_ERROR_STRING("Invalid encoding in string."); 56 57 case kParseErrorNumberTooBig: return RAPIDJSON_ERROR_STRING("Number too big to be stored in double."); 58 case kParseErrorNumberMissFraction: return RAPIDJSON_ERROR_STRING("Miss fraction part in number."); 59 case kParseErrorNumberMissExponent: return RAPIDJSON_ERROR_STRING("Miss exponent in number."); 60 61 case kParseErrorTermination: return RAPIDJSON_ERROR_STRING("Terminate parsing due to Handler error."); 62 case kParseErrorUnspecificSyntaxError: return RAPIDJSON_ERROR_STRING("Unspecific syntax error."); 63 64 default: return RAPIDJSON_ERROR_STRING("Unknown error."); 65 } 66 } 67 68 RAPIDJSON_NAMESPACE_END 69 70 #ifdef __clang__ 71 RAPIDJSON_DIAG_POP 72 #endif 73 74 #endif // RAPIDJSON_ERROR_EN_H_ 75