This commit is contained in:
aarneranta
2020-05-16 18:00:24 +02:00
2 changed files with 15 additions and 9 deletions

View File

@@ -21,7 +21,7 @@ lin
bank_N = mkN "банк" ; bank_N = mkN "банк" ;
bark_N = mkN "кора"; bark_N = mkN "кора";
beautiful_A = mkA "красивый"; beautiful_A = mkA "красивый";
become_VA = regV perfective second "станов" "лю" "стал" "стань" "стать" ; become_VA = regV perfective secondA "станов" "лю" "стал" "стань" "стать" ;
beer_N = mkIndeclinableNoun "пиво" neuter inanimate ; beer_N = mkIndeclinableNoun "пиво" neuter inanimate ;
beg_V2V = dirV2 (mkV imperfective "прошу" "просишь" "просит" "просим" "просите" "просят" "просил" "проси" "просить" ); beg_V2V = dirV2 (mkV imperfective "прошу" "просишь" "просит" "просим" "просите" "просят" "просил" "проси" "просить" );
belly_N = mkN "живот" ; belly_N = mkN "живот" ;

View File

@@ -1228,6 +1228,14 @@ oper presentConj1Moch: Str -> Str -> Str -> PresentVerb = \del, sgP1End, altRoot
PRF GPl P3 => del+ sgP1End + "т" PRF GPl P3 => del+ sgP1End + "т"
}; };
oper pastConjMoch: Str -> PastVerb = \del ->
table {
PSF (GSg Masc) => del ;
PSF (GSg Fem) => del +"ла" ;
PSF (GSg Neut) => del+"ло" ;
PSF GPl => del+ "ли"
};
-- "PastVerb" takes care of the past tense conjugation. -- "PastVerb" takes care of the past tense conjugation.
param PastVF = PSF GenNum ; param PastVF = PSF GenNum ;
@@ -1274,7 +1282,7 @@ oper verbDecl: Aspect -> Conjugation -> Str -> Str -> Str -> Str -> Str -> Verbu
Dolzhen => <presentConjDolzhen,pastConjDolzhen> ; Dolzhen => <presentConjDolzhen,pastConjDolzhen> ;
Foreign => <presentConjForeign,pastConj> } in Foreign => <presentConjForeign,pastConj> } in
let patt = case a of { let patt = case a of {
Perfective => mkVerbImperfective; Perfective => mkVerbPerfective;
Imperfective => mkVerbImperfective } in Imperfective => mkVerbImperfective } in
patt inf imperSgP2 (conj.p1 del sgP1End) (conj.p2 sgMascPast) ; patt inf imperSgP2 (conj.p1 del sgP1End) (conj.p2 sgMascPast) ;
@@ -1283,14 +1291,14 @@ oper verbDecl: Aspect -> Conjugation -> Str -> Str -> Str -> Str -> Str -> Verbu
oper verbDeclMoch: Aspect -> Conjugation -> Str -> Str -> Str -> Str ->Str -> Str -> Verbum = oper verbDeclMoch: Aspect -> Conjugation -> Str -> Str -> Str -> Str ->Str -> Str -> Verbum =
\a, c, del, sgP1End, sgMascPast, imperSgP2, inf, altRoot -> \a, c, del, sgP1End, sgMascPast, imperSgP2, inf, altRoot ->
let patt = case a of { let patt = case a of {
Perfective => mkVerbImperfective; Perfective => mkVerbPerfective;
Imperfective => mkVerbImperfective } in Imperfective => mkVerbImperfective } in
patt inf imperSgP2 (presentConj1Moch del sgP1End altRoot) (pastConj sgMascPast); patt inf imperSgP2 (presentConj1Moch del sgP1End altRoot) (pastConjMoch sgMascPast);
oper add_sya : Voice -> Str -> Str = \v,x -> oper add_sya : Voice -> Str -> Str = \v,x ->
case v of { case v of {
Act => x ; Act => x ;
Pas => case Predef.dp 2 x of { Pas => case Predef.dp 1 x of {
"а" | "е" | "ё" | "и" | "о" | "у" | "ы" | "э" | "ю" | "я" => x + "сь" ; "а" | "е" | "ё" | "и" | "о" | "у" | "ы" | "э" | "ю" | "я" => x + "сь" ;
_ => x + "ся" _ => x + "ся"
} }
@@ -1339,10 +1347,8 @@ oper mkVerbPerfective: Str -> Str -> PresentVerb -> PastVerb -> Verbum =
VSUB gn => add_sya vox (past ! (PSF gn)) ++ "бы" ; VSUB gn => add_sya vox (past ! (PSF gn)) ++ "бы" ;
VIND (GSg _) (VPresent _) => nonExist ; VIND (GSg _) (VPresent p) => (presentFuture ! (PRF (GSg Masc) p)); -- these are not correct,
VIND GPl (VPresent P1) => nonExist ; VIND GPl (VPresent p) => (presentFuture ! (PRF GPl p)) ; -- but used elsewhere
VIND GPl (VPresent P2) => nonExist ;
VIND GPl (VPresent P3) => nonExist ;
VIND gn (VFuture p) => add_sya vox (presentFuture ! (PRF gn p)) ; VIND gn (VFuture p) => add_sya vox (presentFuture ! (PRF gn p)) ;
VIND gn VPast => add_sya vox (past ! (PSF gn)) VIND gn VPast => add_sya vox (past ! (PSF gn))
} } ; } } ;