Milo Yip
299e9f1e32
Added missing files
2014-09-16 18:47:35 +08:00
Milo Yip
74b81fa510
Extract classes into various files.
2014-09-16 15:23:18 +08:00
Milo Yip
4f99e25b9d
Minor code cleaning
2014-09-16 15:06:44 +08:00
Milo Yip
a425ad5552
Trimming leading/trailing zeros and correct underflow case
2014-09-16 10:52:40 +08:00
miloyip
50fc3fedb2
Fix round towards even
2014-09-15 16:53:57 +08:00
miloyip
b29acfb90d
Limit significand to 17 digits for fast path
...
Should fix gcc debug error in tranvis. May need further refactoring.
2014-09-15 15:54:15 +08:00
Milo Yip
bea4fa7f6a
Remove unused BigInteger::operator+=(const BigInteger&)
2014-09-15 00:31:38 +08:00
Milo Yip
cbd7475242
Fix normal-subnormal boundary and add more boundary cases in unit tests.
2014-09-15 00:30:22 +08:00
Milo Yip
fa52a26909
Fix a unit test warning and suppress a failing case
2014-09-14 12:52:07 +08:00
Milo Yip
4c2128818f
Add 32-bit support for custom strtod
2014-09-14 12:42:58 +08:00
Milo Yip
855da06d0f
Makes gcc x64 runnable, but failed on one case. [ci skip]
2014-09-14 10:52:33 +08:00
Milo Yip
98dd0a0a64
Make custom strtod work for denormal numbers and some boundary cases [ci skip]
2014-09-13 23:24:40 +08:00
Milo Yip
4bd240abee
Implementing custom strtod, fail on some cases [ci skip]
2014-09-12 23:03:20 +08:00
Milo Yip
359ebc78c0
Extract conversion code to strtod.h [ci skip]
2014-09-10 23:36:09 +08:00
miloyip
30ea2a32d1
Prepare custom strtod data. (cannot pass unit test) [ci skip]
2014-09-10 18:54:41 +08:00
miloyip
774a4aa2b2
Fix VC2010 which don't have std::isnan() et al.
2014-09-10 09:28:52 +08:00
Milo Yip
86d63ff10c
Update document for kParseFullPrecisionFlag
2014-09-06 10:28:54 +08:00
miloyip
add0d9c8f9
Compute error statistics of normal precision
2014-09-05 22:18:40 +08:00
miloyip
c4a657d430
Fix ParseNumber_Integer test
2014-09-05 20:06:03 +08:00
miloyip
a71f2e60ff
Optimize ParseNumber()
2014-09-05 19:51:20 +08:00
Milo Yip
881c91d696
Merge master and implement kParseFullPrecision
2014-09-05 13:22:56 +08:00
Milo Yip
d875f16ad7
Refactor ParseNumber for two modes (incomplete)
2014-09-05 10:45:44 +08:00
Milo Yip
5e03cbf1b3
Merge pull request #134 from Kosta-Github/Kosta/add_key_method
...
add `Key()` method to the `Handler` concept
2014-09-05 09:50:24 +08:00
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
25f4892aa1
removed unused argument names
2014-09-04 15:56:21 +02:00
Kosta
8b2faff981
enhance IterativeParsingReaderHandler
to check for Key()
events
2014-09-04 15:51:09 +02:00
Kosta
c8da4d86fc
add Key()->String()
forwarding to the capitalize
example
2014-09-04 15:35:01 +02:00
Kosta
0f4071046f
fix simplereader.cpp
and the Key()->String()
forwarding in BaseReaderHandler
2014-09-04 15:30:44 +02:00
Kosta
23b3d24355
add Key()
to IterativeParsingReaderHandler in
readertest.cpp`
2014-09-04 15:24:52 +02:00
Kosta
17b1a14d62
add Key()
method to Writer
and PrettyWriter
2014-09-04 15:20:05 +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
b0436911a8
Check "fast path cases in disguise" in strtod
2014-09-03 14:45:37 +08:00
miloyip
818f6f1f2e
Add random tests for ParseNumber
2014-09-03 13:27:43 +08:00
Milo Yip
bc9d7866be
Merge pull request #128 from pah/feature/cxx11-move
...
Initial C++11 move support
2014-09-03 09:37:35 +08:00
Milo Yip
15d70d6a7b
Merge pull request #127 from pah/feature/value-different-allocators
...
GenericValue: accept values with different allocators for read-only access
2014-09-03 09:37:15 +08:00
miloyip
0580d42d11
Fallback strtod() when not able to do fast-path
...
This shall generate best possible precision (if strtod() is correctly
implemented). Need more unit tests and performance tests. May add an
option for accepting precision error. Otherwise LUT in Pow10() can be
reduced.
2014-09-03 01:02:38 +08:00
Milo Yip
c6e6bca22f
Merge pull request #130 from pah/fixes/capacity-growth
...
GenericValue: reduce growth factor for array/object reallocations
2014-09-02 22:11:34 +08:00
Milo Yip
9289f3270d
Merge pull request #131 from Kosta-Github/Kosta/short_string_optimization
...
short string optimization
2014-09-02 21:52:10 +08:00
Kosta
08e81097eb
final fix for the unit test case...
2014-09-01 12:54:50 +02:00
Kosta
ba05ea52cf
use rapidjson::Value::SizeType
as the type for storing and comparing the string length
2014-09-01 12:52:36 +02:00
Kosta
609997565c
unit test simplification for short string optimization
2014-09-01 12:46:04 +02:00
Kosta
88debcf02e
typo fixed for the unit test implementation
2014-09-01 12:40:28 +02:00
Kosta
056d0dafe4
add unit test for testing edge cases of the short string optimization
2014-09-01 12:34:43 +02:00
Kosta
697cf407c2
fixed a compiler error not caught by VS2012...
2014-09-01 12:01:25 +02:00
Kosta
d2a374b40c
allow the short string optimization to store one more character
...
The `ShortString` can represent zero-terminated strings up to `MaxSize` chars (excluding the terminating zero) and store a value to determine the length of the contained string in the last character `str[LenPos]` by storing `MaxSize - length` there. If the string to store has the maximal length of `MaxSize` (excluding the terminating zero) then `str[LenPos]` will store `0` and therefore act as the string terminator as well. For getting the string length back from that value just use `MaxSize - str[LenPos]`.
This allows to store `11`-chars strings in 32-bit mode and `15`-chars strings in 64-bit mode inline (for `UTF8`-encoded strings).
2014-09-01 11:52:09 +02:00
Philipp A. Hartmann
0d2761a59c
GenericValue: round up during capacity growth
...
Suggested-by: @miloyip
2014-09-01 11:31:25 +02:00
Kosta
b92d0ebd1b
code cleanup for StringEqual()
...
Instead of replicating the functionality of `GetString()` and `GetStringLength()` in `StringEqual()` it now calls these methods instead.
2014-09-01 11:15:52 +02:00