mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-11-14 14:52:22 +00:00
- `Scanner::parse_object_or_skip` skips whitespace and comments before taking its start offset, so a token after a space fails once, not twice, whoever calls it. (The CMap scan already skipped whitespace in `at_end`, so CMap results do not change.) - Unit tests in hayro-postscript (stepping over a token, a failed read not read again, never past the end of the data) and in hayro-cmap (bfchar and bfrange after a stray `>` or a spaced name, the 1,024-token limit at its boundary, a CMap of unreadable tokens only failing). - The render test checks a bfrange entry after the bad token, a run past the limit before the mappings, and a CMap of unreadable tokens only; its wall-clock assertion is gone, the no-re-read property is the deterministic hayro-postscript test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
hayro-postscript
A lightweight PostScript scanner.
This crate provides a scanner for tokenizing PostScript programs into typed objects. It currently only implements a very small subset of the PostScript language, with the main goal of being enough to parse CMAP files, but the scope might be expanded upon in the future.
The supported types include integers and real numbers, name objects, strings and arrays. Unsupported is anything else, including dictionaries, procedures, etc. An error will be returned in case any of these is encountered.
Safety
This crate forbids unsafe code via a crate-level attribute.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.