forked from GitHub/gf-rgl
TPasseSimple unlock four more tenses in Bulgarian as well
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
--# -coding=utf8
|
||||
concrete CatBul of Cat = CommonX - [IAdv,AdV] ** open ResBul, Prelude, Predef, (R = ParamX) in {
|
||||
concrete CatBul of Cat = CommonX - [Temp,Tense,IAdv,AdV] ** open ResBul, Prelude, Predef, (R = ParamX) in {
|
||||
|
||||
lincat
|
||||
-- Tensed/Untensed
|
||||
@@ -11,6 +11,9 @@ concrete CatBul of Cat = CommonX - [IAdv,AdV] ** open ResBul, Prelude, Predef, (
|
||||
|
||||
-- Sentence
|
||||
|
||||
Temp = {s : Str ; t : ResBul.Tense ; a : R.Anteriority} ;
|
||||
Tense = {s : Str ; t : ResBul.Tense} ;
|
||||
|
||||
Cl = {s : ResBul.Tense => Anteriority => Polarity => Order => Str} ;
|
||||
ClSlash = {
|
||||
s : Agr => ResBul.Tense => Anteriority => Polarity => Order => Str ;
|
||||
@@ -115,7 +118,7 @@ concrete CatBul of Cat = CommonX - [IAdv,AdV] ** open ResBul, Prelude, Predef, (
|
||||
|
||||
linref
|
||||
SSlash = \ss -> ss.s ! agrP3 (GSg Masc) ++ ss.c2.s;
|
||||
ClSlash = \cl -> cl.s ! agrP3 (GSg Masc) ! Pres ! Simul ! Pos ! Main ++ cl.c2.s;
|
||||
ClSlash = \cl -> cl.s ! agrP3 (GSg Masc) ! VPresent ! Simul ! Pos ! Main ++ cl.c2.s;
|
||||
|
||||
VP = \vp -> linrefVP vp;
|
||||
VPSlash = \vps -> let vp : ResBul.VP
|
||||
|
||||
@@ -317,5 +317,7 @@ lin AnaphPron np =
|
||||
<GPl, _> => they_Pron
|
||||
} ;
|
||||
|
||||
lin TPasseSimple = {s = []} ** {t = VPastSimple} ; --# notpresent
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ concrete GrammarBul of Grammar =
|
||||
TextBul,
|
||||
StructuralBul,
|
||||
IdiomBul,
|
||||
TenseX - [CAdv,IAdv,AdV,SC],
|
||||
TenseBul,
|
||||
NamesBul
|
||||
** {
|
||||
flags coding=utf8 ;
|
||||
|
||||
@@ -29,6 +29,7 @@ concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
|
||||
|
||||
present = verb ! (VPres (numGenNum agr.gn) agr.p) ;
|
||||
aorist = verb ! (VAorist (numGenNum agr.gn) agr.p) ;
|
||||
imperfect = verb ! (VImperfect (numGenNum agr.gn) agr.p) ;
|
||||
perfect = verb ! (VPerfect (aform agr.gn Indef (RObj Acc))) ;
|
||||
|
||||
auxPres = auxBe ! VPres (numGenNum agr.gn) agr.p ;
|
||||
@@ -37,14 +38,16 @@ concrete IdiomBul of Idiom = CatBul ** open Prelude, ParadigmsBul, ResBul in {
|
||||
|
||||
v : {aux1:Str; aux2:Str; main:Str}
|
||||
= case <t,a> of {
|
||||
<Pres,Simul> => {aux1=[]; aux2=[]; main=present}
|
||||
<VPresent,Simul> => {aux1=[]; aux2=[]; main=present}
|
||||
; --# notpresent
|
||||
<Pres,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; --# notpresent
|
||||
<Past,Simul> => {aux1=[]; aux2=[]; main=aorist} ; --# notpresent
|
||||
<Past,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent
|
||||
<Fut, Simul> => {aux1="ще"; aux2=[]; main=present} ; --# notpresent
|
||||
<Fut, Anter> => {aux1="ще"++auxPres; aux2=[]; main=perfect} ; --# notpresent
|
||||
<Cond,_> => {aux1=auxCondS; aux2=[]; main=perfect} --# notpresent
|
||||
<VPresent,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; --# notpresent
|
||||
<VPastSimple,Simul> => {aux1=[]; aux2=[]; main=aorist} ; --# notpresent
|
||||
<VPastSimple,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent
|
||||
<VPastImperfect,Simul> => {aux1=[]; aux2=[]; main=imperfect} ; --# notpresent
|
||||
<VPastImperfect,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent
|
||||
<VFut, Simul> => {aux1="ще"; aux2=[]; main=present} ; --# notpresent
|
||||
<VFut, Anter> => {aux1="ще"++auxPres; aux2=[]; main=perfect} ; --# notpresent
|
||||
<VCond,_> => {aux1=auxCondS; aux2=[]; main=perfect} --# notpresent
|
||||
} ;
|
||||
|
||||
in case o of {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
-- implement $Test$, it moreover contains regular lexical
|
||||
-- patterns needed for $Lex$.
|
||||
|
||||
resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
resource ResBul = ParamX - [Tense,Pres,Past,Fut,Cond] ** open Prelude, Predef in {
|
||||
|
||||
flags
|
||||
coding=utf8 ; optimize=all ;
|
||||
@@ -77,6 +77,14 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
|
||||
VVType = VVInf Aspect | VVGerund ;
|
||||
|
||||
Tense =
|
||||
VPresent
|
||||
| VPastSimple --# notpresent
|
||||
| VPastImperfect --# notpresent
|
||||
| VFut --# notpresent
|
||||
| VCond --# notpresent
|
||||
;
|
||||
|
||||
-- The order of sentence is needed already in $VP$.
|
||||
|
||||
Order = Main | Inv | Quest ;
|
||||
@@ -533,10 +541,12 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
present = verb.s ! asp ! (VPres (numGenNum clitic.agr.gn) clitic.agr.p) ;
|
||||
presentImperf = verb.s ! Imperf ! (VPres (numGenNum clitic.agr.gn) clitic.agr.p) ;
|
||||
aorist = verb.s ! asp ! (VAorist (numGenNum clitic.agr.gn) clitic.agr.p) ;
|
||||
imperfect = verb.s ! asp ! (VImperfect (numGenNum clitic.agr.gn) clitic.agr.p) ;
|
||||
perfect = verb.s ! asp ! (VPerfect (aform clitic.agr.gn Indef (RObj Acc))) ;
|
||||
|
||||
auxPres = auxBe ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ;
|
||||
auxAorist = auxBe ! VAorist (numGenNum clitic.agr.gn) clitic.agr.p ;
|
||||
auxImperf = auxBe ! VImperfect (numGenNum clitic.agr.gn) clitic.agr.p ;
|
||||
auxCondS = auxCond ! numGenNum clitic.agr.gn ! clitic.agr.p ;
|
||||
|
||||
apc : Str -> Str = \s ->
|
||||
@@ -580,14 +590,16 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
|
||||
verbs : {aux:{s1:Str; s2:Str}; main:Str} =
|
||||
case <t,a> of {
|
||||
<Pres,Simul> => {aux=vf2 clitic.s; main=presentImperf}
|
||||
<VPresent,Simul> => {aux=vf2 clitic.s; main=presentImperf}
|
||||
; --# notpresent
|
||||
<Pres,Anter> => {aux=vf1 clitic.s; main=perfect} ; --# notpresent
|
||||
<Past,Simul> => {aux=vf2 clitic.s; main=aorist} ; --# notpresent
|
||||
<Past,Anter> => {aux=vf4 auxAorist; main=perfect} ; --# notpresent
|
||||
<Fut, Simul> => {aux=vf3 clitic.s; main=present} ; --# notpresent
|
||||
<Fut, Anter> => {aux=vf3 (apc []); main=perfect} ; --# notpresent
|
||||
<Cond,_ > => {aux=vf4 auxCondS; main=perfect} --# notpresent
|
||||
<VPresent,Anter> => {aux=vf1 clitic.s; main=perfect} ; --# notpresent
|
||||
<VPastSimple,Simul> => {aux=vf2 clitic.s; main=aorist} ; --# notpresent
|
||||
<VPastSimple,Anter> => {aux=vf4 auxAorist; main=perfect} ; --# notpresent
|
||||
<VPastImperfect,Simul> => {aux=vf2 clitic.s; main=imperfect} ; --# notpresent
|
||||
<VPastImperfect,Anter> => {aux=vf4 auxImperf; main=perfect} ; --# notpresent
|
||||
<VFut, Simul> => {aux=vf3 clitic.s; main=present} ; --# notpresent
|
||||
<VFut, Anter> => {aux=vf3 (apc []); main=perfect} ; --# notpresent
|
||||
<VCond,_ > => {aux=vf4 auxCondS; main=perfect} --# notpresent
|
||||
}
|
||||
|
||||
in verb.ad.s ++ li0 ++ verbs.aux.s1 ++ verbs.main ++ verbs.aux.s2 ;
|
||||
|
||||
9
src/bulgarian/TenseBul.gf
Normal file
9
src/bulgarian/TenseBul.gf
Normal file
@@ -0,0 +1,9 @@
|
||||
concrete TenseBul of Tense = CatBul [Tense,Temp], TenseX - [Temp,Tense,TPres,TPast,TFut,TCond,IAdv,AdV,SC] ** open ResBul in {
|
||||
|
||||
lin
|
||||
TPres = {s = []} ** {t = VPresent} ;
|
||||
TPast = {s = []} ** {t = VPastImperfect} ; --# notpresent
|
||||
TFut = {s = []} ** {t = VFut} ; --# notpresent
|
||||
TCond = {s = []} ** {t = VCond} ; --# notpresent
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user