From 5e4d2e654d9dbe0e0f4d2bf43812424be553245d Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Tue, 5 Jun 2018 14:20:09 +0200 Subject: [PATCH] (Dut) Update ExtensionsDut and TranslateDut --- src/translator/ExtensionsDut.gf | 48 +++++++++++++++------------------ src/translator/TranslateDut.gf | 2 +- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/src/translator/ExtensionsDut.gf b/src/translator/ExtensionsDut.gf index 751b5f16a..82aaccabc 100644 --- a/src/translator/ExtensionsDut.gf +++ b/src/translator/ExtensionsDut.gf @@ -1,7 +1,7 @@ --# -path=.:../abstract concrete ExtensionsDut of Extensions = - CatDut ** open ResDut, ParadigmsDut, SyntaxDut, (E = ExtraDut), (G = GrammarDut), Prelude in { + CatDut ** open ResDut, ParadigmsDut, SyntaxDut, (E = ExtraDut), ExtendDut, (G = GrammarDut), Prelude in { flags literal=Symb ; coding = utf8 ; @@ -70,14 +70,13 @@ lin } ; CompoundAP noun adj = { - s = \\af => glue (noun.s ! NF Sg Nom) (adj.s ! Posit ! af) ; + s = \\agr,af => glue (noun.s ! NF Sg Nom) (adj.s ! Posit ! af) ; isPre = True } ; - GerundNP vp = { -- infinitive: Bier zu trinken - s = \\c => useInfVP False vp ; - a = agrP3 Sg ; - isPron = False + GerundNP vp = heavyNP { -- infinitive: Bier zu trinken + s = \\c => useInfVP False vp ! agrP3 Sg ; + a = agrP3 Sg } ; GerundAdv vp = { -- Bier trinkend @@ -85,33 +84,31 @@ lin } ; WithoutVP vp = { -- ohne Bier zu trinken - s = "zonder" ++ useInfVP False vp + s = "zonder" ++ useInfVP False vp ! agrP3 Sg } ; InOrderToVP vp = { -- um Bier zu trinken - s = "om" ++ useInfVP False vp + s = "om" ++ useInfVP False vp ! agrP3 Sg } ; ByVP vp = { ---- durch Bier zu drinken - s = "door" ++ useInfVP False vp ---- + s = "door" ++ useInfVP False vp ! agrP3 Sg ---- } ; - PresPartAP vp = { - s = \\af => vp.n0 ! agrP3 Sg ++ vp.n2 ! agrP3 Sg ++ vp.a2 ++ vp.a1 ! Pos ++ vp.inf.p1 ++ vp.ext ++ vp.s.s ! VPresPart ; - isPre = True - } ; - - PastPartAP vp = { - s = \\af => vp.n0 ! agrP3 Sg ++ vp.n2 ! agrP3 Sg ++ vp.a2 ++ vp.a1 ! Pos ++ vp.inf.p1 ++ vp.ext ++ vp.s.s ! VPerf ; ---- agr inflection? - isPre = True - } ; + PastPartAP = ExtendDut.PastPartAP ; + + PresPartAP vp = { --# notpresent + s = \\agr,af => let aForm = case vp.isHeavy of { --# notpresent + True => APred ; --# notpresent + False => af } ; --# notpresent + in (infClause [] agr vp aForm).s ! Pres ! Simul ! Pos ! Sub ; --# notpresent + isPre = notB vp.isHeavy ; --# notpresent + } ; --# notpresent PastPartAgentAP vp np = - let agent = (SyntaxDut.mkAdv (mkPrep "door") (lin NP np)).s - in { - s = \\af => vp.n0 ! agrP3 Sg ++ vp.n2 ! agrP3 Sg ++ vp.a2 ++ vp.a1 ! Pos ++ vp.inf.p1 ++ vp.ext ++ vp.s.s ! VPerf ; ---- agr inflection? - isPre = True - } ; + let agent = (SyntaxDut.mkAdv (mkPrep "door") (lin NP np)).s ; + ap = ExtendDut.PastPartAP vp ; + in ap ** { s = \\agr,af => ap.s ! agr ! af ++ agent } ; {- @@ -139,16 +136,15 @@ lin } ; -} CompS s = {s = \\_ => "dat" ++ s.s ! Main} ; -- S -> Comp - CompVP ant p vp = {s = \\_ => useInfVP True vp} ; -- VP -> Comp + CompVP ant p vp = {s = useInfVP True vp} ; -- VP -> Comp lin that_RP = which_RP ; UttAdV adv = adv ; - ApposNP np1 np2 = { + ApposNP np1 np2 = np1 ** { s = \\c => np1.s ! c ++ SOFT_BIND ++ "," ++ np2.s ! NPNom ; - a = np1.a ; isPron = False } ; diff --git a/src/translator/TranslateDut.gf b/src/translator/TranslateDut.gf index 4d41ae334..e1e6ddc43 100644 --- a/src/translator/TranslateDut.gf +++ b/src/translator/TranslateDut.gf @@ -30,7 +30,7 @@ concrete TranslateDut of Translate = , WithoutVP, InOrderToVP, ByVP ], DictionaryDut ** -open ResDut, ParadigmsDut, SyntaxDut, (E = ExtraDut), Prelude in { +open ResDut, ParadigmsDut, SyntaxDut, (E = ExtendDut), Prelude in { flags literal=Symb ;