1
0
forked from GitHub/gf-rgl

=Changes to make additional Tenses work

This commit is contained in:
David Bamutura
2020-06-29 16:04:22 +03:00
parent a21df23da5
commit 0fbe5a14cd
7 changed files with 395 additions and 0 deletions

5
src/rukiga/AllCgg.gf Normal file
View File

@@ -0,0 +1,5 @@
--# -path=.:../abstract:../common:../prelude
concrete AllCgg of AllCggAbs =
LangCgg, SentenceExtraCgg,LexiconExtraCgg
** {} ;

7
src/rukiga/AllCggAbs.gf Normal file
View File

@@ -0,0 +1,7 @@
--# -path=.:../abstract:../common:prelude
abstract AllCggAbs =
Lang,
SentenceExtra,
LexiconExtra
** {} ;

View File

@@ -0,0 +1,34 @@
abstract LexiconExtra =Cat **{
fun
creator_PN : PN;
jesus_PN : PN;
lord_PN : PN;
christ_PN : PN;
paul_PN : PN;
peter_PN : PN;
--john_PN : PN;
jerusalem_PN : PN;
abraham_PN : PN;
moses_PN : PN;
simon_PN : PN;
jacob_PN : PN;
creator_PN : PN;
satan_PN : PN;
galilee_PN : PN;
pilate_PN : PN;
mary_PN : PN;
david_PN : PN;
jesus_teacher_PN : PN;
angel_PN : PN;
herod_PN : PN;
isreal_PN : PN;
judas_PN : PN;
joseph_PN : PN;
philip_PN : PN;
barnabas_PN : PN;
saul_PN : PN;
elijah_PN : PN;
egypt_PN : PN;
}

View File

@@ -0,0 +1,34 @@
concrete LexiconExtraCgg of LexiconExtra = CatCgg **
open ParadigmsCgg, ResCgg, Prelude in {
lin
creator_PN = mkN "Ruhanga" ZERO_BAA;
jesus_PN = mkN "Yesu" ZERO_BAA;
lord_PN = mkN "Mukama" ZERO_BAA;
christ_PN = mkN "Kristo" ZERO_BAA;
paul_PN = mkN "Paulo" ZERO_BAA;
peter_PN = mkN "Petero" ;
john_PN = mkN "Yohana" ZERO_BAA;
jerusalem_PN = mkN "Yerusalemu" ZERO_BAA;
abraham_PN = mkN "Aburahamu" ZERO_BAA;
moses_PN = mkN "Musa" ZERO_BAA;
simon_PN = mkN "Simoni" ZERO_BAA;
jacob_PN = mkN "Yakobo" ZERO_BAA;
creator_PN = mkN "Nyakubaho" ZERO_ZERO;
satan_PN = mkN "Sitaane" ZERO_ZERO;
galilee_PN = mkN "Galilaaya" ZERO_ZAA;
pilate (pontius)_PN = mkN "pilaato" ZERO_BAA;
mary_PN = mkN "Mariya" ;
david_PN = mkN "Daudi" ZERO_BAA;
jesus_teacher_PN = mkN "Mwegyesa" ;
angel_PN = mkN "Maraika" ZERO_BAA;
herod_PN = mkN "Herode" ZERO_BAA;
isreal_PN = mkN "Isiraeli" ZERO_ZAA;
judas_PN = mkN "Yuda" ZERO_BAA;
joseph_PN = mkN "Yosefu" ZERO_BAA;
philip_PN = mkN "Filipo" ;
barnabas_PN = mkN "Barinaba" ZERO_BAA;
saul_PN = mkN "Saulo" ZERO_BA;
elijah_PN = mkN "Eliya" ZERO_BAA;
egypt_PN = mkN "Misiri" ZERO_ZAA;
}

View File

@@ -0,0 +1,9 @@
abstract SentenceExtra = Cat, TenseExtra ** {
fun
UseClExtra : TempExtra -> Pol -> Cl ->S; -- Maria naagura
UseQClExtra : TempExtra -> Pol -> QCl -> QS ; -- Maria naagura?
UseRClExtra : TempExtra -> Pol -> RCl -> RS ; -- ngu Maria naagura
UseSlashExtra : TempExtra -> Pol -> ClSlash -> SSlash ; -- (ngu) Maria tiaagura = tyaagura
}

