Commit graph

374 commits

Author SHA1 Message Date
Ethiraric
032efff867 Split fetch_flow_scalar. 2024-01-23 00:19:04 +01:00
Ethiraric
81104ba833 Fix towards flow mapping and colons. 2024-01-23 00:19:04 +01:00
Ethiraric
4603e31a67 Finally grasped how SimpleKey works.
This is a huge commit that cannot easily be broken down as it contains
fixes for the next ignored test in the suite which, one fixed, broke
tests that used to pass and were only then fixed.

There is also a substantial amount of comments that were added,
especially around `SimpleKey`. Minor improvements around the code were
added and I did not bother making a separate commit for them.

Overall, that commit fixes 7 tests from the matrix that were related to
the handling of simple keys.
2024-01-23 00:19:04 +01:00
Ethiraric
795193483e Minor improvement to debug prints. 2024-01-23 00:19:04 +01:00
Ethiraric
23f3a512f0 Fix anchor names' character set. 2024-01-23 00:19:04 +01:00
Ethiraric
07a0743288 Fix empty documents tests. 2024-01-23 00:19:04 +01:00
Ethiraric
65a89f41b9 Fix empty keys in implicit mappings. 2024-01-23 00:19:04 +01:00
Ethiraric
f2b5946008 Add comments to TokenType and Scanner. 2024-01-23 00:19:04 +01:00
Ethiraric
19bd49865f Add debugging helpers. 2024-01-23 00:19:04 +01:00
Ethiraric
319b288e60 More fixes towards invalid tabs. 2024-01-23 00:19:04 +01:00
Ethiraric
0889d66c32 More fixes towards invalid tabs? 2024-01-23 00:19:04 +01:00
Ethiraric
84bfd0d3de More fixes towards invalid tabs. 2024-01-23 00:19:04 +01:00
Ethiraric
870f2359dd More fixes towards invalid tabs. 2024-01-23 00:19:04 +01:00
Ethiraric
da233d5426 More fixes towards invalid tabs. 2024-01-23 00:19:04 +01:00
Ethiraric
ffe0cfb6d5 Fix towards invalid tabs. 2024-01-23 00:19:04 +01:00
Ethiraric
cd2c34cabe Fix indent when - & entry have \n in-between. 2024-01-23 00:19:04 +01:00
Ethiraric
5a8c5a3d44 More fixes towards invalid tabs. 2024-01-23 00:19:04 +01:00
Ethiraric
326082e0bc Fix DK95-00, I guess. 2024-01-23 00:19:04 +01:00
Ethiraric
f9e55be2f0 Rework block scalar indent skipping. 2024-01-23 00:19:04 +01:00
Ethiraric
abe5d30b3a Minor improvements. 2024-01-23 00:19:04 +01:00
Ethiraric
01ecc1ab0f More fixes towards tabulations. 2024-01-23 00:19:04 +01:00
Ethiraric
e69953bf80 Fix more inappropriate use of tabs. 2024-01-23 00:19:04 +01:00
Ethiraric
15e02cf53d Use type aliases where appropriate. 2024-01-23 00:19:04 +01:00
Ethiraric
acb35b431a Doccomment is_ series of functions. 2024-01-23 00:19:04 +01:00
Ethiraric
270c75ce03 Fix tab used as indentation checks. 2024-01-23 00:19:04 +01:00
Ethiraric
1afe5e353f Handle "!!" tag overriding. 2024-01-23 00:19:04 +01:00
Ethiraric
cf9088286d Remove stale tag handling code. 2024-01-23 00:19:04 +01:00
Ethiraric
0d50cff2b5 Don't inherit tag directives between documents. 2024-01-23 00:19:04 +01:00
Ethiraric
a502625ce8 Reslove tag directives. 2024-01-23 00:19:04 +01:00
Ethiraric
df48d59150 Remove _ prefix to used method. 2024-01-23 00:19:04 +01:00
Ethiraric
b1be5686bf Propagate tag to SequenceStart event. 2024-01-23 00:19:04 +01:00
Ethiraric
ddd768e681 Propagate tag to MappingStart event. 2024-01-23 00:19:04 +01:00
Ethiraric
e4c4182020 Minor improvements.
* Doc comments
* Helper functions
* Line breaks for readability
2024-01-23 00:19:04 +01:00
Ethiraric
c458fd1248 Rustfmt + clippy. 2024-01-23 00:19:04 +01:00
Ethiraric
f9eb8c6d60 Move emitter/scanner tests to their folder.
Change scanner's complex test:
```diff
-  *coffee:
+  *coffee :
     amount: 4
-  *cookies:
+  *cookies :
     amount: 4
```

