From 32bde9dd1b8975d4ca7f968c98fb323c560820a7 Mon Sep 17 00:00:00 2001 From: odanoburu Date: Wed, 6 Feb 2019 11:19:55 -0200 Subject: [PATCH] (Cat) improve Catalan imperative --- src/catalan/DiffCat.gf | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/src/catalan/DiffCat.gf b/src/catalan/DiffCat.gf index 019d137ed..658beac5d 100644 --- a/src/catalan/DiffCat.gf +++ b/src/catalan/DiffCat.gf @@ -108,28 +108,26 @@ oper infForm _ _ _ _ = True ; - mkImperative b p vp = - \\pol,g,n => - let - pe = case b of {True => P3 ; _ => p} ; - agr = {g = g ; n = n ; p = pe} ; - refl = case vp.s.vtyp of { - VRefl => ; - _ => <[],False> - } ; - - clpr = ; ---- TODO: True if clit ----- clpr = <[],[],False> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ; -----e verb = case of { -----e => (vp.s ! VPInfinit Simul clpr.p3).inf ! aag ; -----e _ => (vp.s ! VPImperat).fin ! agr -----e } ; - verb = vp.s.s ! vImper n pe ; ----e - neg = vp.neg ! pol ; - compl = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol - in - neg.p1 ++ verb ++ bindIf refl.p2 ++ refl.p1 ++ bindIf clpr.p3 ++ clpr.p1 ++ compl - ; + mkImperative isPol p vp = + \\pol,g,n => case pol of { + RPos => neg.p1 ++ imper ++ bindIf refl.isRefl ++ refl.pron + ++ bindIf hasClit ++ clit ++ compl ; + RNeg _ => neg.p1 ++ refl.pron ++ clit ++ compl ++ subj + } where { + pe = case isPol of {True => P3 ; _ => p} ; + refl = case vp.s.vtyp of { + VRefl => {pron = reflPron n pe Acc ; isRefl = True} ; + _ => {pron = [] ; isRefl = False} + } ; + clit = vp.clit1 ++ vp.clit2 ; + hasClit = vp.clit3.hasClit ; + imper = vp.s.s ! vImper n pe ; + subj = vp.s.s ! VFin (VPres Conjunct) n pe ; + neg = vp.neg ! pol ; + agr = {g = g ; n = n ; p = pe} ; + compl = neg.p2 ++ vp.comp ! agr ++ vp.ext ! pol + } ; + CopulaType = Bool ; selectCopula = \isEstar -> case isEstar of {True => estar_V ; False => copula} ; serCopula = False ;