diff --git a/src/arabic/CatAra.gf b/src/arabic/CatAra.gf index 1a3418559..95e4aed61 100644 --- a/src/arabic/CatAra.gf +++ b/src/arabic/CatAra.gf @@ -16,13 +16,13 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in { -- Sentence - Cl = ResAra.Cl ; -- {s : ResAra.Tense => Polarity => Order => Str} ; + Cl = ResAra.Cl ; -- {s : Tense => Polarity => Order => Str} ; ClSlash = ResAra.ClSlash ; Imp = {s : Polarity => Gender => ResAra.Number => Str} ; -- Question - QCl = ResAra.QCl ; -- {s : ResAra.Tense => Polarity => QForm => Str} ; + QCl = ResAra.QCl ; -- {s : Tense => Polarity => QForm => Str} ; IDet = ResAra.IDet ; -- {s : Gender => State => Case => Str ; n : Number} ; IP = ResAra.IP ; -- {s : (isPred : Bool) => State => Case => Str ; n : Number} ; IComp = ResAra.IComp ; -- diff --git a/src/arabic/QuestionAra.gf b/src/arabic/QuestionAra.gf index a0af36dfe..af35450c5 100644 --- a/src/arabic/QuestionAra.gf +++ b/src/arabic/QuestionAra.gf @@ -44,7 +44,7 @@ concrete QuestionAra of Question = CatAra ** open ResAra, ParamX, Prelude, VerbA CompIAdv iadv = { s = \\_ => iadv.s ; n = ResAra.Sg } ; - -- QCl = {s : R.Tense => Polarity => QForm => Str} ; + -- QCl = {s : Tense => Polarity => QForm => Str} ; QuestSlash ip cl = { ----IL just guessing s = \\t,p,qf => let o = case qf of { QDir => Nominal ; _ => Verbal } ; -- purely guessing diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index 25df5cd23..7841118e4 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -19,7 +19,6 @@ resource ResAra = PatternsAra ** open Prelude, Predef, OrthoAra, ParamX in { Gender = Masc | Fem ; Case = Nom | Acc | Gen | Bare ; -- 1st person poss. suff. overrides case - Person = P1 | P2 | P3 ; Species = NoHum | Hum ; State = Def | Indef | Const | Poss ; -- ة turns into ت @@ -27,7 +26,6 @@ resource ResAra = PatternsAra ** open Prelude, Predef, OrthoAra, ParamX in { -- case vowel retained Mood = Ind | Cnj | Jus ; Voice = Act | Pas ; - Tense = Pres | Past | Fut ; Order = Verbal | Nominal ; oper diff --git a/src/arabic/SentenceAra.gf b/src/arabic/SentenceAra.gf index 682b037a2..159e1cea9 100644 --- a/src/arabic/SentenceAra.gf +++ b/src/arabic/SentenceAra.gf @@ -39,20 +39,20 @@ concrete SentenceAra of Sentence = CatAra ** open yaktubu = vp.s ! pgn ! VPImpf Ind ; yaktuba = vp.s ! pgn ! VPImpf Cnj ; yaktub = vp.s ! pgn ! VPImpf Jus ; - vStr : ResAra.Tense -> Polarity -> Str = + vStr : ParamX.Tense -> Polarity -> Str = \tn,pl -> case of { - => yaktubu ; - => "لَا" ++ yaktubu ; - => "" ; --no verb "to be" in present - => "لَيسَ" ;--same here, just add negation particle - <_, ResAra.Past, Pos> => kataba ; - <_, ResAra.Past, Neg> => "لَمْ" ++ yaktub ; - <_, ResAra.Fut, Pos> => "سَ" ++ yaktubu ; - <_, ResAra.Fut, Neg> => "لَنْ" ++ yaktuba + => yaktubu ; + => "لَا" ++ yaktubu ; + => "" ; --no verb "to be" in present + => "لَيسَ" ;--same here, just add negation particle + <_, Past, Pos> => kataba ; + <_, Past, Neg> => "لَمْ" ++ yaktub ; + <_, _Fut, Pos> => "سَ" ++ yaktubu ; + <_, _Fut, Neg> => "لَنْ" ++ yaktuba }; - pred : ResAra.Tense -> Polarity -> Str = + pred : ParamX.Tense -> Polarity -> Str = \tn,pl -> case of { - => vp.pred.s ! gn ! Nom; --xabar marfooc + => vp.pred.s ! gn ! Nom; --xabar marfooc _ => vp.pred.s ! gn ! Acc --xabar kaana wa laysa manSoob }; @@ -113,19 +113,20 @@ concrete SentenceAra of Sentence = CatAra ** open -- UseCl t p cl = - {s = case of { --- IL guessed tenses - <(Pres|Cond),Simul> => cl.s ! ResAra.Pres ! p.p ! Verbal ; - => cl.s ! ResAra.Fut ! p.p ! Verbal ; - <_ ,_ > => cl.s ! ResAra.Past ! p.p ! Verbal + {s = t.s ++ p.s ++ + case of { --- IL guessed tenses + <(Pres|Cond),Simul> => cl.s ! Pres ! p.p ! Nominal ; + => cl.s ! Fut ! p.p ! Nominal ; + <_ ,_ > => cl.s ! Past ! p.p ! Nominal } }; UseQCl t p qcl = - {s = \\q => - case of { --- IL guessed tenses - <(Pres|Cond),Simul> => qcl.s ! ResAra.Pres ! p.p ! q ; - => qcl.s ! ResAra.Fut ! p.p ! q ; - <_ ,_ > => qcl.s ! ResAra.Past ! p.p ! q + {s = \\q => t.s ++ p.s ++ + case of { --- IL guessed tenses + <(Pres|Cond),Simul> => qcl.s ! Pres ! p.p ! q ; + => qcl.s ! Fut ! p.p ! q ; + <_ ,_ > => qcl.s ! Past ! p.p ! q } };