move possessives as part of the pronoun

This commit is contained in:
Krasimir Angelov
2026-09-18 09:14:07 +02:00
parent 1900362cad
commit 96e9ee9994
4 changed files with 63 additions and 30 deletions
+6 -1
View File
@@ -42,7 +42,12 @@ concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in {
lincat Ord = {s : Case => Gender => Number => Str} ;
lincat PN = {s : Str} ;
lincat Predet = {s : Str} ;
lincat Pron = {s: Case => Str; acc_clit, dat_clit : Str; a : Agr} ;
lincat Pron = {
s: Case => Str;
acc_clit, dat_clit : Str;
poss : Case => Gender => Number => Str;
a : Agr
} ;
lincat QCl = {s : ParamX.Tense => Anteriority => Polarity => Str} ;
lincat QS = {s : Str} ;
lincat Quant = {
+1 -19
View File
@@ -92,25 +92,7 @@ concrete NounSqi of Noun = CatSqi ** open MorphoSqi, ResSqi, Prelude in {
CountNP det np = {s=\\c=>det.s ! c ! Masc ++ "nga" ++ np.s ! Ablat; a=agrgP3 Masc det.n} ;
PossPron p = {
s=\\c,g,n=>case <p.a.gn,p.a.p,g,n> of {
<GSg _,P1,Masc,Sg> => case c of {Nom=>"im"; _=>"tim"};
<GSg _,P1,Fem,Sg> => case c of {Nom=>"ime"; Acc=>"time"; _=>"sime"};
<GSg _,P2,Masc,Sg> => case c of {Nom=>"yt"; _=>"tënd"};
<GSg _,P2,Fem,Sg> => case c of {Nom=>"jote"; Acc=>"tënde"; _=>"sate"};
<GSg Masc,P3,_,_> => link_clitic!Def!c!g!n++"tij";
<GSg Fem,P3,_,_> => link_clitic!Def!c!g!n++"saj";
<GPl,P3,_,_> => link_clitic!Def!c!g!n++"tyre";
<GSg _,P1,Masc,Pl> => link_clitic!Def!c!g!n++"mi";
<GSg _,P1,Fem,Pl> => link_clitic!Def!c!g!n++"mia";
<GSg _,P2,Masc,Pl> => link_clitic!Def!c!g!n++"tu";
<GSg _,P2,Fem,Pl> => link_clitic!Def!c!g!n++"tua";
<GPl,P1,Masc,Sg> => case c of {Nom=>"ynë"; _=>"tonë"};
<GPl,P1,Fem,Sg> => case c of {Nom=>"jonë"; Acc=>"tonë"; _=>"sonë"};
<GPl,P1,Masc,Pl> => "tanë";
<GPl,P1,Fem,Pl> => "tona";
<GPl,P2,_,Sg> => case c of {Nom=>"juaj"; _=>"tuaj"};
<GPl,P2,_,Pl> => "tuaj"
};
s=p.poss;
sp=Def;
isPoss=True
} ;
+5 -2
View File
@@ -1420,11 +1420,14 @@ mkDet = overload {
mkConj : Str -> Conj = \s -> lin Conj {s=s} ;
mkPConj : Str -> PConj = \s -> lin PConj {s=s} ;
mkPron : (nom,acc,dat,ablat,acc_clit,dat_clit : Str) -> GenNum -> Person -> Pron =
\nom,acc,dat,ablat,acc_clit,dat_clit,gn,p -> lin Pron
mkPron : (nom,acc,dat,ablat,acc_clit,dat_clit : Str) ->
(Case => Gender => Number => Str) ->
GenNum -> Person -> Pron =
\nom,acc,dat,ablat,acc_clit,dat_clit,poss,gn,p -> lin Pron
{s = table Case [nom; acc; dat; ablat];
acc_clit = acc_clit;
dat_clit = dat_clit;
poss = poss;
a = {gn=gn; p=p}
} ;
+51 -8
View File
@@ -1,13 +1,56 @@
concrete StructuralSqi of Structural = CatSqi ** open ResSqi, ParadigmsSqi in {
lin i_Pron = mkPron "unë" "mua" "mua" "meje" "më" "më" (GSg Masc) P1 ;
lin youSg_Pron = mkPron "ti" "ty" "ty" "teje" "të" "të" (GSg Masc) P2 ;
lin he_Pron = mkPron "ai" "atë" "atij" "atij" "e" "i" (GSg Masc) P3 ;
lin she_Pron = mkPron "ajo" "atë" "asaj" "asaj" "e" "i" (GSg Fem) P3 ;
lin it_Pron = mkPron "ai" "atë" "atij" "atij" "e" "i" (GSg Masc) P3 ;
lin we_Pron = mkPron "ne" "ne" "neve" "nesh" "na" "na" GPl P1 ;
lin youPl_Pron = mkPron "ju" "ju" "juve" "jush" "ju" "ju" GPl P2 ;
lin they_Pron = mkPron "ata" "ata" "atyre" "atyre" "i" "u" GPl P3 ;
lin i_Pron = mkPron "unë" "mua" "mua" "meje" "më" "më"
(\\c,g,n => case <c,g,n> of {
<Nom,Masc,Sg> => "im";
<_ ,Masc,Sg> => "tim";
<Nom,Fem, Sg> => "ime";
<Acc,Fem, Sg> => "time";
<_ ,Fem, Sg> => "sime";
<_ ,Masc,Pl> => link_clitic!Def!c!g!n++"mi";
<_ ,Fem, Pl> => link_clitic!Def!c!g!n++"mia"
})
(GSg Masc) P1 ;
lin youSg_Pron = mkPron "ti" "ty" "ty" "teje" "të" "të"
(\\c,g,n => case <c,g,n> of {
<Nom,Masc,Sg> => "yt";
<_ ,Masc,Sg> => "tënd";
<Nom,Fem, Sg> => "jote";
<Acc,Fem, Sg> => "tënde";
<_ ,Fem, Sg> => "sate";
<_ ,Masc,Pl> => link_clitic!Def!c!g!n++"tu";
<_ ,Fem, Pl> => link_clitic!Def!c!g!n++"tua"
})
(GSg Masc) P2 ;
lin he_Pron = mkPron "ai" "atë" "atij" "atij" "e" "i"
(\\c,g,n => link_clitic!Def!c!g!n++"tij")
(GSg Masc) P3 ;
lin she_Pron = mkPron "ajo" "atë" "asaj" "asaj" "e" "i"
(\\c,g,n => link_clitic!Def!c!g!n++"saj")
(GSg Fem) P3 ;
lin it_Pron = mkPron "ai" "atë" "atij" "atij" "e" "i"
(\\c,g,n => link_clitic!Def!c!g!n++"tij")
(GSg Masc) P3 ;
lin we_Pron = mkPron "ne" "ne" "neve" "nesh" "na" "na"
(\\c,g,n => case <c,g,n> of {
<Nom,Masc,Sg> => "ynë";
<_ ,Masc,Sg> => "tonë";
<Nom,Fem, Sg> => "jonë";
<Acc,Fem, Sg> => "tonë";
<_ ,Fem, Sg> => "sonë";
<_ ,Masc,Pl> => "tanë";
<_ ,Fem ,Pl> => "tona"
})
GPl P1 ;
lin youPl_Pron = mkPron "ju" "ju" "juve" "jush" "ju" "ju"
(\\c,g,n => case <c,n> of {
<Nom,Sg> => "juaj";
_ => "tuaj"
})
GPl P2 ;
lin they_Pron = mkPron "ata" "ata" "atyre" "atyre" "i" "u"
(\\c,g,n => link_clitic!Def!c!g!n++"tyre")
GPl P3 ;
lin this_Quant = mkQuant "ky" "këta" "kjo" "këto"
"këtë" "këtyre" "këtë" "këtyre"
"këtij" "këtyre" "kësaj" "këtyre"