added reflexive verbs and include the clitic in linref A

This commit is contained in:
Krasimir Angelov
2026-09-17 15:53:04 +02:00
parent 39cea8b9b6
commit 1d2e16e929
4 changed files with 304 additions and 250 deletions
+2
View File
@@ -1,6 +1,8 @@
concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in {
lincat A = Adj ;
linref A = \a -> case a.clit of {True=>"i"; False=>[]} ++ a.s ! Nom ! Masc ! Sg ;
lincat A2 = Adj ** {c2 : Compl} ;
linref A2 = \a -> case a.clit of {True=>"i"; False=>[]} ++ a.s ! Nom ! Masc ! Sg ++ a.c2.s ;
lincat V, VA, VV, VS, VQ = Verb ;
lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ;
lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ;
+268 -244
View File
File diff suppressed because it is too large Load Diff
+30 -4
View File
@@ -1231,6 +1231,19 @@ mkV = overload {
mkV : Str -> Str -> V = reg2V -- Indicative;Pres;Sg;P1 participle
} ;
compoundV : V -> Str -> V = \v,adv -> lin V {
indicative = \\t,n,p => v.indicative ! t ! n ! p ++ adv ;
imperative = \\n => v.imperative ! n ++ adv ;
participle = v.participle ++ adv ;
pres_optative = \\n,p => v.pres_optative ! n ! p ++ adv ;
perf_optative = \\n,p => v.perf_optative ! n ! p ++ adv ;
pres_admirative = \\n,p => v.pres_admirative ! n ! p ++ adv ;
imperf_admirative = \\n,p => v.imperf_admirative ! n ! p ++ adv ;
vtype = v.vtype
} ;
reflV : V -> V = \v -> v ** {vtype=VRefl} ;
mkV2 = overload {
mkV2 : V -> V2 = \v -> lin V2 v ** {c2=noPrep} ;
mkV2 : V -> Prep -> V2 = \v,p -> lin V2 v ** {c2=p} ;
@@ -1283,7 +1296,12 @@ mkVoc : Str -> Voc = \s -> lin Voc {s=s} ;
mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ;
mkSubj : Str -> Subj = \s -> lin Subj {s=s} ;
oper mkQuant : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Quant =
mkQuant = overload {
mkQuant : Str -> Quant = \s -> lin Quant {
s = \\_,_,_ => s ;
sp = Indef
} ;
mkQuant : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Quant =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16 -> lin Quant
{ s = table {
Nom => table {
@@ -1328,9 +1346,16 @@ oper mkQuant : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Quant =
}
} ;
sp = Indef
} ;
}
} ;
oper mkDet : (_,_,_,_,_,_,_,_ : Str) -> Number -> Det =
mkDet = overload {
mkDet : Str -> Number -> Det = \s,n -> lin Det {
s = \\_,_ => s ;
sp = Indef ;
n = n
} ;
mkDet : (_,_,_,_,_,_,_,_ : Str) -> Number -> Det =
\f1,f2,f3,f4,f5,f6,f7,f8,n -> lin Det
{ s = table {
Nom => table {
@@ -1352,7 +1377,8 @@ oper mkDet : (_,_,_,_,_,_,_,_ : Str) -> Number -> Det =
} ;
sp = Indef ;
n = n
} ;
}
} ;
mkConj : Str -> Conj = \s -> lin Conj {s=s} ;
mkPConj : Str -> PConj = \s -> lin PConj {s=s} ;
+4 -2
View File
@@ -104,7 +104,8 @@ oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Bool -> Adj =
param Tense = Pres | Past | Imperfect | Aorist ;
oper Verb = {indicative: Tense => Number => Person => Str; imperative: Number => Str; participle: Str; pres_optative: Number => Person => Str; perf_optative: Number => Person => Str; pres_admirative: Number => Person => Str; imperf_admirative: Number => Person => Str} ; -- 758
param VType = VNormal | VRefl ;
oper Verb = {indicative: Tense => Number => Person => Str; imperative: Number => Str; participle: Str; pres_optative: Number => Person => Str; perf_optative: Number => Person => Str; pres_admirative: Number => Person => Str; imperf_admirative: Number => Person => Str; vtype : VType} ; -- 758
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,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51 ->
{ indicative = table {
@@ -209,7 +210,8 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
P2 => f50 ;
P3 => f51
}
}
} ;
vtype = VNormal
} ;
oper link_clitic : Species => Case => Gender => Number => Str =