fix: any() in results picks the first alternative; multi-char sets stay alternations - #8
Merged
Merged
Conversation
…ay alternations
A to-position any() lists alternative spellings; the Ruby runtime
picks the first in non-iterating mode — _repl_of now resolves the
first element (nested anys and none included).
_render_item collapsed all-string sets into a single-char class
(any("helloHelloHELLO") matches every character); sets now keep the
list form unless every string is a single character.
title_case keeps its separator: the after-separator upcasing used a
consuming match, deleting every separator occurrence.
ronaldtse
force-pushed
the
feat/any-in-result
branch
from
September 29, 2026 10:27
da396c2 to
dbce552
Compare
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.
Three converter/engine correctness fixes for the Ruby-parity vocabulary:
any()= first alternative — the Ruby runtime picks the first spelling in non-iterating mode;_repl_ofnow resolves the first element (nestedanys andnoneincluded)._render_itemcollapsed all-string sets into a single-char class:any(["hello","Hello"])was matching every single character. Sets keep the list form unless every string is one character.title_casekeeps its separators — the after-separator upcasing used a consuming match, deleting every separator occurrence (Hello World→HelloWorld).Full suite 32 passed / 1 xpassed with
INTERSCRIPT_MAPS_PATH. dsl_stage Python legs: 15 → 7 remaining locally (the tail is qualified map-aliases, backreferences in patterns, and parallel-any ordering — tracked as follow-up).