From 9922d750dbe49bfb9b83a8978ffe9449d000ee31 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sun, 28 Jun 2020 12:36:11 +0200 Subject: [PATCH] (Hun) Handle back harmony words that end in i Also use multiword split just in case some grammar uses these opers directly. --- src/hungarian/NounMorphoHun.gf | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/hungarian/NounMorphoHun.gf b/src/hungarian/NounMorphoHun.gf index fb11685cb..e7a4f3a8e 100644 --- a/src/hungarian/NounMorphoHun.gf +++ b/src/hungarian/NounMorphoHun.gf @@ -407,6 +407,8 @@ oper front_rounded : pattern Str = #("ö" | "ő" | "ü" | "ű") ; + i : pattern Str = #("i"|"í") ; + -- front and back rounded -- rounded : pattern Str = #("ö" | "ő" | "ü" | "ű" | "o" | "ó" | "u" | "ú") @@ -475,12 +477,11 @@ oper -- Function to get a harmony from any string getHarm : Str -> Harm = \s -> - let lastWord : Str = case s of { - x + " " + y => y ; - _ => s } ; + let lastWord : Str = (splitMultiword s).p2 ; -- only include last word in case lastWord of { - _ + #back + _ => H_a ; - _ + #front_rounded + (#c|"") + (#c|"") => H_o ; + _ + #back + (#c|#i)* => H_a ; -- papír, gumi, zokni: back harmony + -- NB. wrong harmony for farmer. + _ + #front_rounded + (#c)* => H_o ; -- matches nő, not rövid. _ => H_e } ;