mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 08:58:55 -06:00
(Extend) Add RelVPS : RP -> VPS -> RS
Implemented in Swe and Eng, empty variants in ExtendFunctor.
This commit is contained in:
@@ -47,6 +47,7 @@ abstract Extend = Cat ** {
|
||||
PredVPS : NP -> VPS -> S ; -- she [has walked and won't sleep]
|
||||
SQuestVPS : NP -> VPS -> QS ; -- has she walked
|
||||
QuestVPS : IP -> VPS -> QS ; -- who has walked
|
||||
RelVPS : RP -> VPS -> RS ; -- which won't sleep
|
||||
|
||||
-- existentials that work in the absence of Cl
|
||||
ExistS : Temp -> Pol -> NP -> S ; -- there was a party
|
||||
|
||||
@@ -26,6 +26,7 @@ lin
|
||||
MkVPS vp = variants {} ; -- Temp -> Pol -> VP -> VPS ; -- hasn't slept
|
||||
ConjVPS = variants {} ; -- Conj -> [VPS] -> VPS ; -- has walked and won't sleep
|
||||
PredVPS = variants {} ; -- NP -> VPS -> S ; -- has walked and won't sleep
|
||||
RelVPS = variants {} ; -- RP -> VPS -> RS ; -- which won't sleep
|
||||
MkVPI vp = variants {} ; -- Temp -> Pol -> VP -> VPI ; -- to sleep / hasn't slept
|
||||
ConjVPI = variants {} ; -- Conj -> [VPI] -> VPI ; -- has walked and won't sleep
|
||||
ComplVPIVV = variants {} ; -- VV -> VPI -> VP ; -- want to sleep and to walk
|
||||
|
||||
@@ -5,7 +5,7 @@ concrete ExtendEng of Extend =
|
||||
[
|
||||
VPS, ListVPS, VPI, ListVPI, VPS2, ListVPS2, VPI2, ListVPI2, RNP, RNPList,
|
||||
AdAdV, AdjAsCN, AdjAsNP, ApposNP, AdvIsNP,
|
||||
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, QuestVPS, SQuestVPS,
|
||||
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, QuestVPS, SQuestVPS, RelVPS,
|
||||
MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||
MkVPS2, BaseVPS2, ConsVPS2, ConjVPS2, ComplVPS2, ReflVPS2,
|
||||
MkVPI2, BaseVPI2, ConsVPI2, ConjVPI2, ComplVPI2,
|
||||
@@ -127,6 +127,11 @@ concrete ExtendEng of Extend =
|
||||
QuestVPS ip vps = let vp = vps.s ! oDir ! toAgr ip.n P3 Neutr in {
|
||||
s = \\q => ip.s ! npNom ++ vp.fin ++ vp.inf
|
||||
} ;
|
||||
RelVPS rp vps = {
|
||||
s = \\agr => let vp = vps.s ! oDir ! agr in
|
||||
rp.s ! RC (fromAgr agr).g npNom ++ vp.fin ++ vp.inf ;
|
||||
c = npNom ;
|
||||
} ;
|
||||
|
||||
|
||||
MkVPI vp = mkVPI (lin VP vp) ;
|
||||
|
||||
@@ -7,7 +7,7 @@ concrete ExtendSwe of Extend = CatSwe **
|
||||
StrandRelSlash, EmptyRelSlash, StrandQuestSlash,
|
||||
PassVPSlash, PassAgentVPSlash, UttVPShort, ByVP, InOrderToVP,
|
||||
MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS,
|
||||
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, RelVPS,
|
||||
MkVPS2, ConjVPS2, ComplVPS2, ReflVPS2, MkVPI2, ConjVPI2, ComplVPI2,
|
||||
ICompAP,ProDrop,EmbedSSlash,
|
||||
AdAdV, PositAdVAdj, GerundCN, GerundNP, GerundAdv, PresPartAP, PastPartAP, PastPartAgentAP,
|
||||
@@ -132,6 +132,16 @@ in {
|
||||
}
|
||||
} ;
|
||||
|
||||
RelVPS rp vps = {
|
||||
s = \\ag,rcase =>
|
||||
let agr = case rp.a of { -- RP's agr may override in the regular RelativeScand, is this true with VPS too?
|
||||
RNoAg => ag ;
|
||||
RAg g n p => {g = g ; n = n ; p = p}
|
||||
} ;
|
||||
in rp.s ! ag.g ! ag.n ! rcase ++ vps.s ! Sub ! agr ;
|
||||
c = NPNom
|
||||
} ;
|
||||
|
||||
MkVPS t p vp = {
|
||||
s = \\o,a =>
|
||||
let
|
||||
|
||||
Reference in New Issue
Block a user