(cond
;; Syllables with an independent vowel
("(RH)?Vn?(J?H[CR])?m?b?p?n?a?A?"
- < | (0 = *) | >)
+ < | = * | >)
;; KHANDA-TA combines only with reph.
("(RH)?(T)"
;; Consonant-based syllables
("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|m?([NJ]?b)?p?n?)a?A?"
- < | (0 = *) | >)
+ < | = * | >)
+
+ ;; Two-part vowel signs
+ ((0x09C7 0x09BE)
+ (cond
+ ((font-facility 0x25CC) < 0x09C7 0x25CC 0x09BE >)
+ (".+" < 0x09CB >)))
+ ((0x09C7 0x09D7)
+ (cond
+ ((font-facility 0x25CC) < 0x09C7 0x25CC 0x09D7 >)
+ (".+" < 0x09CC >)))
;; Combining marks are displayed with a DOTTED CIRCLE.
- ("n|H|b|p|a|A|JH[CR]"
- < 0x25CC (0 :otf=bng2=blwf,pstf+) >)
-
- ;; Pre-base matra
- ("(m)(p)?"
- < (1 =) 0x25CC (2 =) >)
+ ("(m)"
+ (cond
+ ((font-facility 0x25CC) < = 0x25CC >)
+ ("." [ = ])))
+ ("[nHbpaA]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC = >)
+ ("." [ = ])))
+ ("JH[CR]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC :otf=bng2=blwf,pstf+ >)
+ (".+" [ :otf=bng2=blwf,pstf+ ])))
("." =))
*))
(cond
;; Syllables with an independent vowel
("(RH)?Vn?(J?HR)?m?u?b?p?n?a?(Ss?|sS?)?A?"
- < | (0 = *) | >)
+ < | = * | >)
;; Consonant-based syllables
("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|m?u?b?p?n?)a?(Ss?|sS?)?A?"
- < | (0 = *) | >)
+ < | = * | >)
;; Combining marks are displayed with a DOTTED CIRCLE.
- ("(m)|(n|H|u|b|p|a|S|s|A|JHR)"
- < (1 =) 0x25CC (2 :otf=dev2=blwf+) >)
+ ("m"
+ (cond
+ ((font-facility 0x25CC) < = 0x25CC >)
+ ("." [ = ])))
+ ("[nHubpaSsA]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC = >)
+ ("." [ = ])))
+ ("JHR"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC :otf=dev2=blwf+ >)
+ (".+" [ :otf=dev2=blwf+ ])))
("." =))
*))
(cond
;; Syllables with an independent vowel
("(RH)?Vn?(J?HR)?m?u?b?p?n?a?A?"
- < | (0 = *) | >)
+ < | = * | >)
;; Consonant-based syllables
("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|m?u?b?p?n?)a?A?"
- < | (0 = *) | >)
+ < | = * | >)
;; Combining marks are displayed with a DOTTED CIRCLE.
- ("(m)|(n|H|u|b|p|a|A|JHR)"
- < | (1 =) 0x25CC (2 :otf=gjr2=blwf+) | >)
+ ("m"
+ (cond
+ ((font-facility 0x25CC) < = 0x25CC >)
+ ("." [ = ])))
+ ("[nHubpaA]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC = >)
+ ("." [ = ])))
+ ("JHR"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC :otf=gjr2=blwf+ >)
+ (".+" [ :otf=gjr2=blwf+ ])))
("." =))
*))
(generator
(0
(cond
+ ;; Compose a consonant and a nukta
((0x0A32 0x0A3C) 0x0A33)
((0x0A38 0x0A3C) 0x0A36)
((0x0A16 0x0A3C) 0x0A59)
(cond
;; Consonant-based syllables
("(Cn?J?HJ?)*Cn?(H[NJ]?|m?u?b?p?n?)a?A?"
- < | (0 = *) | >)
+ < | = * | >)
;; Syllables with an independent vowel
("Vn?(J?HC)?m?u?b?p?n?a?A?"
- < | (0 = *) | >)
+ < | = * | >)
;; Combining marks are displayed with a DOTTED CIRCLE.
- ("(m)|(n|H|u|b|p|a|A|JHC)"
- < (1 =) 0x25CC (2 :otf=gur2=blwf,pstf+) >)
+ ("m"
+ (cond
+ ((font-facility 0x25CC) < = 0x25CC >)
+ ("." [ = ])))
+ ("[nHubpaA]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC = >)
+ ("." [ = ])))
+ ("JHC"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC :otf=gur2=blwf,pstf+ >)
+ (".+" [ :otf=gur2=blwf,pstf+ ])))
("." =))
*))
(generator
(0
(cond
- ;; Decompose two-part and three-part vowel signs.
+ ;; Decompose multi-part vowel signs.
((0x0CC0)
0x0CBF 0x0CD5)
((0x0CC7)
(cond
;; Syllables with an independent vowel
("(RH)?Vn?(J?H[CR])?b?b?a?A?"
- < | (0 = *) | >)
+ < | = * | >)
;; Consonant-based syllables
("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|b?b?a?n?)A?"
- < | (0 = *) | >)
+ < | = * | >)
+
+ ;; Multi-part vowel signs
+ ((0x0CBF 0x0CD5)
+ (cond
+ ((font-facility 0x25CC) < 0x25CC 0x0CBF 0x0CD5 >)
+ (".+" < 0x0CC0 >)))
+ ((0x0CC6 0x0CD5)
+ (cond
+ ((font-facility 0x25CC) < 0x25CC 0x0CC6 0x0CD5 >)
+ (".+" < 0x0CC7 >)))
+ ((0x0CC6 0x0CD6)
+ (cond
+ ((font-facility 0x25CC) < 0x25CC 0x0CC6 0x0CD6 >)
+ (".+" < 0x0CC8 >)))
+ ((0x0CC6 0x0CC2 0x0CD5)
+ (cond
+ ((font-facility 0x25CC) < 0x25CC 0x0CC6 0x0CC2 0x0CD5 >)
+ (".+" < 0x0CCB >)))
+ ((0x0CC6 0x0CC2)
+ (cond
+ ((font-facility 0x25CC) < 0x25CC 0x0CC6 0x0CC2 >)
+ (".+" < 0x0CCA >)))
;; Combining marks are displayed with a DOTTED CIRCLE.
- ("n|H|bb?a?|a|A|JH[CR]"
- < 0x25CC (0 :otf=knd2=blwf+) >)
+ ("[nHbaA]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC = >)
+ ("." [ = ])))
+ ("JH[CR]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC :otf=knd2=blwf+ >)
+ (".+" [ :otf=knd2=blwf+ ])))
("." =))
*))
(cond
;; Consonant-based syllables
("(CJ?HJ?)*C(H[NJ]?|m?b?p?)A?"
- < | (0 = *) | >)
+ < | = * | >)
;; Syllables with an independent vowel
("V(J?HC)?m?b?p?A?"
- < | (0 = *) | >)
+ < | = * | >)
+
+ ;; Two-part vowel signs
+ ((0x0D46 0x0D3E)
+ (cond
+ ((font-facility 0x25CC) < 0x0D46 0x25CC 0x0D3E >)
+ (".+" < 0x0D4A >)))
+ ((0x0D47 0x0D3E)
+ (cond
+ ((font-facility 0x25CC) < 0x0D47 0x25CC 0x0D3E >)
+ (".+" < 0x0D4B >)))
+ ((0x0D46 0x0D57)
+ (cond
+ ((font-facility 0x25CC) < 0x0D46 0x25CC 0x0D57 >)
+ (".+" < 0x0D4C >)))
;; Combining marks are displayed with a DOTTED CIRCLE.
- ("H|b|p|A|JHC"
- < 0x25CC (0 :otf=mlm2=pref,blwf,pstf+) >)
-
- ;; Pre-base matra
- ("(m)(p)?"
- < (1 =) 0x25CC (2 =) >)
+ ("(m)"
+ (cond
+ ((font-facility 0x25CC) < = 0x25CC >)
+ ("." [ = ])))
+ ("[HbpA]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC = >)
+ ("." [ = ])))
+ ((0x200D 0x0D4D 0x0D30)
+ (cond
+ ((font-facility 0x25CC) < :otf=mlm2=pref+ 0x25CC >)
+ (".+" [ :otf=mlm2=pref+ ])))
+ ("JHC"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC :otf=mlm2=blwf,pstf+ >)
+ (".+" [ :otf=mlm2=blwf,pstf+ ])))
("." =))
*))
(cond
;; Syllables with an independent vowel
("(RH)?Vn?(J?H[CR])?m?u?b?p?n?a?A?"
- < | (0 = *) | >)
+ < | = * | >)
;; Consonant-based syllables
("([CR]n?J?HJ?)*[CR]n?(H[NJ]?|m?u?b?p?n?)a?A?"
- < | (0 = *) | >)
+ < | = * | >)
+
+ ;; Two-part vowel signs
+ ((0x0B47 0x0B56)
+ (cond
+ ((font-facility 0x25CC) < 0x0B47 0x25CC 0x0B56 >)
+ (".+" < 0x0B48 >)))
+ ((0x0B47 0x0B3E)
+ (cond
+ ((font-facility 0x25CC) < 0x0B47 0x25CC 0x0B3E >)
+ (".+" < 0x0B4B >)))
+ ((0x0B47 0x0B57)
+ (cond
+ ((font-facility 0x25CC) < 0x0B47 0x25CC 0x0B57 >)
+ (".+" < 0x0B4C >)))
;; Combining marks are displayed with a DOTTED CIRCLE.
- ("n|H|u|b|p|a|A|JH[CR]"
- < 0x25CC (0 :otf=bng2=blwf,pstf+) >)
-
- ;; Pre-base matra
- ("(m)([up])?"
- < (1 =) 0x25CC (2 =) >)
+ ("m"
+ (cond
+ ((font-facility 0x25CC) < = 0x25CC >)
+ ("." [ = ])))
+ ("[nHubpaA]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC = >)
+ ("." [ = ])))
+ ("JH[CR]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC :otf=ory2=blwf,pstf+ >)
+ (".+" [ :otf=ory2=blwf,pstf+ ])))
("." =))
*))
(generator
(0
(cond
- ;; Decompose two-part vowels.
+ ;; Decompose two-part vowel signs.
((0x0C48)
0x0C46 0x0C56)
("(V)(J?HC)?(u?b?p?A?)"
< | (1 =) (2 :otf=tel2=locl,blwf+) (3 = *) | >)
+ ;; Two-part vowel signs
+ ((0x0C46 0x0C56)
+ (cond
+ ((font-facility 0x25CC) < 0x25CC 0x0C46 0x0C56 >)
+ (".+" < 0x0C48 >)))
+
;; Combining marks are displayed with a DOTTED CIRCLE.
- ("H|ub?|b|p|A|JHC"
- < 0x25CC (0 :otf=tel2=blwf+) >)
+ ("[HubpA]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC = >)
+ ("." [ = ])))
+ ("JHC"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC :otf=tel2=blwf+ >)
+ (".+" [ :otf=tel2=blwf+ ])))
("." =))
*))
(cond
;; Consonant-based syllables
("(CJ?HJ?)*C(H[NJ]?|m?p?)a?"
- < | (0 :otf=tml2=locl,akhn,half,cjct+) | >)
+ < | :otf=tml2=locl,akhn,half,cjct+ | >)
;; Syllables with an independent vowel
("Vm?p?a?"
- < | (0 = *) | >)
+ < | = * | >)
+
+ ;; Two-part vowel signs
+ ((0x0BC6 0x0BBE)
+ (cond
+ ((font-facility 0x25CC) < 0x0BC6 0x25CC 0x0BBE >)
+ (".+" < 0x0BCA >)))
+ ((0x0BC7 0x0BBE)
+ (cond
+ ((font-facility 0x25CC) < 0x0BC7 0x25CC 0x0BBE >)
+ (".+" < 0x0BCB >)))
+ ((0x0BC6 0x0BD7)
+ (cond
+ ((font-facility 0x25CC) < 0x0BC6 0x25CC 0x0BD7 >)
+ (".+" < 0x0BCC >)))
;; Combining marks are displayed with a DOTTED CIRCLE.
- ("H|p|a"
- < 0x25CC (0 =) >)
-
- ;; Pre-base matra
- ("(m)(p)?"
- < (1 =) 0x25CC (2 =) >)
+ ("m"
+ (cond
+ ((font-facility 0x25CC) < = 0x25CC >)
+ ("." [ = ])))
+ ("[Hpa]"
+ (cond
+ ((font-facility 0x25CC) < 0x25CC = >)
+ ("." [ = ])))
("." =))
*))