From a7c471214bc4c634dad3e97a7469ba98083a415f Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 28 Nov 2018 13:55:34 +0100 Subject: [PATCH] (Ara) Fixes in negations --- src/arabic/ExtendAra.gf | 2 +- src/arabic/ResAra.gf | 42 ++++++++++++++++++++++++++--------------- src/arabic/VerbAra.gf | 2 +- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/src/arabic/ExtendAra.gf b/src/arabic/ExtendAra.gf index a371dd23..c59d6de5 100644 --- a/src/arabic/ExtendAra.gf +++ b/src/arabic/ExtendAra.gf @@ -39,7 +39,7 @@ concrete ExtendAra of Extend = wordOrderNoSubj Nominal -- Nominal (=SVO) generalises best for ConjVPS. vp.obj.a.isPron - (vStr vp pgn t.t p.p) + (vStr vp pgn t.t p.p Nominal) (case of { => BIND ++ vp.obj.s ; _ => vp.obj.s }) diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index 6156d435..62d118fd 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -1534,9 +1534,13 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf -> => verbalAgr np.a.pgn; _ => np.a.pgn }; - sc : Preposition = case o of { -- very unsure of this /IL - Subord => {s=[]; c=Acc} ; -- to prevent weird stuff with VVs - _ => case np.a.isPron of {True => noPrep; _ => vp.sc} + + -- very unsure about this /IL + sc : Preposition = case o of { + Subord => {s=[]; c=Acc} ; + _ => case np.a.isPron of { + True => noPrep ; -- to prevent weird stuff with VVs, might be overly specific + _ => vp.sc } } ; subj = np.empty ++ sc.s ++ case vp.isPred of { @@ -1545,7 +1549,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf -> } ; } in wordOrder o vp.obj.a.isPron np.a.isPron - (vStr vp pgn t p) + (vStr vp pgn t p o) vp.obj.s (pred vp pgn t p) vp.s2 @@ -1581,21 +1585,29 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf -> _ => vp.pred.s ! gn ! Acc --xabar kaana wa laysa manSoob } ; - vStr : VP -> PerGenNum -> ParamX.Tense -> Polarity -> Str = \vp,pgn,tn,pl -> + vStr : VP -> PerGenNum -> ParamX.Tense -> Polarity -> Order -> Str = \vp,pgn,tn,pl,o -> let kataba = vp.s ! pgn ! VPPerf ; yaktubu = vp.s ! pgn ! VPImpf Ind ; yaktuba = vp.s ! pgn ! VPImpf Cnj ; yaktub = vp.s ! pgn ! VPImpf Jus ; - in case of { - => yaktubu ; - => "لَا" ++ yaktubu ; - => "" ; --no verb "to be" in present - => "لَيسَ" ;--same here, just add negation particle - <_, Past, Pos> => kataba ; - <_, Past, Neg> => "لَمْ" ++ yaktub ; - <_, Cond, _ > => yaktuba ; - <_, Fut, Pos> => glue "سَ" yaktubu ; - <_, Fut, Neg> => "لَنْ" ++ yaktuba + -- Various negative particles + la = "لَا" ; + laysa = "لَيسَ" ; -- "neg. copula" + lam = "لَمْ" ; -- neg. past + alla = "أَلَّا" ; -- neg. subjunctive + lan = "لَنْ" ; -- neg. future + in case of { + => yaktubu ; + => la ++ yaktubu ; + => [] ; --no verb "to be" in present + => laysa ; --same here, just add negation particle + <_, Past, Pos, _> => kataba ; + <_, Past, Neg, _> => lam ++ yaktub ; + <_, Cond, Pos, _> => yaktuba ; + <_, Cond, Neg, _> => alla ++ yaktuba ; + <_, Fut, Pos, _> => glue "سَ" yaktubu ; + <_, Fut, Neg, Subord> => alla ++ yaktuba ; -- might be too specific for just one case /IL + <_, Fut, Neg, _> => lan ++ yaktuba } ; -- in verbal sentences, the verb agrees with the subject diff --git a/src/arabic/VerbAra.gf b/src/arabic/VerbAra.gf index abfdc218..ce5686ae 100644 --- a/src/arabic/VerbAra.gf +++ b/src/arabic/VerbAra.gf @@ -12,7 +12,7 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra, ParamX in { vp ** { s = v2vVP.s ; agrObj = \\pgn => v2v.c3.s -- أَنْ - ++ vp.s ! pgn ! VPImpf Cnj ; + ++ vp.s ! pgn ! VPImpf Cnj ; -- this will agree with the object added by ComplSlash isPred = False ; c2 = v2v.c2 ; -- preposition for the direct object sc = v2v.sc