((0x0D4B) 0x0D47 0x0D3E)
((0x0D4C) 0x0D46 0x0D57)
- ;; Chillu letters
- ((0x0D23 0x0D4D 0x200D) :otf=mlym=akhn,half,haln+)
- ((0x0D28 0x0D4D 0x200D) :otf=mlym=akhn,half,haln+)
- ((0x0D30 0x0D4D 0x200D) :otf=mlym=akhn,half,haln+)
- ((0x0D32 0x0D4D 0x200D) :otf=mlym=akhn,half,haln+)
- ((0x0D33 0x0D4D 0x200D) :otf=mlym=akhn,half,haln+)
- ((0x0D15 0x0D4D 0x200D) :otf=mlym=akhn,half,haln+)
-
("." =))
*))
;; Consonant-based syllables
;;1 23 4
("([CBPR]((J?H|HJ?)[CBPR])*)(H[NJ]?|m?p?A?)"
- < | (1 :otf=mlym=akhn+)
- (4 (cond ("HJ" = =)
- ("(H)N?" (1 =) 0x200C)
- (".+" = *))) | >)
+ < |
+ (cond
+ (".+HJ$" :otf=mlym=nukt,akhn+)
+ ("(.+)(H)N?$" (1 :otf=mlym=nukt,akhn+) (2 =) 0x200C)
+ (".+" :otf=mlym=nukt,akhn+))
+ | >)
;; Syllables with an independent vowel
("V(J?H[BPR])?m?p?A?"
;; Two-part vowel signs
((0x0D46 0x0D3E)
(cond
- ((font-facility 0x25CC) < 0x0D46 0x25CC 0x0D3E >)
- (".+" < 0x0D4A >)))
+ ((font-facility 0x25CC) < = 0x25CC = >)
+ (".+" [ 0x0D4A ])))
((0x0D47 0x0D3E)
(cond
- ((font-facility 0x25CC) < 0x0D47 0x25CC 0x0D3E >)
- (".+" < 0x0D4B >)))
+ ((font-facility 0x25CC) < = 0x25CC = >)
+ (".+" [ 0x0D4B ])))
((0x0D46 0x0D57)
(cond
- ((font-facility 0x25CC) < 0x0D46 0x25CC 0x0D57 >)
- (".+" < 0x0D4C >)))
+ ((font-facility 0x25CC) < = 0x25CC = >)
+ (".+" [ 0x0D4C ])))
;; Combining marks are displayed with a DOTTED CIRCLE.
("m"
(reorder
(cond
;; pref after pstf
- ("(.|.+[^PJ])((J?HP)*J?HR)$"
- (1 reorder-B) (2 reorder-any))
+ ("(.|.+([^PJ]|JP))((J?HP)*J?HR)$"
+ (1 reorder-B *) (3 reorder-any *))
;; pref between blwf and pstf
("(.*[^J])(J?HR(J?HP)+)$"
- (1 reorder-B) (2 reorder-any))
+ (1 reorder-B *) (2 reorder-any *))
;; pref before blwf
("(.*[^J])(J?HR(J?HB)+(J?HP)*)$"
- (1 reorder-B) (2 reorder-any))
+ (1 reorder-B *) (2 reorder-any *))
;; no pref
- ("(.|.+[^PJ])((J?HP)*)$"
- (1 reorder-B) (2 reorder-any))
- (".+" = *)))
+ ("(.|.+([^PJ]|JP|HJ))((J?HP)*)$"
+ (1 reorder-B *) (3 reorder-any *))))
(reorder-B
(cond
- ("J?(H)(B)(.*)"
- (2 =) (1 =) (3 reorder-B))
- ("(.)(.*)"
- (1 =) (2 reorder-B))))
+ ("J?(H)(B)"
+ (2 =) (1 =))
+ ("." =)))
(reorder-any
- ("J?(H)(.)(.*)"
- (2 =) (1 =) (3 reorder-any)))
+ ("J?(H)(.)"
+ (2 =) (1 =)))
)
;; Stage 3