fix: quote escapes, named dependency stages, not_word, library string classes - #19
Merged
Merged
Conversation
… classes Four conformance gaps, each measured against Ruby: - The expression unescaper decoded only \uXXXX, so a result round- tripping through expression source kept \" as a backslash-quote: gost-rus maps the hard sign to a double quote and съезд came out s\"ezd. Standard escapes now decode. - run map.<alias>.stage.<name> executed the dependency's main stage, ignoring the named one. mvd-rus-2010 runs the 2008 dependency's translit stage precisely to skip its trailing compose, which would precompose l+U+0301 into ĺ before the postrule strips the acute. - not_word joins the stdlib aliases (odni-che guards the digit 1 with it); it is Onigmo's ASCII \W, [^a-zA-Z0-9_]. - A library alias holding a bare string acts as a character class inside any() — the unicode library's greek — while an in-map string alias is a literal sequence (both measured with synthetic maps). alalc-ell's gamma nasalization rules guard on any(greek); the look- behind had compiled to the literal 300-character alphabet. Direct corpus sweep: 16 failures / 10 maps -> 4 / 3 — alalc-ell-2010, bas-rus, bgnpcgn-rus-1947, both gost-rus, mvd-rus-2010 and odni-che fully healed. Only odni-ara 2004/2015 (4 examples) and the rababa map (needs the ML model; excluded by design) remain.
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.
Four conformance gaps, each measured against the Ruby interpreter:
Quote escapes. The expression unescaper decoded only
\uXXXX, so a result round-tripping through expression source kept\"as a backslash-quote — gost-rus maps the hard sign to"and съезд came outs\"ezd. Standard escapes now decode.Named dependency stages.
run map.<alias>.stage.<name>executed the dependency's main stage, ignoring the named one. mvd-rus-2010 runs the 2008 dependency'stranslitstage precisely to skip its trailingcompose, which would precompose l+U+0301 into ĺ before the postrule can strip the acute.not_wordjoins the stdlib aliases (odni-che guards the digit 1 with it) — Onigmo's ASCII\W=[^a-zA-Z0-9_].Library string classes. A library alias holding a bare string acts as a character class inside
any()(the unicode library'sgreek), while an in-map string alias is a literal sequence — both measured with synthetic maps on Ruby. alalc-ell's γ-nasalization rules guard onany(greek); the lookbehind had compiled to the literal 300-character Greek alphabet.Direct corpus sweep: 16 failures / 10 maps → 4 / 3 — alalc-ell-2010, bas-rus, bgnpcgn-rus-1947, both gost-rus, mvd-rus-2010 and odni-che fully healed. Only odni-ara 2004/2015 (4 examples) and the rababa map (needs the ML model; excluded by design) remain.