Ethiraric
2471c5793a
Buffer block scalar lines.
...
Instead of doing a loop that goes:
* fetch from input stream
* push char into string
Make a loop that fetches characters while they're not a breakz and
_then_ extend the string. This avoids a bunch of reallocations.
2024-01-24 21:45:18 +01:00
Ethiraric
7a51c3dfca
Split skip
into more specific variants.
...
This function is a hotpath and sometimes removing the conditional jump
to detect line breaks saves a bunch of instructions.
2024-01-24 20:20:52 +01:00
Ethiraric
666965ef4f
Doing this leads to worse performance.
2024-01-24 19:42:18 +01:00
Ethiraric
4153a98973
Pre-load chars in skip_block_scalar_indent
.
2024-01-24 19:31:45 +01:00
Ethiraric
980d5b0335
Help the compiler inline read_break
.
2024-01-24 17:14:52 +01:00
Ethiraric
bcdd725049
Remove debug prints code from release builds.
...
If building release mode, remove debug code. Now, the `debug_print!`
macro resolves to nothing in release build.
In debug build, don't check the environment for each print. This has a
huge overhead. The environment is only checked once and next checks are
made against a simple boolean value.
2024-01-24 02:22:02 +01:00
Ethiraric
25644ffa93
Add justfile
for my pre-commit todo-list.
2024-01-24 01:11:53 +01:00
Ethiraric
06936742f2
Move char is_xxx
fn to their own file.
2024-01-24 01:02:20 +01:00
Ethiraric
ed591e86ca
Add benchmarking tools.
2024-02-08 08:15:36 +01:00
Ethiraric
ac2d02f65e
Use OR for dual licensing.
...
https://doc.rust-lang.org/book/ch14-02-publishing-to-crates-io.html#adding-metadata-to-a-new-crate
2024-01-23 15:20:12 +01:00
Ethiraric
2481df7f9d
Update licence, readme, doc.
2024-02-08 07:12:14 +01:00
Ethiraric
f2d0968a89
Fix null nodes with tags in flow constructs.
2024-01-23 00:19:04 +01:00
Ethiraric
4b37abf2b7
Fix tag scanning.
2024-01-23 00:19:04 +01:00
Ethiraric
84a7d2a0ab
Fix indent in block scalars.
2024-01-23 00:19:04 +01:00
Ethiraric
3868b83756
Fix dquote indentation.
2024-01-23 00:19:04 +01:00
Ethiraric
36c4f8951e
Fix dquote string escape sequences.
2024-01-23 00:19:04 +01:00
Ethiraric
71c54f318f
Fix tests related to anchor/alias indentation.
...
I have no idea what I'm doing.
2024-01-23 00:19:04 +01:00
Ethiraric
ca7579a3c9
Fix flow adjacent value with complex key.
2024-01-23 00:19:04 +01:00
Ethiraric
a34fcac152
Lint and improve formatting.
2024-01-23 00:19:04 +01:00
Ethiraric
ef799af5eb
Fix use of dashes in flow contexts.
2024-01-23 00:19:04 +01:00
Ethiraric
c60099af9b
Fix block scalar / eof interactions.
2024-01-23 00:19:04 +01:00
Ethiraric
9b653e607b
Fix block scalars and document end interaction.
2024-01-23 00:19:04 +01:00
Ethiraric
308b07bad2
Fix duplicate version directive.
2024-01-23 00:19:04 +01:00
Ethiraric
31dc4a1456
Fixes towards implicit document end.
2024-01-23 00:19:04 +01:00
Ethiraric
7a3e3b05b4
Fixes towards spaces before comments.
2024-01-23 00:19:04 +01:00
Ethiraric
99d82be6a3
Fix possible misindent in block scalar.
2024-01-23 00:19:04 +01:00
Ethiraric
b2aa95b4c1
Fix towards multiple documents in a single stream.
2024-01-23 00:19:04 +01:00
Ethiraric
bff3c4ccaf
Fix towards invalid trailing characters.
2024-01-23 00:19:04 +01:00
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