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
|
--# -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
|
lincat
|
||||||
-- Tensed/Untensed
|
-- Tensed/Untensed
|
||||||
@@ -11,6 +11,9 @@ concrete CatBul of Cat = CommonX - [IAdv,AdV] ** open ResBul, Prelude, Predef, (
|
|||||||
|
|
||||||
-- Sentence
|
-- Sentence
|
||||||
|
|
||||||
|
Temp = {s : Str ; t : ResBul.Tense ; a : R.Anteriority} ;
|
||||||
|
Tense = {s : Str ; t : ResBul.Tense} ;
|
||||||
|
|
||||||
Cl = {s : ResBul.Tense => Anteriority => Polarity => Order => Str} ;
|
Cl = {s : ResBul.Tense => Anteriority => Polarity => Order => Str} ;
|
||||||
ClSlash = {
|
ClSlash = {
|
||||||
s : Agr => ResBul.Tense => Anteriority => Polarity => Order => Str ;
|
s : Agr => ResBul.Tense => Anteriority => Polarity => Order => Str ;
|
||||||
@@ -115,7 +118,7 @@ concrete CatBul of Cat = CommonX - [IAdv,AdV] ** open ResBul, Prelude, Predef, (
|
|||||||
|
|
||||||
linref
|
linref
|
||||||
SSlash = \ss -> ss.s ! agrP3 (GSg Masc) ++ ss.c2.s;
|
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;
|
VP = \vp -> linrefVP vp;
|
||||||
VPSlash = \vps -> let vp : ResBul.VP
|
VPSlash = \vps -> let vp : ResBul.VP
|
||||||
|
|||||||
@@ -317,5 +317,7 @@ lin AnaphPron np =
|
|||||||
<GPl, _> => they_Pron
|
<GPl, _> => they_Pron
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
lin TPasseSimple = {s = []} ** {t = VPastSimple} ; --# notpresent
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ concrete GrammarBul of Grammar =
|
|||||||
TextBul,
|
TextBul,
|
||||||
StructuralBul,
|
StructuralBul,
|
||||||
IdiomBul,
|
IdiomBul,
|
||||||
TenseX - [CAdv,IAdv,AdV,SC],
|
TenseBul,
|
||||||
NamesBul
|
NamesBul
|
||||||
** {
|
** {
|
||||||
flags coding=utf8 ;
|
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) ;
|
present = verb ! (VPres (numGenNum agr.gn) agr.p) ;
|
||||||
aorist = verb ! (VAorist (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))) ;
|
perfect = verb ! (VPerfect (aform agr.gn Indef (RObj Acc))) ;
|
||||||
|
|
||||||
auxPres = auxBe ! VPres (numGenNum agr.gn) agr.p ;
|
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}
|
v : {aux1:Str; aux2:Str; main:Str}
|
||||||
= case <t,a> of {
|
= case <t,a> of {
|
||||||
<Pres,Simul> => {aux1=[]; aux2=[]; main=present}
|
<VPresent,Simul> => {aux1=[]; aux2=[]; main=present}
|
||||||
; --# notpresent
|
; --# notpresent
|
||||||
<Pres,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; --# notpresent
|
<VPresent,Anter> => {aux1=[]; aux2=auxPres; main=perfect} ; --# notpresent
|
||||||
<Past,Simul> => {aux1=[]; aux2=[]; main=aorist} ; --# notpresent
|
<VPastSimple,Simul> => {aux1=[]; aux2=[]; main=aorist} ; --# notpresent
|
||||||
<Past,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent
|
<VPastSimple,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent
|
||||||
<Fut, Simul> => {aux1="ще"; aux2=[]; main=present} ; --# notpresent
|
<VPastImperfect,Simul> => {aux1=[]; aux2=[]; main=imperfect} ; --# notpresent
|
||||||
<Fut, Anter> => {aux1="ще"++auxPres; aux2=[]; main=perfect} ; --# notpresent
|
<VPastImperfect,Anter> => {aux1=[]; aux2=auxAorist; main=perfect} ; --# notpresent
|
||||||
<Cond,_> => {aux1=auxCondS; aux2=[]; 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 {
|
in case o of {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
-- implement $Test$, it moreover contains regular lexical
|
-- implement $Test$, it moreover contains regular lexical
|
||||||
-- patterns needed for $Lex$.
|
-- patterns needed for $Lex$.
|
||||||
|
|
||||||
resource ResBul = ParamX ** open Prelude, Predef in {
|
resource ResBul = ParamX - [Tense,Pres,Past,Fut,Cond] ** open Prelude, Predef in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
coding=utf8 ; optimize=all ;
|
coding=utf8 ; optimize=all ;
|
||||||
@@ -77,6 +77,14 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
|
|
||||||
VVType = VVInf Aspect | VVGerund ;
|
VVType = VVInf Aspect | VVGerund ;
|
||||||
|
|
||||||
|
Tense =
|
||||||
|
VPresent
|
||||||
|
| VPastSimple --# notpresent
|
||||||
|
| VPastImperfect --# notpresent
|
||||||
|
| VFut --# notpresent
|
||||||
|
| VCond --# notpresent
|
||||||
|
;
|
||||||
|
|
||||||
-- The order of sentence is needed already in $VP$.
|
-- The order of sentence is needed already in $VP$.
|
||||||
|
|
||||||
Order = Main | Inv | Quest ;
|
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) ;
|
present = verb.s ! asp ! (VPres (numGenNum clitic.agr.gn) clitic.agr.p) ;
|
||||||
presentImperf = verb.s ! Imperf ! (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) ;
|
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))) ;
|
perfect = verb.s ! asp ! (VPerfect (aform clitic.agr.gn Indef (RObj Acc))) ;
|
||||||
|
|
||||||
auxPres = auxBe ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ;
|
auxPres = auxBe ! VPres (numGenNum clitic.agr.gn) clitic.agr.p ;
|
||||||
auxAorist = auxBe ! VAorist (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 ;
|
auxCondS = auxCond ! numGenNum clitic.agr.gn ! clitic.agr.p ;
|
||||||
|
|
||||||
apc : Str -> Str = \s ->
|
apc : Str -> Str = \s ->
|
||||||
@@ -580,14 +590,16 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
|||||||
|
|
||||||
verbs : {aux:{s1:Str; s2:Str}; main:Str} =
|
verbs : {aux:{s1:Str; s2:Str}; main:Str} =
|
||||||
case <t,a> of {
|
case <t,a> of {
|
||||||
<Pres,Simul> => {aux=vf2 clitic.s; main=presentImperf}
|
<VPresent,Simul> => {aux=vf2 clitic.s; main=presentImperf}
|
||||||
; --# notpresent
|
; --# notpresent
|
||||||
<Pres,Anter> => {aux=vf1 clitic.s; main=perfect} ; --# notpresent
|
<VPresent,Anter> => {aux=vf1 clitic.s; main=perfect} ; --# notpresent
|
||||||
<Past,Simul> => {aux=vf2 clitic.s; main=aorist} ; --# notpresent
|
<VPastSimple,Simul> => {aux=vf2 clitic.s; main=aorist} ; --# notpresent
|
||||||
<Past,Anter> => {aux=vf4 auxAorist; main=perfect} ; --# notpresent
|
<VPastSimple,Anter> => {aux=vf4 auxAorist; main=perfect} ; --# notpresent
|
||||||
<Fut, Simul> => {aux=vf3 clitic.s; main=present} ; --# notpresent
|
<VPastImperfect,Simul> => {aux=vf2 clitic.s; main=imperfect} ; --# notpresent
|
||||||
<Fut, Anter> => {aux=vf3 (apc []); main=perfect} ; --# notpresent
|
<VPastImperfect,Anter> => {aux=vf4 auxImperf; main=perfect} ; --# notpresent
|
||||||
<Cond,_ > => {aux=vf4 auxCondS; 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 ;
|
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