Include syllable final HJ to otf part.
authorntakahas <ntakahas>
Fri, 26 Mar 2010 06:46:48 +0000 (06:46 +0000)
committerntakahas <ntakahas>
Fri, 26 Mar 2010 06:46:48 +0000 (06:46 +0000)
FLT/DEVA-OTF.flt
FLT/GUJR-OTF.flt

index 5328c9b..b474191 100644 (file)
    ("(RH)?(Vn?)((J?HR)?m?u?b?p?n?a?[sS]?t?A?)"
     < | (1 = =) (2 :otf=deva=nukt+) (3 = *) | >)
 
-   ;; Consonant-based syllables
+   ;; Ordinary syllables
    ;;1      23                 4
    ("([CR]n?((J?H|HJ?)[CR]n?)*)(H[NJ]?|m?u?b?p?n?a?[sS]?t?A?)"
-    < | (1 :otf=deva=nukt,akhn+)
-    (4 (cond ("HJ" = =)
-            ("(H)N?" (1 =) 0x200C)
-            (".+" = *))) | >)
+    < |
+    (cond
+     (".+HJ$" :otf=deva=nukt,akhn+)
+     ("(.+)(H)N?$" (1 :otf=deva=nukt,akhn+) (2 =) 0x200C)
+     (".+" :otf=deva=nukt,akhn+))
+    | >)
 
    ;; Combining marks are displayed with a DOTTED CIRCLE.
    ("m"
 
    ;; Syllables with an overt halant
    (" (RHJ?)?([^ ]+)(HN) "
-    | (1 = *) (2 reorder *) (3 = =) |)
+    | (1 = *) (2 reorder) (3 = =) |)
 
    ;; Ordinary syllables
    (" (RHJ?)?([^mubpasStA ]+)(m?u?b?p?n?a?[sS]?t?A?) "
-    | (1 = *) (2 reorder *) (3 = *) |)
+    | (1 = *) (2 reorder) (3 = *) |)
 
    ("." =))
   *)
  ;; reordering and interpreting it as C + (RH)blwf + H + C.
  (reorder
   (cond
-   ("J?(H)(R)$" (2 =) (1 =))
-   ("J?(HR)" (1 = =))
-   ("." =)))
+   ("(.+)(H)(R)$" (1 = *) (3 =) (2 =))
+   (".+" = *)))
  )
 
 ;; Stage 3
     | (3 = *)
     (1 (cond ("RHJ" :otf=deva=half+)
             ("RH" :otf=deva=rphf+)))
-    (2 (cond ("(.H)(.+)" (1 :otf=deva=half+) (2 :otf=deva=blwf,half+))
-            (".+" :otf=deva=blwf,half+)))
+    (2 (cond ("(.H)J?(.*)" (1 :otf=deva=half+) (2 lang-forms *))
+            (".+" lang-forms *)))
     (5 = *) (7 =) (4 = *) (6 = *) (8 = *) |)
 
    ("." =))
-  *))
+  *)
+
+ (lang-forms
+  (cond
+   ("(.H)J" (1 :otf=deva=half+))
+   (".H" :otf=deva=blwf,half+)
+   ("." =)))
+ )
 
 ;; Stage 4
 ;; Final reordering #1 (Move pre-base matra after the last halant)
index e806a23..02c8c07 100644 (file)
    ;; Consonant-based syllables
    ;;1      23                 4
    ("([CR]n?((J?H|HJ?)[CR]n?)*)(H[NJ]?|m?u?b?p?n?a?A?)"
-    < | (1 :otf=gujr=nukt,akhn+)
-    (4 (cond ("HJ" = =)
-            ("(H)N?" (1 =) 0x200C)
-            (".+" = *))) | >)
+    < |
+    (cond
+     (".+HJ$" :otf=gujr=nukt,akhn+)
+     ("(.+)(H)N?$" (1 :otf=gujr=nukt,akhn+) (2 =) 0x200C)
+     (".+" :otf=gujr=nukt,akhn+))
+    | >)
 
    ;; Combining marks are displayed with a DOTTED CIRCLE.
    ("m"
 
    ;; Syllables with an overt halant
    (" (RHJ?)?([^ ]+)(HN) "
-    | (1 = *) (2 reorder *) (3 = =) |)
+    | (1 = *) (2 reorder) (3 = =) |)
 
    ;; Ordinary syllables
    (" (RHJ?)?([^mubpaA ]+)(m?u?b?p?n?a?A?) "
-    | (1 = *) (2 reorder *) (3 = *) |)
+    | (1 = *) (2 reorder) (3 = *) |)
 
    ("." =))
   *)
  ;; reordering and interpreting it as C + (RH)blwf + H + C.
  (reorder
   (cond
-   ("J?(H)(R)$" (2 =) (1 =))
-   ("J?(HR)" (1 = =))
-   ("." =)))
+   ("(.+)(H)(R)$" (1 = *) (3 =) (2 =))
+   (".+" = *)))
  )
 
 ;; Stage 2