diff --git a/lib/src/bulgarian/ResBul.gf b/lib/src/bulgarian/ResBul.gf index 59d414f68..9b5a6145b 100644 --- a/lib/src/bulgarian/ResBul.gf +++ b/lib/src/bulgarian/ResBul.gf @@ -190,6 +190,13 @@ resource ResBul = ParamX ** open Prelude, Predef in { NFVocative => aform (gennum g Sg) Indef (RObj Acc) } ; + aform2gennum : AForm -> GenNum + = \aform -> case aform of { + ASg g _ => GSg g ; + ASgMascDefNom => GSg Masc ; + _ => GPl + } ; + indefNForm : NForm -> NForm = \nf -> case nf of { NF n spec => NF n Indef ; diff --git a/lib/src/translator/ExtensionsBul.gf b/lib/src/translator/ExtensionsBul.gf index 25499b54a..b271c2d52 100644 --- a/lib/src/translator/ExtensionsBul.gf +++ b/lib/src/translator/ExtensionsBul.gf @@ -51,22 +51,25 @@ lin }; g = ANeut } ; - - GerundAP v = { - s = \\aform => v.s ! Imperf ! VPresPart aform ++ - case v.vtype of { - VMedial c => reflClitics ! c; - _ => [] - }; - adv = v.s ! Imperf ! VPresPart (ASg Neut Indef); - isPre = True - } ; - PastPartAP v = { - s = \\aform => v.s ! Perf ! VPassive aform ; - adv = v.s ! Perf ! VPassive (ASg Neut Indef); - isPre = True - } ; + PresPartAP vp = + let ap : AForm => Str + = \\aform => vp.ad.s ++ + vp.s ! Imperf ! VPresPart aform ++ + case vp.vtype of { + VMedial c => reflClitics ! c; + _ => [] + } ++ + vp.compl ! {gn=aform2gennum aform; p=P3} ; + in {s = ap; adv = ap ! (ASg Neut Indef); isPre = True} ; + + PastPartAP vp = + let ap : AForm => Str + = \\aform => vp.ad.s ++ + vp.s ! Perf ! VPassive aform ++ + vp.compl1 ! {gn=aform2gennum aform; p=P3} ++ + vp.compl2 ! {gn=aform2gennum aform; p=P3} + in {s = ap; adv = ap ! ASg Neut Indef; isPre = True} ; PositAdVAdj a = {s = a.adv} ; diff --git a/lib/src/translator/TranslateBul.gf b/lib/src/translator/TranslateBul.gf index cfc4dd5f2..bf0377134 100644 --- a/lib/src/translator/TranslateBul.gf +++ b/lib/src/translator/TranslateBul.gf @@ -24,7 +24,8 @@ concrete TranslateBul of Translate = DocumentationBul, ChunkBul, - ExtensionsBul [CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash], + ExtensionsBul [CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, + PresPartAP, PastPartAP, PassVPSlash, PassAgentVPSlash], DictionaryBul ** open MorphoBul, ResBul, ParadigmsBul, SyntaxBul, CommonScand, (E = ExtraBul), Prelude in {