aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/installed_repository_interface.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-07-19 16:40:58 +0900
committernsfisis <nsfisis@gmail.com>2026-07-19 17:53:42 +0900
commit76e8500cecd7a715b3effc984ae051cdbff2d3d3 (patch)
tree644255bf4d40efb45e880952db1cef55a00d59e2 /crates/shirabe/src/repository/installed_repository_interface.rs
parent82cd8e8051ef791b9224916a5e2060ad38c1f82b (diff)
downloadphp-shirabe-76e8500cecd7a715b3effc984ae051cdbff2d3d3.tar.gz
php-shirabe-76e8500cecd7a715b3effc984ae051cdbff2d3d3.tar.zst
php-shirabe-76e8500cecd7a715b3effc984ae051cdbff2d3d3.zip
feat(spdx-licenses): implement is_valid_license_string SPDX expression parser
PHP matches the SPDX license-expression grammar with a single recursive PCRE pattern ((?(DEFINE) subpatterns plus (?&name) recursion), which the regex crate cannot express, so port it as a hand-written recursive-descent parser instead. licenseid/licenseexceptionid dictionary lookups use longest-match-first, guarded against accepting a short entry that is only a coincidental prefix of a longer identifier run (e.g. "DOC" prefixing "DocumentRef-..."), which a length-sorted greedy match alone would misparse. Un-ignores the two validating_array_loader tests that were blocked on this todo!().
Diffstat (limited to 'crates/shirabe/src/repository/installed_repository_interface.rs')
0 files changed, 0 insertions, 0 deletions