diff --git a/src/macedonian/AdjectiveMkd.gf b/src/macedonian/AdjectiveMkd.gf new file mode 100644 index 00000000..c500d9ad --- /dev/null +++ b/src/macedonian/AdjectiveMkd.gf @@ -0,0 +1,5 @@ +concrete AdjectiveMkd of Adjective = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin PositA a = a ** {isPre = True} ; +} \ No newline at end of file diff --git a/src/macedonian/CatMkd.gf b/src/macedonian/CatMkd.gf index 7c902195..90ef43bb 100644 --- a/src/macedonian/CatMkd.gf +++ b/src/macedonian/CatMkd.gf @@ -23,4 +23,27 @@ linref V, VA, VV, VS, VQ, V2, V2S, V2Q, V3, V2A, V2V = } ; linref A, A2 = \a -> a.s ! Indef ! GSg Masc ; +lincat AP = {s : Species => GenNum => Str; isPre : Bool} ; +lincat NP = {s : Str; vocative: Str; n : Number; p : Person; g : Gender} ; +lincat Num = {s : Str; n : Number} ; +lincat Quant = {s : Str; sp : Species} ; +lincat Det = {s : Str; n : Number; sp : Species} ; + +lincat VP = {present : Aspect => Number => Person => Str; + aorist : Number => Person => Str; + imperfect : Aspect => Number => Person => Str; + imperative : Aspect => Number => Str; + participle : {aorist : Aspect => GenNum => Str; perfect : Aspect => Str}} ; +lincat VPSlash = {present : Aspect => Number => Person => Str; + aorist : Number => Person => Str; + imperfect : Aspect => Number => Person => Str; + imperative : Aspect => Number => Str; + participle : {aorist : Aspect => GenNum => Str; + imperfect : GenNum => Str; perfect : Aspect => Str; + adjectival : Aspect => Str; adverbial : Str}; + noun_from_verb : Str; isRefl : Bool; c2 : Compl} ; +lincat Cl = {present : Aspect => Str; + aorist : Str; + participle : {aorist : Aspect => Str; perfect : Aspect => Str}} ; + } diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index d6fdcad6..24bb3ef6 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,8 +1,4 @@ -concrete GrammarMkd of Grammar = - NumeralMkd, - PhraseMkd, - TextX, - StructuralMkd, - TenseX ** { - -} ; +concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdjectiveMkd,NumeralMkd,PhraseMkd,TextX,StructuralMkd,TenseX ** { + flags + coding = "UTF-8" ; +} \ No newline at end of file diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf new file mode 100644 index 00000000..af78a48b --- /dev/null +++ b/src/macedonian/NounMkd.gf @@ -0,0 +1,46 @@ +concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin AdjCN ap cn = { + s = case ap.isPre of { + True => \\s,n => ap.s ! s + ! case n of { + Sg => GSg cn.g; + Pl => GPl + } ++ + cn.s ! Indef ! n; + False => \\s,n => cn.s ! s ! n ++ + ap.s ! Indef + ! case n of { + Sg => GSg cn.g; + Pl => GPl + } + }; + vocative = \\n => ap.s ! Indef + ! case n of { + Sg => GSg cn.g; + Pl => GPl + } ++ + cn.vocative ! n; + count_form = ap.s ! Indef ! GPl ++ cn.count_form; g = cn.g} ; + lin AdvCN cn adv = { + s = \\s,n => cn.s ! s ! n ++ adv.s; + count_form = cn.count_form ++ adv.s; + vocative = \\n => cn.vocative ! n ++ adv.s; + g = cn.g + } ; + lin DefArt = {s = []; sp = Def Unspecified} ; + lin DetCN det cn = { + s = det.s ++ cn.s ! det.sp ! det.n; + vocative = det.s ++ cn.vocative ! det.n; + n = det.n; + p = P3; + g = cn.g + } ; + lin DetQuant det num = {s = det.s ++ num.s; n = num.n; + sp = det.sp} ; + lin IndefArt = {s = []; sp = Indef} ; + lin NumPl = {s = []; n = Pl} ; + lin NumSg = {s = []; n = Sg} ; + lin UseN s = s ; +} diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf new file mode 100644 index 00000000..ddd13e06 --- /dev/null +++ b/src/macedonian/SentenceMkd.gf @@ -0,0 +1,12 @@ +concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin PredVP np vp = {present = \\a => np.s ++ vp.present ! a ! np.n ! np.p ; + aorist = np.s ++ vp.aorist ! np.n ! np.p ; + participle = {aorist = \\a => np.s ++ vp.participle.aorist ! a ! + case np.n of { + Sg => GSg np.g; + Pl => GPl + }; + perfect = \\a => np.s ++ vp.participle.perfect ! a}} ; +} diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf new file mode 100644 index 00000000..90a82b84 --- /dev/null +++ b/src/macedonian/VerbMkd.gf @@ -0,0 +1,12 @@ +concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin ComplSlash vps np = {present = \\a,n,p => vps.present ! a ! n + ! p + ++ np.s; + aorist = \\n,p => vps.aorist ! n ! p ++ np.s; + imperfect = \\a,n,p => vps.imperfect ! a ! n ! p ++ np.s; + imperative = \\a,n => vps.imperative ! a ! n ++ np.s; + participle = {aorist = \\a,gn => vps.participle.aorist ! a ! gn ++ np.s; + perfect = \\a => vps.participle.perfect ! a ++ np.s}} ; +}