From 323e4b4cdf325062d6b814bb2f509e0d44bd5d5f Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 11 Apr 2026 15:03:44 +0200 Subject: [PATCH] more structural words --- src/macedonian/CatMkd.gf | 4 +++- src/macedonian/ParadigmsMkd.gf | 31 +++++++++++++++++++++++++++---- src/macedonian/StructuralMkd.gf | 8 ++++++++ 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index bfacb3d5..6d5c1301 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -42,7 +42,9 @@ lincat Cl = {s : ResMkd.Tense => Anteriority => Polarity => Order => Str} ; lincat QCl = {s : ResMkd.Tense => Anteriority => Polarity => Str} ; lincat RCl = {s : GenNum => ResMkd.Tense => Anteriority => Polarity => Str} ; lincat RP = {s : GenNum => Str} ; -lincat IP = {s : Str} ; +lincat IP = {s : Str; g : GenNum} ; +lincat IQuant = {s : GenNum => Str} ; +lincat IDet = {s : Gender => Str; n : Number} ; lincat Subj = {s : Str} ; } diff --git a/src/macedonian/ParadigmsMkd.gf b/src/macedonian/ParadigmsMkd.gf index cf6bdaaf..8eb17207 100644 --- a/src/macedonian/ParadigmsMkd.gf +++ b/src/macedonian/ParadigmsMkd.gf @@ -1164,12 +1164,35 @@ mkVoc : Str -> Voc = \s -> lin Voc {s=s} ; mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ; noPrep : Prep = lin Prep {s=""; c=Acc} ; -mkIP : Str -> IP = \s -> lin IP {s=s} ; +mkIP : Str -> GenNum -> IP = \s,g -> lin IP {s=s; g=g} ; mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; -mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; -mkIDet : Str -> IDet = \s -> lin IDet {s=s} ; + +mkIQuant : Str -> Str -> Str -> Str -> IQuant = \m,f,n,pl -> + lin IQuant { + s=table { + GSg Masc => m; + GSg Fem => f; + GSg Neuter => n; + GPl => pl + } + } ; + +mkIDet = overload { + mkIDet : Str -> IDet = \s -> lin IDet {s=\\_=>s; n=Pl} ; + mkIDet : Str -> Str -> Str -> IDet = \m,f,n -> + lin IDet { + s=table { + Masc => m ; + Fem => f ; + Neuter => n + } ; + n=Sg; + } ; +} ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre = False} ; mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; + mkQuant : Str -> Str -> Str -> Str -> Quant = \m,f,n,pl -> lin Quant { s=table { @@ -1183,7 +1206,7 @@ mkQuant : Str -> Str -> Str -> Str -> Quant = \m,f,n,pl -> mkDet = overload { mkDet : Str -> Det = \s -> lin Det {s=\\_=>s; n=NNum Pl; sp=Indef} ; - mkDet : Str -> Str -> Str -> Det = \m,f,n -> + mkDet : Str -> Str -> Str -> Det = \m,f,n -> lin Det { s=table { Masc => m ; diff --git a/src/macedonian/StructuralMkd.gf b/src/macedonian/StructuralMkd.gf index ad79fbdd..d172c17b 100644 --- a/src/macedonian/StructuralMkd.gf +++ b/src/macedonian/StructuralMkd.gf @@ -11,5 +11,13 @@ lin youPol_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ва lin they_Pron = mkPron "тие" "нив" "ги" "ним" "им" "нив" "нивен" "нивниот" "нивна" "нивната" "нивно" "нивното" "нивни" "нивните" "им" GPl P3 ; lin this_Quant = mkQuant "овој" "оваа" "ова" "овие" ; lin that_Quant = mkQuant "тој" "таа" "тоа" "тие" ; +lin how_IAdv = mkIAdv "как" ; +lin how8many_IDet = mkIDet "колку" ; +lin how8much_IAdv = mkIAdv "колку" ; +lin when_IAdv = mkIAdv "кога" ; +lin where_IAdv = mkIAdv "каде" ; +lin which_IQuant = mkIQuant "кој" "која" "кое" "кои" ; +lin whoSg_IP = mkIP "кој" (GSg Masc) ; +lin whoPl_IP = mkIP "кои" GPl ; }