You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: compile not_before/not_after as guards; full expressions in any lists
Ruby's interpreter compiles not_before to a negative lookbehind and
not_after to a negative lookahead (build_regexp). The Python engine
counted them in the selection key but never matched against them, so
rules like alalc-ara's hamza+fatḥa -> 'a' fired where Ruby declines
them: mas'alah came out masalah, ta'ālīf came out tālīf.
Three coupled fixes:
- isc.py renders not_before/not_after constraints into parallel subs
(they were dropped at rendering) and engine.py compiles them; the
negative lookbehind distributes over top-level alternatives because
Python re requires fixed-width lookbehinds where Onigmo does not.
- any([...]) alternatives are full expressions, not quoted strings
only. The list tokenizer kept just the quoted strings, silently
dropping bare atoms (boundary) and alias references; alternatives
now tokenize recursively (regex, literal, max_length).
- _library_aliases substitutes alias references defined earlier in
the same .iml file (var-kor: jamo = any([jamo_leading_cons, ...])),
which the dropped-alternatives path used to hide.
alalc-ara: 94/94. un-bul (imports var-kor) and bgnpcgn-deu load and
pass again with the previously-dropped alternatives now resolved.
0 commit comments