support for aspectual verb pairs

This commit is contained in:
Krasimir Angelov
2024-11-01 07:45:59 +01:00
parent e8bda853df
commit 466c7da532
5 changed files with 646 additions and 323 deletions

View File

@@ -13,7 +13,7 @@ lincat Prep = Compl ;
linref N,N2,N3 = \n -> n.s ! Indef ! Sg ; linref N,N2,N3 = \n -> n.s ! Indef ! Sg ;
linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V = linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V =
\v -> v.present ! Sg ! P3 ++ \v -> v.present ! Imperfective ! Sg ! P3 ++
case v.isRefl of { case v.isRefl of {
True => "се" ; True => "се" ;
False => [] False => []

View File

@@ -95,19 +95,30 @@ lin
InflectionVQ, InflectionVA = \v -> { InflectionVQ, InflectionVA = \v -> {
t = "гл" ; t = "гл" ;
s1= heading1 ("Глагол") ; s1= heading1 ("Глагол") ;
s2= heading3 ("Изявително наклонение") ++ s2= heading2 ("Несвършен вид") ++
heading3 ("Изявително наклонение") ++
heading4 ("Сегашно време") ++ heading4 ("Сегашно време") ++
finite v.present ++ finite (v.present ! Imperfective) ++
heading4 ("Минато несвршено време (имперфект)") ++
finite (v.imperfect ! Imperfective) ++
heading3 ("Повелително наклонение") ++
imperative (v.Imperative ! Imperfective) ++
heading3 ("Партицип") ++
adjForms (v.participle.aorist ! Imperfective) ++
tag "br" ++
adjForms v.participle.imperfect ++
heading2 ("Свършен вид") ++
heading3 ("Изявително наклонение") ++
heading4 ("Сегашно време") ++
finite (v.present ! Perfective) ++
heading4 ("Минатото свршено време (аорист)") ++ heading4 ("Минатото свршено време (аорист)") ++
finite v.aorist ++ finite v.aorist ++
heading4 ("Минато несвршено време (имперфект)") ++ heading4 ("Минато несвршено време (имперфект)") ++
finite v.imperfect ++ finite (v.imperfect ! Perfective) ++
heading3 ("Повелително наклонение") ++ heading3 ("Повелително наклонение") ++
imperative v.Imperative ++ imperative (v.Imperative ! Perfective) ++
heading3 ("Партицип") ++ heading3 ("Партицип") ++
adjForms v.participle.aorist ++ adjForms (v.participle.aorist ! Perfective) ++
tag "br" ++
adjForms v.participle.imperfect ++
heading1 ("Именка") ++ heading1 ("Именка") ++
v.noun_from_verb ; v.noun_from_verb ;
s3= "" s3= ""

File diff suppressed because it is too large Load Diff

View File

@@ -1559,11 +1559,44 @@ mkV = overload {
mkV : Str -> V = regV; mkV : Str -> V = regV;
mkV : Str -> Str -> V = reg2V; mkV : Str -> Str -> V = reg2V;
mkV : Str -> Str -> Str -> V = reg3V; mkV : Str -> Str -> Str -> V = reg3V;
mkV : Str -> Str -> Str -> Str -> V = reg4V mkV : Str -> Str -> Str -> Str -> V = reg4V ;
} ; } ;
reflV : V -> V = \v -> v ** {isRefl=True} ; reflV : V -> V = \v -> v ** {isRefl=True} ;
dualV : V -> V -> V = \impf,perf -> lin V
{ present = table {
Imperfective => impf.present ! Imperfective ;
Perfective => perf.present ! Perfective
} ;
aorist = perf.aorist ;
imperfect = table {
Imperfective => impf.imperfect ! Imperfective ;
Perfective => perf.imperfect ! Perfective
} ;
Imperative = table {
Imperfective => impf.Imperative ! Imperfective ;
Perfective => perf.Imperative ! Perfective
} ;
participle = { aorist = table {
Imperfective => impf.participle.aorist ! Imperfective ;
Perfective => perf.participle.aorist ! Perfective
} ;
imperfect = impf.participle.imperfect ;
perfect = table {
Imperfective => impf.participle.perfect ! Imperfective ;
Perfective => perf.participle.perfect ! Perfective
} ;
adjectival = table {
Imperfective => impf.participle.adjectival ! Imperfective ;
Perfective => perf.participle.adjectival ! Perfective
} ;
adverbial = impf.participle.adverbial
} ;
noun_from_verb = impf.noun_from_verb ;
isRefl = impf.isRefl
} ;
mkV2 = overload { mkV2 = overload {
mkV2 : V -> V2 = \v -> lin V2 v ** {c2=noPrep} ; mkV2 : V -> V2 = \v -> lin V2 v ** {c2=noPrep} ;
mkV2 : V -> Prep -> V2 = \v,p -> lin V2 v ** {c2=p} ; mkV2 : V -> Prep -> V2 = \v,p -> lin V2 v ** {c2=p} ;

View File

@@ -36,12 +36,14 @@ oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun =
} ; } ;
param Aspect = Imperfective | Perfective ;
param Person = P1 | P3 | P2 ; param Person = P1 | P3 | P2 ;
param GenNum = GSg Gender | GPl ; param GenNum = GSg Gender | GPl ;
oper Verb = {present: Number => Person => Str; aorist: Number => Person => Str; imperfect: Number => Person => Str; Imperative: Number => Str; participle: {aorist: GenNum => Str; imperfect: GenNum => Str; perfect: Str; adjectival: Str; adverbial: Str}; noun_from_verb: Str; isRefl: Bool} ; -- 8174 oper Verb = {present: Aspect => Number => Person => Str; aorist: Number => Person => Str; imperfect: Aspect => Number => Person => Str; Imperative: Aspect => Number => Str; participle: {aorist: Aspect => GenNum => Str; imperfect: GenNum => Str; perfect: Aspect => Str; adjectival: Aspect => Str; adverbial: Str}; noun_from_verb: Str; isRefl: Bool} ; -- 8174
oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb = oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32 -> \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32 ->
{ present = table { { present = \\_ =>
table {
Sg => table { Sg => table {
P1 => f1 ; P1 => f1 ;
P2 => f2 ; P2 => f2 ;
@@ -53,7 +55,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ :
P3 => f6 P3 => f6
} }
} ; } ;
aorist = table { aorist = table {
Sg => table { Sg => table {
P1 => f7 ; P1 => f7 ;
P2 => f8 ; P2 => f8 ;
@@ -65,7 +67,8 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ :
P3 => f12 P3 => f12
} }
} ; } ;
imperfect = table { imperfect = \\_ =>
table {
Sg => table { Sg => table {
P1 => f13 ; P1 => f13 ;
P2 => f14 ; P2 => f14 ;
@@ -77,11 +80,13 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ :
P3 => f18 P3 => f18
} }
} ; } ;
Imperative = table { Imperative = \\_ =>
table {
Sg => f19 ; Sg => f19 ;
Pl => f20 Pl => f20
} ; } ;
participle = { aorist = table { participle = { aorist = \\_ =>
table {
GSg Masc => f21 ; GSg Masc => f21 ;
GSg Fem => f22 ; GSg Fem => f22 ;
GSg Neuter => f23 ; GSg Neuter => f23 ;
@@ -93,8 +98,8 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ :
GSg Neuter => f27 ; GSg Neuter => f27 ;
GPl => f28 GPl => f28
} ; } ;
perfect = f29 ; perfect = \\_ => f29 ;
adjectival = f30 ; adjectival = \\_ => f30 ;
adverbial = f31 adverbial = f31
} ; } ;
noun_from_verb = f32 ; noun_from_verb = f32 ;