rapidjson 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/LICENSE.txt +21 -0
- data/README.md +110 -0
- data/Rakefile +20 -0
- data/ext/rapidjson/buffer.hh +66 -0
- data/ext/rapidjson/cext.cc +77 -0
- data/ext/rapidjson/cext.hh +20 -0
- data/ext/rapidjson/encoder.hh +150 -0
- data/ext/rapidjson/extconf.rb +19 -0
- data/ext/rapidjson/parser.hh +149 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/allocators.h +692 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/cursorstreamwrapper.h +78 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/document.h +3027 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/encodedstream.h +299 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/encodings.h +716 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/error/en.h +122 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/error/error.h +216 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/filereadstream.h +99 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/filewritestream.h +104 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/fwd.h +151 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/biginteger.h +297 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/clzll.h +71 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/diyfp.h +261 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/dtoa.h +249 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/ieee754.h +78 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/itoa.h +308 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/meta.h +186 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/pow10.h +55 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/regex.h +739 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/stack.h +232 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/strfunc.h +83 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/strtod.h +293 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/internal/swap.h +46 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/istreamwrapper.h +128 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/memorybuffer.h +70 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/memorystream.h +71 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/msinttypes/inttypes.h +316 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/msinttypes/stdint.h +300 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/ostreamwrapper.h +81 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/pointer.h +1482 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/prettywriter.h +277 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/rapidjson.h +741 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/reader.h +2246 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/schema.h +2795 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/stream.h +223 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/stringbuffer.h +121 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/uri.h +481 -0
- data/ext/rapidjson/rapidjson/include/rapidjson/writer.h +710 -0
- data/lib/rapidjson/json_gem.rb +36 -0
- data/lib/rapidjson/version.rb +5 -0
- data/lib/rapidjson.rb +9 -0
- metadata +98 -0
@@ -0,0 +1,78 @@
|
|
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.
|
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_CURSORSTREAMWRAPPER_H_
|
16
|
+
#define RAPIDJSON_CURSORSTREAMWRAPPER_H_
|
17
|
+
|
18
|
+
#include "stream.h"
|
19
|
+
|
20
|
+
#if defined(__GNUC__)
|
21
|
+
RAPIDJSON_DIAG_PUSH
|
22
|
+
RAPIDJSON_DIAG_OFF(effc++)
|
23
|
+
#endif
|
24
|
+
|
25
|
+
#if defined(_MSC_VER) && _MSC_VER <= 1800
|
26
|
+
RAPIDJSON_DIAG_PUSH
|
27
|
+
RAPIDJSON_DIAG_OFF(4702) // unreachable code
|
28
|
+
RAPIDJSON_DIAG_OFF(4512) // assignment operator could not be generated
|
29
|
+
#endif
|
30
|
+
|
31
|
+
RAPIDJSON_NAMESPACE_BEGIN
|
32
|
+
|
33
|
+
|
34
|
+
//! Cursor stream wrapper for counting line and column number if error exists.
|
35
|
+
/*!
|
36
|
+
\tparam InputStream Any stream that implements Stream Concept
|
37
|
+
*/
|
38
|
+
template <typename InputStream, typename Encoding = UTF8<> >
|
39
|
+
class CursorStreamWrapper : public GenericStreamWrapper<InputStream, Encoding> {
|
40
|
+
public:
|
41
|
+
typedef typename Encoding::Ch Ch;
|
42
|
+
|
43
|
+
CursorStreamWrapper(InputStream& is):
|
44
|
+
GenericStreamWrapper<InputStream, Encoding>(is), line_(1), col_(0) {}
|
45
|
+
|
46
|
+
// counting line and column number
|
47
|
+
Ch Take() {
|
48
|
+
Ch ch = this->is_.Take();
|
49
|
+
if(ch == '\n') {
|
50
|
+
line_ ++;
|
51
|
+
col_ = 0;
|
52
|
+
} else {
|
53
|
+
col_ ++;
|
54
|
+
}
|
55
|
+
return ch;
|
56
|
+
}
|
57
|
+
|
58
|
+
//! Get the error line number, if error exists.
|
59
|
+
size_t GetLine() const { return line_; }
|
60
|
+
//! Get the error column number, if error exists.
|
61
|
+
size_t GetColumn() const { return col_; }
|
62
|
+
|
63
|
+
private:
|
64
|
+
size_t line_; //!< Current Line
|
65
|
+
size_t col_; //!< Current Column
|
66
|
+
};
|
67
|
+
|
68
|
+
#if defined(_MSC_VER) && _MSC_VER <= 1800
|
69
|
+
RAPIDJSON_DIAG_POP
|
70
|
+
#endif
|
71
|
+
|
72
|
+
#if defined(__GNUC__)
|
73
|
+
RAPIDJSON_DIAG_POP
|
74
|
+
#endif
|
75
|
+
|
76
|
+
RAPIDJSON_NAMESPACE_END
|
77
|
+
|
78
|
+
#endif // RAPIDJSON_CURSORSTREAMWRAPPER_H_
|