Add Delete handling.
[m17n/m17n-db.git] / THAI-GENERIC.flt
index 736b134..5d76feb 100644 (file)
 ;;;
 ;;; For the Thai proportional fonts to draw Thai script.
 
-;; 1st stage: basic composition of CVT
 (category
- ;; C: CONSONANT
- ;; V: VOWEL upper and lower
- ;; A: SARA-AM
- ;; T: TONE
- ;; E: else
- (0x0E00 0x0E5F ?E)
- (0x0E01 0x0E2E        ?C)
- (0x0E31       ?V)
- (0x0E33       ?A)
- (0x0E34 0x0E3A        ?V)
- (0x0E47       ?V)
- (0x0E48 0x0E4E        ?T)
- )
-
-(generator
- (0
-  (cond
-   ("(C)(T)?(A)"                       ; SARA-AM -> NIKHAHIT+SARA-AA
-    (1 = 0x0E4D) (2 =) (3 0x0E32))
-   ("(C)(T)(V)?"                       ; CTV -> CVT
-    (1 =) (3 =) (2 =))
-   ("(C)(V)?(T)?"
-    (1 =) (2 =) (3 =))
-   ("[^C]"
-    [ = ]))
-  *))
-
-(category
- ;; C: CONSONANT tall
- ;; c: CONSONANT normal
+ ;; C: CONSONANT normal
+ ;; c: CONSONANT tall
  ;; d: CONSONANT deep
+ ;; A: SARA-AM
  ;; V: VOWEL upper, NIKHAHIT, and YAMAKKAN
  ;; v: VOWEL lower
  ;; T: TONE
- ;; E: ELSE
- (0x0E00 0x0E5F        ?E)
- (0x0E01 0x0E2E        ?c)
+ ;; I: OTHER INDEPENDENT
+ (0x0E01 0x0E2E        ?C)
  (0x0E0D 0x0E10        ?d)
- (0x0E1B       ?C)
- (0x0E1D       ?C)
- (0x0E1F       ?C)
- (0x0E2C       ?C)
+ (0x0E1B       ?c)
+ (0x0E1D       ?c)
+ (0x0E1F       ?c)
+ (0x0E2C       ?c)
+ (0x0E2F 0x0E32        ?I)
  (0x0E31       ?V)
+ (0x0E33       ?A)
  (0x0E34 0x0E37        ?V)
  (0x0E38 0x0E3A        ?v)
+ (0x0E3F 0x0E46 ?I)
  (0x0E47       ?V)
  (0x0E48 0x0E4C        ?T)
- (0x0E4D 0x0E4E        ?V))
+ (0x0E4D 0x0E4E        ?V)
+ (0x0E4F 0x0E5B ?I))
 
 (generator
  (0
-  (cond 
-   ("(C)(V)(T)?"
-    < (1 =) (2 =) (3 =) >)
-   ("(C)(v)?(T)?"
-    < (1 =) (2 =) (3 =) >)
-   ("([cd])(V)(T)?"
-    < (1 =) (2 =) (3 =) >)
-   ("(c)(v)?(T)?"
-    < (1 =) (2 =) (3 =) >)
-   ("(d)(v)?(T)?"
-    < (1 =) (2 =) (3 =) >)
-   ("[VvT]"
+  (cond
+   ("([Cd])(T)?(A)"
+    < (1 = 0x0E4D) (2 tr+bl =) (3 0x0E32) > )
+   ("(c)(T)?(A)"
+    < (1 = Br<13Bl 0x0E4D) (2 tr+<13bl =) (3 0x0E32) > )
+   ("(C[vV]?)(T)?"
+    < (1 = =) (2 tr+bl =) > )
+   ("(c)([vV])?(T)?"
+    < (1 = *) (2 (cond ("v" =) ("." Br<8Bl =))) (3 tr+<8bl =) > )
+   ("(d)([vV])?(T)?"
+    < (1 = *) (2 (cond ("v" br-tl =) ("." =))) (3 tr+bl =) > )
+   ("[VvTA]"
     [ = ])
    ("."
     =))