According to https://play.yaml.io/main/parser, this example was invalid
in the first place. Adding a space makes it so that the colon is not
part of the alias name.

Also fix colons not being able to be part of anchors.
2024-01-23 00:19:04 +01:00
Denis Lisov
3cdb815556 yaml-test-suite: print the YAML text on failure 2024-01-23 00:19:04 +01:00
Denis Lisov
af569b50d7 yaml-test-suite: update to YTS v2022-01-17 2024-01-23 00:19:04 +01:00
Denis Lisov
d27da67c69 yaml-test-suite: print the names of missing XFAILs 2024-01-23 00:19:04 +01:00
Denis Lisov
ce88cabc08 yaml-test-suite: ensure all XFAILs do exist as tests 2024-01-23 00:19:04 +01:00
Denis Lisov
eac129c5f5 yaml-test-suite: add ignores and classify failures 2024-01-23 00:19:04 +01:00
Denis Lisov
ff12dca0d2 yaml-test-suite: move to libtest-mimic 2024-01-23 00:19:04 +01:00
Denis Lisov
38a81c6200 testing: add an integration test for yaml-test-suite
The official YAML test suite (https://github.com/yaml/yaml-test-suite).
Requires the submodule to be checked out.
2024-01-23 00:19:04 +01:00
Ethiraric
da67c9a763 Expose ScanError::info.
From https://github.com/chyh1990/yaml-rust/pull/190.
2023-08-17 23:43:15 +02:00
Ethiraric
c3d394186a Fix more clippy lints. 2023-08-17 23:31:32 +02:00
Ethiraric
a49f4417b8 Add a dump_events example to aid debugging. 2023-08-17 23:16:09 +02:00
Ethiraric
a31d836d9c Add a release-lto cargo profile. 2023-08-17 23:16:09 +02:00
Ethiraric
2d8c4e8fc9 Add documentation and move tests to their folder. 2023-08-17 23:16:06 +02:00
Ethiraric
91ed5dca21 Clippy set to pedantic. 2023-08-14 16:11:33 +02:00
Alexander Kjäll
beae0f306b library is now in the crates repo (#164) 2021-07-12 15:48:17 +08:00
Yuheng Chen
95d0603129 Bump to v0.4.5 2021-01-03 11:57:28 -08:00
Dylan DPC
6d0561fa31 Update Cargo.toml (#162) 2020-07-10 13:44:57 +08:00
Yuheng Chen
95e1ad2dce Bump to v0.4.4 2020-06-01 21:02:16 +08:00
Evan Harvey
d5bfbcb047 Spellcheck (#143)
* Spellcheck src

* Spellcheck README
2020-06-01 20:59:27 +08:00
Yuheng Chen
2be65d069e fix CI for clippy 0.9 2020-06-01 20:34:13 +08:00
Chen Yuheng
268eb2c6fd Raise minimum rustc support to 1.31 2020-06-01 20:18:27 +08:00
Chen Yuheng
6b9b0360e5 Update .travis.yml 2020-06-01 20:15:32 +08:00
Chen Yuheng
604dfc3d64 Merge pull request #158 from XVilka/rust2018
Rust 2018 transition.
2020-06-01 20:05:39 +08:00
Anton Kochkov
2a18bbb074 Fix build 2020-05-27 14:36:22 +08:00
Anton Kochkov
d038b75bb7 Update AppVeyor 2020-05-27 14:29:54 +08:00
Anton Kochkov
a4b1bb6e9b Update quickcheck to 0.9 2020-05-27 14:25:59 +08:00
Anton Kochkov
8d26a5eca3 Remove deprecated API 2020-05-27 14:19:22 +08:00
Anton Kochkov
95562ac849 Rust 2018 transition 2020-05-27 14:15:28 +08:00
Hendrik Sollich
1005387c2c Raise minimum rustc version to 1.28 (Fixes CI)
Known minimum version to build [regex](https://crates.io/crates/regex).
Old enough as it is, we're not c++ here!
2019-07-24 18:37:03 +02:00
Hendrik Sollich
faf6e2a8a6 Fix emitting hexlike strings without quotes
The emitter omitted quotes for strings that start with `0x` those would
subsequently be parsed as strings again. This should fix #133.
2019-07-24 16:40:02 +02:00
Yuheng Chen
bd87698008 Bump to v0.4.3 2019-03-07 14:27:03 +08:00
Robin Stocker
a3591b3fef Fix handling of indicators in plain scalars to conform to YAML 1.2
YAML 1.2 has special handling of indicators to be compatible with JSON.
The following is equivalent to `{"a": "b"}` (note, no space after `:`):

    {"a":b}

But without the quoted key, a space is required. So the `:` here is part
of the plain scalar:

    {a:b}  # == {"a:b"}

A plain scalar can also start with a `:` as long as it's followed by
"safe" characters:

    {a: :b}  # == {"a": ":b"}

(Fixes #118)
2019-03-04 11:45:39 +11:00
Tibo Delor
cbd5800485 Bump minimum version for test to 1.24.1
quickcheckv0.7.2 comes with lazy_static v1.2.0 which only support Rust 1.24.1.
See https://github.com/rust-lang-nursery/lazy-static.rs/releases/tag/1.2.0
2018-12-13 19:03:31 +11:00
Tibo Delor
0705722551 Format using rustfmt 1.0 2018-12-13 18:35:01 +11:00
David Tolnay
04134ffc47 Address write_with_newline lint 2018-09-16 00:00:48 -07:00
David Tolnay
34da7f5f01 Replace try! with question mark 2018-09-15 23:58:48 -07:00
David Tolnay
1652cf524e Release 0.4.2 2018-09-15 13:09:48 -07:00
David Tolnay
31a54ded85 Lowercase the recursion limit error message
To be consistent with the other errors in this crate.
2018-09-15 13:09:11 -07:00
David Tolnay
66326f23f5 Release 0.4.1 2018-09-15 12:31:11 -07:00
David Tolnay
0e1049d10c Set html_root_url 2018-09-15 12:30:27 -07:00
David Tolnay
b81d0c3da1 Stop recommending a git dependency 2018-09-15 12:29:20 -07:00
David Tolnay
a370e822e7 Remove outdated note about version support 2018-09-15 12:29:02 -07:00
David Tolnay
25d949f985 Reorganize readme links 2018-09-15 12:28:45 -07:00
David Tolnay
60fdd48745 Fix docs.rs link 2018-09-15 12:25:55 -07:00
David Tolnay
dba01d9a48 Render readme on crates.io 2018-09-15 12:25:15 -07:00
David Tolnay
1f2d2aaf31 Remove commented key in Cargo.toml 2018-09-15 12:24:47 -07:00
David Tolnay
34c0069d09 Merge pull request #112 from xfix/add-testing-input-output-identity-in-quickcheck
Add testing whether load(dump(x)) is an identity in quickcheck
2018-09-15 12:23:08 -07:00
David Tolnay
10498b2423 Escape string containing colon
I don't know whether this is always necessary but it is required for
correctly serializing `["x: %"]`. If we serialize this without quotes to
`[x: %]` then the result is not valid YAML.
2018-09-15 12:20:14 -07:00
David Tolnay
a60ece819a Tag clippy build in travis build list 2018-09-15 10:12:16 -07:00
David Tolnay
11ddb9f97a Require clippy to pass when it can be installed 2018-09-15 10:11:00 -07:00
David Tolnay
48c732d077 Ignore should_implement_trait lint
The Parser::next method is already a public API.
2018-09-15 10:07:05 -07:00
Konrad Borowski
6cb37b8e32 Add testing whether load(dump(x)) is an identity in quickcheck 2018-09-15 19:06:39 +02:00
David Tolnay
05eb495917 Address redundant_field_names lint 2018-09-15 10:06:34 -07:00
David Tolnay
1b25db62bb Don't yet use tool attrs because they are not stable 2018-09-15 10:02:56 -07:00
David Tolnay
5039af6862 Format with rustfmt 0.99.4 2018-09-15 09:49:08 -07:00
David Tolnay
124d237be0 Hide verbose output in travis 2018-09-15 09:38:22 -07:00
David Tolnay
03ad50b389 Add a dedicated clippy builder 2018-09-15 09:31:41 -07:00
David Tolnay
07d60a6c79 Add a travis build on rust stable 2018-09-15 09:29:35 -07:00
David Tolnay
49d19e7e15 Add a build-only build on rustc 1.13.0 2018-09-15 09:28:56 -07:00
David Tolnay
070396018b Remove travis secure token
Since we are no longer publishing docs from Travis.
2018-09-15 09:28:07 -07:00
David Tolnay
fc89e161ad Switch to matrix style CI target list
To allow specifying a different script for each.
2018-09-15 09:27:29 -07:00
David Tolnay
3d0c39f2c5 Raise the tested rustc version to 1.22.1 2018-09-15 09:24:52 -07:00
David Tolnay
b75f13e7d3 Merge branch 'master' into prevent-too-deep-recursion 2018-09-15 09:16:25 -07:00
David Tolnay
7395fcb155 Merge pull request #108 from ignatenkobrain/patch-4
Update quickcheck to 0.7
2018-09-15 09:10:58 -07:00
David Tolnay
d5ada3b0ef Merge pull request #104 from hoodie/feature/test-indentation-behaviour
Add tests to show expected indentation interpretation
2018-09-15 09:09:05 -07:00
Konrad Borowski
bbb80f1ee7 Prevent too deep recursion 2018-09-15 12:34:21 +02:00
Chen Yuheng
8de5a02381 Update .travis.yml
update ci to rust 1.19 for regex.
2018-09-04 16:16:37 +08:00
Chen Yuheng
29e6049bab Merge pull request #99 from hdevalke/master
Do not quote hyphenated strings unnecessarily.
2018-09-04 16:11:11 +08:00
Igor Gnatenko
39c212ba93 Update quickcheck to 0.7 2018-09-02 18:13:50 +02:00
Chen Yuheng
57f603a09e README: remove warning
Fix #106 

This library is production-ready.
2018-08-30 19:23:41 +08:00
Hendrik Sollich
97f208bf76 Add tests to show expected indentation interpretation 2018-06-22 21:17:16 +02:00
Hannes De Valkeneer
d546f31b01 update minimum version to 1.18.0 because of env_logger 2018-04-20 21:40:14 +02:00
Hannes De Valkeneer
d355e60edc Do not quote hyphenated strings unnecessarily.
fixes #54
2018-04-20 21:01:45 +02:00
Chen Yuheng
e7637188a8 Merge pull request #96 from chyh1990/fix_boolean_quotes
fix boolean escape and quotes
2018-01-15 21:14:09 +08:00
Chen Yuheng
027299b5e7 Update README.md 2018-01-06 15:28:14 +08:00
Chen Yuheng
7035fdfb99 Update document link
Fix #94
2018-01-06 15:27:42 +08:00
Yuheng Chen
1d679384ee fix boolean quotes
Fix #92
2018-01-03 21:44:54 +08:00
Chen Yuheng
f840ee36f3 Merge pull request #95 from ignatenkobrain/patch-3
bump quickcheck to 0.6
2018-01-02 14:58:05 +08:00
Yuheng Chen
f050b83e4a Fix warning 2018-01-02 14:57:27 +08:00
Chen Yuheng
7e7f22fddf Update .travis.yml 2018-01-02 14:49:37 +08:00
Igor Gnatenko
083e7a3e8c bump quickcheck to 0.6 2018-01-01 12:33:30 +01:00
Yuheng Chen
07580aef18 Bump to 0.4.0
This version contains breaking API changes in low level event-based API:

- The EventReceiver gets ownership of events
2017-11-22 15:53:12 +08:00
Yuheng Chen
6f0806439b Bump to 0.3.9 2017-11-22 11:02:17 +08:00
Chen Yuheng
db768d59bb Merge pull request #89 from marcaddeo/master
Add a cause() method to EmitError
2017-11-22 10:48:52 +08:00
cetra3
a7df76be5f Include Scanner 2017-11-15 14:11:39 +10:30
cetra3
b2c59b8950 Allow the Marker from ScanError 2017-11-15 12:06:16 +10:30
Marc Addeo
519e2812e4 Add a cause() method to EmitError
For compatibility with error_chain
2017-11-12 12:02:34 -05:00
Chen Yuheng
bafabb4e41 Merge pull request #80 from chris-m-h/pull-parser
Make pull parser accessible
2017-11-02 12:16:58 +08:00
Martin Hoffmann
0e2b66a42d Allow access to Marker’s content. 2017-09-02 13:49:53 +02:00
Yuheng Chen
51adc046da Bump to 0.3.8 2017-08-21 13:58:49 +08:00
Pedro Côrte-Real
78dcf0d099 Upgrade to latest linked-hash-map 2017-08-18 21:42:02 +01:00
Christian Hofer
f38c3e11b7 Replace ? by try! 2017-07-16 18:00:50 +02:00
Christian Hofer
00a7d64386 Extract pull parser. 2017-07-15 18:49:27 +02:00
David Tolnay
4b4877686c Merge pull request #78 from chris-m-h/do-not-clone-on-peek
Parser: Do not clone on peeking
2017-07-11 07:04:59 -07:00
Chen Yuheng
2a5e371b93 Merge pull request #79 from tshepang/patch-1
readme: nit-picking
2017-07-11 10:55:10 +08:00
Charlie Ozinga
5cf22a347c Version bump 2017-07-10 10:08:20 -06:00
Charlie Ozinga
9b21f8026a Merge branch 'master' of https://github.com/chyh1990/yaml-rust into chyh1990 2017-07-10 10:05:43 -06:00
Tshepang Lekhonkhobe
b48e77dab4 readme: nit-picking 2017-06-26 12:32:52 +02:00
Christian Hofer
a82dfa78e9 Fix version incompatibilities
Also: Fix clippy errors
2017-06-22 09:54:13 +02:00
Christian Hofer
639d288236 Parser: Do not clone on peeking
This eliminates calls to clone() and to_owned() in the parser

- Peeking now returns reference only
- To obtain value, fetch_token needs to be called
- The parser was adapted accordingly
- Also: Pass anchor name by value to register_anchor
2017-06-21 10:20:16 +02:00
Christian Hofer
6600c8f4c5 Always pass events by value
- The EventReceiver gets ownership of events
- Breaks compatilibility with previous interface
2017-06-19 15:41:26 +02:00
Christian Hofer
28d17fa242 Allow clients ownership of events
Also: Optimize built-in Yaml deserializer to avoid one scalar value cloning step.
2017-06-14 10:29:27 +02:00
Hendrik Sollich
aaf06fbce9 correctly emitting deeply nested arrays 2017-06-11 00:19:49 +02:00
Hendrik Sollich
083df3ce4c correctly emitting nested arrays
fixed #70 too
2017-06-10 23:43:15 +02:00
Charlie Ozinga
5fb88bc4bf Move the compact flag into the emitter itself 2017-05-23 12:18:12 -06:00
Charlie Ozinga
7cc29540f2 Merge branch 'master' of https://github.com/chyh1990/yaml-rust into chyh1990 2017-05-23 11:51:19 -06:00
Hendrik Sollich
3fa9a24739 quoting possible booleans
fixes #53
2017-05-22 19:32:08 +02:00
Yuheng Chen
b5f5b66d6e Allow use integer as key to access HashMap
Fix #61
2017-05-13 21:55:32 +08:00
Yuheng Chen
a5c49b9922 Parse special f64 in tag 2017-05-13 21:22:19 +08:00
Yuheng Chen
c3a9141330 Add special f64 parsing
Fix #51
2017-05-13 21:17:35 +08:00
Yuheng Chen
4c7a335bac Fix #65 2017-05-13 20:48:48 +08:00
Charlie Ozinga
9649b1486e Remove extraneous debug output from test 2017-05-11 23:36:51 -06:00
Charlie Ozinga
528164d6e6 Fix nested arrays, emit compact in-line 2017-05-11 23:29:41 -06:00
Charlie Ozinga
818fed42b0 Rebased and resolved conflicts with the following:
https://github.com/chyh1990/yaml-rust/pull/66
https://github.com/chyh1990/yaml-rust/pull/62 (closed in favor of 66)
2017-05-11 12:36:38 -06:00
Alyssa Ross
960ee4385f Add/fix README syntax highlighting
Adds the missing syntax mode for TOML, and fixes the Rust syntax highlighting syntax
2017-05-10 22:09:30 +01:00
David Tolnay
083be16860 Implement Error for EmitError
Fixes #50.
2017-05-08 11:43:44 -07:00