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