improvements to calt, primarily reducing substitutions

closes #193
This commit is contained in:
Rasmus Andersson 2019-09-07 12:54:46 -07:00
parent 8215408fe0
commit d8d4e0c26a
2 changed files with 54 additions and 23 deletions

View file

@ -144,7 +144,7 @@ Dedicated "onefraction" with denominators:
\u215F\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089
Arbitrary fractions with frac feature:
1/2 1/4 3/4 5/6 7/8 1/8 5/8 3/8
1/2 1/4 3/4 5/6 7/8 1/8 5/8 3/8 18/29 16/5
0/0 451/980 000/000 0000000000/0000000000
Arbitrary fractions of "onefraction" with frac feature:
@ -231,8 +231,8 @@ Note on combining-marks compatibility:
samples.set('Feature: calt', `
(m) (M) (6) [m] [M] [6] {m} {M} {6}
m@n M@N
(m). (M). (6). [m]. [M]. [6]. {m}. {M}. {6}.
m@n. M@N
3×5 3 × 5 ×9 8×
35 3 5 5 8 3+5 +5 3+
3÷5 3 ÷ 5 ÷5 8÷ 3±5 ±5 8±
@ -283,7 +283,7 @@ left side cascades up to 5 characters:
@@@@@@M@@@@@@
++++++M++++++
x[x] [X] x lc x lc followed by .case C .case
x[x]. [X] x lc x lc followed by .case C .case
(Xx) lc uc uc lc
[Zzz] lc uc lc lc lc
(XX)
@ -294,6 +294,20 @@ x[x] [X] x lc x lc followed by .case C .case
()M
X(_) .case around underscore next to uc
(_) lc otherwise
Foo::Bar() foo::bar() Foo
foo::bar( ) Foo
foo::bar()Foo
foo::bar( )Foo
FOO::bar This is (a)Thing
:: dog :: Kitten
:: dog ::: Kitten
::Kitten
::8::
:8
X() X()
x- X
x -- X
`)

View file

@ -158,32 +158,50 @@ sub [colon colon.case] @DASH parenright' by parenright.case;
# ignore subs adjacent to lower case
#
# x[]X
ignore sub @LC @CASE_DELIM_L @CASE_DELIM_L @UC;
ignore sub @LC @CASE_DELIM_L @UC;
ignore sub @LC @CASE_DELIM_L @Whitespace @UC;
ignore sub @LC @CASE_DELIM_L @Whitespace @Whitespace @UC;
ignore sub @LC @CASE_DELIM_L @CASE_DELIM_L @UC; # x[]X
ignore sub @LC @CASE_DELIM_L @UC; # x[X
ignore sub @LC @CASE_DELIM_L @Whitespace @UC; # x[ X
ignore sub @LC @CASE_DELIM_L @Whitespace @Whitespace @UC; # x[ X
ignore sub @LC @CASE_DELIM_L @CASE_DELIM_L @Whitespace @UC; # x[] X
ignore sub @LC @CASE_DELIM_L @CASE_DELIM_L @Whitespace @Whitespace @UC; # x[] X
#
# short runs of uc-lc, e.g "(Xx)", "[Zzz]"
ignore sub @CASE_DELIM_L @UC @LC @CASE_DELIM_L;
ignore sub @CASE_DELIM_L @UC @All @LC @CASE_DELIM_L;
ignore sub @CASE_DELIM_L @LC @UC @CASE_DELIM_L;
ignore sub @CASE_DELIM_L @LC @All @UC @CASE_DELIM_L;
# short runs of uc-lc, e.g "(Xx)", "[xxX]"
ignore sub @CASE_DELIM_L @UC @LC @CASE_DELIM_L; # (Xx)
ignore sub @CASE_DELIM_L @UC @All @LC @CASE_DELIM_L; # (X.x)
ignore sub @CASE_DELIM_L @LC @UC @CASE_DELIM_L; # (xX)
ignore sub @CASE_DELIM_L @LC @All @UC @CASE_DELIM_L; # (x.X)
#
# e.g. "x-"
# TODO: figure out how to ignore "x--A"
ignore sub @LC @CASE_L;
ignore sub @LC @CASE_L'; # x-
ignore sub @LC [@CASE_L @Whitespace] @CASE_L'; # x--, x -
ignore sub @LC [@CASE_L @Whitespace] [@CASE_L @Whitespace] @CASE_L'; # x---, x --, x -, x- -
ignore sub @LC
[@CASE_L @Whitespace]
[@CASE_L @Whitespace]
[@CASE_L @Whitespace]
@CASE_L'; # x----, x ---, x --, x -, x- --, x- -, x-- -
ignore sub @LC
[@CASE_L @Whitespace]
[@CASE_L @Whitespace]
[@CASE_L @Whitespace]
[@CASE_L @Whitespace]
@CASE_L'; # x----- ...
#
# e.g. "-x", "--x", "---x", "----x", "-----x"
ignore sub @CASE_L @LC;
ignore sub @CASE_L @CASE_L @LC;
ignore sub @CASE_L @CASE_L @CASE_L @LC;
ignore sub @CASE_L @CASE_L @CASE_L @CASE_L @LC;
ignore sub @CASE_L @CASE_L @CASE_L @CASE_L @CASE_L @LC;
# e.g. "x- "
ignore sub @LC @CASE_L' @Whitespace; # "x- "
ignore sub @LC @CASE_L' @Whitespace @Whitespace; # "x- "
#
# e.g. "-x"
ignore sub @CASE_L @LC; # -x
ignore sub @CASE_L @CASE_L @LC; # --x
ignore sub @CASE_L @CASE_L @CASE_L @LC; # ---x
ignore sub @CASE_L @CASE_L @CASE_L @CASE_L @LC; # ----x
ignore sub @CASE_L @CASE_L @CASE_L @CASE_L @CASE_L @LC; # -----x
#
# pairs with space, e.g. "( ) M" since we don't support subbing
# all on the left side.
ignore sub @CASE_DELIM_L @Whitespace @CASE_DELIM_L @Whitespace [ @UC @CASE_R ];
ignore sub @CASE_DELIM_L @CASE_DELIM_L @Whitespace [ @UC @CASE_R ];
#
# e.g. "A-", "A -", "A -"
sub [ @UC @CASE_R ] @CASE_L' by @CASE_R;
@ -218,7 +236,6 @@ sub @CASE_L' @CASE_L @Whitespace @Whitespace [ @CASE_R @UC ] by @CASE_R;
sub @CASE_L' @CASE_L @CASE_L @Whitespace @Whitespace [ @CASE_R @UC ] by @CASE_R;
sub @CASE_L' @CASE_L @CASE_L @CASE_L @Whitespace @Whitespace [ @CASE_R @UC ] by @CASE_R;
sub @CASE_L' @CASE_L @CASE_L @CASE_L @CASE_L @Whitespace @Whitespace [ @CASE_R @UC ] by @CASE_R;
sub @CASE_L' @Whitespace @Whitespace @Whitespace [ @UC @CASE_R ] by @CASE_R; # e.g. "- A"
# X(_)
@Punctuation = [