From 233f7feb78a6d5816c0df22862222c70e36bef28 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 11 Jan 2018 16:13:26 +0100 Subject: [PATCH] =?UTF-8?q?fix=20bugs=20in=20regAdjective=20and=20mkStem:?= =?UTF-8?q?=20now=20inflects=20correctly=20adjectives=20like=20blauw,=20an?= =?UTF-8?q?d=20verbs=20with=20=E2=89=A52=20syllables=20in=20the=20stem=20(?= =?UTF-8?q?ademen,=20rekenen,=20schakelen,=20...)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dutch/ResDut.gf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/dutch/ResDut.gf b/src/dutch/ResDut.gf index 1aff9fbb9..c88c1f881 100644 --- a/src/dutch/ResDut.gf +++ b/src/dutch/ResDut.gf @@ -101,6 +101,7 @@ resource ResDut = ParamX ** open Prelude, Predef in { _ + ("i"|"u"|"ij") => endCons s + "e" ; b + v@("aa"|"ee"|"oo"|"uu") + c@? => b + shortVoc v c + "e" ; b + ("ei"|"eu"|"oe"|"ou"|"ie"|"ij"|"ui") + ? => endCons s + "e" ; + b + v@("a"|"e"|"i"|"o"|"u" ) + "w" => s + "e" ; -- to prevent *blauwwe -- does this happen to other end consonants? b + v@("a"|"e"|"i"|"o"|"u" ) + c@? => b + v + c + c + "e" ; _ => endCons s + "e" } ; @@ -200,6 +201,7 @@ param -- If a stem ends on a double consonant then one of them disappears -- If a stem ends on a consonant but that consonant has exactly 1 vowel before it -- then we have to double this vowel + -- Only if it's a monosyllable stem! mkStem : Str -> Str =\lopen -> let lop = tk 2 lopen ; --drop the -en @@ -216,9 +218,10 @@ param werk = lop -- no changes to stem in - case lop of { + case lop of { -- stress is on the first vowel, so latter one doesn't double. + _+ #vowel + #consonant + #vowel + _ => lop ; -- this catches ademen, rekenen, schakelen etc. / IL2018 #vowel + #consonant => loop ; - _+ #consonant + #vowel + #consonant => loop ; + _+ #consonant + #vowel + #consonant => loop ; -- stressed vowel doubles. _+ ("bb" | "dd" | "ff" | "gg" | "kk" | "ll" | "mm" | "nn" | "pp" | "rr" | "ss" | "tt") => zeg ; _+ #consonant + ("v"|"z") => kerf ;