From e44440928a49e45447b4de77dbf3ee6c038ed02a Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 15 Jan 2019 10:32:01 +0100 Subject: [PATCH] (Ara) Add v4assimilated --- src/arabic/ParadigmsAra.gf | 1 + src/arabic/PatternsAra.gf | 1 + src/arabic/ResAra.gf | 15 ++++++++++++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index 3c23365d1..1be868289 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -474,6 +474,7 @@ resource ParadigmsAra = open \rootStr -> let root : Root3 = mkRoot3 rootStr ; verb : Verb = case rootStr of { + #weak + ? + ? => v4assimilated root ; ? + #hamza + #weak => v4doubleweak root ; ? + #weak + ? => v4hollow root ; _ + #weak => v4defective root ; diff --git a/src/arabic/PatternsAra.gf b/src/arabic/PatternsAra.gf index b2ac133c5..920060ba8 100644 --- a/src/arabic/PatternsAra.gf +++ b/src/arabic/PatternsAra.gf @@ -48,6 +48,7 @@ flags coding=utf8 ; eafcal = { h = "أَ"; m1 = "ْ" ; m2 = "َ" ; t = "" } ; eafcAl = { h = "أَ"; m1 = "ْ" ; m2 = "َا" ; t = "" } ; eifcAl = { h = "إِ"; m1 = "ْ" ; m2 = "َا" ; t = "" } ; + eIfcAl = eifcAl ** {h = "إِي"} ; eafcil = { h = "أَ"; m1 = "ْ" ; m2 = "ِ" ; t = "" } ; eafcul = { h = "أَ"; m1 = "ْ" ; m2 = "ُ" ; t = "" } ; eiftacal = { h = "إِ"; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ; diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index dbce22a68..b95b3c5af 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -727,8 +727,7 @@ v3sound : Root3 -> Verb = mutAbacAt = mutAbac + "َاَة" } in verb tAbac twbic utAbic utAbac tAbic mutAbac mutAbacAt ; -v4sound : Root3 -> Verb = - \qnc -> +v4soundForms : Root3 -> SoundForms = \qnc -> let { eaqnac = mkStrong eafcal qnc; euqnic = mkStrong eufcil qnc; @@ -738,7 +737,17 @@ v4sound : Root3 -> Verb = muqnac = "م" + uqnac; eiqnAc = mkStrong eifcAl qnc } in - verb eaqnac euqnic uqnic uqnac eaqnic muqnac eiqnAc; + toSoundForms eaqnac euqnic uqnic uqnac eaqnic muqnac eiqnAc; + +v4sound : Root3 -> Verb = \qnc -> + verb' (v4soundForms qnc) ; + +-- TODO: other differences +v4assimilated : Root3 -> Verb = \wqf -> + let eIqAf = mkStrong eIfcAl (wqf ** {f=""}) ; + vforms_snd = v4soundForms wqf ; + vforms_ass = table {6 => eIqAf ; n => vforms_snd ! n} + in verb' vforms_ass ; v4hollow : Root3 -> Verb = \rwd ->