1
0
forked from GitHub/gf-rgl

(Por) Extend: add lins

- add PastPartAP, PastPartAgentAP
- add PassVPSlash, PassAgentVPSlash lins from ExtraRomance
- correct CompoundN
This commit is contained in:
odanoburu
2018-10-19 22:21:22 +00:00
parent 85e4a8061f
commit 83a22ab31b
2 changed files with 30 additions and 18 deletions

View File

@@ -18,7 +18,9 @@ concrete ExtendPor of Extend =
iFem_Pron, iFem_Pron,
ListVPS, ListVPS,
PassVPSlash, PassVPSlash,
PassVPSlash, PassAgentVPSlash,
PastPartAP,
PastPartAgentAP,
ProDrop, ProDrop,
theyFem_Pron, theyFem_Pron,
VPS, VPS,
@@ -94,31 +96,42 @@ concrete ExtendPor of Extend =
PrepCN prep cn = {s = prep.s ++ prepCase prep.c ++ cn.s ! Sg} ; PrepCN prep cn = {s = prep.s ++ prepCase prep.c ++ cn.s ! Sg} ;
lin lin
PassVPSlash vps = PastPartAP vps = pastPartAP vps [] ;
let auxvp = predV copula
in PastPartAgentAP vps np = pastPartAP vps (let by = <Grammar.by8agent_Prep : Prep> in by.s ++ (np.s ! by.c).ton) ;
insertComplement (\\a => let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) {
s = auxvp.s ; oper
agr = auxvp.agr ; pastPartAP : VPSlash -> Str -> AP ;
neg = vps.neg ; pastPartAP vps agent = lin AP {
clit1 = vps.clit1 ; s = \\af => vps.comp ! (aform2aagr af ** {p = P3}) ++ vps.s.s ! VPart (aform2gender af) (aform2number af) ++ agent ;
clit2 = vps.clit2 ; isPre = False
clit3 = vps.clit3 ;
isNeg = vps.isNeg ;
comp = vps.comp ;
ext = vps.ext
} ; } ;
lin
PassVPSlash vps = passVPSlash vps [] ;
PassAgentVPSlash vps np = passVPSlash vps (let by = <Grammar.by8agent_Prep : Prep> in by.s ++ (np.s ! by.c).ton) ;
ExistsNP np = ExistsNP np =
mkClause [] True False np.a mkClause [] True False np.a
(insertComplement (\\_ => (np.s ! Nom).ton) (insertComplement (\\_ => (np.s ! Nom).ton)
(predV (mkV "existir"))) ; (predV (mkV "existir"))) ;
oper
passVPSlash : VPSlash -> Str -> VP = \vps, agent ->
let auxvp = predV auxPassive
in
vps ** {
s = auxvp.s ;
agr = auxvp.agr ;
comp = \\a => vps.comp ! a ++ (let agr = complAgr a in vps.s.s ! VPart agr.g agr.n) ++ agent ;
} ;
lin lin
CompoundN noun noun2 = { -- order is different because that's needed for correct translation from english CompoundN noun noun2 = { -- order is different because that's needed for correct translation from english
s = \\n => noun2.s ! n s = \\n => noun2.s ! n
++ variants {genNumForms "do" "da" "dos" "das" ! noun.g ! n; "de"} ++ variants {"de" ; genForms "do" "da" ! noun.g}
++ noun.s ! n ; ++ noun.s ! Sg ;
g = noun2.g g = noun2.g
} ; } ;

View File

@@ -19,5 +19,4 @@ oper
a = if_then_else PAgr p (PAg Sg) PNoAg ---- e,g, "chacun de"; other possibilities? a = if_then_else PAgr p (PAg Sg) PNoAg ---- e,g, "chacun de"; other possibilities?
} ; } ;
} ;
}