;; 1. matra (pre, below, above, post)
;; 2. one of candrabindu (0901), anusvara (0902), grave (0953), acute (0954)
;; 3. udatta (0951) and/or anudatta (0952)
+;; 4. visarga (0903)
;; For rendering, on the other hand, the combination of Uniscribe and
;; mangal.ttf (dev2) requires the following orders.
(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+ ])))
("." =))
*))
;; 1 2 3
(" (RHJ[CRnHJ]*)(mn?)?(u?b?p?n?a?(Ss?|sS?)?A?) "
;; |
- ;; This is an asterisk. If it were a plus sign, a standalone RHJ
+ ;; This is an asterisk. If it were a plus sign, an isolated RHJ
;; would match with the next pattern, not with this one.
| (2 = *) (1 :otf=dev2=locl,nukt,akhn,rkrf,blwf,half,vatu,cjct+)
(3 = *) |)
(generator
(0
(cond
- ;; 1 2 3
- (" (mn?)([^ ]+HJ?)([^H ]+) "
+ ;; 1 2 3
+ (" (mn?)([^ ]+H[JS]?)([^H ]+) "
| (2 = *) (1 = *) (3 = *) |)
("." =))