diff --git a/doc/browse/index.json b/doc/browse/index.json index 4337e7a8e..631af0c8a 100644 --- a/doc/browse/index.json +++ b/doc/browse/index.json @@ -400,7 +400,6 @@ "CatDut", "ExtDut", "GrammarDut", - "MorphoDut", "NumeralDut", "StructuralDut", "IdiomDut", diff --git a/src/dutch/ExtraDut.gf b/src/dutch/ExtraDut.gf index a4ab768ba..8758a93db 100644 --- a/src/dutch/ExtraDut.gf +++ b/src/dutch/ExtraDut.gf @@ -1,5 +1,5 @@ concrete ExtraDut of ExtraDutAbs = CatDut ** - open ResDut, MorphoDut, Coordination, Prelude, IrregDut, (P = ParadigmsDut), NounDut in + open ResDut, Coordination, Prelude, IrregDut, (P = ParadigmsDut), NounDut in { flags coding=utf8 ; @@ -109,7 +109,7 @@ lin inf : Str = vp.inf.p1 ; extra : Str = vp.ext in - lin NP (MorphoDut.mkNP (vp.s.s ! VInf ++ "van" ++ compl ++ inf ++ extra ) Utr Sg) ; + lin NP (mkNP (vp.s.s ! VInf ++ "van" ++ compl ++ inf ++ extra ) Utr Sg) ; lin diff --git a/src/dutch/IdiomDut.gf b/src/dutch/IdiomDut.gf index f17bbe286..ea9524fec 100644 --- a/src/dutch/IdiomDut.gf +++ b/src/dutch/IdiomDut.gf @@ -1,5 +1,5 @@ concrete IdiomDut of Idiom = CatDut ** - open MorphoDut, (P = ParadigmsDut), IrregDut, Prelude in { + open ResDut, (P = ParadigmsDut), IrregDut, Prelude in { flags optimize=all_subs ; diff --git a/src/dutch/MakeStructuralDut.gf b/src/dutch/MakeStructuralDut.gf index f96271aa2..08ce1c7b2 100644 --- a/src/dutch/MakeStructuralDut.gf +++ b/src/dutch/MakeStructuralDut.gf @@ -1,6 +1,6 @@ --# -path=.:../common:../abstract -resource MakeStructuralDut = open CatDut, ParadigmsDut, MorphoDut, Prelude in +resource MakeStructuralDut = open CatDut, ParadigmsDut, Prelude in { --{ -- diff --git a/src/dutch/MorphoDut.gf b/src/dutch/MorphoDut.gf deleted file mode 100644 index 3894a6577..000000000 --- a/src/dutch/MorphoDut.gf +++ /dev/null @@ -1,101 +0,0 @@ ---# -path=.:../common:../../prelude --- -----1 A Simple Dutman Resource Morphology ----- ----- Aarne Ranta & Harald Hammarström 2002 -- 2006 ----- ----- This resource morphology contains definitions needed in the resource ----- syntax. To build a lexicon, it is better to use $ParadigmsDut$, which ----- gives a higher-level access to this module. --- -resource MorphoDut = ResDut ** open Prelude, (Predef=Predef) in -{ -flags coding=utf8 ; ---{ --- --- flags optimize=all ; --- ---oper --- ----- For $StructuralDut$. --- --- mkPrep : Str -> Case -> Preposition = \s,c -> --- {s = s ; c = c} ; --- --- nameNounPhrase : {s : Case => Str} -> {s : Case => Str ; a : Agr} = \name -> --- name ** {a = agrP3 Sg} ; --- --- detLikeAdj : Number -> Str -> --- {s,sp : Gender => Case => Str ; n : Number ; a : Adjf} = \n,dies -> --- {s,sp = appAdj (regA dies) ! n ; n = n ; a = Weak} ; --- --- mkOrd : {s : Degree => AForm => Str} -> {s : AForm => Str} = \a -> --- {s = a.s ! Posit} ; --- ----- For $ParadigmsDut$. --- --- genitS : Str -> Str = \hund -> case hund of { --- _ + ("el" | "en" | "er") => hund + "s" ; --- _ + ("s" | "ß" | "sch" | "st" | "x" | "z") => hund + "es" ; --- _ => hund + variants {"s" ; "es"} --- } ; --- pluralN : Str -> Str = \hund -> case hund of { --- _ + ("el" | "er" | "e") => hund + "n" ; --- _ + "en" => hund ; --- _ => hund + "en" --- } ; --- dativE : Str -> Str = \hund -> case hund of { --- _ + ("el" | "en" | "er" | "e") => hund ; --- _ => variants {hund ; hund + "e"} --- } ; --- ----- Duden, p. 119 --- --- verbT : Str -> Str = \v -> case v of { --- _ + ("t" | "d") => v + "et" ; -- gründen, reden, betten --- _ + ("ch" | "k" | "p" | "t" | "g" | "b" | "d" | "f" | "s") + --- ("m" | "n") => v + "et" ; -- atmen, widmen, öffnen, rechnen --- _ => v + "t" -- lernen, lärmen, qualmen etc --- } ; --- --- verbST : Str -> Str = \v -> case v of { --- _ + ("s" | "ss" | "ß" | "sch" | "x" | "z") => v + "t" ; --- _ => v + "st" --- } ; --- --- stemVerb : Str -> Str = \v -> case v of { --- _ + ("rn" | "ln") => init v ; --- _ => Predef.tk 2 v --- } ; --- ----- For $Numeral$. --- --- LinDigit = {s : DForm => CardOrd => Str} ; --- --- cardOrd : Str -> Str -> CardOrd => Str = \drei,dritte -> --- table { --- NCard _ _ => drei ; --- NOrd a => (regA (init dritte)).s ! Posit ! a --- } ; --- --- cardReg : Str -> CardOrd => Str = \zehn -> --- cardOrd zehn (zehn + "te") ; --- --- mkDigit : (x1,_,_,x4 : Str) -> LinDigit = --- \drei,dreizehn,dreissig,dritte -> --- {s = table { --- DUnit => cardOrd drei dritte ; --- DTeen => cardReg dreizehn ; --- DTen => cardOrd dreissig (dreissig + "ste") --- } --- } ; --- --- regDigit : Str -> LinDigit = \vier -> --- mkDigit vier (vier + "zehn") (vier + "zig") (vier + "te") ; --- --- invNum : CardOrd = NCard Masc Nom ; --- ---} ; --- - -} diff --git a/src/dutch/ParadigmsDut.gf b/src/dutch/ParadigmsDut.gf index 25d65a8c4..540ad558f 100644 --- a/src/dutch/ParadigmsDut.gf +++ b/src/dutch/ParadigmsDut.gf @@ -327,169 +327,14 @@ oper } ; mkmaxV3 : V -> Prep -> Prep -> V3 = \v,c,d -> lin V3 (v ** {c2 = ; c3 = }) ; - - - - -----2 Definitions of paradigms ----- ----- The definitions should not bother the user of the API. So they are ----- hidden from the document. --- --- --- --- Gender = MorphoDut.Gender ; --- Case = MorphoDut.Case ; --- Number = MorphoDut.Number ; --- masculine = Masc ; --- feminine = Fem ; --- neuter = Neutr ; --- nominative = Nom ; --- accusative = Acc ; --- dative = Dat ; --- genitive = Gen ; --- singular = Sg ; --- plural = Pl ; --- --- mk6N a b c d e f g = MorphoDut.mkN a b c d e f g ** {lock_N = <>} ; --- --- regN : Str -> N = \hund -> case hund of { --- _ + "e" => mk6N hund hund hund hund (hund + "n") (hund + "n") Fem ; --- _ + ("ion" | "ung") => mk6N hund hund hund hund (hund + "en") (hund + "en") Fem ; --- _ + ("er" | "en" | "el") => mk6N hund hund hund (genitS hund) hund (pluralN hund) Masc ; --- _ => mk6N hund hund hund (genitS hund) (hund + "e") (pluralN hund) Masc --- } ; --- --- reg2N : (x1,x2 : Str) -> Gender -> N = \hund,hunde,g -> --- let --- hunds = genitS hund ; --- hundE = dativE hund ; --- hunden = pluralN hunde --- in --- case of { -- Duden p. 223 --- <_,_ + ("e" | "er"), Masc | Neutr> => -- I,IV --- mk6N hund hund hundE hunds hunde hunden g ; --- <_ + ("el"|"er"|"en"),_ + ("el"|"er"|"en"), Masc | Neutr> => -- II --- mk6N hund hund hund hunds hunde hunden g ; --- <_,_ + "s", Masc | Neutr> => -- V --- mk6N hund hund hund (hund + "s") hunde hunde g ; --- <_,_ + "en", Masc> => -- VI --- mk6N hund hunde hunde hunde hunde hunde g ; --- <_,_ + ("e" | "er"), Fem> => -- VII,VIII --- mk6N hund hund hund hund hunde hunden g ; --- <_,_ + ("n" | "s"), Fem> => -- IX,X --- mk6N hund hund hund hund hunde hunde g ; --- _ => {s = (regN hund).s ; g = g ; lock_N = <>} --- } ; --- --- mkN2 = overload { --- mkN2 : Str -> N2 = \s -> vonN2 (regN s) ; --- mkN2 : N -> N2 = vonN2 ; --- mkN2 : N -> Prep -> N2 = mmkN2 --- } ; --- --- --- mmkN2 : N -> Prep -> N2 = \n,p -> n ** {c2 = p ; lock_N2 = <>} ; --- vonN2 : N -> N2 = \n -> n ** {c2 = {s = "von" ; c = dative} ; lock_N2 = <>} ; --- --- mkN3 = \n,p,q -> n ** {c2 = p ; c3 = q ; lock_N3 = <>} ; --- --- mk2PN = \karolus, karoli -> --- {s = table {Gen => karoli ; _ => karolus} ; lock_PN = <>} ; --- regPN = \horst -> --- mk2PN horst (ifTok Tok (Predef.dp 1 horst) "s" horst (horst + "s")) ; --- --- mkPN = overload { --- mkPN : Str -> PN = regPN ; --- mkPN : (nom,gen : Str) -> PN = mk2PN ; --- mkPN : (nom,acc,dat,gen : Str) -> PN = \nom,acc,dat,gen -> --- {s = table {Nom => nom ; Acc => acc ; Dat => dat ; Gen => gen} ; lock_PN = <>} --- } ; --- --- mk2PN : (karolus, karoli : Str) -> PN ; -- karolus, karoli --- regPN : (Johann : Str) -> PN ; --- -- Johann, Johanns ; Johannes, Johannes --- --- --- mk3A : (gut,besser,beste : Str) -> A = \a,b,c -> --- let aa : Str = case a of { --- teu + "er" => teu + "r" ; --- mud + "e" => mud ; --- _ => a --- } in --- MorphoDut.mkA a aa b (init c) ** {lock_A = <>} ; --- mk4A : (gut,gute,besser,beste : Str) -> A = \a,aa,b,c -> --- MorphoDut.mkA a aa b (init c) ** {lock_A = <>} ; --- --- regA : Str -> A = \a -> case a of { --- teu + "er" => mk3A a (teu + "rer") (teu + "reste") ; --- _ + "e" => mk3A a (a + "r") (a + "ste") ; --- _ => mk3A a (a + "er") (a + "este") --- } ; - invarA = \s -> lin A {s = \\_,_ => s} ; ---- comparison mkA2 = \a,p -> lin A2 (a ** {c2 = p}) ; mkAdv s = {s = s ; lock_Adv = <>} ; --- --- mkPrep s c = {s = s ; c = c ; lock_Prep = <>} ; + noPrep = nomergePrep [] ; --- datPrep = mkPrep [] dative ; --- genPrep = mkPrep [] genitive ; --- von_Prep = mkPrep "von" dative ; --- zu_Prep = mkPrep "zu" dative ; --- --- mk6V geben gibt gib gab gaebe gegeben = --- let --- geb = stemVerb geben ; --- gebe = geb + "e" ; --- gibst = verbST (init gibt) ; --- gebt = verbT geb ; --- gabst = verbST gab ; --- gaben = pluralN gab ; --- gabt = verbT gab --- in --- MorphoDut.mkV --- geben gebe gibst gibt gebt gib gab gabst gaben gabt gaebe gegeben --- [] VHaben ** {lock_V = <>} ; --- --- regV fragen = --- let --- frag = stemVerb fragen ; --- fragt = verbT frag ; --- fragte = fragt + "e" ; --- gefragt = "ge" + fragt ; --- in --- mk6V fragen fragt (frag + "e") fragte fragte gefragt ; --- --- irregV singen singt sang saenge gesungen = --- let --- sing = stemVerb singen ; --- in --- mk6V singen singt sing sang saenge gesungen ; --- --- prefixV p v = MorphoDut.prefixV p v ** {lock_V = v.lock_V} ; --- --- habenV v = --- {s = v.s ; prefix = v.prefix ; lock_V = v.lock_V ; aux = VHaben ; vtype = v.vtype} ; --- seinV v = --- {s = v.s ; prefix = v.prefix ; lock_V = v.lock_V ; aux = VSein ; vtype = v.vtype} ; --- reflV v c = --- {s = v.s ; prefix = v.prefix ; lock_V = v.lock_V ; aux = VHaben ; vtype = VRefl c} ; --- --- no_geV v = let vs = v.s in { --- s = table { --- p@(VPastPart _) => Predef.drop 2 (vs ! p) ; --- p => vs ! p --- } ; --- prefix = v.prefix ; lock_V = v.lock_V ; aux = v.aux ; vtype = v.vtype --- } ; --- --- haben_V = MorphoDut.haben_V ** {lock_V = <>} ; --- sein_V = MorphoDut.sein_V ** {lock_V = <>} ; --- werden_V = MorphoDut.werden_V ** {lock_V = <>} ; --- + prepV2 : V -> Prep -> V2 ; prepV2 v c = lin V2 (v ** {c2 = }) ; --if it has prep, needed for word order (place of negation) diff --git a/src/translator/ExtensionsDut.gf b/src/translator/ExtensionsDut.gf index b0c1d350e..751b5f16a 100644 --- a/src/translator/ExtensionsDut.gf +++ b/src/translator/ExtensionsDut.gf @@ -1,7 +1,7 @@ --# -path=.:../abstract concrete ExtensionsDut of Extensions = - CatDut ** open MorphoDut, ResDut, ParadigmsDut, SyntaxDut, (E = ExtraDut), (G = GrammarDut), Prelude in { + CatDut ** open ResDut, ParadigmsDut, SyntaxDut, (E = ExtraDut), (G = GrammarDut), Prelude in { flags literal=Symb ; coding = utf8 ; diff --git a/src/translator/TranslateDut.gf b/src/translator/TranslateDut.gf index 2db8a86d0..4d41ae334 100644 --- a/src/translator/TranslateDut.gf +++ b/src/translator/TranslateDut.gf @@ -30,7 +30,7 @@ concrete TranslateDut of Translate = , WithoutVP, InOrderToVP, ByVP ], DictionaryDut ** -open MorphoDut, ResDut, ParadigmsDut, SyntaxDut, (E = ExtraDut), Prelude in { +open ResDut, ParadigmsDut, SyntaxDut, (E = ExtraDut), Prelude in { flags literal=Symb ;