Kosta
f0d9ab4ec9
finally fixing Reader::ParseString()
...
It was a copy-n-paste error for the last argument of `Key()` and `String()`...
2014-09-04 18:00:05 +02:00
Kosta
00ac1024ee
more changes
2014-09-04 17:37:13 +02:00
Kosta
e70494bc00
fix for Reader::ParseString()
implementation plus some minor code cleanups and additions
2014-09-04 17:29:52 +02:00
Kosta
4a71dc6d58
reunified ParseKey
, ParseString
, and ParseStringOrKey
again
2014-09-04 16:54:01 +02:00
Kosta
0f4071046f
fix simplereader.cpp
and the Key()->String()
forwarding in BaseReaderHandler
2014-09-04 15:30:44 +02:00
Kosta
57e1c87553
add Key()
method to the Handler
concept
...
For more details see: https://github.com/miloyip/rapidjson/issues/132
This commit tries to minimize the required code changes and forwards the `Handler::Key()` calls to `Handler::String()` wherever possible in order to not break existing code; or at least not code deriving from `BaseReaderHandler` when implementing a custom `Handler`.
2014-09-04 15:14:18 +02:00
miloyip
4f81c873a6
Optimize SkipWhitespace_SIMD()
...
Do unaligned non-SIMD matching first, and then SIMD matching later.
Also add a fast path for no skipping.
2014-08-20 17:49:30 +08:00
miloyip
fdc2b569db
Optimize number parsing for 64-bit architecture
2014-08-20 15:17:21 +08:00
Philipp A. Hartmann
1621ba3a41
add Doxygen documentation for error handling customization
2014-08-19 19:13:01 +02:00
Milo Yip
2e23787753
Change Reader/Writer's stack allocator to CrtAllocator
2014-08-17 18:31:41 +08:00
miloyip
126e62ed25
Fix #104 ParseNumberHandler fails on 32-bit
...
Use a tighter bound.
2014-08-13 14:16:29 +08:00
Philipp A. Hartmann
453eda5f94
tabs to 4 spaces (following 0dbcc1cf)
2014-08-11 17:22:11 +02:00
Philipp A. Hartmann
3755470f0f
BaseReaderHandler: allow overriding of Default() implementation
...
By adding an optional CRTP template parameter, the BaseReaderHandler
can call the "overridden" `Default()` function from the `Derived`
class.
See https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
2014-08-11 17:15:07 +02:00
Philipp A. Hartmann
c9f2715115
Reader: drop object/array root restrction from iterative parser
2014-08-11 17:14:31 +02:00
Philipp A. Hartmann
edccda00bd
drop object/array root restriction from recursive parser
2014-08-11 17:14:31 +02:00
Milo Yip
0dbcc1cf2e
Add license and change indents from tab to space.
2014-08-11 22:26:45 +08:00
Milo Yip
6978778884
Change double parsing with fast-path conversion
...
Accurate rounding in normal numerical ranges, also reduce lookup table
size.
2014-08-09 21:11:37 +08:00
Milo Yip
5e5fb7b3d8
Change UINT64_C() to RAPIDJSON_UINT64_C2()
...
Fix #94
2014-08-08 21:34:43 +08:00
Milo Yip
808d362b88
Fix parsing numbers which are less than 1e-308
...
Overflow should check sign of exponent.
2014-07-30 23:27:17 +08:00
miloyip
a32e2ac1d0
Fix SIMD page fault by using aligned load
2014-07-29 16:05:54 +08:00
Milo Yip
c81386413b
Add kParseStopWhenDoneFlag, its implementation and related unit tests
2014-07-27 17:10:32 +08:00
thebusytypist
4a152646d9
Fix compilation error for gcc/clang.
2014-07-18 00:12:04 +08:00
thebusytypist
fa25f93ddb
Merge remote-tracking branch 'upstream/master' into TransitionTable
2014-07-16 23:16:33 +08:00
thebusytypist
b22a89bf3f
Reduce times of stack size check; reduce transition table size.
2014-07-16 22:09:50 +08:00
thebusytypist
1f53c6c041
Implement stack size limitation for iterative parsing.
2014-07-15 14:16:06 +08:00
miloyip
9974e35578
Merge conflicts and suppress VC warnings
2014-07-15 09:20:19 +08:00
thebusytypist
46e89dad0d
Add unittests for kParserErrorTermination; Fix bugs in last merge.
2014-07-15 00:51:34 +08:00
thebusytypist
d4da07c5fb
Merge upstream/master.
2014-07-14 23:49:57 +08:00
Milo Yip
9e3ed44e85
Suppress VS2013 warnings due to #64
2014-07-13 01:10:25 +08:00
Philipp A. Hartmann
152db11ad6
Merge branch 'upstream/master' into feature/exception-support
...
Conflicts:
include/rapidjson/reader.h
2014-07-12 18:42:06 +02:00
Milo Yip
b55fcbd36a
Merge pull request #61 from miloyip/issue59terminate
...
Fixes #59 by adding bool return value for each event handler function
2014-07-12 23:42:50 +08:00
thebusytypist
3038a7855e
Revise unittests: reset the handler before the transition which we are going to test.
2014-07-11 16:03:38 +08:00
Philipp A. Hartmann
418a5829b3
update documentation of ParseResult and related functions
2014-07-11 09:39:20 +02:00
Philipp A. Hartmann
2fcb999749
add ParseResult
2014-07-11 09:39:20 +02:00
Philipp A. Hartmann
3c1d4bc21d
reader.h: prepare "early return path" for exception support
...
In case of a user-defined RAPIDJSON_PARSE_ERROR_NORETURN that throws
an exception instead of using the Rapidjson ParseError API, the early
return paths performing the stack unwinding manually can be omitted as
well.
This patch provides a customizable RAPIDJSON_PARSE_ERROR_EARLY_RETURN
macro to remove these (then unneeded) control paths from the parsing
implementation (with and without a return value).
Secondly, clearing the parse stack is moved to a small helper struct
that calls stack_.Clear() from its destructor. This avoids the need
for the 'goto' in the ParseStream function and ensures proper cleanup
even if e.g. a user-defined Allocator throws an exception.
2014-07-11 09:39:20 +02:00
Philipp A. Hartmann
b37bd85318
move ParseErrorCode to error/error.h
...
In order to enable the customization of the error macros
- RAPIDJSON_PARSE_ERROR_NORETURN
- RAPIDJSON_PARSE_ERROR_EARLY_RETURN
the user may need to have access to the ParseErrorCode enum
already. This requires a separate header location than the
GenericReader.
2014-07-11 09:39:20 +02:00
thebusytypist
36434b66c8
Merge remote-tracking branch 'upstream/master' into TransitionTable
2014-07-11 12:52:07 +08:00
Philipp A. Hartmann
e63125f1a1
MSVC: fix SSE/intrinsic support
...
MSVC with enabled RAPIDJSON_SSE2/RAPIDJSON_SSE42 requires the explicit
definition of the `_BitScanForward` intrinsic. This can be reliably
ensured by including "intrin.h" and properly marking '_BitScanForward'
as intrinsic.
Confirmed on MSVC 2005, 2008.
Should fix https://code.google.com/p/rapidjson/issues/detail?id=96
2014-07-10 19:35:47 +02:00
thebusytypist
e3c4b33915
Add unittests for state transition.
2014-07-10 22:27:25 +08:00
thebusytypist
692904b77b
Handle all unspecific parsing errors.
2014-07-10 19:49:43 +08:00
Milo Yip
cc04219e36
Fixes #59 by adding bool return value for each event handler function
2014-07-10 19:33:01 +08:00
thebusytypist
f6235b2160
Add basic error handling.
2014-07-10 00:00:56 +08:00
thebusytypist
91aaa346e4
Finish the new implementation of state machine. But not been unittested.
2014-07-08 22:54:22 +08:00
thebusytypist
6b0df217a8
WIP: refactor iterative parsing.
2014-07-08 02:19:35 +08:00
thebusytypist
ebb9a250d8
It is sufficient to check finish state in iterative parsing.
2014-07-07 22:06:14 +08:00
thebusytypist
7d33b01515
Bugfix: add missing transition from finish state.
2014-07-07 21:57:23 +08:00
thebusytypist
7acb0c181e
Rename flags/state names/functions/test cases from 'NonRecursive' to 'Iterative'.
2014-07-07 21:46:57 +08:00
Philipp A. Hartmann
53b27ac8ba
GenericReader: improve doxygen documentation
2014-07-06 15:35:43 +02:00
thebusytypist
3006fa7d8c
Try to resolve issue #35 : implement iterative parsing.
2014-07-06 21:15:38 +08:00
Milo Yip
96882f4977
Prohibit copy constructor in StackStream.
2014-07-04 20:19:15 +08:00