diff --git a/src/albanian/CatSqi.gf b/src/albanian/CatSqi.gf index 5c6211ac8..2c4528952 100644 --- a/src/albanian/CatSqi.gf +++ b/src/albanian/CatSqi.gf @@ -19,8 +19,8 @@ lincat Decimal = {s : Str; n : Number; hasDot : Bool} ; lincat AP = {s: Species => Case => Gender => Number => Str} ; lincat CN = Noun ; lincat Num = {s : Str; n : Number} ; -lincat Quant = {s : Str; spec : Species} ; -lincat Det = {s : Str; spec : Species; n : Number} ; +lincat Quant = {s : Case => Gender => Number => Str; spec : Species} ; +lincat Det = {s : Case => Gender => Str; spec : Species; n : Number} ; lincat NP = {s: Case => Str; a : Agr} ; lincat Pron = {s: Case => Str; acc_clit, dat_clit : Str; a : Agr} ; diff --git a/src/albanian/NounSqi.gf b/src/albanian/NounSqi.gf index 2f3e357f3..c577354b4 100644 --- a/src/albanian/NounSqi.gf +++ b/src/albanian/NounSqi.gf @@ -4,14 +4,14 @@ concrete NounSqi of Noun = CatSqi ** open MorphoSqi, ResSqi in { lin DetCN det cn = { - s = \\c => det.s ++ cn.s ! det.spec ! c ! det.n ; + s = \\c => det.s ! c ! cn.g ++ cn.s ! det.spec ! c ! det.n ; a = agrgP3 cn.g det.n } ; UsePron p = p ; DetQuant quant num = { - s = quant.s ++ num.s ; + s = \\c,g => quant.s ! c ! g ! num.n ++ num.s ; n = num.n ; spec = quant.spec } ; @@ -20,12 +20,12 @@ concrete NounSqi of Noun = CatSqi ** open MorphoSqi, ResSqi in { NumPl = {s = []; n = Pl} ; DefArt = { - s = [] ; + s = \\c,g,n => [] ; spec = Def } ; IndefArt = { - s = "një" ; + s = \\c,g => table Number ["një"; []] ; spec = Indef } ; diff --git a/src/albanian/ParadigmsSqi.gf b/src/albanian/ParadigmsSqi.gf index 9f587650c..e2a4a895e 100644 --- a/src/albanian/ParadigmsSqi.gf +++ b/src/albanian/ParadigmsSqi.gf @@ -1231,8 +1231,78 @@ mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; 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} ; -mkQuant : Str -> Quant = \s -> lin Quant {s=s; spec=Indef} ; -mkDet : Str -> Number -> Det = \s,n -> lin Det {s=s; spec=Indef; n=n} ; + +oper 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 { + Masc => table { + Sg => f1 ; + Pl => f2 + } ; + Fem => table { + Sg => f3 ; + Pl => f4 + } + } ; + Acc => table { + Masc => table { + Sg => f5 ; + Pl => f6 + } ; + Fem => table { + Sg => f7 ; + Pl => f8 + } + } ; + Dat => table { + Masc => table { + Sg => f9 ; + Pl => f10 + } ; + Fem => table { + Sg => f11 ; + Pl => f12 + } + } ; + Ablat => table { + Masc => table { + Sg => f13 ; + Pl => f14 + } ; + Fem => table { + Sg => f15 ; + Pl => f16 + } + } + } ; + spec = Indef + } ; + +oper mkDet : (_,_,_,_,_,_,_,_ : Str) -> Number -> Det = + \f1,f2,f3,f4,f5,f6,f7,f8,n -> lin Det + { s = table { + Nom => table { + Masc => f1 ; + Fem => f2 + } ; + Acc => table { + Masc => f3 ; + Fem => f4 + } ; + Dat => table { + Masc => f5 ; + Fem => f6 + } ; + Ablat => table { + Masc => f7 ; + Fem => f8 + } + } ; + spec = Indef ; + n = n + } ; + mkConj : Str -> Conj = \s -> lin Conj {s=s} ; mkPConj : Str -> PConj = \s -> lin PConj {s=s} ; diff --git a/src/albanian/StructuralSqi.gf b/src/albanian/StructuralSqi.gf index f0dfc6120..9e3e08943 100644 --- a/src/albanian/StructuralSqi.gf +++ b/src/albanian/StructuralSqi.gf @@ -8,5 +8,9 @@ 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 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" + "këtij" "këtyre" "kësaj" "këtyre" ; }