1
0
forked from GitHub/gf-rgl

(Hun) WIP: have_V2 adds possessive suffixes to its object NP

This commit is contained in:
Inari Listenmaa
2020-04-24 08:18:53 +02:00
parent efcfb3cefa
commit 14bed283f4
6 changed files with 131 additions and 93 deletions
+23 -2
View File
@@ -1,4 +1,5 @@
concrete VerbHun of Verb = CatHun ** open ResHun, AdverbHun, Prelude in {
concrete VerbHun of Verb = CatHun **
open ResHun, AdverbHun, NounHun, Prelude in {
lin
@@ -63,7 +64,7 @@ lin
} ;
-}
-- : VPSlash -> NP -> VP
ComplSlash = ResHun.insertObj ;
ComplSlash = insertObj ;
{-
-- : VV -> VPSlash -> VPSlash ;
-- Just like ComplVV except missing subject!
@@ -145,4 +146,24 @@ lin
-- : VP -- Copula alone;
UseCopula = useV copula ;
oper
insertObj : ResHun.VPSlash -> NounPhrase -> VerbPhrase = \vps,np -> vps ** {
obj = \\agr =>
-- have_V2 needs to put object in poss. form
let pron : Pronoun = pronTable ! agr ;
num : CatHun.Num = case np.agr.p2 of {
Sg => NumSg ; Pl => NumPl } ;
det : Determiner = DetQuant (PossPron pron) num ;
possessedNP : Str = caseFromPossStem np det vps.c2 ;
in case <vps.sc,vps.c2> of {
<SCDat,Nom> => possessedNP ; -- TODO loses stuff from np.s
_ => np.s ! vps.c2 } ;
s = \\vf =>
-- If verb's subject case is Dat and object Nom, verb agrees with obj.
case <vps.sc,vps.c2> of {
<SCDat,Nom> => vps.s ! np.objdef ! agr2vf np.agr;
_ => vps.s ! np.objdef ! vf } ;
} ;
}