added this_Quant, that_Quant

This commit is contained in:
Krasimir Angelov
2026-04-11 14:09:44 +02:00
parent fea01dd313
commit e42c5f53e2
5 changed files with 45 additions and 19 deletions

View File

@@ -31,8 +31,8 @@ linref A, A2 = \a -> a.s ! Indef ! GSg Masc ;
lincat AP = {s : Species => GenNum => Str; isPre : Bool} ;
lincat NP = {s : Role => Str; vocative: Str; a : Agr} ;
lincat Num = {s : Str; n : NNumber} ;
lincat Quant = {s : Str; sp : Species} ;
lincat Det = {s : Str; n : NNumber; sp : Species} ;
lincat Quant = {s : GenNum => Str; sp : Species} ;
lincat Det = {s : Gender => Str; n : NNumber; sp : Species} ;
lincat VP = Verb ** {compl : Agr => Str} ;
lincat VPSlash = Verb ** {compl : Agr => Str; c2 : Compl} ;

View File

@@ -27,25 +27,20 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
vocative = \\n => cn.vocative ! n ++ adv.s;
g = cn.g
} ;
lin DefArt = {s = []; sp = Def Unspecified} ;
lin DefArt = {s = \\_=>[]; sp = Def Unspecified} ;
lin DetCN det cn = {
s = \\r => case det.n of {
NNum n => det.s ++ cn.s ! det.sp ! n;
NCountable => det.s ++ cn.count_form
NNum n => det.s ! cn.g ++ cn.s ! det.sp ! n;
NCountable => det.s ! cn.g ++ cn.count_form
} ;
vocative = case det.n of {
NNum Sg => det.s ++ cn.vocative ! Sg;
_ => det.s ++ cn.vocative ! Pl
} ;
a = {g = case det.n of {
NNum Sg => GSg cn.g;
_ => GPl
} ;
vocative = det.s ! cn.g ++ cn.vocative ! nnum2num det.n ;
a = {g = genNum cn.g (nnum2num det.n) ;
p = P3};
} ;
lin DetQuant det num = {s = det.s ++ num.s; n = num.n;
sp = det.sp} ;
lin IndefArt = {s = []; sp = Indef} ;
lin DetQuant q num = {s = \\g => q.s ! genNum g (nnum2num num.n) ++ num.s;
n = num.n;
sp = q.sp} ;
lin IndefArt = {s = \\_=>[]; sp = Indef} ;
lin NumPl = {s = []; n = NNum Pl} ;
lin NumSg = {s = []; n = NNum Sg} ;
lin UseN s = s ;

View File

@@ -1170,8 +1170,31 @@ mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ;
mkIDet : Str -> IDet = \s -> lin IDet {s=s} ;
mkMU : Str -> MU = \s -> lin MU {s=s; isPre = False} ;
mkSubj : Str -> Subj = \s -> lin Subj {s=s} ;
mkQuant : Str -> Quant = \s -> lin Quant {s=s; sp=Indef} ;
mkDet : Str -> Det = \s -> lin Det {s=s; n=NNum Sg; sp=Indef} ;
mkQuant : Str -> Str -> Str -> Str -> Quant = \m,f,n,pl ->
lin Quant {
s=table {
GSg Masc => m;
GSg Fem => f;
GSg Neuter => n;
GPl => pl
} ;
sp=Indef
} ;
mkDet = overload {
mkDet : Str -> Det = \s -> lin Det {s=\\_=>s; n=NNum Pl; sp=Indef} ;
mkDet : Str -> Str -> Str -> Det = \m,f,n ->
lin Det {
s=table {
Masc => m ;
Fem => f ;
Neuter => n
} ;
n=NNum Sg;
sp=Indef
} ;
} ;
mkConj : Str -> Conj = \s -> lin Conj {s=s} ;
mkPConj : Str -> PConj = \s -> lin PConj {s=s} ;
mkPredet : Str -> Predet = \s -> lin Predet {s=s} ;

View File

@@ -180,6 +180,12 @@ genNum : Gender -> Number -> GenNum = \g,n ->
Sg => GSg g ;
Pl => GPl
} ;
nnum2num : NNumber -> Number = \n ->
case n of {
NNum n => n ;
NCountable => Pl
} ;
auxBe = {
present : Number => Person => Str

View File

@@ -1,4 +1,4 @@
concrete StructuralMkd of Structural = CatMkd ** open ResMkd,MorphoMkd in {
concrete StructuralMkd of Structural = CatMkd ** open ResMkd,MorphoMkd,ParadigmsMkd in {
lin i_Pron = mkPron "јас" "мене" "ме" "мене" "ми" "мене" "мој" "мојот" "моја" "мојата" "мое" "моето" "мои" "моите" "ми" (GSg Masc) P1 ;
lin youSg_Pron = mkPron "ти" "тебе" "те" "тебе" "ти" "тебе" "твој" "твојот" "твоја" "твојата" "твое" "твоето" "твои" "твоите" "ти" (GSg Masc) P2 ;
@@ -9,5 +9,7 @@ lin we_Pron = mkPron "ние" "нас" "нѐ" "нам" "ни" "нас" "наш"
lin youPl_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" GPl P2 ;
lin youPol_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" (GSg Masc) P2 ;
lin they_Pron = mkPron "тие" "нив" "ги" "ним" "им" "нив" "нивен" "нивниот" "нивна" "нивната" "нивно" "нивното" "нивни" "нивните" "им" GPl P3 ;
lin this_Quant = mkQuant "овој" "оваа" "ова" "овие" ;
lin that_Quant = mkQuant "тој" "таа" "тоа" "тие" ;
}