diff --git a/src/russian/ExtendRus.gf b/src/russian/ExtendRus.gf index 35929b063..8ebc302bd 100644 --- a/src/russian/ExtendRus.gf +++ b/src/russian/ExtendRus.gf @@ -175,19 +175,30 @@ lin } ; -- : VPSlash -> VP ; -- be forced to sleep - PassVPSlash vps = vps ** { + PassVPSlash vps = case vps.verb.asp of { + Perfective => vps ** { verb=copulaEll ; - compl=\\p,a => vps.compl ! p ! a ++ shortPastPassPart vps.verb (agrGenNum a) ++ vps.c.s + compl=\\p,a => shortPastPassPart vps.verb (agrGenNum a) ++ vps.compl ! p ! a ++ vps.c.s } ; + Imperfective => vps ** { + verb=(passivate vps.verb); + } + }; + -- PresPartAP : VP -> AP ; -- (the man) looking at Mary -- use PlP2 + "ый" -- : VPSlash -> VP - PassAgentVPSlash vps np = - vps ** { - verb=copulaEll ; - compl=\\p,a => vps.compl ! p ! a ++ shortPastPassPart vps.verb (agrGenNum a) ++ vps.c.s ++ np.s ! Ins + PassAgentVPSlash vps np = case vps.verb.asp of { + Perfective => vps ** { + verb=copulaEll ; + compl=\\p,a => shortPastPassPart vps.verb (agrGenNum a) ++ vps.c.s ++ vps.compl ! p ! a ++ np.s ! Ins } ; + Imperfective => vps ** { + verb=(passivate vps.verb); + compl=\\p,a => vps.compl ! p ! a ++ np.s ! Ins + } + }; -- : Pron -> Pron ; -- unstressed subject pronoun becomes empty: "am tired" diff --git a/src/russian/ParadigmsRus.gf b/src/russian/ParadigmsRus.gf index 8e3603e9c..2717ee0ee 100644 --- a/src/russian/ParadigmsRus.gf +++ b/src/russian/ParadigmsRus.gf @@ -371,6 +371,17 @@ oper } ; } ; + + compoundPN : (PN -> Str -> PN) + = \pn, adv -> pn ** { + s = \\c => pn.s ! c ++ adv + } ; + + compoundLN : (LN -> Str -> LN) + = \ln, adv -> ln ** { + s = \\c => ln.s ! c ++ adv + } ; + mkN2 = overload { mkN2 : N -> N2 = \n -> lin N2 (mkFun n nullPrep) ;