mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-09-01 17:06:58 -06:00
67 lines
3.7 KiB
Plaintext
67 lines
3.7 KiB
Plaintext
concrete IdiomMkd of Idiom = CatMkd ** open Prelude,ResMkd,MorphoMkd in {
|
|
|
|
lin CleftAdv a s = {s = \\t,a2,p,o => a.s ++ s.s} ;
|
|
lin CleftNP np rs = {s = \\t,a,p,o => np.s ! RSubj
|
|
++ rs.s ! np.a.g} ;
|
|
lin ExistIP ip = {s = \\t,a,p => ip.s} ;
|
|
lin ExistIPAdv ip a = {s = \\t,a2,p => ip.s ++ a.s} ;
|
|
lin ExistNP np = {
|
|
s = \\o,t,a,p =>
|
|
let vp = case p of {
|
|
Pos => mkV001 "има" ;
|
|
Neg => mkV001 "нема"
|
|
} ** {compl : Agr => Str = \\_ => np.s ! RSubj} ;
|
|
in mkClause [] {g=GSg Neuter; p=P3} vp ! o ! t ! a ! Pos
|
|
} ;
|
|
lin ExistNPAdv np a = {
|
|
s = \\o,t,a2,p =>
|
|
let vp = case p of {
|
|
Pos => mkV001 "има" ;
|
|
Neg => mkV001 "нема"
|
|
} ** {compl : Agr => Str = \\_ => np.s ! RSubj ++ a.s} ;
|
|
in mkClause [] {g=GSg Neuter; p=P3} vp ! o ! t ! a2 ! Pos
|
|
} ;
|
|
lin GenericCl vp = {s = \\t,a,p,o => vp.present ! Imperfective ! Sg
|
|
! P1} ;
|
|
lin ImpP3 np vp = {s = np.s ! RSubj
|
|
++ vp.present ! Imperfective ! Sg ! np.a.p} ;
|
|
lin ImpPl1 vp = {s = vp.present ! Imperfective ! Sg ! P1} ;
|
|
lin ImpersCl vp = {s = \\t,a,p,o => vp.present ! Imperfective ! Sg
|
|
! P1} ;
|
|
lin ProgrVP vp = vp ** {
|
|
present = \\a,n,p => vp.present ! Imperfective ! n ! p ;
|
|
imperfect = \\a,n,p => vp.imperfect ! Imperfective ! n ! p ;
|
|
imperative = \\a,n => vp.imperative ! Imperfective ! n ;
|
|
participle = {aorist = \\a,gn => vp.participle.aorist ! Imperfective ! gn ;
|
|
perfect = \\a => vp.participle.perfect ! Imperfective ;
|
|
imperfect = \\a => vp.participle.imperfect ! Imperfective ;
|
|
adjectival = vp.participle.adjectival ;
|
|
adverbial = vp.participle.adverbial}
|
|
} ;
|
|
|
|
lin SelfAdVVP vp = {present = \\a,n,p => vp.present ! a ! n ! p;
|
|
aorist = \\n,p => vp.aorist ! n ! p;
|
|
imperfect = \\a,n,p => vp.imperfect ! a ! n ! p;
|
|
imperative = \\a,n => vp.imperative ! a ! n;
|
|
participle = {aorist = \\a,g => vp.participle.aorist ! a ! g;
|
|
imperfect = \\a,g => vp.participle.imperfect ! a ! g;
|
|
perfect = \\a => vp.participle.perfect ! a;
|
|
adjectival = \\a => vp.participle.adjectival ! a;
|
|
adverbial = vp.participle.adverbial};
|
|
noun_from_verb = vp.noun_from_verb; vtype = vp.vtype;
|
|
compl = \\v => vp.compl ! {g = GSg Masc; p = P1}} ;
|
|
lin SelfAdvVP vp = {present = \\a,n,p => vp.present ! a ! n ! p;
|
|
aorist = \\n,p => vp.aorist ! n ! p;
|
|
imperfect = \\a,n,p => vp.imperfect ! a ! n ! p;
|
|
imperative = \\a,n => vp.imperative ! a ! n;
|
|
participle = {aorist = \\a,g => vp.participle.aorist ! a ! g;
|
|
imperfect = \\a,g => vp.participle.imperfect ! a ! g;
|
|
perfect = \\a => vp.participle.perfect ! a;
|
|
adjectival = \\a => vp.participle.adjectival ! a;
|
|
adverbial = vp.participle.adverbial};
|
|
noun_from_verb = vp.noun_from_verb; vtype = vp.vtype;
|
|
compl = \\v => vp.compl ! {g = GSg Masc; p = P1}} ;
|
|
lin SelfNP np = {s = \\r => np.s ! r; vocative = np.vocative;
|
|
a = {g = np.a.g; p = np.a.p}} ;
|
|
}
|