1
0
forked from GitHub/gf-rgl

Macedonian morphology

This commit is contained in:
Krasimir Angelov
2024-10-31 09:37:41 +01:00
parent 21d1a192c8
commit a2b20dc6db
9 changed files with 11803 additions and 0 deletions

View File

@@ -28,6 +28,7 @@ Jpn,Japanese,japanese,,,,,,,,y
Kor,Korean,korean,,,n,y,y,y,n,n
Lat,Latin,latin,,,,,y,y,n,y
Lav,Latvian,latvian,,,,,,,y,y
Mkd,Macedonian,macedonian,,,,y,n,n,n,y
May,Malay,malay,,,y,,,,n,y
Mlt,Maltese,maltese,,,,,,,,y
Mon,Mongolian,mongolian,,,,,,n,,y
1 Code Name Directory Functor Unlexer Present All Try Symbolic Compatibility Synopsis
28 Kor Korean korean n y y y n n
29 Lat Latin latin y y n y
30 Lav Latvian latvian y y
31 Mkd Macedonian macedonian y n n n y
32 May Malay malay y n y
33 Mlt Maltese maltese y
34 Mon Mongolian mongolian n y

7
src/macedonian/AllMkd.gf Normal file
View File

@@ -0,0 +1,7 @@
--# -path=.:../abstract:../common:../prelude:../api
concrete AllMkd of AllMkdAbs =
LangMkd
** {
} ;

View File

@@ -0,0 +1,7 @@
--# -path=.:../abstract:../common:prelude
abstract AllMkdAbs =
Lang
** {
} ;

17
src/macedonian/CatMkd.gf Normal file
View File

@@ -0,0 +1,17 @@
concrete CatMkd of Cat = open ResMkd in {
lincat N = Noun ;
lincat N2 = Noun ** {c2 : Compl} ;
lincat N3 = Noun ** {c2,c3 : Compl} ;
lincat V, VA, VV, VS, VQ = Verb ;
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} ;
}

11
src/macedonian/LangMkd.gf Normal file
View File

@@ -0,0 +1,11 @@
--# -path=.:../abstract:../common:../api
concrete LangMkd of Lang =
LexiconMkd
,DocumentationMkd --# notpresent
** {
flags startcat = Phr ;
} ;

View File

@@ -0,0 +1,11 @@
concrete LexiconMkd of Lexicon = CatMkd **
open ParadigmsMkd in {
lin
airplane_N = mkN001 "авион" ;
apple_N = mkN013 "јаболко" ;
bad_A = mkA004 "лош" ;
good_A = mkA005 "добар" ;
die_V = mkV001 "умира" ;
}

9956
src/macedonian/MorphoMkd.gf Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

187
src/macedonian/ResMkd.gf Normal file
View File

@@ -0,0 +1,187 @@
resource ResMkd = {
oper Compl = {s : Str} ;
param Species = Def Distance | Indef ;
param Distance = Distal | Unspecified | Proximal ;
param Number = Sg | Pl ;
param Gender = Masc | Fem | Neuter ;
oper Noun = {s: Species => Number => Str; count_form: Str; vocative: Number => Str; g: Gender} ; -- 24855
oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,g ->
{ s = table {
Indef => table {
Sg => f1 ;
Pl => f2
} ;
Def Unspecified => table {
Sg => f3 ;
Pl => f4
} ;
Def Proximal => table {
Sg => f5 ;
Pl => f6
} ;
Def Distal => table {
Sg => f7 ;
Pl => f8
}
} ;
count_form = f9 ;
vocative = table {
Sg => f10 ;
Pl => f11
} ;
g = g
} ;
param Person = P1 | P3 | P2 ;
param GenNum = GSg Gender | GPl ;
oper Verb = {present: Number => Person => Str; aorist: Number => Person => Str; imperfect: Number => Person => Str; Imperative: Number => Str; participle: {aorist: GenNum => Str; imperfect: GenNum => Str; perfect: Str; adjectival: Str; adverbial: Str}; noun_from_verb: Str} ; -- 8174
oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32 ->
{ present = table {
Sg => table {
P1 => f1 ;
P2 => f2 ;
P3 => f3
} ;
Pl => table {
P1 => f4 ;
P2 => f5 ;
P3 => f6
}
} ;
aorist = table {
Sg => table {
P1 => f7 ;
P2 => f8 ;
P3 => f9
} ;
Pl => table {
P1 => f10 ;
P2 => f11 ;
P3 => f12
}
} ;
imperfect = table {
Sg => table {
P1 => f13 ;
P2 => f14 ;
P3 => f15
} ;
Pl => table {
P1 => f16 ;
P2 => f17 ;
P3 => f18
}
} ;
Imperative = table {
Sg => f19 ;
Pl => f20
} ;
participle = { aorist = table {
GSg Masc => f21 ;
GSg Fem => f22 ;
GSg Neuter => f23 ;
GPl => f24
} ;
imperfect = table {
GSg Masc => f25 ;
GSg Fem => f26 ;
GSg Neuter => f27 ;
GPl => f28
} ;
perfect = f29 ;
adjectival = f30 ;
adverbial = f31
} ;
noun_from_verb = f32
} ;
oper Adj = {s: Species => GenNum => Str; adverb: Str} ; -- 15929
oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17 ->
{ s = table {
Indef => table {
GSg Masc => f1 ;
GSg Fem => f2 ;
GSg Neuter => f3 ;
GPl => f4
} ;
Def Unspecified => table {
GSg Masc => f5 ;
GSg Fem => f6 ;
GSg Neuter => f7 ;
GPl => f8
} ;
Def Proximal => table {
GSg Masc => f9 ;
GSg Fem => f10 ;
GSg Neuter => f11 ;
GPl => f12
} ;
Def Distal => table {
GSg Masc => f13 ;
GSg Fem => f14 ;
GSg Neuter => f15 ;
GPl => f16
}
} ;
adverb = f17
} ;
oper Adv = {s: Str} ; -- 1963
oper mkAdv : Str -> Adv =
\f1 ->
{ 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
}
}
} ;
}