diff --git a/src/hungarian/ResHun.gf b/src/hungarian/ResHun.gf index 57ae10a10..05d72142a 100644 --- a/src/hungarian/ResHun.gf +++ b/src/hungarian/ResHun.gf @@ -23,15 +23,17 @@ oper \\n,c => caseFromStem (\a,b -> a+b) (regNounNomAcc no ac) c n ; caseFromStem : (Str->Str->Str) -> Noun -> Case -> Number -> Str = \bind,cn,cas,n -> + let applyCase' : NumCaseStem -> Str = applyCase bind cas cn in case of { => cn.s ! SgNom ; => bind (cn.s ! SgAccStem) "t" ; => cn.s ! SgSup ; => cn.s ! PlAcc ; => cn.s ! PlStem ; - => bind (cn.s ! SgInsStem) (endCase cas ! cn.h) ; + => applyCase' SgInsStem ; => bind (bind (cn.s ! PlStem) "k") (endCase cas ! cn.h) ; - _ => applyOblCase bind (endCase cas) n cn + => applyCase' SgStem ; + => applyCase' PlStem } ; BaseNP : Type = { @@ -170,11 +172,8 @@ oper applyAdp : Adposition -> NounPhrase -> Str = \adp,np -> adp.pr ++ np.s ! adp.c ++ adp.s ; - applyOblCase : (Str->Str->Str) -> HarmForms -> Number -> Noun -> Str = - \bind,adp,n,np -> - let stem : NumCaseStem = case n of { - Sg => SgStem ; Pl => PlStem } ; - in bind (np.s ! stem) (adp ! np.h) ; + applyCase : (Str->Str->Str) -> Case -> Noun -> NumCaseStem -> Str = + \bind,cas,cn,stem -> bind (cn.s ! stem) (endCase cas ! cn.h) ; ------------------ -- Conj