mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-09-18 08:16:05 -06:00
more updates from Codex
This commit is contained in:
@@ -5,7 +5,7 @@ concrete AdverbMkd of Adverb = CatMkd ** open Prelude,ResMkd in {
|
||||
++ a.s ! Indef ! np.a.g ++ np.s ! RSubj} ;
|
||||
lin ComparAdvAdjS c a s = {s = c.s
|
||||
++ a.s ! Indef ! GSg Masc ++ s.s} ;
|
||||
lin PositAdAAdj a = {s = a.s ! Indef ! GSg Masc} ;
|
||||
lin PositAdAAdj a = {s = a.adverb} ;
|
||||
lin PositAdvAdj a = {s = a.adverb} ;
|
||||
lin PrepNP p np = {s = p.s ++ np.s ! RPrep} ;
|
||||
lin SubjS s s2 = {s = s.s ++ s2.s} ;
|
||||
|
||||
@@ -11,6 +11,15 @@ lincat
|
||||
RNP = {s : Agr => Role => Str; a : Agr; isPron : Bool} ;
|
||||
RNPList = {s : Agr => Ints 4 => Role => Str; a : Agr} ;
|
||||
|
||||
oper
|
||||
partAdj : Str -> GenNum -> Str = \base,gn ->
|
||||
case gn of {
|
||||
GSg Masc => base ;
|
||||
GSg Fem => base ++ BIND ++ "а" ;
|
||||
GSg Neuter => base ++ BIND ++ "о" ;
|
||||
GPl => base ++ BIND ++ "и"
|
||||
} ;
|
||||
|
||||
lin
|
||||
GenModNP num np cn = DetCN (DetQuant DefArt num) (PossNP cn np) ;
|
||||
|
||||
@@ -51,13 +60,13 @@ lin
|
||||
} ;
|
||||
|
||||
PastPartAP vps = {
|
||||
s = \\_,gn => vps.participle.adjectival ! Perfective ++
|
||||
s = \\_,gn => partAdj (vps.participle.adjectival ! Perfective) gn ++
|
||||
vps.compl ! {g = gn; p = P3} ;
|
||||
isPre = False
|
||||
} ;
|
||||
|
||||
PastPartAgentAP vps np = {
|
||||
s = \\_,gn => vps.participle.adjectival ! Perfective ++
|
||||
s = \\_,gn => partAdj (vps.participle.adjectival ! Perfective) gn ++
|
||||
vps.compl ! {g = gn; p = P3} ++
|
||||
"од" ++ np.s ! RPrep ;
|
||||
isPre = False
|
||||
@@ -73,8 +82,9 @@ lin
|
||||
perfect = \\_ => nonExist ;
|
||||
adjectival = \\_ => nonExist ;
|
||||
adverbial = nonExist} ;
|
||||
noun_from_verb = nonExist ;
|
||||
compl = \\agr => vps.participle.adjectival ! Perfective ++ vps.compl ! agr ;
|
||||
noun_from_verb = "бидување" ;
|
||||
compl = \\agr => partAdj (vps.participle.adjectival ! Perfective) agr.g ++
|
||||
vps.compl ! agr ;
|
||||
vtype = VNormal
|
||||
} ;
|
||||
|
||||
@@ -88,8 +98,9 @@ lin
|
||||
perfect = \\_ => nonExist ;
|
||||
adjectival = \\_ => nonExist ;
|
||||
adverbial = nonExist} ;
|
||||
noun_from_verb = nonExist ;
|
||||
compl = \\agr => vps.participle.adjectival ! Perfective ++ vps.compl ! agr ++
|
||||
noun_from_verb = "бидување" ;
|
||||
compl = \\agr => partAdj (vps.participle.adjectival ! Perfective) agr.g ++
|
||||
vps.compl ! agr ++
|
||||
"од" ++ np.s ! RPrep ;
|
||||
vtype = VNormal
|
||||
} ;
|
||||
@@ -140,14 +151,16 @@ lin
|
||||
vp.compl ! {g = GSg Neuter; p = P3}} ;
|
||||
WithoutVP vp = {s = "без" ++ vp.noun_from_verb ++ BIND ++ "то" ++
|
||||
vp.compl ! {g = GSg Neuter; p = P3}} ;
|
||||
InOrderToVP vp = {s = "за да" ++ vp.present ! Perfective ! Sg ! P3 ++
|
||||
InOrderToVP vp = {s = "за да" ++ medialClitic vp.vtype ++
|
||||
vp.present ! Perfective ! Sg ! P3 ++
|
||||
vp.compl ! {g = GSg Masc; p = P3}} ;
|
||||
|
||||
ComplBareVS vs s = vs ** {compl = \\_ => s.s} ;
|
||||
ComplSlashPartLast = ComplSlash ;
|
||||
|
||||
UttVPShort vp = {
|
||||
s = vp.imperative ! Perfective ! Sg ++ vp.compl ! {g = GSg Masc; p = P2}
|
||||
s = vp.imperative ! Perfective ! Sg ++ medialClitic vp.vtype ++
|
||||
vp.compl ! {g = GSg Masc; p = P2}
|
||||
} ;
|
||||
|
||||
BaseVPS x y = {s = \\a => table {4 => y.s ! a; _ => x.s ! a}} ;
|
||||
@@ -174,7 +187,8 @@ lin
|
||||
}
|
||||
} ;
|
||||
MkVPI vp = {
|
||||
s = \\agr => "да" ++ vp.present ! Perfective ! genNum2num agr.g ! agr.p ++ vp.compl ! agr
|
||||
s = \\agr => "да" ++ medialClitic vp.vtype ++
|
||||
vp.present ! Perfective ! genNum2num agr.g ! agr.p ++ vp.compl ! agr
|
||||
} ;
|
||||
ConjVPI conj vpi = {
|
||||
s = \\agr => linCoord [] ! conj.sep ++
|
||||
|
||||
@@ -24,8 +24,12 @@ concrete IdiomMkd of Idiom = CatMkd ** open Prelude,ResMkd,MorphoMkd in {
|
||||
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} ;
|
||||
++ "нека" ++ medialClitic vp.vtype ++
|
||||
vp.present ! Perfective ! genNum2num np.a.g ! P3
|
||||
++ vp.compl ! np.a} ;
|
||||
lin ImpPl1 vp = {s = "да" ++ medialClitic vp.vtype ++
|
||||
vp.present ! Perfective ! Pl ! P1
|
||||
++ vp.compl ! {g = GPl; p = P1}} ;
|
||||
lin ImpersCl vp = {s = \\t,a,p,o => vp.present ! Imperfective ! Sg
|
||||
! P1} ;
|
||||
lin ProgrVP vp = vp ** {
|
||||
|
||||
+41
-41
@@ -407,15 +407,15 @@ mkN013 base_1 =
|
||||
Pl => base_1+"и"
|
||||
} ;
|
||||
Def Unspecified => table {
|
||||
Sg => base_1+"та" ; --guessed
|
||||
Sg => base_1+"от" ;
|
||||
Pl => base_1+"ите" --guessed
|
||||
} ;
|
||||
Def Proximal => table {
|
||||
Sg => base_1+"ва" ; --guessed
|
||||
Sg => base_1+"ов" ;
|
||||
Pl => base_1+"иве" --guessed
|
||||
} ;
|
||||
Def Distal => table {
|
||||
Sg => base_1+"на" ; --guessed
|
||||
Sg => base_1+"он" ;
|
||||
Pl => base_1+"ине" --guessed
|
||||
}
|
||||
} ;
|
||||
@@ -4999,22 +4999,22 @@ mkN152 base =
|
||||
Pl => base_1+"а"
|
||||
} ;
|
||||
Def Unspecified => table {
|
||||
Sg => nonExist ;
|
||||
Pl => nonExist
|
||||
Sg => base_1+"ото" ;
|
||||
Pl => base_1+"ата"
|
||||
} ;
|
||||
Def Proximal => table {
|
||||
Sg => nonExist ;
|
||||
Pl => nonExist
|
||||
Sg => base_1+"ово" ;
|
||||
Pl => base_1+"ава"
|
||||
} ;
|
||||
Def Distal => table {
|
||||
Sg => nonExist ;
|
||||
Pl => nonExist
|
||||
Sg => base_1+"оно" ;
|
||||
Pl => base_1+"ана"
|
||||
}
|
||||
} ;
|
||||
count_form = base_1+"а" ;
|
||||
vocative = table {
|
||||
Sg => nonExist ;
|
||||
Pl => nonExist
|
||||
Sg => base_1+"о" ;
|
||||
Pl => base_1+"а"
|
||||
} ;
|
||||
rel = \\_,_ => base_1 ;
|
||||
relType = Pref ;
|
||||
@@ -13800,7 +13800,7 @@ mkA002 base_1 =
|
||||
GPl => base_1+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"е"
|
||||
} ;
|
||||
|
||||
mkA003 : Str -> A ;
|
||||
@@ -14104,7 +14104,7 @@ mkA011 base =
|
||||
GPl => base_1+"а"+base_2+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"а"+base_2+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA011"
|
||||
} ;
|
||||
@@ -14174,7 +14174,7 @@ mkA013 base =
|
||||
GPl => base_1+"т"+base_2+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"т"+base_2+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA013"
|
||||
} ;
|
||||
@@ -14209,7 +14209,7 @@ mkA014 base =
|
||||
GPl => nonExist
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"оа"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA014"
|
||||
} ;
|
||||
@@ -14244,7 +14244,7 @@ mkA015 base =
|
||||
GPl => base_1+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"е"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA015"
|
||||
} ;
|
||||
@@ -14279,7 +14279,7 @@ mkA016 base =
|
||||
GPl => nonExist
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"е"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA016"
|
||||
} ;
|
||||
@@ -14314,7 +14314,7 @@ mkA017 base =
|
||||
GPl => nonExist
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"а"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA017"
|
||||
} ;
|
||||
@@ -14489,7 +14489,7 @@ mkA022 base =
|
||||
GPl => base_1+"да"+base_2+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"да"+base_2+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA022"
|
||||
} ;
|
||||
@@ -14558,7 +14558,7 @@ mkA024 base_1 =
|
||||
GPl => base_1+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"ѐ"
|
||||
} ;
|
||||
|
||||
mkA025 : Str -> A ;
|
||||
@@ -14626,7 +14626,7 @@ mkA026 base =
|
||||
GPl => base_1+"с"+base_2+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"с"+base_2+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA026"
|
||||
} ;
|
||||
@@ -14731,7 +14731,7 @@ mkA029 base =
|
||||
GPl => nonExist
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"е"+base_2
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA029"
|
||||
} ;
|
||||
@@ -14765,7 +14765,7 @@ mkA030 base_1 =
|
||||
GPl => base_1+"ине" --guessed
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"о"
|
||||
} ;
|
||||
|
||||
mkA031 : Str -> A ;
|
||||
@@ -14798,7 +14798,7 @@ mkA031 base =
|
||||
GPl => base_1+base_2+base_3+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+base_2+base_3+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA031"
|
||||
} ;
|
||||
@@ -14868,7 +14868,7 @@ mkA033 base =
|
||||
GPl => base_1+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA033"
|
||||
} ;
|
||||
@@ -14938,7 +14938,7 @@ mkA035 base =
|
||||
GPl => "‘"+base_1+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = "‘"+base_1+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA035"
|
||||
} ;
|
||||
@@ -14973,7 +14973,7 @@ mkA036 base =
|
||||
GPl => base_1+"по"+base_2+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"по"+base_2+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA036"
|
||||
} ;
|
||||
@@ -15008,7 +15008,7 @@ mkA037 base =
|
||||
GPl => base_1+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA037"
|
||||
} ;
|
||||
@@ -15043,7 +15043,7 @@ mkA038 base =
|
||||
GPl => base_1+"о"+base_2+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"о"+base_2+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA038"
|
||||
} ;
|
||||
@@ -15078,7 +15078,7 @@ mkA039 base =
|
||||
GPl => base_1+"о"+base_2+base_3+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"о"+base_2+base_3+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA039"
|
||||
} ;
|
||||
@@ -15113,7 +15113,7 @@ mkA040 base =
|
||||
GPl => base_1+base_2+"а"+base_3+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+base_2+"а"+base_3+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA040"
|
||||
} ;
|
||||
@@ -15148,7 +15148,7 @@ mkA041 base =
|
||||
GPl => base_1+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA041"
|
||||
} ;
|
||||
@@ -15183,7 +15183,7 @@ mkA042 base =
|
||||
GPl => base_1+"ч"+base_2+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"ч"+base_2+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA042"
|
||||
} ;
|
||||
@@ -15218,7 +15218,7 @@ mkA043 base =
|
||||
GPl => base_1+"а"+base_2+base_3+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"а"+base_2+base_3+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA043"
|
||||
} ;
|
||||
@@ -15253,7 +15253,7 @@ mkA044 base =
|
||||
GPl => base_1+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA044"
|
||||
} ;
|
||||
@@ -15288,7 +15288,7 @@ mkA045 base =
|
||||
GPl => base_1+"т"+base_2+base_3+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"т"+base_2+base_3+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA045"
|
||||
} ;
|
||||
@@ -15323,7 +15323,7 @@ mkA046 base =
|
||||
GPl => base_1+"д"+base_2+base_3+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"д"+base_2+base_3+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA046"
|
||||
} ;
|
||||
@@ -15358,7 +15358,7 @@ mkA047 base =
|
||||
GPl => "б"+base_1+"р"+base_2+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = "б"+base_1+"р"+base_2+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA047"
|
||||
} ;
|
||||
@@ -15393,7 +15393,7 @@ mkA048 base =
|
||||
GPl => base_1+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = base_1+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA048"
|
||||
} ;
|
||||
@@ -15428,7 +15428,7 @@ mkA049 base =
|
||||
GPl => "дир"+base_1+"кт"+base_2+"р"+base_3+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = "дир"+base_1+"кт"+base_2+"р"+base_3+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA049"
|
||||
} ;
|
||||
@@ -15463,7 +15463,7 @@ mkA050 base =
|
||||
GPl => "р"+base_1+"з"+base_2+"ине"
|
||||
}
|
||||
} ;
|
||||
adverb = nonExist
|
||||
adverb = "р"+base_1+"з"+base_2+"о"
|
||||
};
|
||||
_ => error "Can't apply paradigm mkA050"
|
||||
} ;
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
concrete NamesMkd of Names = CatMkd ** open Prelude,ResMkd in {
|
||||
lin AdjLN ap ln = {s = ap.s ! Indef ! GSg Masc ++ ln.s} ;
|
||||
lin FemaleSurname sn = {s = \\r => sn.s; vocative = sn.s;
|
||||
a = {g = GSg Masc; p = P1}} ;
|
||||
a = {g = GSg Fem; p = P3}} ;
|
||||
lin FullName gn sn = {s = \\r => gn.s ++ sn.s;
|
||||
vocative = gn.s ++ sn.s; a = {g = GSg Masc; p = P1}} ;
|
||||
vocative = gn.s ++ sn.s; a = {g = GSg Masc; p = P3}} ;
|
||||
lin GivenName gn = {s = \\r => gn.s; vocative = gn.s;
|
||||
a = {g = GSg Masc; p = P1}} ;
|
||||
a = {g = GSg Masc; p = P3}} ;
|
||||
lin InLN ln = {s = "во" ++ ln.s} ;
|
||||
lin MaleSurname sn = {s = \\r => sn.s; vocative = sn.s;
|
||||
a = {g = GSg Masc; p = P1}} ;
|
||||
a = {g = GSg Masc; p = P3}} ;
|
||||
lin PlSurname sn = {s = \\r => sn.s; vocative = sn.s;
|
||||
a = {g = GSg Masc; p = P1}} ;
|
||||
a = {g = GPl; p = P3}} ;
|
||||
lin PlainLN ln = {s = \\r => ln.s; vocative = ln.s;
|
||||
a = {g = GSg Masc; p = P1}} ;
|
||||
a = {g = GSg Masc; p = P3}} ;
|
||||
lin UseLN ln = {s = \\r => ln.s; vocative = ln.s;
|
||||
a = {g = GSg Masc; p = P1}} ;
|
||||
a = {g = GSg Masc; p = P3}} ;
|
||||
}
|
||||
|
||||
+21
-10
@@ -15,13 +15,24 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
||||
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} ;
|
||||
vocative = \\n => case ap.isPre of {
|
||||
True => ap.s ! Indef
|
||||
! case n of {
|
||||
Sg => GSg cn.g;
|
||||
Pl => GPl
|
||||
} ++ cn.vocative ! n ;
|
||||
False => cn.vocative ! n ++
|
||||
ap.s ! Indef
|
||||
! case n of {
|
||||
Sg => GSg cn.g;
|
||||
Pl => GPl
|
||||
}
|
||||
} ;
|
||||
count_form = case ap.isPre of {
|
||||
True => ap.s ! Indef ! GPl ++ cn.count_form ;
|
||||
False => cn.count_form ++ ap.s ! Indef ! GPl
|
||||
} ;
|
||||
g = cn.g} ;
|
||||
lin AdjDAP d ap = {
|
||||
s = \\g => d.s ! g ++ ap.s ! Indef ! genNum g (nnum2num d.n) ;
|
||||
n = d.n ;
|
||||
@@ -64,7 +75,7 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
||||
} ;
|
||||
lin DetDAP d = d ;
|
||||
lin DetNP d = {s = \\r => d.s ! Masc; vocative = d.s ! Masc;
|
||||
a = {g = GSg Masc; p = P1}} ;
|
||||
a = {g = genNum Masc (nnum2num d.n); p = P3}} ;
|
||||
lin DetQuant q num = {s = \\g => q.s ! genNum g (nnum2num num.n) ++ num.s;
|
||||
n = num.n;
|
||||
sp = q.sp} ;
|
||||
@@ -105,8 +116,8 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
||||
lin OrdNumeralSuperl n a = {s = \\s,gn => n.s ++ "нај" ++ BIND ++ a.s ! s ! gn} ;
|
||||
lin OrdSuperl a = {s = \\s,gn => "нај" ++ BIND ++ a.s ! s ! gn} ;
|
||||
lin PPartNP np v2 = {s = \\r => np.s ! r
|
||||
++ v2.present ! Imperfective ! Sg ! np.a.p;
|
||||
vocative = np.vocative ++ v2.present ! Imperfective ! Sg ! np.a.p;
|
||||
++ v2.present ! Imperfective ! genNum2num np.a.g ! np.a.p;
|
||||
vocative = np.vocative ++ v2.present ! Imperfective ! genNum2num np.a.g ! np.a.p;
|
||||
a = {g = np.a.g; p = np.a.p}} ;
|
||||
lin PartNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj;
|
||||
count_form = cn.count_form ++ np.s ! RSubj;
|
||||
|
||||
@@ -1078,8 +1078,8 @@ dualV : V -> V -> V = \impf,perf -> lin V
|
||||
Perfective => perf.participle.imperfect ! Perfective
|
||||
} ;
|
||||
perfect = table {
|
||||
Imperfective => impf.participle.perfect ! Imperfective ;
|
||||
Perfective => perf.participle.perfect ! Perfective
|
||||
Imperfective => impf.participle.adjectival ! Imperfective ++ BIND ++ "о" ;
|
||||
Perfective => perf.participle.adjectival ! Perfective ++ BIND ++ "о"
|
||||
} ;
|
||||
adjectival = table {
|
||||
Imperfective => impf.participle.adjectival ! Imperfective ;
|
||||
|
||||
@@ -16,6 +16,8 @@ concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in {
|
||||
lin UttNP np = {s = np.s ! RSubj} ;
|
||||
lin UttQS s = s ;
|
||||
lin UttS s = s ;
|
||||
lin UttVP vp = {s = "да" ++ vp.present ! Perfective ! Sg ! P3 ++ vp.compl ! {g=GSg Masc; p=P3}} ;
|
||||
lin UttVP vp = {s = "да" ++ medialClitic vp.vtype ++
|
||||
vp.present ! Perfective ! Sg ! P3 ++
|
||||
vp.compl ! {g=GSg Masc; p=P3}} ;
|
||||
lin VocNP np = {s : Str = SOFT_BIND ++ "," ++ np.vocative} ;
|
||||
}
|
||||
|
||||
@@ -199,6 +199,13 @@ genNum2num : GenNum -> Number = \gn ->
|
||||
GPl => Pl
|
||||
} ;
|
||||
|
||||
medialClitic : VType -> Str = \vtype ->
|
||||
case vtype of {
|
||||
VNormal => [] ;
|
||||
VMedial Acc => "се" ;
|
||||
VMedial Dat => "си"
|
||||
} ;
|
||||
|
||||
auxBe = {
|
||||
present : Number => Person => Str
|
||||
= table {
|
||||
@@ -328,11 +335,7 @@ mkClause : Str -> Agr -> Verb ** {compl : Agr => Str} -> Order => Tense => Anter
|
||||
Main => "" ;
|
||||
Quest => "ли"
|
||||
} ;
|
||||
se = case vp.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial Acc => "се" ;
|
||||
VMedial Dat => "си"
|
||||
}
|
||||
se = medialClitic vp.vtype
|
||||
} ;
|
||||
|
||||
linCoord : Str -> Ints 4 => Str ;
|
||||
|
||||
@@ -4,26 +4,31 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in {
|
||||
lin AdvSlash c a = {s = c.s ++ a.s} ;
|
||||
lin EmbedQS qs = {s = qs.s} ;
|
||||
lin EmbedS s = {s = s.s} ;
|
||||
lin EmbedVP vp = {s = "да" ++ vp.present ! Perfective ! Sg ! P3 ++ vp.compl ! {g=GSg Masc; p=P3}} ;
|
||||
lin EmbedVP vp = {s = "да" ++ medialClitic vp.vtype ++
|
||||
vp.present ! Perfective ! Sg ! P3 ++
|
||||
vp.compl ! {g=GSg Masc; p=P3}} ;
|
||||
lin ExtAdvS a s = {s = a.s ++ s.s} ;
|
||||
lin ImpVP vp = {
|
||||
s = \\p,gn=>case p of {
|
||||
Pos => vp.imperative ! Perfective ! genNum2num gn ;
|
||||
Neg => "не" ++ vp.imperative ! Imperfective ! genNum2num gn
|
||||
Pos => vp.imperative ! Perfective ! genNum2num gn ++ medialClitic vp.vtype ;
|
||||
Neg => "не" ++ medialClitic vp.vtype ++ vp.imperative ! Imperfective ! genNum2num gn
|
||||
} ++
|
||||
vp.compl ! {g=gn; p=P2}
|
||||
} ;
|
||||
lin PredSCVP sc vp = {s = \\t,a,p,o => sc.s
|
||||
++ vp.present ! Imperfective ! Sg ! P1} ;
|
||||
++ vp.present ! Imperfective ! Sg ! P3
|
||||
++ vp.compl ! {g = GSg Neuter; p = P3}} ;
|
||||
lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ;
|
||||
lin RelS s rs = {s = s.s ++ rs.s ! GSg Masc} ;
|
||||
lin SSubjS s s2 s3 = {s = s.s ++ s2.s ++ s3.s} ;
|
||||
lin SlashPrep cl p = {s = cl.s ! Main ! VPresent ! Simul ! Pos
|
||||
++ p.s} ;
|
||||
lin SlashVP np v = {s = np.s ! RSubj
|
||||
++ v.present ! Imperfective ! Sg ! np.a.p} ;
|
||||
++ v.present ! Imperfective ! genNum2num np.a.g ! np.a.p
|
||||
++ v.compl ! np.a} ;
|
||||
lin SlashVS np vs s = {s = np.s ! RSubj
|
||||
++ vs.present ! Imperfective ! Sg ! np.a.p ++ s.s} ;
|
||||
++ vs.present ! Imperfective ! genNum2num np.a.g ! np.a.p
|
||||
++ s.s} ;
|
||||
lin UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! Main ! t.t ! t.a ! p.p} ;
|
||||
lin UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p} ;
|
||||
lin UseRCl t p cl = {s = \\gn => t.s ++ p.s ++ cl.s ! gn ! t.t ! t.a ! p.p} ;
|
||||
|
||||
+30
-64
@@ -1,32 +1,22 @@
|
||||
concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in {
|
||||
|
||||
lin AdVVP a vp = {present = \\a2,n,p => a.s
|
||||
lin AdVVP a vp = {present = \\a2,n,p => a.s ++ medialClitic vp.vtype
|
||||
++ vp.present ! a2 ! n ! p;
|
||||
aorist = \\n,p => a.s ++ vp.aorist ! n ! p;
|
||||
imperfect = \\a2,n,p => a.s ++ vp.imperfect ! a2 ! n ! p;
|
||||
imperative = \\a2,n => a.s ++ vp.imperative ! a2 ! n;
|
||||
participle = {aorist = \\a2,g => a.s
|
||||
++ vp.participle.aorist ! a2 ! g;
|
||||
imperfect = \\a2,g => a.s ++ vp.participle.imperfect ! a2 ! g;
|
||||
perfect = \\a2 => a.s ++ vp.participle.perfect ! a2;
|
||||
adjectival = \\a2 => a.s ++ vp.participle.adjectival ! a2;
|
||||
adverbial = a.s ++ vp.participle.adverbial};
|
||||
noun_from_verb = a.s ++ vp.noun_from_verb;
|
||||
vtype = vp.vtype;
|
||||
aorist = \\n,p => a.s ++ medialClitic vp.vtype ++ vp.aorist ! n ! p;
|
||||
imperfect = \\a2,n,p => a.s ++ medialClitic vp.vtype ++ vp.imperfect ! a2 ! n ! p;
|
||||
imperative = \\a2,n => a.s ++ medialClitic vp.vtype ++ vp.imperative ! a2 ! n;
|
||||
participle = vp.participle;
|
||||
noun_from_verb = vp.noun_from_verb;
|
||||
vtype = VNormal;
|
||||
compl = vp.compl} ;
|
||||
lin AdVVPSlash a v = {present = \\a2,n,p => a.s
|
||||
lin AdVVPSlash a v = {present = \\a2,n,p => a.s ++ medialClitic v.vtype
|
||||
++ v.present ! a2 ! n ! p;
|
||||
aorist = \\n,p => a.s ++ v.aorist ! n ! p;
|
||||
imperfect = \\a2,n,p => a.s ++ v.imperfect ! a2 ! n ! p;
|
||||
imperative = \\a2,n => a.s ++ v.imperative ! a2 ! n;
|
||||
participle = {aorist = \\a2,g => a.s
|
||||
++ v.participle.aorist ! a2 ! g;
|
||||
imperfect = \\a2,g => a.s ++ v.participle.imperfect ! a2 ! g;
|
||||
perfect = \\a2 => a.s ++ v.participle.perfect ! a2;
|
||||
adjectival = \\a2 => a.s ++ v.participle.adjectival ! a2;
|
||||
adverbial = a.s ++ v.participle.adverbial};
|
||||
noun_from_verb = a.s ++ v.noun_from_verb;
|
||||
vtype = v.vtype;
|
||||
aorist = \\n,p => a.s ++ medialClitic v.vtype ++ v.aorist ! n ! p;
|
||||
imperfect = \\a2,n,p => a.s ++ medialClitic v.vtype ++ v.imperfect ! a2 ! n ! p;
|
||||
imperative = \\a2,n => a.s ++ medialClitic v.vtype ++ v.imperative ! a2 ! n;
|
||||
participle = v.participle;
|
||||
noun_from_verb = v.noun_from_verb;
|
||||
vtype = VNormal;
|
||||
compl = v.compl;
|
||||
c2 = v.c2} ;
|
||||
lin AdvVP vp adv = vp ** {compl = \\a => vp.compl ! a ++ adv.s} ;
|
||||
@@ -39,48 +29,24 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in {
|
||||
lin ComplVA va ap = va ** {compl = \\agr => ap.s ! Indef ! agr.g} ;
|
||||
lin ComplVQ vq qs = vq ** {compl = \\_ => qs.s} ;
|
||||
lin ComplVS vs s = vs ** {compl = \\_ => s.s} ;
|
||||
lin ComplVV vv vp = vv ** {compl = \\agr => "да" ++ vp.present ! Perfective ! genNum2num agr.g ! agr.p ++ vp.compl ! agr} ;
|
||||
lin ComplVV vv vp = vv ** {compl = \\agr => "да" ++ medialClitic vp.vtype ++
|
||||
vp.present ! Perfective ! genNum2num agr.g ! agr.p ++
|
||||
vp.compl ! agr} ;
|
||||
lin ExtAdvVP vp a = vp ** {compl = \\agr => vp.compl ! agr ++ SOFT_BIND++"," ++ a.s} ;
|
||||
lin Slash2V3 v3 np = {present = \\a,n,p => v3.present ! a ! n ! p
|
||||
++ np.s ! RSubj;
|
||||
aorist = \\n,p => v3.aorist ! n ! p ++ np.s ! RSubj;
|
||||
imperfect = \\a,n,p => v3.imperfect ! a ! n ! p ++ np.s ! RSubj;
|
||||
imperative = \\a,n => v3.imperative ! a ! n ++ np.s ! RSubj;
|
||||
participle = {aorist = \\a,g => v3.participle.aorist ! a ! g
|
||||
++ np.s ! RSubj;
|
||||
imperfect = \\a,g => v3.participle.imperfect ! a ! g
|
||||
++ np.s ! RSubj;
|
||||
perfect = \\a => v3.participle.perfect ! a ++ np.s ! RSubj;
|
||||
adjectival = \\a => v3.participle.adjectival ! a
|
||||
++ np.s ! RSubj;
|
||||
adverbial = v3.participle.adverbial ++ np.s ! RSubj};
|
||||
noun_from_verb = v3.noun_from_verb ++ np.s ! RSubj;
|
||||
vtype = v3.vtype;
|
||||
compl = \\v => v3.present ! Imperfective ! Sg ! v.p
|
||||
++ np.s ! RSubj;
|
||||
c2 = {s = v3.c2.s ++ np.s ! RSubj; c = v3.c2.c}} ;
|
||||
lin Slash3V3 v3 np = {present = \\a,n,p => v3.present ! a ! n ! p
|
||||
++ np.s ! RSubj;
|
||||
aorist = \\n,p => v3.aorist ! n ! p ++ np.s ! RSubj;
|
||||
imperfect = \\a,n,p => v3.imperfect ! a ! n ! p ++ np.s ! RSubj;
|
||||
imperative = \\a,n => v3.imperative ! a ! n ++ np.s ! RSubj;
|
||||
participle = {aorist = \\a,g => v3.participle.aorist ! a ! g
|
||||
++ np.s ! RSubj;
|
||||
imperfect = \\a,g => v3.participle.imperfect ! a ! g
|
||||
++ np.s ! RSubj;
|
||||
perfect = \\a => v3.participle.perfect ! a ++ np.s ! RSubj;
|
||||
adjectival = \\a => v3.participle.adjectival ! a
|
||||
++ np.s ! RSubj;
|
||||
adverbial = v3.participle.adverbial ++ np.s ! RSubj};
|
||||
noun_from_verb = v3.noun_from_verb ++ np.s ! RSubj;
|
||||
vtype = v3.vtype;
|
||||
compl = \\v => v3.present ! Imperfective ! Sg ! v.p
|
||||
++ np.s ! RSubj;
|
||||
c2 = {s = v3.c2.s ++ np.s ! RSubj; c = v3.c2.c}} ;
|
||||
lin Slash2V3 v3 np = v3 ** {
|
||||
compl = \\_ => v3.c2.s ++ np.s ! RObj v3.c2.c ;
|
||||
c2 = v3.c3
|
||||
} ;
|
||||
lin Slash3V3 v3 np = v3 ** {
|
||||
compl = \\_ => v3.c3.s ++ np.s ! RObj v3.c3.c ;
|
||||
c2 = v3.c2
|
||||
} ;
|
||||
lin SlashV2A v ap = v ** {compl = \\agr => ap.s ! Indef ! agr.g} ;
|
||||
lin SlashV2Q v qs = v ** {compl = \\_ => qs.s} ;
|
||||
lin SlashV2S v s = v ** {compl = \\_ => s.s} ;
|
||||
lin SlashV2V v vp = v ** {compl = \\agr => "да" ++ vp.present ! Perfective ! genNum2num agr.g ! agr.p ++ vp.compl ! agr};
|
||||
lin SlashV2V v vp = v ** {compl = \\agr => "да" ++ medialClitic vp.vtype ++
|
||||
vp.present ! Perfective ! genNum2num agr.g ! agr.p ++
|
||||
vp.compl ! agr};
|
||||
lin SlashV2a v = v ** {compl = \\_ => []} ;
|
||||
|
||||
lin UseComp comp = {
|
||||
@@ -93,7 +59,7 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in {
|
||||
perfect = \\_=>nonExist ;
|
||||
adjectival = \\_=>nonExist ;
|
||||
adverbial = nonExist} ;
|
||||
noun_from_verb = nonExist ;
|
||||
noun_from_verb = "бидување" ;
|
||||
compl = \\agr=>comp.s ! agr.g ;
|
||||
vtype=VNormal
|
||||
} ;
|
||||
@@ -108,7 +74,7 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in {
|
||||
perfect = \\_=>nonExist ;
|
||||
adjectival = \\_=>nonExist ;
|
||||
adverbial = nonExist} ;
|
||||
noun_from_verb = nonExist ;
|
||||
noun_from_verb = "бидување" ;
|
||||
compl = \\_=>[] ;
|
||||
vtype=VNormal
|
||||
} ;
|
||||
|
||||
Reference in New Issue
Block a user