diff --git a/src/hungarian/ParadigmsHun.gf b/src/hungarian/ParadigmsHun.gf index 93e457b42..b382baf3b 100644 --- a/src/hungarian/ParadigmsHun.gf +++ b/src/hungarian/ParadigmsHun.gf @@ -151,7 +151,8 @@ oper mkA = overload { mkA : (sgnom : Str) -> A = \s -> lin A (mkAdj s) ; - mkA : (sgnom,sgacc : Str) -> A = \s,_ -> lin A (mkAdj s) ; -- TODO + mkA : (sgnom,sgacc : Str) -> A = \n,a -> + lin A (mkAdj2 n (regNounNomAcc n a)) ; -- mkA : (kiga : Str) -> (jakda : A) -> A = \kiga,jakda -> -- jakda ** {s = \\af => kiga ++ jakda.s ! af} ; } ; diff --git a/src/hungarian/ResHun.gf b/src/hungarian/ResHun.gf index 0ff69be26..55df9a1c3 100644 --- a/src/hungarian/ResHun.gf +++ b/src/hungarian/ResHun.gf @@ -320,14 +320,16 @@ oper c2 : Adposition ; } ; - mkAdj : Str -> Adjective = \sgnom -> { - s = \\d,nc => - let adj = case d of { - Compar => comparAdj sgnom ; - Superl => "leg" + comparAdj sgnom ; - _ => sgnom } ; - in (mkNoun adj).s ! nc ; - h = (mkNoun sgnom).h ; + mkAdj : Str -> Adjective = \sgnom -> mkAdj2 sgnom (mkNoun sgnom) ; + + + mkAdj2 : Str -> Noun -> Adjective = \sgnom,adjAsNoun -> adjAsNoun ** { + s = \\d => + let adj : Noun = case d of { + Compar => mkNoun (comparAdj sgnom) ; + Superl => mkNoun ("leg" + comparAdj sgnom) ; + _ => adjAsNoun } ; + in adj.s ; } ; invarAP : Str -> AdjPhrase = \s -> emptyAP ** {s = \\_,_ => s} ;