From fa70eccfd0497f90f5c24218d71954df0326e7ea Mon Sep 17 00:00:00 2001 From: aarneranta Date: Sat, 16 May 2020 18:00:09 +0200 Subject: [PATCH] VPS2 and VPI2 in ExtendSwe --- src/swedish/ExtendSwe.gf | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/swedish/ExtendSwe.gf b/src/swedish/ExtendSwe.gf index 951506501..4d0812cdf 100644 --- a/src/swedish/ExtendSwe.gf +++ b/src/swedish/ExtendSwe.gf @@ -8,6 +8,7 @@ concrete ExtendSwe of Extend = CatSwe ** PassVPSlash, PassAgentVPSlash, UttVPShort, ByVP, InOrderToVP, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, + MkVPS2, ConjVPS2, ComplVPS2, MkVPI2, ConjVPI2, ComplVPI2, ICompAP,ProDrop,EmbedSSlash, AdAdV, PositAdVAdj, GerundCN, GerundNP, GerundAdv, PresPartAP, PastPartAP, PastPartAgentAP, RNP, RNPList, ReflRNP, ReflPron, ReflPoss, PredetRNP, ConjRNP, @@ -120,6 +121,56 @@ concrete ExtendSwe of Extend = CatSwe ** ConjVPS = conjunctDistrTable2 Order Agr ; + lincat + VPS2 = {s : Order => Agr => Str ; c2 : {s : Str; hasPrep : Prelude.Bool}} ; + [VPS2] = {s1,s2 : Order => Agr => Str ; c2 : {s : Str; hasPrep : Prelude.Bool}} ; + + lin + BaseVPS2 x y = twoTable2 Order Agr x y ** {c2 = y.c2} ; + ConsVPS2 x xs = consrTable2 Order Agr comma x xs ** {c2 = xs.c2}; + + + MkVPS2 t p vp = { + s = \\o,a => + let + verb = vp.s ! Act ! VPFinite t.t t.a ; + neg = verb.a1 ! p.p ! a ; + compl = vp.n2 ! a ++ vp.a2 ++ vp.ext ; + pron = vp.n1 ! a + in t.s ++ p.s ++ case o of { + Main => verb.fin ++ neg.p1 ++ verb.inf ++ pron ++ neg.p2 ++ compl ; + Inv => verb.fin ++ neg.p1 ++ verb.inf ++ pron ++ neg.p2 ++ compl ; ---- + Sub => neg.p1 ++ neg.p2 ++ verb.fin ++ verb.inf ++ pron ++ compl + } ; + c2 = vp.c2 + } ; + + ComplVPS2 vps2 np = { + s = \\o,a => vps2.s !o ! a ++ vps2.c2.s ++ np.s ! NPAcc + } ; + + ConjVPS2 c xs = conjunctDistrTable2 Order Agr c xs ** {c2 = xs.c2} ; + + lincat + VPI2 = {s : VPIForm => Agr => Str ; c2 : {s : Str; hasPrep : Prelude.Bool}} ; + [VPI2] = {s1,s2 : VPIForm => Agr => Str ; c2 : {s : Str; hasPrep : Prelude.Bool}} ; + + lin + BaseVPI2 x y = twoTable2 VPIForm Agr x y ** {c2 = y.c2} ; + ConsVPI2 x xs = consrTable2 VPIForm Agr comma x xs ** {c2 = xs.c2} ; + + MkVPI2 vp = { + s = \\v,a => infVP vp a ; ---- no sup + c2 = vp.c2 + } ; + ConjVPI2 c xs = conjunctDistrTable2 VPIForm Agr c xs ** {c2 = xs.c2} ; + + ComplVPI2 vpi2 np = { + s = \\t,a => vpi2.s ! t ! a ++ vpi2.c2.s ++ np.s ! NPAcc + } ; + +----------- + ICompAP ap = {s = \\a => hur_IAdv.s ++ ap.s ! a} ; ProDrop pro = pro ** {s = \\_ => []} ;