1
0
forked from GitHub/gf-rgl

(Hun) Fix bug in plural nouns possessed by P3 Sg possessor

This commit is contained in:
Inari Listenmaa
2020-04-24 11:30:52 +02:00
parent 14bed283f4
commit 8ea95d8624

View File

@@ -44,28 +44,31 @@ oper
} ; } ;
caseFromPossStem : CNLite -> Determiner -> Case -> Str = \cn,det,cas -> caseFromPossStem : CNLite -> Determiner -> Case -> Str = \cn,det,cas ->
let casetable : Case->HarmForms = case <det.n,det.dt> of { let st : PossStem = case det.dt of {
DetPoss x => x ;
_ => Predef.error "caseFromPossStem: Not possessive Det" } ;
casetable : Case->HarmForms = case <det.n,det.dt> of {
-- P3 Sg possessive suffix ends in vowel, others in consonant. -- P3 Sg possessive suffix ends in vowel, others in consonant.
<Sg,DetPoss (dSg_rP3 Sg)> => endCasePossVow ; <Sg,DetPoss (dSg_rP3 Sg)> => endCasePossVow ;
_ => endCase _ => endCase } ;
} ;
stem : CNPossStem = case det.n of { stem : CNPossStem = case det.n of {
Sg => PossSg Sg => PossSg st ;
(case det.dt of { Pl => PossPl } ;
DetPoss x => x ;
_ => Predef.error "caseFromPossStem: Not possessive Det"}) ;
Pl => PossPl
} ;
-- possessive suffix e.g. "their cats-3pl" is just k. not uk/ük -- possessive suffix e.g. "their cats-3pl" is just k. not uk/ük
suf = case <det.n,det.dt> of { suf = case <det.n,st> of {
<Pl,DetPoss (dSg_rP3 Pl)> => "k" ; <Pl,dSg_rP3 Pl> => "k" ;
_ => det.poss ! cn.h _ => det.poss ! cn.h
} ; } ;
in case cas of { in case <cas,det.n,st> of {
Nom => glue (cn.pstems ! stem) suf ; -- don't use applyCaseSuf, it adds BIND -- don't use applyCaseSuf, it adds BIND
<Nom,Pl,dSg_rP3 Sg> => cn.pstems ! PossPl ;
<Nom> => glue (cn.pstems ! stem) suf ;
-- Other forms have non-empty poss. suffix and case ending
_ => applyCaseSuf suf cas cn stem casetable _ => applyCaseSuf suf cas cn stem casetable
} ; } ;
BaseNP : Type = { BaseNP : Type = {
agr : Person*Number ; agr : Person*Number ;
objdef : ObjDef ; objdef : ObjDef ;