diff --git a/lib/resource-1.4/russian/MorphoRus.gf b/lib/resource-1.4/russian/MorphoRus.gf index 7156c6458..e8af4c48e 100644 --- a/lib/resource-1.4/russian/MorphoRus.gf +++ b/lib/resource-1.4/russian/MorphoRus.gf @@ -18,83 +18,58 @@ resource MorphoRus = ResRus ** open Prelude, (Predef=Predef) in { flags coding=utf8 ; ----2 Personal (together with possesive) pronouns. -oper pronYa: Pronoun = + +oper pronYa : Pronoun = + let nonPoss = { s = table { Nom => "я" ; + Gen => "меня" ; + Dat => "мне" ; + Acc => "меня" ; + Inst => "мной" ; + Prepos _ => "мне" } } + in pronYaTu nonPoss "мо" P1 ; + +oper pronTu : Pronoun = + let nonPoss = { s = table { Nom => "ты" ; + Gen => "тебя" ; + Dat => "тебе" ; + Acc => "тебя" ; + Inst => "тобой" ; + Prepos _ => "тебе" } } + in pronYaTu nonPoss "тво" P2 ; + +-- Pronouns ya, tu, svoj +oper pronYaTu : { s : Case => Str } -> Str -> Person -> Pronoun = + \nonPoss, mo, pers -> { s = table { - PF Nom _ NonPoss => "я" ; - PF Gen _ NonPoss => "меня" ; - PF Dat _ NonPoss => "мне" ; - PF Acc _ NonPoss => "меня" ; - PF Inst _ NonPoss => "мной" ; - PF (Prepos _) _ NonPoss => "мне" ; - PF Nom _ (Poss (ASg Masc)) => "мой" ; - PF Gen _ (Poss (ASg Masc)) => "моего" ; - PF Dat _ (Poss (ASg Masc)) => "моему" ; - PF Acc _ (Poss (ASg Masc)) => "моего" ; - PF Inst _ (Poss (ASg Masc)) => "моим" ; - PF (Prepos _) _ (Poss (ASg Masc)) => "моём" ; - PF Nom _ (Poss (ASg Fem)) => "моя" ; - PF Gen _ (Poss (ASg Fem)) => "моей" ; - PF Dat _ (Poss (ASg Fem)) => "моей" ; - PF Acc _ (Poss (ASg Fem)) => "мою" ; - PF Inst _ (Poss (ASg Fem)) => "моею" ; - PF (Prepos _) _ (Poss (ASg Fem)) => "моей" ; - PF Nom _ (Poss (ASg Neut)) => "моё" ; - PF Gen _ (Poss (ASg Neut)) => "моего" ; - PF Dat _ (Poss (ASg Neut)) => "моему" ; - PF Acc _ (Poss (ASg Neut)) => "моё" ; - PF Inst _ (Poss (ASg Neut)) => "моим" ; - PF (Prepos _) _ (Poss (ASg Neut)) => "моём" ; - PF Nom _ (Poss APl) => "мои" ; - PF Gen _ (Poss APl)=> "моих" ; - PF Dat _ (Poss APl) => "моим" ; - PF Acc _ (Poss APl) => "моих" ; - PF Inst _ (Poss APl) => "моими" ; - PF (Prepos _) _ (Poss APl) => "моих" + PF c _ NonPoss => nonPoss.s!c ; + PF c _ (Poss gn) => case of { + => mo + "ё" ; + => mo + "й" ; + => mo + "его" ; + => mo + "ему" ; + => mo + "его" ; + => mo + "им" ; + => mo + "ём" ; + + => mo + "я" ; + => mo + "ей" ; + => mo + "ей" ; + => mo + "ю" ; + => mo + "ей" ; + => mo + "ей" ; + + => mo + "и" ; + => mo + "их" ; + => mo + "им" ; + => mo + "их" ; + => mo + "им" ; + => mo + "их" + + } } ; - g = PNoGen ; - n = Sg ; - p = P1 ; - pron = True + g = PNoGen ; n = Sg ; p = pers ; pron = True } ; -oper pronTu: Pronoun = - { s = table { - PF Nom _ NonPoss => "ты" ; - PF Gen _ NonPoss => "тебя" ; - PF Dat _ NonPoss => "тебе" ; - PF Acc _ NonPoss => "тебя" ; - PF Inst _ NonPoss => "тобой" ; - PF (Prepos _) _ NonPoss => ["о тебе"] ; - PF Nom _ (Poss (ASg Masc)) => "твой" ; - PF Gen _ (Poss (ASg Masc)) => "твоего" ; - PF Dat _ (Poss (ASg Masc)) => "твоему" ; - PF Acc _ (Poss (ASg Masc)) => "твоего" ; - PF Inst _ (Poss (ASg Masc)) => "твоим" ; - PF (Prepos _) _ (Poss (ASg Masc)) => "твоём" ; - PF Nom _ (Poss (ASg Fem)) => "твоя" ; - PF Gen _ (Poss (ASg Fem)) => "твоей" ; - PF Dat _ (Poss (ASg Fem)) => "твоей" ; - PF Acc _ (Poss (ASg Fem)) => "твою" ; - PF Inst _ (Poss (ASg Fem)) => "твоею" ; - PF (Prepos _) _ (Poss (ASg Fem)) => "твоей" ; - PF Nom _ (Poss (ASg Neut)) => "твоё" ; - PF Gen _ (Poss (ASg Neut)) => "твоего" ; - PF Dat _ (Poss (ASg Neut)) => "твоему" ; - PF Acc _ (Poss (ASg Neut)) => "твоё" ; - PF Inst _ (Poss (ASg Neut)) => "твоим" ; - PF (Prepos _) _ (Poss (ASg Neut)) => "твоём" ; - PF Nom _ (Poss APl) => "твои" ; - PF Gen _ (Poss APl)=> "твоих" ; - PF Dat _ (Poss APl) => "твоим" ; - PF Acc _ (Poss APl) => "твоих" ; - PF Inst _ (Poss APl) => "твоими" ; - PF (Prepos _) _ (Poss APl) => "твоих" - } ; - g = PNoGen ; - n = Sg ; - p = P2 ; - pron = True - } ; oper pronOn: Pronoun = { s = table {