forked from GitHub/gf-core
copula in romance: ser/estar for Cat,Spa, just essere/etre in Ita,Fra. Controlled by the param type CopulaType in DiffRomance.
This commit is contained in:
@@ -35,7 +35,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol]
|
||||
|
||||
QCl = {s : RTense => Anteriority => RPolarity => QForm => Str} ;
|
||||
IP = {s : Case => Str ; a : AAgr} ;
|
||||
IComp = {s : AAgr => Str} ;
|
||||
IComp = {s : AAgr => Str ; cop : CopulaType} ;
|
||||
IDet = {s : Gender => Case => Str ; n : Number} ;
|
||||
IQuant = {s : Number => Gender => Case => Str} ;
|
||||
|
||||
@@ -51,7 +51,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol]
|
||||
|
||||
VP = ResRomance.VP ;
|
||||
VPSlash = ResRomance.VP ** {c2 : Compl} ;
|
||||
Comp = {s : Agr => Str} ;
|
||||
Comp = {s : Agr => Str ; cop : CopulaType} ;
|
||||
|
||||
-- Adjective
|
||||
|
||||
|
||||
@@ -52,6 +52,13 @@ interface DiffRomance = open CommonRomance, Prelude in {
|
||||
|
||||
oper mkImperative : Bool -> Person -> VP -> RPolarity => Gender => Number => Str ;
|
||||
|
||||
-- To render the copula (ser/estar in Spa,Cat)
|
||||
|
||||
oper CopulaType : PType ;
|
||||
oper selectCopula : CopulaType -> Verb ;
|
||||
oper serCopula : CopulaType ;
|
||||
oper estarCopula : CopulaType ;
|
||||
|
||||
|
||||
--2 Constants that must derivatively depend on language
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ incomplete concrete ExtraRomance of ExtraRomanceAbs = CatRomance **
|
||||
isNeg = False
|
||||
} ;
|
||||
|
||||
CompIQuant iq = {s = \\aa => iq.s ! aa.n ! aa.g ! Nom} ;
|
||||
CompIQuant iq = {s = \\aa => iq.s ! aa.n ! aa.g ! Nom ; cop = serCopula} ;
|
||||
|
||||
PrepCN prep cn = {s = prep.s ++ prepCase prep.c ++ cn.s ! Sg} ;
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ incomplete concrete QuestionRomance of Question =
|
||||
QuestIComp icomp np = {
|
||||
s = \\t,a,p,_ =>
|
||||
let
|
||||
vp = predV copula ;
|
||||
vp = predV (selectCopula icomp.cop) ;
|
||||
cls = (mkClause (np.s ! Nom).comp np.hasClit np.isPol np.a vp).s !
|
||||
DInv ! t ! a ! p ! Indic ;
|
||||
why = icomp.s ! complAgr np.a ;
|
||||
@@ -95,9 +95,9 @@ incomplete concrete QuestionRomance of Question =
|
||||
|
||||
AdvIAdv i a = {s = i.s ++ a.s} ;
|
||||
|
||||
CompIAdv a = {s = \\_ => a.s} ;
|
||||
CompIAdv a = {s = \\_ => a.s ; cop = estarCopula} ;
|
||||
|
||||
CompIP p = {s = \\_ => p.s ! Nom} ;
|
||||
CompIP p = {s = \\_ => p.s ! Nom ; cop = serCopula} ;
|
||||
|
||||
lincat
|
||||
QVP = ResRomance.VP ;
|
||||
|
||||
@@ -87,17 +87,18 @@ incomplete concrete VerbRomance of Verb =
|
||||
-}
|
||||
|
||||
|
||||
UseComp comp = insertComplement comp.s (predV copula) ;
|
||||
UseComp comp = insertComplement comp.s (predV (selectCopula comp.cop)) ;
|
||||
|
||||
UseCopula = predV copula ;
|
||||
|
||||
CompAP ap = {s = \\ag => let agr = complAgr ag in ap.s ! AF agr.g agr.n} ;
|
||||
CompAP ap = {s = \\ag => let agr = complAgr ag in ap.s ! AF agr.g agr.n ; cop = serCopula} ;
|
||||
CompCN cn = { s = \\ag =>
|
||||
let agr = complAgr ag in
|
||||
artIndef False cn.g agr.n Nom ++ cn.s ! agr.n
|
||||
let agr = complAgr ag in
|
||||
artIndef False cn.g agr.n Nom ++ cn.s ! agr.n ;
|
||||
cop = serCopula
|
||||
}; --- RE 7/12/2010 -- AR added indef 2/8/2011
|
||||
CompNP np = {s = \\_ => (np.s ! Nom).ton} ;
|
||||
CompAdv a = {s = \\_ => a.s} ;
|
||||
CompNP np = {s = \\_ => (np.s ! Nom).ton ; cop = serCopula} ;
|
||||
CompAdv a = {s = \\_ => a.s ; cop = estarCopula} ;
|
||||
|
||||
AdvVP vp adv = insertAdv adv.s vp ;
|
||||
ExtAdvVP vp adv = insertAdv (embedInCommas adv.s) vp ;
|
||||
|
||||
Reference in New Issue
Block a user