mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-20 00:22:51 -06:00
*** empty log message ***
This commit is contained in:
@@ -269,7 +269,7 @@ oper pronChtoTo: Pronoun =
|
||||
{ s = table {
|
||||
PF Nom _ _ => "что-то" ;
|
||||
PF Gen _ _ => "чего-то" ;
|
||||
PF Dat _ _ => "чему-то" ;
|
||||
PF Dat _ _ => "чему-то" ;
|
||||
PF Acc _ _ => "что-то" ;
|
||||
PF Inst _ _ => "чем-то" ;
|
||||
PF Prepos _ _ => "чём-то"
|
||||
@@ -1022,7 +1022,7 @@ oper verbPredpochitat : Verbum = verbDecl Imperfective First "предпочит
|
||||
|
||||
|
||||
-- 2 Adverbs
|
||||
|
||||
|
||||
oper vsegda: Adverb = { s = "всегда" } ;
|
||||
oper chorosho: Adverb = { s = "хорошо" } ;
|
||||
|
||||
@@ -1051,52 +1051,67 @@ oper AspectVoice: Type = { s : VerbConj => Str ; asp: Aspect } ;
|
||||
oper verbBegat : Verbum = verbDecl Imperfective First "бега" "ю" "бегал" "бегай" "бегать";
|
||||
oper verbPrinimat : Verbum = verbDecl Imperfective First "принима" "ю" "принимал" "принимай" "принимать";
|
||||
oper verbDokazuvat : Verbum = verbDecl Imperfective First "доказыва" "ю" "доказывал" "доказывай" "доказывать";
|
||||
oper verbPredpochitat : Verbum = verbDecl Imperfective First "предпочита" "ю" "предпочитал" "предпочитай" "предпочитать";
|
||||
oper verbPredpochitat : Verbum = verbDecl Imperfective First "предпочита" "ю" "предпочитал" "предпочитай" "предпочитать";
|
||||
oper verbOtpravlyat : Verbum = verbDecl Imperfective First "отправля" "ю" "отправлял" "отправляй" "отправлять";
|
||||
oper verbSlomat : Verbum = verbDecl Perfective First "слома" "ю" "сломал" "сломай" "сломать";
|
||||
oper verbByut : Verbum = verbDecl Perfective First "буд" "у" "был" "будь" "быть";
|
||||
oper verbMoch : Verbum = verbDecl Imperfective First "мог" "у" "мог" "моги" "мочь";
|
||||
|
||||
-- Verbs with vowel "ё": "даёшь" (give), "пьёшь" (drink) :
|
||||
oper verbDavat : Verbum = verbDecl Imperfective FirstE "да" "ю" "давал" "давай" "давать";
|
||||
oper verbPit : Verbum = verbDecl Imperfective FirstE "пь" "ю" "пил" "пей" "пить";
|
||||
oper verbMoch : Verbum = verbDeclMoch Imperfective First "мог" "у" "мог" "моги" "мочь" "мож";
|
||||
|
||||
-- Verbs with vowel "ё": "даёшь" (give), "пьёшь" (drink) :
|
||||
oper verbDavat : Verbum = verbDecl Imperfective FirstE "да" "ю" "давал" "давай" "давать";
|
||||
oper verbPit : Verbum = verbDecl Imperfective FirstE "пь" "ю" "пил" "пей" "пить";
|
||||
|
||||
--3 Second conjugation (in Present) verbs :
|
||||
|
||||
oper verbLubit : Verbum = verbDecl Imperfective Second "люб" "лю" "любил" "люби" "любить";
|
||||
oper verbGovorit : Verbum = verbDecl Imperfective Second "говор" "ю" "говорил" "говори" "говорить";
|
||||
|
||||
oper verbBolet_2 : Verbum = verbDecl Imperfective Second "бол" "ю" "болел" "боли" "болеть";
|
||||
oper verbPoranit : Verbum = verbDecl Perfective Second "поран" "ю" "поранил" "порань" "поранить";
|
||||
oper verbLubit : Verbum = verbDecl Imperfective Second "люб" "лю" "любил" "люби" "любить";
|
||||
oper verbGovorit : Verbum = verbDecl Imperfective Second "говор" "ю" "говорил" "говори" "говорить";
|
||||
|
||||
oper verbBolet_2 : Verbum = verbDecl Imperfective Second "бол" "ю" "болел" "боли" "болеть";
|
||||
oper verbPoranit : Verbum = verbDecl Perfective Second "поран" "ю" "поранил" "порань" "поранить";
|
||||
|
||||
|
||||
-- Irregular Mixed:
|
||||
oper verbKhotet : Verbum = verbDecl Imperfective Mixed "хоч" "у" "хотел" "хоти" "хотеть";
|
||||
|
||||
-- Irregular
|
||||
oper verbDolzhen : Verbum = verbDecl Imperfective Dolzhen "долж" "ен" "долж" ["будь должен"] ["быть должным"] ;
|
||||
|
||||
-- To reduces the redundancies in the definitions
|
||||
-- we introduce some intermediate types,
|
||||
-- Irregular
|
||||
oper verbDolzhen : Verbum = verbDecl Imperfective Dolzhen "долж" "ен" "долж" ["будь должен"] ["быть должным"] ;
|
||||
|
||||
-- To reduces the redundancies in the definitions
|
||||
-- we introduce some intermediate types,
|
||||
-- so that the full type can be described as a combination
|
||||
-- so that the full type can be described as a combination
|
||||
-- of the intermediate types. For example "AspectVoice"
|
||||
-- is a type for defining a pattern for a particular
|
||||
-- aspect and voice.
|
||||
|
||||
oper AspectVoice: Type = { s : VerbConj => Str ; asp: Aspect } ;
|
||||
|
||||
-- "PresentVerb" takes care of the present tense conjugation.
|
||||
|
||||
param PresentVF = PRF GenNum Person;
|
||||
oper AspectVoice: Type = { s : VerbConj => Str ; asp: Aspect } ;
|
||||
|
||||
-- "PresentVerb" takes care of the present tense conjugation.
|
||||
|
||||
param PresentVF = PRF Number Person ;
|
||||
oper PresentVerb : Type = PresentVF => Str ;
|
||||
oper PresentVerb : Type = PresentVF => Str ;
|
||||
oper presentConjDolzhen: Str -> Str -> PresentVerb = \del, sgP1End ->
|
||||
table {
|
||||
PRF APl _ => del+ "ны" ;
|
||||
PRF (ASg Masc) P1 => del+ sgP1End ;
|
||||
PRF (ASg Fem) P1 => del+ "на" ;
|
||||
PRF (ASg Neut) P1 => del+ "но" ;
|
||||
PRF (ASg Masc) P2 => del+ sgP1End ;
|
||||
PRF (ASg Fem) P2 => del+ "на" ;
|
||||
PRF Sg P2 => del+ sgP1End ;
|
||||
PRF Sg P3 => del+ "на" ;
|
||||
PRF Pl _ => del+ "ны"
|
||||
};
|
||||
|
||||
oper presentConjMixed: Str -> Str -> PresentVerb = \del, sgP1End ->
|
||||
PRF (ASg Neut) P2 => del+ "но" ;
|
||||
PRF (ASg Masc) P3 => del+ sgP1End ;
|
||||
PRF (ASg Fem) P3 => del+ "на" ;
|
||||
PRF (ASg Neut) P3 => del+ "но" };
|
||||
|
||||
oper presentConjMixed: Str -> Str -> PresentVerb = \del, sgP1End ->
|
||||
table {
|
||||
PRF (ASg _) P1 => del+ sgP1End ;
|
||||
PRF (ASg _) P2 => del+ "ешь" ;
|
||||
PRF (ASg _) P3 => del+ "ет" ;
|
||||
PRF APl P1 => del+ "им" ;
|
||||
PRF APl P2 => del+ "ите" ;
|
||||
PRF APl P3 => del+ "ят"
|
||||
};
|
||||
oper presentConj2: Str -> Str -> PresentVerb = \del, sgP1End ->
|
||||
table {
|
||||
PRF (ASg _) P1 => del+ sgP1End ;
|
||||
PRF (ASg _) P2 => del+ "ишь" ;
|
||||
PRF (ASg _) P3 => del+ "ит" ;
|
||||
@@ -1140,6 +1155,14 @@ oper verbDecl: Aspect -> Conjugation -> Str -> Str -> Str -> Str ->Str -> Verbum
|
||||
-- "PastVerb" takes care of the past tense conjugation.
|
||||
|
||||
param PastVF = PSF GenNum ;
|
||||
oper PastVerb : Type = PastVF => Str ;
|
||||
oper pastConj: Str -> PastVerb = \del ->
|
||||
table {
|
||||
PSF (ASg Masc) => del ;
|
||||
PSF (ASg Fem) => del +"а" ;
|
||||
PSF (ASg Neut) => del+"о" ;
|
||||
PSF APl => del+ "и"
|
||||
};
|
||||
|
||||
oper pastConjDolzhen: Str -> PastVerb = \del ->
|
||||
table {
|
||||
@@ -1206,25 +1229,25 @@ oper
|
||||
VIMP Sg P2 => av.s ! (VIMP Sg P2 ) +"сь";
|
||||
VIMP Pl P2 => av.s! (VIMP Pl P2) +"сь";
|
||||
VIMP Sg P3 => av.s ! (VIMP Sg P3) +"ся";
|
||||
VIMP Pl P3 => av.s ! (VIMP Pl P3) +"ся";
|
||||
|
||||
|
||||
VIMP Pl P3 => av.s ! (VIMP Pl P3) +"ся";
|
||||
|
||||
VSUB (ASg Masc) => pv ! (PSF (ASg Masc)) + "ся"+[" бы"];
|
||||
VSUB (ASg Fem) => pv ! (PSF (ASg Fem)) + "сь"+[" бы"];
|
||||
VSUB (ASg Neut) => pv ! (PSF (ASg Neut)) + "сь"+[" бы"];
|
||||
VSUB APl => pv ! (PSF APl) + "сь"+[" бы"] ;
|
||||
-- case av.asp of { Imperfective =>
|
||||
av.s ! (VIND (VPresent Sg P1)) + "сь" ;
|
||||
-- Perfective = > nonExist
|
||||
-- } ;
|
||||
VIND (VPresent Sg P2) => av.s ! (VIND (VPresent Sg P2))+ "ся" ;
|
||||
|
||||
VIND (VPresent Sg P3) => av.s ! (VIND (VPresent Sg P3))+ "ся" ;
|
||||
VIND (VPresent Pl P1) => av.s !( VIND (VPresent Pl P1)) + "ся" ;
|
||||
VIND (VPresent Pl P2) => av.s !( VIND (VPresent Pl P2)) + "сь'" ;
|
||||
VIND (VPresent Pl P3) => av.s !( VIND (VPresent Pl P3)) + "ся" ;
|
||||
VIND (VFuture Sg P1) => av.s ! (VIND (VFuture Sg P1)) + "сь";
|
||||
VIND (VFuture Sg P2) => av.s! (VIND (VFuture Sg P2) )+ "ся";
|
||||
VIND (VPresent Sg P1) =>
|
||||
-- case av.asp of { Imperfective =>
|
||||
av.s ! (VIND (VPresent Sg P1)) + "сь" ;
|
||||
-- Perfective = > nonExist
|
||||
-- } ;
|
||||
VIND (VPresent Sg P2) => av.s ! (VIND (VPresent Sg P2))+ "ся" ;
|
||||
|
||||
VIND (VPresent Sg P3) => av.s ! (VIND (VPresent Sg P3))+ "ся" ;
|
||||
VIND (VPresent Pl P1) => av.s !( VIND (VPresent Pl P1)) + "ся" ;
|
||||
VIND (VPresent Pl P2) => av.s !( VIND (VPresent Pl P2)) + "сь'" ;
|
||||
VIND (VPresent Pl P3) => av.s !( VIND (VPresent Pl P3)) + "ся" ;
|
||||
VIND (VFuture Sg P1) => av.s ! (VIND (VFuture Sg P1)) + "сь";
|
||||
VIND (VFuture Sg P2) => av.s! (VIND (VFuture Sg P2) )+ "ся";
|
||||
VIND (VFuture Sg P3) => av.s! (VIND (VFuture Sg P3)) + "ся";
|
||||
VIND (VFuture Pl P1) => av.s! (VIND (VFuture Pl P1) )+ "ся";
|
||||
@@ -1237,12 +1260,12 @@ oper
|
||||
VIND (VPast APl) => av.s ! (VIND (VPast APl)) + "сь"
|
||||
} ;
|
||||
asp = av.asp
|
||||
};
|
||||
|
||||
|
||||
};
|
||||
|
||||
-- Generation the imperfective active pattern given
|
||||
|
||||
oper
|
||||
-- a number of basic conjugation forms.
|
||||
|
||||
oper
|
||||
imperfectiveActivePattern : Str -> Str -> PresentVerb -> PastVerb -> AspectVoice =
|
||||
\inf, imper, presentFuture, past -> { s= table {
|
||||
@@ -1254,12 +1277,12 @@ oper
|
||||
VIMP Sg P3 => ["пускай "] + presentFuture ! (PRF (ASg Masc) P3) ;
|
||||
VIMP Pl P3 => ["пускай "] + presentFuture ! (PRF APl P3) ;
|
||||
VSUB (ASg Masc) => past ! (PSF (ASg Masc)) +[" бы"];
|
||||
|
||||
|
||||
VSUB (ASg Neut) => past ! (PSF (ASg Neut) )+[" бы"];
|
||||
VSUB APl => past ! (PSF APl) +[" бы"];
|
||||
|
||||
VIND (VPresent Sg P1) => presentFuture ! ( PRF Sg P1);
|
||||
VSUB (ASg Fem) => past ! (PSF (ASg Fem)) +[" бы"];
|
||||
|
||||
|
||||
VSUB (ASg Neut) => past ! (PSF (ASg Neut) )+[" бы"];
|
||||
VSUB APl => past ! (PSF APl) +[" бы"];
|
||||
|
||||
VIND (VPresent Sg P1) => presentFuture ! ( PRF (ASg Masc) P1);
|
||||
VIND (VPresent Sg P2) => presentFuture! (PRF (ASg Masc) P2) ;
|
||||
VIND (VPresent Sg P3) => presentFuture ! (PRF (ASg Masc) P3) ;
|
||||
|
||||
Reference in New Issue
Block a user