mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
autogenerate parts of the syntax
This commit is contained in:
5
src/macedonian/AdjectiveMkd.gf
Normal file
5
src/macedonian/AdjectiveMkd.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
concrete AdjectiveMkd of Adjective = CatMkd ** open Prelude,ResMkd in {
|
||||||
|
flags
|
||||||
|
coding = "UTF-8" ;
|
||||||
|
lin PositA a = a ** {isPre = True} ;
|
||||||
|
}
|
||||||
@@ -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 ;
|
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}} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
concrete GrammarMkd of Grammar =
|
concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,NounMkd,AdjectiveMkd,NumeralMkd,PhraseMkd,TextX,StructuralMkd,TenseX ** {
|
||||||
NumeralMkd,
|
flags
|
||||||
PhraseMkd,
|
coding = "UTF-8" ;
|
||||||
TextX,
|
}
|
||||||
StructuralMkd,
|
|
||||||
TenseX ** {
|
|
||||||
|
|
||||||
} ;
|
|
||||||
46
src/macedonian/NounMkd.gf
Normal file
46
src/macedonian/NounMkd.gf
Normal file
@@ -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 ;
|
||||||
|
}
|
||||||
12
src/macedonian/SentenceMkd.gf
Normal file
12
src/macedonian/SentenceMkd.gf
Normal file
@@ -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}} ;
|
||||||
|
}
|
||||||
12
src/macedonian/VerbMkd.gf
Normal file
12
src/macedonian/VerbMkd.gf
Normal file
@@ -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}} ;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user