diff --git a/src/zulu/ExtraExtZul.gf b/src/zulu/ExtraExtZul.gf index 26f10d222..d88c38459 100755 --- a/src/zulu/ExtraExtZul.gf +++ b/src/zulu/ExtraExtZul.gf @@ -1,5 +1,5 @@ concrete ExtraExtZul of ExtraExt = - CatZul [NP,VP,CN,V,Temp,S,Cl,Adv,Pron,QCl,QS,A,RS,IAdv,IComp,Pol,Det,Quant,N,PN], + CatZul [NP,VP,CN,V,Temp,S,Cl,Adv,Pron,QCl,QS,A,RS,IAdv,IComp,Pol,Det,Quant,N,PN,Conj], CatExtZul ** open ResZul,Prelude,ParamX in { @@ -570,6 +570,21 @@ concrete ExtraExtZul of ExtraExt = AdvQS adv qs = { s = adv.s ++ qs.s ; qword_pre = [] ; qword_post = [] } ; + ExtConjNP np1 conj np2 = { + s = \\nform => np1.s!nform ++ (link_conj conj np2.i) ++ np2.s!NReduced ; + agr = compAgr np1.agr np2.agr ; + i = np1.i ; + proDrop = andB np1.proDrop np2.proDrop ; + isPron = np1.isPron ; + heavy = orB np1.heavy np2.heavy ; + empty = np1.empty ++ np2.empty + } ; + + with_Conj = { + s = withPref ; + fix = True + } ; + -- Deverb15 v = -- let -- agr = Third C15 Sg ; diff --git a/src/zulu/ResZul.gf b/src/zulu/ResZul.gf index 9cabe2fd3..4d4b03803 100755 --- a/src/zulu/ResZul.gf +++ b/src/zulu/ResZul.gf @@ -1841,8 +1841,17 @@ resource ResZul = open Prelude,Predef,ParamX in { -- OTHER ---------------------------------------- - link_conj : Str -> Str -> Str -> Bool -> Str = \conj,s_full,s_novow,fix -> case fix of { - True => conj ++BIND ++ s_novow ; - False => conj ++ s_full + link_conj : { s: RInit => Str ; fix : Bool } -> RInit -> Str = \conj,rinit -> case conj.fix of { + True => conj.s!rinit ++BIND ; + False => conj.s!RC + } ; + + compAgr : Agr -> Agr -> Agr = \a1,a2 -> case of { + => First Pl ; + <(First _ | Second _ | Third _ _),First _> => First Pl ; + => Second Pl ; + <(First _ | Second _ | Third _ _),Second _> => Second Pl ; + => Third C1_2 Pl ; + => Third c Pl } ; } diff --git a/src/zulu/abstract_ext/ExtraExt.gf b/src/zulu/abstract_ext/ExtraExt.gf index 41dfc7da4..3ae9381de 100755 --- a/src/zulu/abstract_ext/ExtraExt.gf +++ b/src/zulu/abstract_ext/ExtraExt.gf @@ -1,5 +1,5 @@ abstract ExtraExt = - Cat [NP,VP,CN,V,Temp,S,Cl,Adv,Pron,QCl,QS,A,RS,IAdv,IComp,Pol,Det,Quant,N,PN], + Cat [NP,VP,CN,V,Temp,S,Cl,Adv,Pron,QCl,QS,A,RS,IAdv,IComp,Pol,Det,Quant,N,PN,Conj], CatExt ** { fun @@ -126,6 +126,10 @@ abstract ExtraExt = kakhulu_Adv : Adv ; + ExtConjNP : NP -> Conj -> NP -> NP ; + + with_Conj : Conj ; + -- Deverb15 : V -> N ; -- AdvQS : IAdv -> S -> QS ; -- maybe it is a pain that burns 2020-01-15: consider that this should rather be dealt with using QuestIAdv)