--# -path=alltenses:../common:../abstract concrete ExtendPor of Extend = CatPor ** ExtendFunctor - [ iFem_Pron, weFem_Pron, youFem_Pron, youPlFem_Pron, youPolPl_Pron, youPolFem_Pron, youPolPlFem_Pron, theyFem_Pron, ProDrop, PassVPSlash, ExistsNP ] -- put the names of your own definitions here with (Grammar = GrammarPor), (Syntax = SyntaxPor) ** open GrammarPor, ResPor, MorphoPor, Coordination, Prelude, ParadigmsPor, (S = StructuralPor) in { lin ProDrop p = { s = table { Nom => let pn = p.s ! Nom in {c1 = pn.c1 ; c2 = pn.c2 ; comp = [] ; ton = pn.ton} ; c => p.s ! c } ; a = p.a ; poss = p.poss ; hasClit = p.hasClit ; isPol = p.isPol ; isNeg = False } ; lin PassVPSlash vps = let auxvp = predV copula in insertComplement (\\a => let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) { s = auxvp.s ; agr = auxvp.agr ; neg = vps.neg ; clit1 = vps.clit1 ; clit2 = vps.clit2 ; clit3 = vps.clit3 ; isNeg = vps.isNeg ; comp = vps.comp ; ext = vps.ext } ; ExistsNP np = mkClause [] True False np.a (insertComplement (\\_ => (np.s ! Nom).ton) (predV (mkV "existir"))) ; lin -- Romance iFem_Pron = pronAgr S.i_Pron Fem Sg P1 ; weFem_Pron = pronAgr S.we_Pron Fem Pl P1 ; youFem_Pron = pronAgr S.youSg_Pron Fem Sg P3 ; youPlFem_Pron = pronAgr S.youPl_Pron Fem Pl P3 ; youPolPl_Pron = mkPronoun "vós" "vos" "vos" "vós" "vosso" "vossa" "vossos" "vossas" Masc Pl P2 ; youPolFem_Pron = pronAgr S.youPol_Pron Fem Sg P2 ; youPolPlFem_Pron = pronAgr youPolPl_Pron Fem Pl P2 ; theyFem_Pron = mkPronFrom S.they_Pron "elas" "as" "lhes" "elas" Fem Pl P3 ; } ;