diff --git a/src/hungarian/NounMorphoHun.gf b/src/hungarian/NounMorphoHun.gf index b09c33c68..86d7c875b 100644 --- a/src/hungarian/NounMorphoHun.gf +++ b/src/hungarian/NounMorphoHun.gf @@ -45,8 +45,6 @@ oper --Handles words like "ló, lé, kő" which are "lovak, levek, kövek" in plural. -- "lovon" instead of "lón" fixed but that gives the following problems: - --TODO: special case "lén" not "leven" - --TODO: also "kövön" not "köven", but that is due to H_e, which is needed for "köveket" so it's conflicting dLó : Str -> Noun = \ló -> let lo = shorten ló ; lov = lo + "v" ; @@ -75,7 +73,6 @@ oper --Handles words like "tó, hó"" which are "tavak, havak" in plural. --(Since I only have these examples for now I do a simplified case with ó, a) -- "tavon" instead of "tón" case fixed, works automatically with the Sup rules - --TODO: szó special case which fulfills the plural cases but not the or case ("szót" not "szavat") dTó : Str -> Noun = \tó -> let t = init tó ; tav = t + "av" ; @@ -154,8 +151,10 @@ oper -- and decides which (non-smart) paradigm is the most likely to match. regNoun : Str -> Noun = \sgnom -> case sgnom of { _ + "a"|"e" => dAlma sgnom ; + c1@(? | #digraph | #trigraph) + ("á"|"é") + c2@(? | #digraph | #trigraph) => mkNoun sgnom; _ + ("á"|"é") + ? => dMadár sgnom ; - _ + ("ó"|"ő") => dLó sgnom ; + _ + "é"|"ő"|"ű" => dLó sgnom ; + _ + "ó" => dTó sgnom ; _ + "alom" => dFarok sgnom ; _ + "elem" => dMajom sgnom ; @@ -165,6 +164,11 @@ oper _ => mkNoun sgnom -- Fall back to the regular paradigm } ; +--TODO: Special cases (enter these words manually to not complicate the paradigms): +--dTó: szó special case which fulfills the plural cases but not the or case ("szót" not "szavat") +--dLó: special case "lén" not "leven" +--dLó: also "kövön" not "köven", but that is due to H_e, which is needed for "köveket" so it's conflicting + -------------------------------------------------------------------------------- -- Following code by EG in 2009 (?), comments and some additions by IL 2020