forked from GitHub/gf-rgl
(Spa) Add SelfAdvVP and Exist{IP,NP}Adv
This commit is contained in:
@@ -1,36 +1,48 @@
|
|||||||
concrete IdiomSpa of Idiom = CatSpa **
|
concrete IdiomSpa of Idiom = CatSpa **
|
||||||
open (P = ParamX), MorphoSpa, ParadigmsSpa, BeschSpa, Prelude in {
|
open (P = ParamX), MorphoSpa, ParadigmsSpa, BeschSpa, (N=NounSpa), Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
ImpersCl vp = mkClause [] True False (agrP3 Masc Sg) vp ;
|
ImpersCl vp = mkClause [] True False (agrP3 Masc Sg) vp ;
|
||||||
|
|
||||||
GenericCl vp =
|
GenericCl vp =
|
||||||
mkClause [] True False (agrP3 Masc Sg) (insertRefl vp) ; ---- just Italian ?
|
mkClause [] True False (agrP3 Masc Sg) (insertRefl vp) ; ---- just Italian ?
|
||||||
|
|
||||||
CleftNP np rs = mkClause [] True False (agrP3 Masc Sg)
|
CleftNP np rs = mkClause [] True False (agrP3 Masc Sg)
|
||||||
(insertComplement (\\_ => rs.s ! Indic ! np.a)
|
(insertComplement (\\_ => rs.s ! Indic ! np.a)
|
||||||
(insertComplement (\\_ => (np.s ! rs.c).ton) (predV copula))) ;
|
(insertComplement (\\_ => (np.s ! rs.c).ton) (predV copula))) ;
|
||||||
|
|
||||||
CleftAdv ad s = mkClause [] True False (agrP3 Masc Sg)
|
CleftAdv ad s = mkClause [] True False (agrP3 Masc Sg)
|
||||||
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
|
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
|
||||||
(insertComplement (\\_ => ad.s) (predV copula))) ;
|
(insertComplement (\\_ => ad.s) (predV copula))) ;
|
||||||
|
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
mkClause [] True False (agrP3 Masc Sg)
|
mkClause [] True False (agrP3 Masc Sg)
|
||||||
(insertComplement (\\_ => (np.s ! Acc).ton) (predV (verboV (hay_3 "haber")))) ;
|
(insertComplement (\\_ => (np.s ! Acc).ton) hay_VP) ;
|
||||||
|
|
||||||
|
ExistNPAdv np adv = ExistNP (N.AdvNP np adv) ;
|
||||||
|
|
||||||
ExistIP ip = {
|
ExistIP ip = {
|
||||||
s = \\t,a,p,_ =>
|
s = \\t,a,p,_ =>
|
||||||
ip.s ! Nom ++
|
ip.s ! Nom ++
|
||||||
(mkClause [] True False (agrP3 Masc Sg) (predV (verboV (hay_3 "haber")))).s ! DDir ! t ! a ! p ! Indic
|
(mkClause [] True False (agrP3 Masc Sg) hay_VP).s ! DDir ! t ! a ! p ! Indic
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ProgrVP vp =
|
ExistIPAdv ip adv = {
|
||||||
insertComplement
|
s = \\t,a,p,_ =>
|
||||||
(\\agr =>
|
ip.s ! Nom ++
|
||||||
let
|
(mkClause [] True False (agrP3 Masc Sg) hay_VP).s ! DDir ! t ! a ! p ! Indic
|
||||||
|
++ adv.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- ImpP3 np vp = {} ;
|
||||||
|
|
||||||
|
ProgrVP vp =
|
||||||
|
insertComplement
|
||||||
|
(\\agr =>
|
||||||
|
let
|
||||||
clpr = <vp.clit1,vp.clit2> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ;
|
clpr = <vp.clit1,vp.clit2> ; ----e pronArg agr.n agr.p vp.clAcc vp.clDat ;
|
||||||
obj = clpr.p2 ++ vp.comp ! agr ++ vp.ext ! RPos ---- pol
|
obj = clpr.p2 ++ vp.comp ! agr ++ vp.ext ! RPos ---- pol
|
||||||
in
|
in
|
||||||
@@ -42,4 +54,22 @@ concrete IdiomSpa of Idiom = CatSpa **
|
|||||||
mkImperative False P1 vp ! RPos ! Masc ! Pl ; --- fem
|
mkImperative False P1 vp ! RPos ! Masc ! Pl ; --- fem
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
-- : NP -> NP ; -- the president himself (is at home)
|
||||||
|
-- SelfNP np =
|
||||||
|
|
||||||
|
-- : VP -> VP ; -- is himself at home
|
||||||
|
SelfAdvVP,
|
||||||
|
SelfAdVVP = selfVP ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
hay_VP = predV (verboV (hay_3 "haber")) ;
|
||||||
|
selfVP : VP -> VP = insertComplement (
|
||||||
|
\\agr => case agr of {
|
||||||
|
{g = g ; n = n ; p = p} => table {
|
||||||
|
P1 => numForms "yo mismo" "yo misma" ! n ;
|
||||||
|
P2 => genNumForms "tu mismo" "tu misma" "vosotros mismos" "vosotras mismas" ! g ! n ;
|
||||||
|
P3 => genNumForms "él mismo" "ella misma" "ellos mismos" "ellas mismas" ! g ! n
|
||||||
|
} ! p
|
||||||
|
}
|
||||||
|
) ;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user