diff --git a/src/rukiga/AllCgg.gf b/src/rukiga/AllCgg.gf new file mode 100644 index 000000000..96f302e78 --- /dev/null +++ b/src/rukiga/AllCgg.gf @@ -0,0 +1,5 @@ +--# -path=.:../abstract:../common:../prelude + +concrete AllCgg of AllCggAbs = + LangCgg, SentenceExtraCgg,LexiconExtraCgg + ** {} ; \ No newline at end of file diff --git a/src/rukiga/AllCggAbs.gf b/src/rukiga/AllCggAbs.gf new file mode 100644 index 000000000..d4dfb1496 --- /dev/null +++ b/src/rukiga/AllCggAbs.gf @@ -0,0 +1,7 @@ +--# -path=.:../abstract:../common:prelude + +abstract AllCggAbs = + Lang, + SentenceExtra, + LexiconExtra + ** {} ; \ No newline at end of file diff --git a/src/rukiga/LexiconExtra.gf b/src/rukiga/LexiconExtra.gf new file mode 100644 index 000000000..a69f16931 --- /dev/null +++ b/src/rukiga/LexiconExtra.gf @@ -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; + +} \ No newline at end of file diff --git a/src/rukiga/LexiconExtraCgg.gf b/src/rukiga/LexiconExtraCgg.gf new file mode 100644 index 000000000..4b03d8129 --- /dev/null +++ b/src/rukiga/LexiconExtraCgg.gf @@ -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; +} \ No newline at end of file diff --git a/src/rukiga/SentenceExtra.gf b/src/rukiga/SentenceExtra.gf new file mode 100644 index 000000000..ab431aa68 --- /dev/null +++ b/src/rukiga/SentenceExtra.gf @@ -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 +} \ No newline at end of file diff --git a/src/rukiga/SentenceExtraCgg.gf b/src/rukiga/SentenceExtraCgg.gf new file mode 100644 index 000000000..c75193c83 --- /dev/null +++ b/src/rukiga/SentenceExtraCgg.gf @@ -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 of { + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => case cl.isPerfBlank of { + True => {s = subj ++ clitic ++ root ++ Predef.BIND ++ "ire" ++ compl}; + False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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 + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + =>{s="ImpossibleInLanguage"}; -- with GF could allow one to throw Error messages that can be caught + => case cl.isPerfBlank of { + True => {s = subj ++ clitic ++ root ++ Predef.BIND ++ "ire" ++ compl}; + False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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 + => 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 + }; + => 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} + }; + => 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} + }; + =>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} + }; + =>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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + => 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} + }; + =>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} + }; + =>{s="Non Existent. Can someone suggest?"}; + =>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} + }; + =>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} + }; + =>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} + }; + =>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} + } + + }; + +} \ No newline at end of file diff --git a/src/rukiga/TenseExtra.gf b/src/rukiga/TenseExtra.gf new file mode 100644 index 000000000..078f36937 --- /dev/null +++ b/src/rukiga/TenseExtra.gf @@ -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 ; +} \ No newline at end of file