Add syllable segmentation.
(category
;; C: CONSONANT
- ;; s: LAO SEMIVOWEL SIGN LO
+ ;; S: LAO SEMIVOWEL SIGN LO
;; A: VOWEL AM
- ;; V: VOWEL UPPER
- ;; v: VOWEL LOWER
+ ;; V: DEPENDENT VOWEL
;; T: TONE
- ;; I: INDEPENDENT VOWEL (except A)
- ;; S: SIGN
- (0x0E81 0x0E82 ?C)
- (0x0E84 ?C)
- (0x0E87 0x0E88 ?C)
- (0x0E8A ?C)
- (0x0E8D ?C)
- (0x0E94 0x0E97 ?C)
- (0x0E99 0x0E9F ?C)
- (0x0EA1 0x0EA3 ?C)
- (0x0EA5 ?C)
- (0x0EA7 ?C)
- (0x0EAA 0x0EAB ?C)
- (0x0EAD 0x0EAE ?C)
- (0x0EAF ?S)
- (0x0EB0 ?I)
+ ;; I: OTHER INDEPENDENT
+ (0x0E81 0x0EAE ?C)
+ (0x0EAF 0x0EB0 ?I)
(0x0EB1 ?V)
(0x0EB2 ?I)
(0x0EB3 ?A)
- (0x0EB4 0x0EB7 ?V)
- (0x0EB8 0x0EB9 ?v)
- (0x0EBB ?V)
- (0x0EBC ?s)
- (0x0EBD ?I)
- (0x0EC0 0x0EC4 ?I)
- (0x0EC6 ?S)
+ (0x0EB4 0x0EBB ?V)
+ (0x0EBC ?S)
+ (0x0EBD 0x0EC6 ?I)
(0x0EC8 0x0ECC ?T)
(0x0ECD ?V)
- (0x0ED0 0x0ED9 ?S)
- (0x0EDC 0x0EDD ?C))
+ (0x0ED0 0x0ED9 ?I)
+ (0x0EDC 0x0EDD ?C)
+
+ (0x25CC ?I))
;; The only GSUB is the decomposition of AM. We do it by hand because
;; it requires reordering in addition to decomposition.
(generator
(0
(cond
- ("(Cs?)(T)?A"
- < (1 = *) 0x0ECD (2 =) 0x0EB2 > )
- ("Cs?[vV]?T?"
- < = * > )
- ("[sVvT]"
- < 0x25CC = > )
+ ("(CS?)(T)?A"
+ < | (1 = *) 0x0ECD (2 =) 0x0EB2 | > )
+ ("CS?V?T?"
+ < | = * | > )
+ ("[SVT]"
+ < | 0x25CC = | > )
("."
=))
*))
(generator
(0
- otf:lao\ =))
+ (cond
+ (" ([^ ]*) "
+ (1 otf:lao\ =))
+ ("."
+ [ otf:lao\ =+ ]))
+ *))
;; Local Variables:
;; mode: emacs-lisp