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:
@@ -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
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -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?
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
} ;
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user