View File

@@ -0,0 +1,280 @@
concrete SentenceExtraCgg of SentenceExtra = CatCgg, TenseExtraCgg **
open Prelude, ResCgg in {
lin
UseClExtra temp pol cl = let
subj = cl.s;
vMorphs = mkVerbMorphs;
clitic = mkSubjClitic cl.subjAgr;
presSimul = vMorphs ! VFPres; --this is not delivering the string
presAnt = vMorphs ! VFPastPart; --this is not delivering the string
root = cl.root;
presRestOfVerb = cl.pres;
pastRestOfVerb = cl.perf; --morphs ! VFPastPart ! RestOfVerb;
compl = cl.compl
in
case <temp.t, temp.a, Pos> of {
<RemotePast, Performative,Pos> => case cl.isPresBlank of {
True => {s = subj ++ clitic ++ "ka" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "ka" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemotePast, Perfomative,Neg> => case cl.isPerfBlank of {
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "ra" ++ Predef.BIND++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "ra" ++ Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<RemotePast, (Perfect | Resultative),Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "kaba" ++ clitic ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<RemotePast, (Perfect | Resultative),Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "ta" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "ta" ++ Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<RemotePast, Retrospective, Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "kaba" ++ clitic ++Predef.BIND ++ "aa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++Predef.BIND ++ "aa" ++ Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<RemotePast, Retrospective, Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "kaba" ++ clitic ++ Predef.BIND++ "ta" ++Predef.BIND ++ "ka" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ Predef.BIND++ "ta" ++Predef.BIND ++ "ka" ++ Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<RemotePast, Habitual, Pos> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "kaba" ++ clitic ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemotePast, Habitual, Neg> => case cl.isPresBlank of {
True => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "ta" ++Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "ta" ++Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemotePast, Progressive, Pos> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "kaba ni" ++ clitic ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "kaba ni" ++ clitic ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemotePast, Progressive, Neg> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "ta riku" ++Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "ta riku" ++Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemotePast, Persistive, Pos> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "kaba" ++ clitic ++"kyaa" ++Predef.BIND++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++"kyaa" ++Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemotePast, Persistive, Neg> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "ta ki" ++Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "ta ki" ++Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<NearPast, Performative,Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<NearPast, Performative,Neg> => case cl.isPerfBlank of {
True => {s = subj ++ "ti" ++Predef.BIND ++ clitic ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ "ti" ++ Predef.BIND ++clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<NearPast, (Perfect |Resultative),Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "baire" ++clitic ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "baire" ++clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<NearPast, (Perfect |Resultative),Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "baire" ++clitic ++ Predef.BIND ++"ta" ++ Predef.BIND++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++clitic ++ "baire" ++clitic ++ Predef.BIND ++"ta" ++ Predef.BIND++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<NearPast, Retrospective,Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "bire" ++clitic ++"aa"++ Predef.BIND++ root ++ Predef.BIND ++ "ire" ++ compl}; --I had already bought
False => {s = subj ++ clitic ++ "bire" ++clitic ++"aa"++ Predef.BIND++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl} --I had already bought
};
<NearPast, Retrospective,Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "bire" ++clitic ++"ta ka"++ Predef.BIND++ Predef.BIND ++"ta" ++ Predef.BIND++ root ++ Predef.BIND ++ "ire" ++ compl};-- I had not yet bought
False => {s = subj ++clitic ++ "bire" ++clitic ++"ta ka"++ Predef.BIND++ Predef.BIND ++"ta" ++ Predef.BIND++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl} -- -- I had not yet bought
};
<(NearPast | MemorialPres|ExpPres|NearFut), Habitual,Pos> => case cl.isPresBlank of {
True => {s = subj ++ clitic ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<(NearPast | MemorialPres|ExpPres|NearFut), Habitual,Neg> => case cl.isPresBlank of {
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<NearPast, Progressive, Pos> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "beire ni" ++ clitic ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "beire ni" ++ clitic ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<NearPast, Progressive, Neg> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "beire" ++ clitic ++ "ta riku" ++Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "beire" ++ clitic ++ "ta riku" ++Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<NearPast, Persistive, Pos> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "bire" ++ clitic ++ "kyaa" ++ Predef.BIND ++root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "bire" ++ clitic ++ "kyaa" ++ Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<NearPast, Persistive, Neg> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "bire" ++ clitic ++ "ta ki" ++Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "bire" ++ clitic ++ "ta ki" ++Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<MemorialPres, Performative, Pos> => case cl.isPresBlank of {
True => {s = subj ++ clitic ++ "aa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "aa" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<MemorialPres, Performative, Neg> => case cl.isPresBlank of {
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "aa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "aa" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<MemorialPres, (Perfect | Resultative), Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "aba" ++ clitic ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "aba" ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<MemorialPres, (Perfect | Resultative), Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "aba" ++ clitic ++ "ta" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "aba" ++ clitic ++ "ta" ++ Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<MemorialPres, Restrospective, Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "aaba" ++ clitic ++"aa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "aaba" ++ clitic ++"aa" ++ Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<MemorialPres, Restrospective, Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "aaba" ++ clitic ++ "ta ka" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "aaba" ++ clitic ++ "ta ka" ++ Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<MemorialPres, Progressive, Pos> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "aaba ni" ++ clitic ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "aaba ni" ++ clitic ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<MemorialPres, Progressive, Neg> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "aaba" ++ clitic ++ "ta riku"++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "aaba" ++ clitic ++ "ta riku"++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<MemorialPres, Persistive, Pos> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "aaba" ++ clitic ++ "kaa"++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "aaba" ++ clitic ++ "kaa"++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<MemorialPres, Persistive, Neg> => case cl.isPresBlank of{
True => {s = subj ++ clitic ++ "aaba" ++ clitic ++ "ta ki"++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "aaba" ++ clitic ++ "ta ki"++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<ExpPres, Performative,(Pos|Neg)> =>{s="ImpossibleInLanguage"}; -- with GF could allow one to throw Error messages that can be caught
<ExpPres, (Perfect |Resultative), Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<ExpPres, (Perfect |Resultative), Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++"ti"++Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++"ti"++Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<ExpPres, Retrospective, Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "naa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "naa" ++ Predef.BIND++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<ExpPres, Retrospective, Neg> => case cl.isPerfBlank of {
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "ka" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "ka" ++ Predef.BIND++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<ExpPres, Progressive, Pos> => case cl.isPresBlank of {
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ni" ++ Predef.BIND ++ clitic ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<ExpPres, Progressive, Neg> => case cl.isPerfBlank of {
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "ri ku" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "ri ku" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<ExpPres, Persistive, Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "kaa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "kaa" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<ExpPres, Persistive, Neg> => case cl.isPerfBlank of {
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "ri ku" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "ri ku" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<NearFut, Performative, Pos> => case cl.isPresBlank of {
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za ku" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za ku" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
-- Uses the subjunctive e.g a + e = e
<NearFut, Performative, Neg> => case cl.isPerfBlank of {
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "raa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "e" ++ compl};
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "raa" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++Predef.BIND ++"e" ++ compl} -- my own way of performing the subjuctive i.e a+e =e
};
<NearFut, (Perfect | Resultative), Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "raaba" ++ clitic ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "raaba" ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<NearFut, (Perfect | Resultative), Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "raaba" ++ clitic ++ "ta" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "raaba" ++ clitic ++ "ta" ++ Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<NearFut, Retrospective, Pos> =>case cl.isPerfBlank of {
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ Predef.BIND ++ clitic ++ "aa" ++Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ Predef.BIND ++ clitic ++ "aa" ++Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<NearFut, Retrospective, Neg> =>case cl.isPerfBlank of {
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ Predef.BIND ++ clitic ++ "taka" ++Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ Predef.BIND ++ clitic ++ "taka" ++Predef.BIND ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<NearFut, Progressive, Pos> => case cl.isPresBlank of {
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba ni" ++ Predef.BIND ++ clitic ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba ni" ++ Predef.BIND ++ clitic ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<NearFut, Progressive, Neg> => case cl.isPresBlank of {
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ clitic ++ "tariku" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ clitic ++ "tariku" ++ Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<NearFut, Persistive, Pos> => case cl.isPresBlank of {
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ clitic ++ "kyaa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ clitic ++ "kyaa" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<NearFut, Persistive, Neg> => case cl.isPresBlank of {
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ clitic ++ "taki" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++"za kuba" ++ clitic ++ "taki" ++ Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemoteFut, Performative, Pos> => case cl.isPresBlank of {
True => {s = subj ++ clitic ++ "rya" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "rya" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemoteFut, Performative, Neg> => case cl.isPresBlank of {
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "rya" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "rya" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemoteFut, (Perfect | Resultative), Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "ryaba" ++ clitic ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "ryaba" ++ clitic ++ Predef.BIND++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<RemoteFut, (Perfect | Resultative), Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "ryaba" ++ clitic ++ "ta" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "ryaba" ++ clitic ++ "ta" ++ Predef.BIND++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<RemoteFut, Restrospective, Pos> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "ryaba" ++ clitic ++ "aa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "ryaba" ++ clitic ++ "aa"++ Predef.BIND++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<RemoteFut, Restrospective, Neg> => case cl.isPerfBlank of {
True => {s = subj ++ clitic ++ "ryaba" ++ clitic ++ "taka" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
False => {s = subj ++ clitic ++ "ryaba" ++ clitic ++ "taka" ++ Predef.BIND++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
};
<RemoteFut, Habitual, Pos> =>case cl.isPresBlank of {
True => {s = subj ++ clitic ++ "raa" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "raa" ++ Predef.BIND++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemoteFut, Habitual, Neg> =>{s="Non Existent. Can someone suggest?"};
<RemoteFut, Progressive, Pos> =>case cl.isPresBlank of {
True => {s = subj ++ clitic ++ "riba ni" ++ Predef.BIND ++ clitic ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "riba ni" ++ Predef.BIND ++ clitic ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemoteFut, Progressive, Neg> =>case cl.isPresBlank of {
True => {s = subj ++ clitic ++ "riba" ++ clitic ++ "ta riku" ++ Predef.BIND++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "riba" ++ clitic ++ "ta riku" ++ Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemoteFut, Persistive, Pos> =>case cl.isPresBlank of {
True => {s = subj ++ clitic ++ "riba" ++ Predef.BIND ++ clitic ++"kya" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "riba" ++ Predef.BIND ++ clitic ++"kya" ++ Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
};
<RemoteFut, Persistive, Neg> =>case cl.isPresBlank of {
True => {s = subj ++ clitic ++ "riba" ++ Predef.BIND ++ clitic ++"taki" ++ Predef.BIND ++ root ++ Predef.BIND ++ "a" ++ compl};
False => {s = subj ++ clitic ++ "riba" ++ Predef.BIND ++ clitic ++"taki" ++ Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}
}
};
}

26
src/rukiga/TenseExtra.gf Normal file
View File

@@ -0,0 +1,26 @@
abstract TenseExtra = {
cat
TempExtra;
TenseExtra;
Asp;
fun
TTAsp : TenseExtra -> Asp -> TempExtra ; -- [combination of tense and Apect, e.g. ExPres Performative]
--PPos : Pol ; -- I sleep [positive polarity]
--PNeg : Pol ; -- I don't sleep [negative polarity]
TExPres : TenseExtra ; -- I sleep/have slept [present]
TMPres : TenseExtra ; -- I slept [past, "imperfect"] --# notpresent
TNFut : TenseExtra ; -- I will sleep [future] --# notpresent
TNPast : TenseExtra ; -- I would sleep [conditional] --# notpresent
TRPast : TenseExtra ;
TRFut : TenseExtra ;
APerform : Asp ; -- I sleep/slept [simultaneous, not compound]
APerf : Asp ; -- I have slept/had slept [anterior, "compound", "perfect"] --# notpresent
AResult : Asp ;
ARetrosp : Asp ;
AHabitual : Asp ;
AProg : Asp ;
APersist : Asp ;
}