Nicolas Le Scouarnec
629297180d
Fix merge-key handling in case the dictionary contains a sub-dictionary
2023-12-08 20:42:30 +01:00
Nicolas Le Scouarnec
6bbc603b22
Adding support for handling YAML Merge Key ( #41 )
...
Support for YAML Merge keys ( <<: [*dict1, *dict2] ) is added. The merge
key is a specific scalar with value << (and tag !!merge) that implies
that during node construction, the map (or sequence of maps) are merged
into the current map. The priority rules are that each key from maps
within the value associated with << are added iff the key is not yet
present in the current map (and first map gets higher priority). Test
cases have been added accordingly.
2023-11-04 10:08:10 +01:00
James Brown
1b50109f7b
Include property nodes in the long key check ( #1140 )
2022-10-04 18:51:53 -05:00
Dr. Andre Vehreschild
13626af92a
Fix escaping anchors in keys ( #1101 )
2022-04-21 08:19:51 -05:00
Dr. Andre Vehreschild
4c982d59dc
Improve build and fix single cr on windows ( #1099 )
2022-04-19 12:39:55 -05:00
Dr. Andre Vehreschild
a6db7e32ac
Fix single cr not recognized ( #1094 )
...
Complies with YAML Standard [5.4](https://yaml.org/spec/1.2.2/#54-line-break-characters ) [25] instead of matching `\r` only in combination with `\n`.
2022-03-31 22:16:35 -05:00
theamarin
9ee3928754
Prevent trailing spaces when emitting literal strings ( #1005 )
2021-07-04 22:30:04 -05:00
Chen
98acc5a887
Emit the correct Alias on the key ( #908 ) ( #929 )
2020-07-27 13:49:04 -05:00
Chen
1c9abc8fa4
fix issue743: handle the empty content of flow sep/map correctly during emitting. ( #921 )
...
* fix issue743: handle the empty content of flow sep/map correctly during emitting.
* handle the empty Tag/Anchor properly.
* delete comment
2020-07-24 07:28:40 -05:00
Chen
c2793a36d5
Fix runtime exceptions in Visual Studio environment. ( #926 )
2020-07-23 08:48:20 -05:00
Chen
c3df6d87d4
Properly allow a trailing tab character on a block scalar ( #919 )
...
Fixes #917
2020-07-16 10:08:09 -05:00
Chen
51ce663085
Handle a key with length over 1024 as a long key. ( #916 )
...
Fixes #501
2020-07-16 09:51:54 -05:00
Chen
33315286ab
Add the support to parsing a null value as std::string.
...
Fixes #590 .
2020-07-16 09:15:39 -05:00
Oliver Hamlet
c82d3129dd
Add support for JSON-compatible string escapes ( #485 )
...
For completeness I've implemented escaping for characters outside the
basic multilingual plane, but it doesn't get used (as there's no
EscapeAsAsciiJson emitter option implemented).
2020-07-13 21:16:34 -05:00
Chen
6d5cfab5fd
fix bug from issue298:Emitter stylings settings overridden by node settings. ( #915 )
2020-07-06 08:16:38 -05:00
Chen
026a53fbe1
Parse colon in plain scalar correctly when in a flow collection
...
Fixes #740 .
2020-07-02 14:08:14 -05:00
Raffaello Bertini
1c2e767347
Fix YAML::Newline in a sequence or map.
...
Inside of a sequence or map, `YAML::Newline` wouldn't reset the collection state, which would cause behavior like this:
```
nodeA:
k: [{i: 0},
{i:1},
]NodeB:
k: [{i: 0},
{i:1},
]
```
2020-07-01 22:31:51 -05:00
Chen
08aa252611
Support kinds of emitter format-setting for YAML::Null. ( #906 )
...
* Support kinds of emitter format-setting for YAML::Null.
* update the code and test cases
* add the comment //fallthrough
2020-06-28 23:31:53 -05:00
Chen
5a9ab177ba
tag_null ( #897 )
2020-06-17 12:49:09 -05:00
Chen
72fe73a104
fix issue752: generate right long keys ( #879 )
...
* fix issue752: generate right long keys
* Improve the readability of test cases
* update to raw string literal
2020-06-17 00:57:28 -05:00
Rosen Penev
b2cd008717
partially fix clang compilation ( #893 )
...
* partially fix clang compilation
Missing header and mistaken algorithm usage.
Also removed it name from range loops. It's not correct.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
* run through clang's -Wrange-loop-analysis
Some range loops should not use references as they need to copy.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
* manual range loop conversions
Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-06-15 16:59:27 -05:00
Chen
4dbfeb0bbc
Support as<uint8_t>/as<int8_t>.
...
Fix issue 844/848.
2020-06-15 10:31:59 -05:00
Chen
33316d531b
Add tests for some interfaces of emitter ( #875 )
2020-05-31 09:16:16 -05:00
Raúl Gutiérrez Segalés
f05b2577ad
Fix crash when parsing {x: ( #865 )
2020-05-23 12:17:20 -05:00
Chen
d9c35b6079
Throw an exception when trying to parse a negative number as an unsigned.
...
Fixing issue 859.
2020-05-19 11:48:22 -05:00
Chen
4b98aedc16
Supplement test cases for 2.19 ~ 2.22 schema tags. ( #857 )
...
Add test cases for the event handler for schema tags; does not include test cases for Node because specialized tag handling is not implemented yet.
2020-05-12 13:20:45 -05:00
Ted Lyngmo
ce056acab7
Add IsNull() check in test after reassignment ( #814 )
2020-02-07 10:52:43 -06:00
Jesse Beder
c9460110e0
Fix reading empty token stack with a node with properties but no scalar.
...
E.g. `!2`.
2020-01-20 18:16:08 -06:00
Jeppe Blicher Tarp
e0e01d53c2
Make sure output of NaN, Infinity and -Infinity is identical on all platforms ( #717 )
...
Specifically, printing `.nan`, `.inf`, and `-.inf`, respectively, as per the spec section 10.2.1.4.
2019-08-03 21:41:45 -04:00
bedapisl
0122697561
Improve error messages on operator[] or as<> ( #656 )
...
Invalid access via operator[] or as<> will now print the offending key, if possible.
For example:
a:
x: 1
y: 2
node["a"]["z"].as<int>()
will say that the key "z" was invalid.
2019-04-17 08:44:09 -05:00
caryoscelus
eca9cfd648
Add optional OnAnchor method to EventHandler ( #530 )
...
ref #110
2019-03-12 15:24:32 -07:00
Simon Gene Gottlieb
abf941b20d
Fix float precision ( #649 )
...
The issue is that numbers like
2.01 or 3.01 can not be precisely represented with binary floating point
numbers.
This replaces all occurrences of 'std::numeric_limits<T>::digits10 + 1' with
'std::numeric_limits<T>::max_digits10'.
Background:
Using 'std::numeric_limits<T>::digits10 + 1' is not precise enough.
Converting a 'float' into a 'string' and back to a 'float' will not always
produce the original 'float' value. To guarantee that the 'string'
representation has sufficient precision the value
'std::numeric_limits<T>::max_digits10' has to be used.
2018-12-21 09:05:19 -05:00
Stefan Reinhold
45d9035a33
Skip newlines in binary decoding ( Fix #387 ) ( #616 )
...
* Skip newlines in binary decoding
This fixes #387
* Skip all whitespace characters
This also removes spaces and tabs in addition to newlines.
2018-09-03 15:55:45 -05:00
Denis Gladkikh
cfb7606a84
Fix tag parsing with () ( #532 )
2018-01-28 10:18:55 -06:00
butataatawa
d025040049
Fix input strings with quotes giving "!" tagging artifacts.
2016-12-02 08:58:48 -06:00
Jesse Beder
086fec5c35
Fix formatting when writing \ as a character.
2016-10-11 23:58:03 -05:00
Jesse Beder
7d2873ce9f
Fix scalar parsing when a line starts with a comment.
2016-04-02 16:02:26 -05:00
Jesse Beder
bfb5703ce9
Add test to verify that ~ is loaded as null.
2016-04-01 20:01:01 -05:00
Jesse Beder
178c8d1f27
Add test for parser exceptions for incomplete JSON.
2016-03-26 16:01:00 -04:00
Jesse Beder
36fd93a8d5
Fix formatting when writing " as a character.
2016-01-10 12:08:42 -06:00
Jesse Beder
25b2ed0787
Fix operator bool() exception on zombie node
2015-03-29 14:31:22 -05:00
Jesse Beder
f9ff72dee7
Add test for an empty string not being null
2015-01-24 17:30:12 -06:00
Jesse Beder
899b6614c1
Merge from core
2015-01-24 16:07:36 -06:00
Jesse Beder
bc86fd4aec
Force null to be quoted if written as a string
2015-01-24 16:07:10 -06:00
Jesse Beder
391111c055
Merge core
2015-01-24 14:40:55 -06:00
Jesse Beder
570ab9d3fb
Fix unused arg warnings for EmitterStyle
2015-01-24 14:39:17 -06:00
Jesse Beder
0c280724e9
Add flow/block style setting on Nodes
2015-01-24 13:11:43 -06:00
Jesse Beder
9880b608b9
Merge from core
2015-01-24 12:26:16 -06:00
Jesse Beder
ad712c4f2d
Add EmitterStyle, which will allow sequence or map style (i.e., flow or block) to be preserved between parsing and emitting
2015-01-24 12:19:20 -06:00
Jesse Beder
98a181c7a7
Merge from core
2014-03-23 22:25:53 -05:00