diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 955caaae..8f22e40a 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -1,4 +1,4 @@ -concrete CatMkd of Cat = open ResMkd, Prelude in { +concrete CatMkd of Cat = CommonX ** open ResMkd, Prelude in { lincat N = Noun ; lincat N2 = Noun ** {c2 : Compl} ; @@ -8,11 +8,8 @@ lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ; lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ; lincat A = Adj ; lincat A2 = Adj ** {c2 : Compl} ; -lincat Adv, AdV, AdA, AdN = Adv ; lincat Pron = Pron ; lincat Prep = Compl ; -lincat Interj = {s : Str} ; -lincat Voc = {s : Str} ; linref N,N2,N3 = \n -> n.s ! Indef ! Sg ; linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V = diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf new file mode 100644 index 00000000..b8e0718a --- /dev/null +++ b/src/macedonian/GrammarMkd.gf @@ -0,0 +1,6 @@ +concrete GrammarMkd of Grammar = + TextX, + StructuralMkd, + TenseX ** { + +} ; diff --git a/src/macedonian/LangMkd.gf b/src/macedonian/LangMkd.gf index 2e9bbbaf..92a334ab 100644 --- a/src/macedonian/LangMkd.gf +++ b/src/macedonian/LangMkd.gf @@ -1,6 +1,7 @@ --# -path=.:../abstract:../common:../api concrete LangMkd of Lang = + GrammarMkd, LexiconMkd ,DocumentationMkd --# notpresent diff --git a/src/macedonian/MorphoMkd.gf b/src/macedonian/MorphoMkd.gf index 6db858e7..62c8dc4f 100644 --- a/src/macedonian/MorphoMkd.gf +++ b/src/macedonian/MorphoMkd.gf @@ -9963,47 +9963,35 @@ mkAdv base_1 = { s = base_1 } ; -mkPron : Str -> Pron ; -mkPron base = - case base of { - "јас" => lin Pron - { Sg = { P1 = { subjective = "јас" ; - error_unrecognized_form = "ми" ; - possessive = "мој" - } ; - P2 = { subjective = "ти" ; - error_unrecognized_form = "ти" ; - possessive = "твој" - } ; - P3 = { subjective = "тоа" ; - error_unrecognized_form = "ѝ" ; - possessive = "нејзин" - } ; - reflexive = { subjective = "-" - } ; - error_unrecognized_form = { reflexive = "си" - } ; - possessive = { reflexive = "свој" - } - } ; - Pl = { P1 = { subjective = "ние" ; - error_unrecognized_form = "ни" ; - possessive = "наш" - } ; - P2 = { subjective = "вие" ; - error_unrecognized_form = "ви" ; - possessive = "ваш" - } ; - P3 = { subjective = "тие" ; - error_unrecognized_form = "им" ; - possessive = "нивен" - } ; - reflexive = { subjective = "-" - } ; - possessive = { reflexive = "свој" - } - } - }; - _ => error "Can't apply paradigm mkPron" - } ; +mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Pron = + \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15 -> + { s = table { + RSubj => f1 ; + RObj Acc => f2 ; + RObj Dat => f4 ; + RPrep => f6 + } ; + clitic = + table { + Acc => f3 ; + Dat => f5 + } ; + poss = + table { + Indef => table { + GSg Masc => f7 ; + GSg Fem => f9 ; + GSg Neuter => f11 ; + GPl => f13 + } ; + Def _ => table { + GSg Masc => f8 ; + GSg Fem => f10 ; + GSg Neuter => f12 ; + GPl => f14 + } + } ; + poss_clitic = f15 + } ; + } diff --git a/src/macedonian/ResMkd.gf b/src/macedonian/ResMkd.gf index b93ebc3d..d62849a1 100644 --- a/src/macedonian/ResMkd.gf +++ b/src/macedonian/ResMkd.gf @@ -142,48 +142,9 @@ oper mkAdv : Str -> Adv = { s = f1 } ; - - -oper Pron = {Sg: {P1: {subjective: Str; error_unrecognized_form: Str; possessive: Str}; P2: {subjective: Str; error_unrecognized_form: Str; possessive: Str}; P3: {subjective: Str; error_unrecognized_form: Str; possessive: Str}; reflexive: {subjective: Str}; error_unrecognized_form: {reflexive: Str}; possessive: {reflexive: Str}}; Pl: {P1: {subjective: Str; error_unrecognized_form: Str; possessive: Str}; P2: {subjective: Str; error_unrecognized_form: Str; possessive: Str}; P3: {subjective: Str; error_unrecognized_form: Str; possessive: Str}; reflexive: {subjective: Str}; possessive: {reflexive: Str}}} ; -- 8 -oper mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Pron = - \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23 -> - { Sg = { P1 = { subjective = f1 ; - error_unrecognized_form = f2 ; - possessive = f3 - } ; - P2 = { subjective = f4 ; - error_unrecognized_form = f5 ; - possessive = f6 - } ; - P3 = { subjective = f7 ; - error_unrecognized_form = f8 ; - possessive = f9 - } ; - reflexive = { subjective = f10 - } ; - error_unrecognized_form = { reflexive = f11 - } ; - possessive = { reflexive = f12 - } - } ; - Pl = { P1 = { subjective = f13 ; - error_unrecognized_form = f14 ; - possessive = f15 - } ; - P2 = { subjective = f16 ; - error_unrecognized_form = f17 ; - possessive = f18 - } ; - P3 = { subjective = f19 ; - error_unrecognized_form = f20 ; - possessive = f21 - } ; - reflexive = { subjective = f22 - } ; - possessive = { reflexive = f23 - } - } - } ; +param Case = Acc | Dat ; +param Role = RSubj | RObj Case | RPrep ; +oper Pron = {s : Role => Str; clitic : Case => Str} ; genNum : Gender -> Number -> GenNum = \g,n -> case n of { diff --git a/src/macedonian/StructuralMkd.gf b/src/macedonian/StructuralMkd.gf new file mode 100644 index 00000000..a51c1498 --- /dev/null +++ b/src/macedonian/StructuralMkd.gf @@ -0,0 +1,13 @@ +concrete StructuralMkd of Structural = CatMkd ** open MorphoMkd in { + +lin i_Pron = mkPron "јас" "мене" "ме" "мене" "ми" "мене" "мој" "мојот" "моја" "мојата" "мое" "моето" "мои" "моите" "ми" ; +lin youSg_Pron = mkPron "ти" "тебе" "те" "тебе" "ти" "тебе" "твој" "твојот" "твоја" "твојата" "твое" "твоето" "твои" "твоите" "ти" ; +lin he_Pron = mkPron "тој" "него" "го" "нему" "му" "него" "негов" "неговиот" "негова" "неговата" "негово" "неговото" "негови" "неговите" "му" ; +lin she_Pron = mkPron "таа" "неа" "ја" "нејзе" "ѝ" "неа" "нејзин" "нејзиниот" "нејзина" "нејзината" "нејзино" "нејзиното" "нејзини" "нејзините" "ѝ" ; +lin it_Pron = mkPron "тоа" "него" "го" "нему" "му" "него" "негов" "неговиот" "негова" "неговата" "негово" "неговото" "негови" "неговите" "му" ; +lin we_Pron = mkPron "ние" "нас" "нѐ" "нам" "ни" "нас" "наш" "нашиот" "наша" "нашата" "наше" "нашето" "наши" "нашите" "ни" ; +lin youPl_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" ; +lin youPol_Pron = mkPron "вие" "вас" "ве" "вам" "ви" "вас" "ваш" "вашиот" "ваша" "вашата" "ваше" "вашето" "ваши" "вашите" "ви" ; +lin they_Pron = mkPron "тие" "нив" "ги" "ним" "им" "нив" "нивен" "нивниот" "нивна" "нивната" "нивно" "нивното" "нивни" "нивните" "им" ; + +}