mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
(Hun) Fix bug in plural nouns possessed by P3 Sg possessor
This commit is contained in:
@@ -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 ;
|
||||||
|
|||||||
Reference in New Issue
Block a user