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__
21RAPIDJSON_DIAG_PUSH
22RAPIDJSON_DIAG_OFF(switch-enum)
23RAPIDJSON_DIAG_OFF(covered-switch-default)
24#endif
25
26RAPIDJSON_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*/
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
68RAPIDJSON_NAMESPACE_END
69
70#ifdef __clang__
71RAPIDJSON_DIAG_POP
72#endif
73
74#endif // RAPIDJSON_ERROR_EN_H_
75