diff --git a/src/arabic/MissingAra.gf b/src/arabic/MissingAra.gf index e921bdcc..44ce518d 100644 --- a/src/arabic/MissingAra.gf +++ b/src/arabic/MissingAra.gf @@ -21,10 +21,8 @@ oper SentCN : CN -> SC -> CN = notYet "SentCN" ; oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ; oper SlashV2A : V2A -> AP -> VPSlash = notYet "SlashV2A" ; oper SlashV2Q : V2Q -> QS -> VPSlash = notYet "SlashV2Q" ; -oper SlashV2S : V2S -> S -> VPSlash = notYet "SlashV2S" ; oper SlashVS : NP -> VS -> SSlash -> ClSlash = notYet "SlashVS" ; oper SubjS : Subj -> S -> Adv = notYet "SubjS" ; oper VocNP : NP -> Voc = notYet "VocNP" ; oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ; - } diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index 792560ed..64846940 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -505,7 +505,7 @@ oper insertObj : NP -> VPSlash -> VP = \np,vp -> vp ** { obj = {s = vp.obj.s -- old object, if there was one ++ bindIfPron np vp -- new object, bind if pronoun and not pred - ++ vp.agrObj ! np.a.pgn ; -- only used for SlashV2V and Slash3V3 + ++ vp.agrObj ! np.a.pgn ; -- used for SlashV2V, Slash3V3 and SlashV2S a = agrLite np.a} ; agrObj = \\_ => [] } ; diff --git a/src/arabic/VerbAra.gf b/src/arabic/VerbAra.gf index d276e7f0..d170a9a0 100644 --- a/src/arabic/VerbAra.gf +++ b/src/arabic/VerbAra.gf @@ -35,6 +35,13 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra, ParamX in { sc = v2v.sc } ; + -- : V2S -> S -> VPSlash ; -- answer (to him) that it is good + SlashV2S v2s s = slashV2 v2s ** { -- IL + agrObj = -- this is put into agrObj even though it doesn't depend on agr, because insertObj puts agrObj *after* the new object. + \\pgn => v2s.s2 -- أَنَّ + ++ s.s ! v2s.o ; + } ; + SlashV2a = slashV2 ; Slash2V3 v np = insertObj np (slashV2 v) ** {c2 = v.c3 ; agrObj = \\_ => []};