Commit graph

902 commits

Author SHA1 Message Date
Ethiraric
c81784cc01 Update to v0.0.3. 2024-10-24 18:38:46 +02:00
Ethiraric
dd10913840 Remove Cargo.lock files. 2024-10-20 19:48:52 +02:00
Ethiraric
d295777899 Add changelog entries. 2024-10-20 18:53:32 +02:00
Ethiraric
62c10c012d Run all tests on both StrInput and BufferedInput. 2024-10-20 18:32:39 +02:00
Ethiraric
ee10eebcc2 Add @eduardosm's UTF-8 tests. 2024-10-20 17:42:51 +02:00
Ethiraric
e6c4d042e4 Fix use of byte count instead of char count. 2024-10-20 16:57:16 +02:00
Ethiraric
e925308e82 Match error message in fuzzing test. 2024-10-20 16:56:58 +02:00
Ethiraric
9812dacc28 Fuzz with both StrInput and BufferedInput. 2024-10-20 16:21:25 +02:00
Ethiraric
9d1bd1c929 Fix nightly warning. 2024-10-20 16:20:52 +02:00
Ethiraric
0f71c8e68a Run yaml-test-suite over both input variants. 2024-10-20 16:09:29 +02:00
Ethiraric
6069e1d0e3 Add and fix another fuzz test. 2024-10-19 19:08:28 +02:00
Ethiraric
d997b53c8d Add fuzz test and fix it. 2024-10-19 18:53:51 +02:00
Ethiraric
e052a63458 Test issues input with both str/iter variants. 2024-10-19 18:53:36 +02:00
Ethiraric
ccf6394d9f Add more debug prints.
When running tests that involve 2 runs of the parser, one with the
`StrInput` and another with the `BufferedInput`, the output of debug
prints can be confusing as it's unclear where one parser ends parsing
and the other starts. These 2 prints allow us to know when each is
started and, if one errors but not the other, to know which did.
2024-10-19 18:53:18 +02:00
Ethiraric
3358629dd1 Fix infinite loop on {.... 2024-10-19 04:14:50 +02:00
Ethiraric
a704716f86 Add just fuzz convenience command. 2024-10-19 03:29:01 +02:00
jneem
42c84079c3
Add fuzzing (#15) 2024-10-19 03:22:23 +02:00
Ethiraric
3cade858fa Add test for issue 13, just in case. 2024-10-17 20:02:09 +02:00
Joe Neeman
982407774e Add regression test for infinite loop. 2024-10-17 19:36:20 +02:00
Ethiraric
26707be38d Move CI from subprojects to root. 2024-10-17 19:25:19 +02:00
Ethiraric
7fa54dcb24 Run issue tests through BufferedInput. 2024-10-17 19:18:45 +02:00
Ethiraric
55858d15d9 Add Parser::new_from_iter. 2024-10-17 19:17:26 +02:00
Ethiraric
53dc2b9aba Add a justfile with before_commit at the root. 2024-10-13 16:24:28 +02:00
Ethiraric
979f8eabf9 Fix rustdoc warnings.
This requires making the `input` mod public, as some items in
`char_traits` are referenced in `Input`'s function doccomments.
The items have been exposed in `input` directly, rather than in a
`saphyr::input::char_traits` submod.
2024-10-13 16:21:37 +02:00
Ethiraric
9e3317c179 Add tools to the workspace. 2024-10-13 16:21:03 +02:00
Ethiraric
95fe3fea16 Fix issue with --- in the middle of a scalar.
This issue arises in the `yaml-test-suite` not in a test, but rather in
the test description files themselves. Since we now use the library
itself to load the test files, this made the `yaml-test-suite` fail.
2024-10-13 16:19:58 +02:00
Ethiraric
dc429b7ef7 Deduplicate tools. 2024-10-13 16:18:44 +02:00
jneem
d82866555a Look ahead before testing for EOF. (#12)
Look ahead before testing for EOF.

This fixes panics in saphyr's test_multiline_trailing_newline and
test_multiline_leading_newline tests, in which `self.input.next_is_z`
would be called on an empty buffer and panic in `peek`
2024-10-13 14:48:06 +02:00
jneem
434f4521dd Better tracking for beginning and ending positions of mappings. (#10)
Previously, we often used the scanner state to infer the positions of
mappings. This is sometimes wrong, because the scanner has already
scanned ahead by the time the mapping is parsed.

This commit adds a check to the test suite, asserting that parser event
positions are all observed in order, and it fixes the scanner and parser
to make the new check pass.
2024-10-13 14:47:41 +02:00
Eduardo Sánchez Muñoz
833343757a Make StrInput type publicly visible
For cases where you might need to, e.g, define a function with a `Parser<StrInput<'_>>` as argument
2024-10-13 14:43:33 +02:00
Ethiraric
59048f68ae Code cleanup after monorepo-ing. 2024-10-13 14:42:50 +02:00
Ethiraric
8ee4921e5e Some cleanup after monorepo-ing.
- Update root `README.md`
- Remove `bench/` tools we no longer need
- Remove `.gitmodules` for `yaml-test-suite`
2024-10-12 16:29:33 +02:00
Ethiraric
3f9b8c22a3 Add yaml-test-suite as subtree. 2024-10-12 16:15:46 +02:00
Ethiraric
e303cbe543 Squashed 'parser/tests/yaml-test-suite/' content from commit ccfa74e5
git-subtree-dir: parser/tests/yaml-test-suite
git-subtree-split: ccfa74e56afb53da960847ff6e6976c0a0825709
2024-10-12 16:15:38 +02:00
David Aguilar
4e781f56c9 cargo: merge Cargo.toml files into a cargo workspaces 2024-10-04 00:35:06 -07:00
David Aguilar
3978720dc9 .gitignore: merge gitignores into a single top-level file 2024-10-04 00:34:35 -07:00
Ethiraric
57d2ff4b19 Convert to monorepo. 2024-10-03 13:55:58 +02:00
Ethiraric
5be327f855 Add changelog entry for last commit. 2024-09-25 16:32:56 +02:00
Ethiraric
fd5a606b19 Make LoadError Clone.
Fixes #11
2024-09-25 16:31:59 +02:00
jneem
d3b9641125 Remove bad assert. (#11)
We reserve bufmaxlen bytes in the string, but then proceed to push
up to bufmaxlen chars. Therefore it is possible that the string will
need to reallocate. A different solution would be to reserve
4*bufmaxlen bytes. Removing the assert is probably ok, because the
attempt to pre-allocate is just a performance optimization.
2024-09-13 23:17:23 +02:00
Eduardo Sánchez Muñoz
e215f546f3 Remove all unsafe code.
* Use `str::strip_prefix` to avoid using `str::from_utf8_unchecked`
* Avoid most uses of `extend_left` unsafe function
* Remove `Input::push_back` and remaining unsafe
2024-08-12 17:06:14 +02:00
Eduardo Sánchez Muñoz
6c57b5b5e4 Add "explicit" flag to Event::DocumentStart (#5)
Allows the event consumer to know whether the document explicitly starts with a `---`
2024-08-05 17:23:04 +02:00
jneem
926fdfb01b Use spans instead of markers (#3) 2024-08-05 17:08:23 +02:00
Ethiraric
4a5241e0bb Improve buffer handling in scan_plain_scalar. 2024-08-05 01:11:13 +02:00
Ethiraric
7275141203 Add run_bench to Cargo.toml. 2024-07-14 17:01:44 +02:00
Ethiraric
93b7e55bcf Move scanning low-level functions to Input. 2024-07-14 17:01:44 +02:00
Ethiraric
696ca59a16 Move next_can_be_plain_scalar to Input trait. 2024-07-14 17:01:44 +02:00
Ethiraric
8d7c3a1c1b Move skip_ws_to_eol to Input trait. 2024-07-14 17:01:44 +02:00
Ethiraric
db4f26da42 Add StrInput. 2024-07-14 17:01:44 +02:00
Ethiraric
0e9cee18f2 Move buffered_input to an input module. 2024-07-14 17:01:44 +02:00