From 47bcbe73f621b6d3e2146a4184fcf9fc6b544ce2 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 20 Nov 2018 14:09:15 +0100 Subject: [PATCH] (Ara) Add two new verb paradigms --- src/arabic/ParadigmsAra.gf | 8 ++++--- src/arabic/PatternsAra.gf | 12 +++++++++- src/arabic/ResAra.gf | 45 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index c029fba27..d7868cb92 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -419,6 +419,7 @@ resource ParadigmsAra = open let root : Root3 = mkRoot3 rootStr ; verb : Verb = case rootStr of { ? + #hamza + #weak => v4doubleweak root ; + ? + #weak + ? => v4hollow root ; _ + #weak => v4defective root ; _ => v4sound root } ; in lin V verb ; @@ -475,9 +476,10 @@ resource ParadigmsAra = open \rootStr -> let { rbT = mkRoot3 rootStr ; - v10fun = case rbT.c of { - ("و"|"ي") => v10hollow ; - _ => v10sound } + v10fun : Root3 -> Verb = case rootStr of { + ? + #weak + ? => v10hollow ; + ? + ? + #weak => v10defective ; + _ => v10sound } } in lin V (v10fun rbT) ; reflV v = lin V (ResAra.reflV v) ; diff --git a/src/arabic/PatternsAra.gf b/src/arabic/PatternsAra.gf index 23175098b..8fa311af8 100644 --- a/src/arabic/PatternsAra.gf +++ b/src/arabic/PatternsAra.gf @@ -35,9 +35,13 @@ flags coding=utf8 ; fuci = { h = "" ; m1 = "ُ" ; m2 = ""; t = "ِ" } ; fucu = { h = "" ; m1 = "ُ" ; m2 = ""; t = "ُ" } ; fUc = { h = "" ; m1 = "ُو"; m2 = ""; t = "" } ; - ufAc = { h = "ُ" ; m1 = "َا"; m2 = ""; t = "" } ; ufca = { h = "ُ" ; m1 = "ْ" ; m2 = ""; t = "َ" } ; + eafAc = fAc ** { h = "أَ" } ; + eafac = fac ** { h = "أَ" } ; + eafIc = fIc ** { h = "أَ" } ; + eafic = fic ** { h = "أَ" } ; + eafAcil = { h = "أَ"; m1 = "َا" ; m2 = "ِ" ; t = "" } ; eafAcIl = { h = "أَ"; m1 = "َا" ; m2 = "ِي" ; t = "" } ; eafcilp = { h = "أَ"; m1 = "ْ" ; m2 = "ِ" ; t = "َة" } ; @@ -47,6 +51,12 @@ flags coding=utf8 ; eafcul = { h = "أَ"; m1 = "ْ" ; m2 = "ُ" ; t = "" } ; eiftacal = { h = "إِ"; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ; eufcil = { h = "أُ"; m1 = "ْ" ; m2 = "ِ" ; t = "" } ; + eufic = fic ** { h = "أُ" } ; + eufIc = fIc ** { h = "أُ" } ; + ufic = fic ** { h = "ُ" } ; + ufIc = fIc ** { h = "ُ" } ; + ufac = fac ** { h = "ُ" } ; + ufAc = fAc ** { h = "ُ" } ; euftucil = { h = "أُ"; m1 = "ْتُ" ; m2 = "ِ" ; t = "" } ; euttucil = euftucil ** { h = "اُتُّ" ; m1 = "ِ" } ; ---- IL assimilated VIII afcul = { h = "َ" ; m1 = "ْ" ; m2 = "ُ" ; t = "" } ; diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index dfdd97f5e..01f764c87 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -649,6 +649,28 @@ v4sound : Root3 -> Verb = } in verb eaqnac euqnic uqnic uqnac eaqnic muqnac; +v4hollow : Root3 -> Verb = + \rwd -> + let { + earad = mkHollow eafac rwd ; -- VPerf Act (Per3 Fem Pl) etc. + earAd = mkHollow eafAc rwd ; -- VPerf Act + eurid = mkHollow eufic rwd ; -- VPerf Pas (Per3 Fem Pl) etc. + eurId = mkHollow eufIc rwd ; -- VPerf Pas + + urid = mkHollow ufic rwd ; -- VImpf Act (Per2/Per3 Fem Pl) + urId = mkHollow ufIc rwd ; -- VImpf Act + urad = mkHollow ufac rwd ; -- VImpf Pas (Per2/Per3 Fem Pl) + urAd = mkHollow ufAc rwd ; -- VImpf Pas + + earid = mkHollow eafic rwd ; -- VImp (Sg Masc / Pl Fem) + earId = mkHollow eafIc rwd ; -- VImp (Pl Masc / Sg Fem) + + ppart = "م" + urAd ; + + } in verbHollow (toDefForms + earAd earad eurId eurid + urId urid urAd urad + earId earid ppart) ; v4DefForms : Root3 -> DefForms = \cTy -> let { @@ -808,6 +830,29 @@ v10hollow : Root3 -> Verb = ---- IL 10h -- to be checked istaxAf istaxaf ustuxIf ustuxif astaxIf astaxif ustaxAf ustaxaf istaxif istaxIf ppart) ; +v10defective : Root3 -> Verb = -- IL + \lqy -> + let { + _stalqa = "سْتَ" + mkDefective fca lqy ; + _stalqu = "سْتَ" + mkDefective fcu lqy ; + _stalqi = "سْتَ" + mkDefective fci lqy ; + _stulqi = "سْتُ" + mkDefective fci lqy ; + + istalqa = "اِ" + _stalqa ; -- VPerf Act (Per3 Masc Sg) + istalqay = "اِسْتَ" + mkStrong fcal lqy ; -- VPerf Act (Per3 Fem Pl) + ustulqi = "اُ" + _stulqi; -- VPerf Pas (Per3 _ _) + + astalqu = "َ" + _stalqu ; -- VImpf Act (Per2/3 Masc Pl) + astalqi = "َ" + _stalqi ; -- VImpf Act _ + ustalqa = "ُ" + _stalqa ; -- VImpf Pas _ + istalqi = "اِ" + _stalqi; -- VImp (Masc Sg / Fem _) + istalqu = "اِ" + _stalqu; -- VImp Masc Pl + mustalqin = "مُ" + _stalqi + "ت" ; + + } in verbDef (toDefForms + istalqa istalqay ustulqi ustulqi ustulqi + astalqi astalqu ustalqa istalqi istalqu mustalqin) i ; + patV1Perf : Vowel => Pattern = table { a => facal ; --katab