diff --git a/src/russian/ConstructionRus.gf b/src/russian/ConstructionRus.gf index 534de854e..fb7941e77 100644 --- a/src/russian/ConstructionRus.gf +++ b/src/russian/ConstructionRus.gf @@ -1,7 +1,7 @@ concrete ConstructionRus of Construction = CatRus ** open Predef, SyntaxRus, SymbolicRus, (P=ParadigmsRus), ResRus, Prelude, QuestionRus, SentenceRus, AdverbRus, AdjectiveRus, VerbRus, - (L=LexiconRus), + (L=LexiconRus), (T=TenseRus), (N=NounRus), IdiomRus, (EX=ExtraRus) in { lin diff --git a/src/russian/ParadigmsRus.gf b/src/russian/ParadigmsRus.gf index d52fa99b3..d0d98ae0e 100644 --- a/src/russian/ParadigmsRus.gf +++ b/src/russian/ParadigmsRus.gf @@ -177,12 +177,15 @@ oper ------------------------ --2 Adverbs, prepositions, conjunctions, ... - mkAdv : Str -> Adv ; + mkAdv : overload { + mkAdv : Str -> Adv ; + mkAdv : Temp -> Pol -> VPSlash -> Adv ; -- introduce transgressive: "делая что-то ," + } ; mkIAdv : Str -> IAdv ; mkConj : overload { mkConj : Str -> Number -> Conj ; -- only middle conjunction mkConj : Str -> Str -> Number -> Conj ; -- two-part conjunction - } ; + } ; mkInterj : Str -> Interj ; mkPrep : Str -> Case -> Prep ; @@ -363,8 +366,21 @@ oper ------------------------ -- Adverbs, prepositions, conjunctions, ... - mkAdv : Str -> Adv - = \s -> lin Adv (makeAdverb s) ; + mkAdv = overload { + mkAdv : Str -> Adv + = \s -> lin Adv (makeAdverb s) ; + mkAdv : Temp -> Pol -> VPSlash -> Adv + = \temp,pol,vps -> lin Adv { + s=vps.adv ! Ag (GSg Neut) P3 + ++ pol.s + ++ case temp.t of {Pres => vps.verb.prtr ; _ => vps.verb.ptr } + ++ verbRefl vps.verb + ++ case temp.t of {Cond => "бы" ; _ => []} + ++ vps.dep + ++ vps.compl ! Ag (GSg Neut) P3 + ++ vps.c.s ; -- comma is needed. Up to user? + } ; + } ; mkIAdv : Str -> IAdv = \s -> lin IAdv (makeAdverb s) ;