diff options
author | Rasmus Andersson <rasmus@notion.se> | 2018-08-29 17:52:47 +0300 |
---|---|---|
committer | Rasmus Andersson <rasmus@notion.se> | 2018-08-29 17:52:47 +0300 |
commit | 4736bcc4f112602b047c3c7ae962203db89494a1 (patch) | |
tree | 815f2e8ce90aef6ce46440a3685886aa25aba39b | |
parent | 387915558e27373db24fdce29ef79ab393a31260 (diff) | |
download | inter-4736bcc4f112602b047c3c7ae962203db89494a1.tar.xz |
calt: extends .case substitution on the left side up to five glyphs. Closes #57
-rw-r--r-- | docs/lab/index.html | 15 | ||||
-rw-r--r-- | src/features.fea | 11 |
2 files changed, 20 insertions, 6 deletions
diff --git a/docs/lab/index.html b/docs/lab/index.html index c32742bd2..3ced1f065 100644 --- a/docs/lab/index.html +++ b/docs/lab/index.html @@ -153,11 +153,16 @@ A*Y V*V W*W N*N X*X Λ*Λ Σ*Σ Δ*Δ Y*Y &* calt case should cascade: -U() U[] U{} — rightx should be rightx.case -()U []U {}U — special-cased as "delim' delim -> delim.case" -U--- — all hyphens should be hyphen.case ----U — only the hyphen next to U should be hyphen.case -U-→(){}[]* +U() U[] U{} rightx should be rightx.case +()U []U {}U special-cased as "delim' delim -> delim.case" +---U--- all hyphens should be hyphen.case +U-→(){}[]* all should be .case + +left side cascades up to 5 characters: +******ABBA****** +------M------ +@@@@@@M@@@@@@ +++++++M++++++ `) // From http://justanotherfoundry.com/generator diff --git a/src/features.fea b/src/features.fea index 17fda3d22..4a0db3bdf 100644 --- a/src/features.fea +++ b/src/features.fea @@ -715,9 +715,18 @@ feature calt { @UC = [ @UC_ROMAN @UC_SET1 exclam question ]; @LC = [ @LC_ROMAN @LC_SET1 ]; + # rules to support left-hand repetition of CASE{L}->{R} [issue #57] + # y' y y y Z -> x y y y Z + sub @CASE_L' @CASE_L @CASE_L @CASE_L @CASE_L @UC by @CASE_R; + # y' y y y Z -> x y y y Z + sub @CASE_L' @CASE_L @CASE_L @CASE_L @UC by @CASE_R; + # y' y y Z -> x y y Z + sub @CASE_L' @CASE_L @CASE_L @UC by @CASE_R; + # y' y Z -> x y Z + sub @CASE_L' @CASE_L @UC by @CASE_R; + sub [ @UC @CASE_R ] @CASE_L' by @CASE_R; ignore sub @LC @CASE_NONDELIM_L' @UC; - sub @CASE_L' [ @CASE_R @UC ] by @CASE_R; sub @CASE_DELIM_L' @CASE_DELIM_L [ @CASE_R @UC ] by @CASE_DELIM_R; |