diff --git a/lib/src/dutch/IdiomDut.gf b/lib/src/dutch/IdiomDut.gf index fffbed849..c57e50d5c 100644 --- a/lib/src/dutch/IdiomDut.gf +++ b/lib/src/dutch/IdiomDut.gf @@ -32,7 +32,7 @@ concrete IdiomDut of Idiom = CatDut ** } } ; - ProgrVP = insertAdv "even" ; ---- + ProgrVP vp = insertAdv ("aan" ++ "het" ++ useInfVP True vp) (predV zijn_V) ; ImpPl1 vp = let diff --git a/lib/src/dutch/LexiconDut.gf b/lib/src/dutch/LexiconDut.gf index bd6aa862f..ba72deb84 100644 --- a/lib/src/dutch/LexiconDut.gf +++ b/lib/src/dutch/LexiconDut.gf @@ -157,7 +157,7 @@ garden_N = mkN "tuin" utrum ; girl_N = mkN "meisje" neuter ; glove_N = mkN "handschoen" utrum ; gold_N = mkN "goud" neuter ; -good_A = mkA "goed" ; +good_A = mkA "goed" "goede" "goeds" "beter" "best" ; grammar_N = mkN "grammatica" utrum ; grass_N = mkN "gras" neuter ; green_A = mkA "groen" ; @@ -176,12 +176,12 @@ hit_V2 = mkV2 "raken" ; hold_V2 = mkV2 houden_V ; horn_N = mkN "hoorn" utrum ; horse_N = mkN "paard" neuter ; -hot_A = mkA "hot" ; +hot_A = mkA "heet" ; hunt_V2 = mkV2 "jagen" ; husband_N = mkN "man" utrum ; ice_N = mkN "ijs" neuter ; important_A = mkA "belangrijk" ; -industry_N = mkN "industrie" utrum ; +industry_N = mkN "industrie" "industrieën" utrum ; iron_N = mkN "ijzer" neuter ; jump_V = springen_V ; kill_V2 = mkV2 "dooden" ; @@ -262,7 +262,7 @@ round_A = mkA "rond" ; rub_V2 = mkV2 wrijven_V ; rubber_N = mkN "rubberen" utrum ; rule_N = mkN "regel" utrum ; -run_V = lopen_V ; +run_V = zijnV (mkV "rennen") ; salt_N = mkN "zout" neuter ; sand_N = mkN "zand" neuter ; school_N = mkN "school" utrum ; @@ -339,7 +339,7 @@ wait_V2 = mkV2 "wachen" ; walk_V = mkV "lopen" ; war_N = mkN "oorlog" utrum ; wash_V2 = mkV2 wassen_V ; -watch_V2 = mkV2 "horlogeen" ; +watch_V2 = mkV2 kijken_V (mkPrep "naar") ; water_N = mkN "water" neuter ; wet_A = mkA "nat" ; white_A = mkA "wit" ; diff --git a/lib/src/dutch/NumeralDut.gf b/lib/src/dutch/NumeralDut.gf index c1b3f20ea..dbe814d5f 100644 --- a/lib/src/dutch/NumeralDut.gf +++ b/lib/src/dutch/NumeralDut.gf @@ -1,4 +1,4 @@ -concrete NumeralDut of Numeral = CatDut ** open ResDut in { +concrete NumeralDut of Numeral = CatDut ** open ResDut, Prelude in { flags optimize = all_subs ; @@ -11,11 +11,11 @@ lincat lin num x = x ; - n2 = mkDigit "twee" "twaalf" "twentig" "tweede" ; + n2 = mkDigit "twee" "twaalf" "twintig" "tweede" ; n3 = mkDigit "drie" "dertien" "dertig" "derde" ; n4 = mkDigit "vier" "veertien" "veertig" "vierde" ; - n5 = mkDigit "vijf" "vijftien" "vijftig" "vifjde" ; - n6 = mkDigit "zes" "zestien" "zestig" "zeste" ; + n5 = mkDigit "vijf" "vijftien" "vijftig" "vijfde" ; + n6 = mkDigit "zes" "zestien" "zestig" "zesde" ; n7 = mkDigit "zeven" "zeventien" "zeventig" "zevende" ; n8 = mkDigit "acht" "achttien" "tachtig" "achtste" ; n9 = mkDigit "negen" "negentien" "negentig" "negende" ; @@ -36,12 +36,12 @@ lin pot1plus d e = {s = \\g => e.s ! DUnit ! invNum ++ "en" ++ d.s ! DTen ! g; n = Pl} ; pot1as2 n = n ; pot2 d = - {s = \\g => d.s ! DUnit ! invNum ++ cardOrd "honderd" "honderde" ! g ; n = Pl} ; + {s = \\g => d.s ! DUnit ! invNum ++ cardOrd "honderd" "honderdste" ! g ; n = Pl} ; pot2plus d e = {s = \\g => d.s ! DUnit ! invNum ++ "duizend" ++ e.s ! g ; n = Pl} ; pot2as3 n = n ; pot3 n = - {s = \\g => n.s ! invNum ++ cardOrd "duizend" "duizende" ! g ; n = Pl} ; + {s = \\g => n.s ! invNum ++ cardOrd "duizend" "duizendste" ! g ; n = Pl} ; pot3plus n m = {s = \\g => n.s ! invNum ++ "duizend" ++ m.s ! g ; n = Pl} ; @@ -85,9 +85,10 @@ lin LinDigit = {s : DForm => CardOrd => Str} ; cardOrd : Str -> Str -> CardOrd => Str = \drei,dritte -> + let dritt = init dritte in table { NCard _ _ => drei ; - NOrd a => (regAdjective dritte).s ! Posit ! a + NOrd a => (regAdjective dritt).s ! Posit ! a } ; mkDigit : (x1,_,_,x4 : Str) -> LinDigit = diff --git a/lib/src/dutch/ResDut.gf b/lib/src/dutch/ResDut.gf index de7ecbdc6..cd8ea1a28 100644 --- a/lib/src/dutch/ResDut.gf +++ b/lib/src/dutch/ResDut.gf @@ -23,8 +23,10 @@ resource ResDut = ParamX ** open Prelude in { mkNoun : (_,_ : Str) -> Gender -> Noun = \sg,pl,g -> { s = table { - NF Sg _ => sg ; - NF Pl _ => pl + NF Sg Nom => sg ; + NF Sg Gen => add_s sg ; + NF Pl Nom => pl ; + NF Pl Gen => add_s pl } ; g = g } ; @@ -37,7 +39,8 @@ resource ResDut = ParamX ** open Prelude in { mkNoun s (s + "s") Utr ; _ + ("i"|"u") => mkNoun s (endCons s + "en") Utr ; b + v@("aa"|"ee"|"oo"|"uu") + c@? => mkNoun s (b + shortVoc v c + "en") Utr ; - b + ("ei"|"eu"|"oe"|"ou"|"ie"|"ij"|"ui") + ? => mkNoun s (endCons s + "en") Utr ; + b + ("ei"|"eu"|"oe"|"ou"|"ie"|"ij"|"ui") + ? => mkNoun s (endCons s + "en") Utr ; + _ + "ie" => mkNoun s (s + "ën") Utr ; b + v@("a"|"e"|"i"|"o"|"u" ) + c@? => mkNoun s (b + v + c + c + "en") Utr ; _ => mkNoun s (endCons s + "en") Utr } ; @@ -58,6 +61,11 @@ resource ResDut = ParamX ** open Prelude in { dupCons : pattern Str = #("b"|"d"|"f"|"g"|"k"|"l"|"m"|"n"|"p"|"r"|"s"|"t") ; + add_s : Str -> Str = \s -> case s of { + _ + "s" => s ; + _ => s + "s" + } ; + param AForm = APred | AAttr | AGen ; diff --git a/lib/src/dutch/SentenceDut.gf b/lib/src/dutch/SentenceDut.gf index 6c006949a..664d3fce6 100644 --- a/lib/src/dutch/SentenceDut.gf +++ b/lib/src/dutch/SentenceDut.gf @@ -12,8 +12,9 @@ concrete SentenceDut of Sentence = CatDut ** open ResDut, Prelude in { s = \\pol,im => let ps = case im of { - ImpF n True => ; - ImpF n False => ---- also plural? + ImpF Pl _ => ; + ImpF Sg True => ; + ImpF Sg False => } ; agr = {g = Utr ; n = ps.p3 ; p = P2} ; ---- P2? -- g does not matter verb = vp.s.s ! ps.p1 ; diff --git a/lib/src/dutch/StructuralDut.gf b/lib/src/dutch/StructuralDut.gf index 5c8e01b92..efb45b3e1 100644 --- a/lib/src/dutch/StructuralDut.gf +++ b/lib/src/dutch/StructuralDut.gf @@ -19,7 +19,7 @@ concrete StructuralDut of Structural = CatDut, Prelude ** before_Prep = mkPrep "voor" ; behind_Prep = mkPrep "achter" ; between_Prep = mkPrep "tussen" ; - both7and_DConj = {s1 = "zowel" ; s2 = "en" ; n = Pl} ; + both7and_DConj = {s1 = "zowel" ; s2 = "als" ; n = Pl} ; but_PConj = ss "maar" ; by8agent_Prep = mkPrep "door" ; by8means_Prep = mkPrep "met" ; @@ -45,9 +45,9 @@ concrete StructuralDut of Structural = CatDut, Prelude ** in_Prep = ss "in" ; it_Pron = mkPronoun "het" "het" "zijn" "het" "het" "zijn" "zijne" Neutr Sg P3 ; - less_CAdv = X.mkCAdv "minder" "als" ; + less_CAdv = X.mkCAdv "minder" "dan" ; many_Det = mkDet "veel" "veel" Pl ; - more_CAdv = X.mkCAdv "meer" "als" ; + more_CAdv = X.mkCAdv "meer" "dan" ; most_Predet = mkPredet "meeste" "meeste" ; much_Det = mkDet "veel" "veel" Sg ; @@ -62,7 +62,7 @@ concrete StructuralDut of Structural = CatDut, Prelude ** please_Voc = ss "alsjeblieft" ; possess_Prep = mkPrep "van" ; quite_Adv = ss "heel" ; - she_Pron = mkPronoun "ze" "haar" "haar" "zij" "haar" "haar" "haare" Utr Sg P3 ; + she_Pron = mkPronoun "ze" "haar" "haar" "zij" "haar" "haar" "hare" Utr Sg P3 ; so_AdA = ss "zo" ; somebody_NP = mkNP "iemand" Utr Sg ;