forked from GitHub/gf-rgl
(Cat) improve Catalan imperative
This commit is contained in:
@@ -108,28 +108,26 @@ oper
|
|||||||
|
|
||||||
infForm _ _ _ _ = True ;
|
infForm _ _ _ _ = True ;
|
||||||
|
|
||||||
mkImperative b p vp =
|
mkImperative isPol p vp =
|
||||||
\\pol,g,n =>
|
\\pol,g,n => case pol of {
|
||||||
let
|
RPos => neg.p1 ++ imper ++ bindIf refl.isRefl ++ refl.pron
|
||||||
pe = case b of {True => P3 ; _ => p} ;
|
++ bindIf hasClit ++ clit ++ compl ;
|
||||||
agr = {g = g ; n = n ; p = pe} ;
|
RNeg _ => neg.p1 ++ refl.pron ++ clit ++ compl ++ subj
|
||||||
|
} where {
|
||||||
|
pe = case isPol of {True => P3 ; _ => p} ;
|
||||||
refl = case vp.s.vtyp of {
|
refl = case vp.s.vtyp of {
|
||||||
VRefl => <reflPron n pe Acc,True> ;
|
VRefl => {pron = reflPron n pe Acc ; isRefl = True} ;
|
||||||
_ => <[],False>
|
_ => {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
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
clpr = <vp.clit1 ++ vp.clit2, [],vp.clit3.hasClit> ; ---- TODO: True if clit
|
|
||||||
---- clpr = <[],[],False> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ;
|
|
||||||
----e verb = case <aag.n, pol,pe> of {
|
|
||||||
----e <Sg,Neg,P2> => (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
|
|
||||||
;
|
|
||||||
CopulaType = Bool ;
|
CopulaType = Bool ;
|
||||||
selectCopula = \isEstar -> case isEstar of {True => estar_V ; False => copula} ;
|
selectCopula = \isEstar -> case isEstar of {True => estar_V ; False => copula} ;
|
||||||
serCopula = False ;
|
serCopula = False ;
|
||||||
|
|||||||
Reference in New Issue
Block a user