Files
gf-rgl/src/russian/StructuralRus.gf
2020-08-16 09:03:46 +03:00

196 lines
6.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
concrete StructuralRus of Structural = CatRus **
open ParadigmsRus, ResRus, MorphoRus, (X = ConstructX), Coordination, Prelude in {
lin
i_Pron = personalPron (Ag MSg P1) ;
we_Pron = personalPron (Ag GPl P1) ;
youSg_Pron = personalPron (Ag MSg P2) ;
youPl_Pron = personalPron (Ag GPl P2) ;
youPol_Pron = youPl_Pron ;
he_Pron = personalPron (Ag MSg P3) ;
she_Pron = personalPron (Ag FSg P3) ;
it_Pron = personalPron (Ag NSg P3) ;
they_Pron = personalPron (Ag GPl P3) ;
whatSg_IP = what_sg ;
whatPl_IP = what_pl ;
whoSg_IP = who_sg ;
whoPl_IP = who_pl ;
-- : IQuant ;
which_IQuant = (adjFormsAdjective (makeAdjectiveForms "который" "" "1a" PreferFull)) ** {
preferShort=PreferFull ;
g=Neut ;
c=Nom
} ;
-- : Quant ;
this_Quant = (adjFormsAdjective this_forms) ** {
type=NormalDet ;
preferShort=PreferFull ;
g=Neut ;
c=Nom
} ;
-- : Quant ;
that_Quant = (adjFormsAdjective that_forms) ** {
type=NormalDet ;
preferShort=PreferFull ;
g=Neut ;
c=Nom
} ;
-- : Quant ;
no_Quant = (adjFormsAdjective (makeAdjectiveForms "никакой" "" "3b" PreferFull)) ** {
type=NormalDet ;
preferShort=PreferFull ;
g=Neut ;
c=Nom
} ;
above_Prep = mkPrep above_prep_ins_mod Ins ;
after_Prep = mkPrep "после" Gen ;
before_Prep = mkPrep "перед" Ins ;
behind_Prep = mkPrep "за" Ins ;
between_Prep = mkPrep "между" Ins ;
by8agent_Prep = mkPrep ["с помощью"] Gen ;
by8means_Prep = mkPrep ["с помощью"] Gen ;
during_Prep = mkPrep "в течение" Gen ;
except_Prep = mkPrep ["за исключением"] Gen ; -- fix n
for_Prep = mkPrep "для" Gen ;
from_Prep = mkPrep ot_prep_gen_mod Gen ;
in8front_Prep = mkPrep "перед" Ins ;
in_Prep = mkPrep v_prep_mod Loc ;
on_Prep = mkPrep "на" Loc ;
part_Prep = {s="" ; c=Ptv ; neggen=False ; hasPrep=False } ;
possess_Prep = {s="у" ; c=Gen ; neggen=False ; hasPrep=False} ;
through_Prep = mkPrep "через" Acc ;
to_Prep = mkPrep k_prep_dat_mod Dat ;
under_Prep = mkPrep pod_prep_mod Ins ;
without_Prep = mkPrep "без" Gen ;
or_Conj = mkConj "или" Sg ;
and_Conj = mkConj "и" Pl ;
both7and_DConj = mkConj "как" (comma ++ "так и") Pl ;
either7or_DConj = mkConj "либо" (comma ++ "либо") Sg ;
if_then_Conj = mkConj "если" (comma ++ "то") Sg ;
with_Prep = mkPrep s_prep_mod Ins ;
please_Voc = ss "пожалуйста" ;
everywhere_Adv = mkAdv "везде" ;
here_Adv = mkAdv "здесь" ;
here7to_Adv = mkAdv "сюда" ;
here7from_Adv = mkAdv "отсюда" ;
quite_Adv = mkAdv "довольно" ;
somewhere_Adv = mkAdv "где-нибудь" ;
there_Adv = mkAdv "там" ;
there7to_Adv = mkAdv "туда" ;
there7from_Adv = mkAdv "оттуда" ;
how_IAdv = ss "как" ;
how8much_IAdv = ss "сколько" ;
when_IAdv = ss "когда" ;
where_IAdv = ss "где" ;
why_IAdv = ss "почему" ;
so_AdA = ss "так";
less_CAdv = X.mkCAdv "менее" "чем" ;
more_CAdv = X.mkCAdv "более" "чем" ;
as_CAdv = X.mkCAdv "так же" "как и" ; -- requires short form adjective
can8know_VV = {v=can; modal=\\a=>[]} ;
can_VV = {v=can; modal=\\a=>[]} ;
must_VV = {v=nullVerb; modal=adjFormsToShort (makeAdjectiveForms "должный" "" "1*a" PreferFull)} ;
want_VV = {v=want; modal=\\a=>[]} ;
-- : Det ;
every_Det = {
s = \\g => (adjFormsAdjective (makeAdjectiveForms "каждый" "" "1*a" PreferFull)).s ! GSg g;
type=NormalDet ;
g = Masc ;
c = Nom ;
size = Num1 ;
} ;
-- : Det ;
someSg_Det = {
s = \\g => (adjFormsAdjective (makeAdjectiveForms "некоторый" "" "1*a" PreferFull)).s ! GSg g;
type=NormalDet ;
g = Masc ;
c = Nom ;
size = Num1 ;
} ;
-- : Det ;
somePl_Det = {
s = \\g => (adjFormsAdjective (makeAdjectiveForms "некоторый" "" "1*a" PreferFull)).s ! GPl;
type=NormalDet ;
g = Masc ;
c = Nom ;
size = NumAll ;
} ;
-- : Det ;
few_Det = {
s = \\g => (adjFormsAdjective (makeAdjectiveForms "немногий" "" "3a" PreferFull)).s ! GPl;
type=NormalDet ;
g = Masc ;
c = Nom ;
size = NumAll ;
} ;
-- : Det ;
many_Det, much_Det = {
s = \\g => (adjFormsAdjective (makeAdjectiveForms "многий" "" "3a" PreferFull)).s ! GPl;
type=NormalDet ;
g = Neut ;
c = Gen ;
size = NumAll
} ;
only_Predet = (adjFormsAdjective (pronToAdj only_Pron)) ** {size=Num1} ;
most_Predet = (makeAdjectiveFromNoun (nounFormsNoun (guessNounForms "большинство"))) ** {size=Num5} ;
all_Predet = (adjFormsAdjective (pronToAdj all_Pron)) ** {size=NumAll};
not_Predet = (adjFormsAdjective (mkA "не" "" "0")) ** {size=Num1} ;
how8many_IDet = {
s=\\g,anim,cas => case <anim,cas> of {
<_,Nom|VocRus|Ptv> => "сколько" ;
<_,Gen|Pre|Loc> => "скольких" ;
<_,Dat> => "скольким" ;
<_,Ins> => "сколькими" ;
<Inanimate,Acc> => "сколько" ;
<Animate,Acc> => "скольких" -- also as Nom?
} ;
g=Neut ;
size=Num5 ; --it depends???
c=Gen --???
} ;
almost_AdA = ss "почти" ;
almost_AdN = ss "почти" ;
always_AdV = ss "всегда" ;
at_least_AdN = ss "по меньшей мере" ;
at_most_AdN = ss "самое большее" ;
too_AdA = ss "слишком" ;
very_AdA = ss "очень" ;
everybody_NP = lin NP everybody ;
everything_NP = lin NP everything ;
something_NP = lin NP something ;
somebody_NP = lin NP somebody ;
nothing_NP = lin NP nothing ;
nobody_NP = lin NP nobody ;
but_PConj = ss "но" ;
otherwise_PConj = ss "иначе" ;
therefore_PConj = ss "следовательно" ;
although_Subj = ss "хотя" ;
because_Subj = ss ["потому что"] ;
if_Subj = ss "если" ;
when_Subj = ss "когда" ;
that_Subj = ss "что" ; -- TODO: ?
have_V2 = dirV2 (mkV Imperfective "иметь" "имею" "имеет");
language_title_Utt = ss "русский" ;
yes_Utt = ss ["да"] ;
no_Utt = ss ["нет"] ;
}