From 14ad792ce70312e1e2d8a24efbb3ec0d26006e82 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 16 Apr 2015 07:03:29 +0000 Subject: [PATCH] two-place Dut.mkA to deal with unpredictable attributive form --- lib/src/dutch/NumeralDut.gf | 2 +- lib/src/dutch/ParadigmsDut.gf | 2 ++ lib/src/dutch/ResDut.gf | 27 ++++++++++++++++----------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/src/dutch/NumeralDut.gf b/lib/src/dutch/NumeralDut.gf index 4ff540569..64802ef09 100644 --- a/lib/src/dutch/NumeralDut.gf +++ b/lib/src/dutch/NumeralDut.gf @@ -92,7 +92,7 @@ lin let dritt = init dritte in table { NCard _ _ => drei ; - NOrd a => (regAdjective dritt).s ! Posit ! a + NOrd a => (reg2Adjective dritt dritte).s ! Posit ! a } ; mkDigit : (x1,_,_,x4 : Str) -> LinDigit = diff --git a/lib/src/dutch/ParadigmsDut.gf b/lib/src/dutch/ParadigmsDut.gf index 978b88554..4f38ec995 100644 --- a/lib/src/dutch/ParadigmsDut.gf +++ b/lib/src/dutch/ParadigmsDut.gf @@ -81,6 +81,7 @@ oper mkA : overload { mkA : (vers : Str) -> A ; -- regular adjective + mkA : (tweed,tweede : Str) -> A ; -- with deviant second form mkA : (goed,goede,goeds,beter,best : Str) -> A ; -- irregular adjective } ; @@ -245,6 +246,7 @@ oper mkA = overload { mkA : (vers : Str) -> A = \a -> lin A (regAdjective a) ; + mkA : (vers,verse : Str) -> A = \a,b -> lin A (reg2Adjective a b) ; mkA : (goed,goede,goeds,beter,best : Str) -> A = \a,b,c,d,e -> lin A (mkAdjective a b c d e) ; } ; diff --git a/lib/src/dutch/ResDut.gf b/lib/src/dutch/ResDut.gf index f85706cb2..28ac7fbef 100644 --- a/lib/src/dutch/ResDut.gf +++ b/lib/src/dutch/ResDut.gf @@ -80,16 +80,9 @@ resource ResDut = ParamX ** open Prelude, Predef in { Superl => table {APred => as ; AAttr => as + "e" ; AGen => as + "s"} ---- } } ; - regAdjective : Str -> Adjective = \s -> ---- - let - se : Str = case s of { - _ + ("er"|"en"|"ig") => s + "e" ; --- for unstressed adjective suffixes - _ + ("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" ) + c@? => b + v + c + c + "e" ; - _ => endCons s + "e" - } ; + + reg2Adjective : Str -> Str -> Adjective = \s,se -> + let ser : Str = case s of { _ + "r" => s + "der" ; _ => se + "r" @@ -101,7 +94,19 @@ resource ResDut = ParamX ** open Prelude, Predef in { in mkAdjective s se (s + "s") ser sst ; - param + regAdjective : Str -> Adjective = \s -> + let + se : Str = case s of { + _ + ("er"|"en"|"ig") => s + "e" ; --- for unstressed adjective suffixes + _ + ("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" ) + c@? => b + v + c + c + "e" ; + _ => endCons s + "e" + } ; + in reg2Adjective s se ; + +param VForm = VInf -- zijn | VPresSg1 -- ben