Zero-width subrows match empty; accept {0}/{1} quantifiers - #5
Merged
Conversation
A subrow (or subtable) whose children all matched zero elements used to
throw "colEnd must be >= colStart" mid-row and silently fail at the end
of a row. It now matches the empty sequence like `*` in regex: tried at
the end of the sequence too, never repeated by +/*/{n}, and not
materialized in the ITM. Quantifier.exactly(n) accepts n >= 0; an
invalid {n} in RTL is an RtlCompileException with position.
Conformance: semantic subrow_zero_width_{mid,tail,repeated,repeated_star},
quantifier_exactly_{one,zero}; negative quantifier_exactly_negative;
positive quantifier_small_n.
Found in regtab-eval-on-atbench (reports/full-run.md §5).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
{…}(or subtable) whose children all matched zero elements used to throwcolEnd must be >= colStartmid-row and silently fail at the end of a row. It now matches the empty sequence like*in regex: tried at the end of the sequence too, never repeated by+/*/{n}, not materialized in the ITM.Quantifier.exactly(n)acceptsn >= 0({1}≡ no quantifier,{0}≡ empty match); an invalid{n}in RTL is anRtlCompileExceptionwith position instead of a rawIllegalArgumentException.subrow_zero_width_{mid,tail,repeated,repeated_star},quantifier_exactly_{one,zero}; negativequantifier_exactly_negative; positivequantifier_small_n. Docs + CHANGELOG[Unreleased].Found in regtab-eval-on-atbench (
reports/full-run.md§5).Test plan
mvn test— 2191 tests, 0 failures (task corpus, conformance, unit)conformance/positive/pairs unchanged → 12 CONCAT tasks byte-identical🤖 Generated with Claude Code