diff --git a/lib/src/translator/ExtensionsEng.gf b/lib/src/translator/ExtensionsEng.gf index c28fd84af..37c94032a 100644 --- a/lib/src/translator/ExtensionsEng.gf +++ b/lib/src/translator/ExtensionsEng.gf @@ -79,7 +79,7 @@ lin } ; PastPartAgentAP vp np = { s = \\a => vp.ad ! a ++ vp.ptp ++ vp.c2 ++ vp.s2 ! a ++ "by" ++ np.s ! NPAcc ++ vp.ext ; - isPre = vp.isSimple -- depends on whether there are complements + isPre = False } ; PositAdVAdj a = {s = a.s ! AAdv} ; diff --git a/lib/src/translator/ExtensionsFin.gf b/lib/src/translator/ExtensionsFin.gf index 3196858d6..5401c69f3 100644 --- a/lib/src/translator/ExtensionsFin.gf +++ b/lib/src/translator/ExtensionsFin.gf @@ -69,9 +69,27 @@ lin isPron = np1.isPron ; isNeg = np1.isNeg } ; - GerundN v = mkN (lin V v) ; + GerundNP vp = { + s = \\c => vp.s2 ! True ! Pos ! agrP3 Sg ++ (mkNP the_Det (lin N (sverb2snoun vp.s))).s ! c ++ vp.adv ! Pos ++ vp.ext ; + a = agrP3 Sg ; + isPron = False ; isNeg = False + } ; +-- sen sanominen suoraan että... +---- se --> sen +---- lost agreement, lost genitive, lost possessive +---- minun saamiseni mukaan - GerundAP v = {s = \\_ => (snoun2nounSep (sverb2nounPresPartAct v)).s} ; + GerundAP vp = {s = \\f => vp.s2 ! True ! Pos ! agrP3 Sg ++ (snoun2nounSep (sverb2nounPresPartAct vp.s)).s ! f ++ vp.adv ! Pos ++ vp.ext} ; + + GerundAdv vp = {s = (sverb2verbSep vp.s).s ! Inf Inf2Instr ++ vp.s2 ! True ! Pos ! agrP3 Sg ++ vp.adv ! Pos ++ vp.ext} ; -- nukkuen + +-- tänään löydetty + PastPartAP vp = {s = \\_,f => vp.s2 ! True ! Pos ! agrP3 Sg ++ vp.adv ! Pos ++ (sverb2verbSep vp.s).s ! PastPartPass (AN f) ++ vp.ext} ; + +-- miehen tänään löytämä + PastPartAgentAP vp np = + {s = \\_,f => np.s ! NPCase Gen ++ vp.s2 ! True ! Pos ! agrP3 Sg ++ vp.adv ! Pos ++ (sverb2verbSep vp.s).s ! AgentPart (AN f) ++ vp.ext} ; + OrdCompar a = snoun2nounSep {s = \\nc => a.s ! Compar ! SAN nc ; h = a.h} ; diff --git a/lib/src/translator/TranslateFin.gf b/lib/src/translator/TranslateFin.gf index 00a5d5de7..9e97551be 100644 --- a/lib/src/translator/TranslateFin.gf +++ b/lib/src/translator/TranslateFin.gf @@ -13,7 +13,8 @@ concrete TranslateFin of Translate = ], ConjunctionFin, VerbFin - [ - UseCopula, + UseCopula, -- not used + CompAP, -- variant Nom/Part PassV2 -- generalized in Extensions ], AdverbFin, @@ -26,8 +27,11 @@ concrete TranslateFin of Translate = DocumentationFin, ChunkFin, - ExtensionsFin [CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP, - DirectComplVS, DirectComplVQ, FocusObjS], + ExtensionsFin [ + CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP, + DirectComplVS, DirectComplVQ, FocusObjS + ,PastPartAP, PastPartAgentAP, PresPartAP, GerundNP, GerundAdv + ], DictionaryFin ** @@ -35,5 +39,15 @@ open MorphoFin, ResFin, ParadigmsFin, SyntaxFin, StemFin, (E = ExtraFin), (G = G flags literal=Symb ; coding = utf8 ; + +lin + CompAP ap = G.CompAP ap + | + {s = \\agr => + let + n = complNumAgr agr ; + c = Part ; + in ap.s ! False ! (NCase n c) + } ; }