diff --git a/src/arabic/LexiconAra.gf b/src/arabic/LexiconAra.gf index 1230c4e67..8d78804f7 100644 --- a/src/arabic/LexiconAra.gf +++ b/src/arabic/LexiconAra.gf @@ -310,6 +310,7 @@ flags night_N = brkN "ليل" "فَعلة" "فَعالِي" Fem NoHum; --plural? nose_N = brkN "؟نف" "فَعل" "فُعُول" Masc NoHum; person_N = brkN "شخص" "فَعل" "أَفعال" Masc Hum; + question_N = mkN "سؤال" ; ----IL rain_N = brkN "مطر" "فَعَل" "أَفعال" Masc NoHum; road_N = brkN "طرق" "فَعِيل" "فُعُل" Fem NoHum; root_N = brkN "جذر" "فَعل" "فُعُول" Masc NoHum ; diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index 92a441b55..c8aaf7594 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -180,7 +180,7 @@ resource ParadigmsAra = open --Verb Form V : tafa``ala v5 : Str -> V ; - + --Verb Form VI : tafaa`ala v6 : Str -> V ; @@ -194,7 +194,11 @@ resource ParadigmsAra = open -- Two-place verbs need a preposition, except the special case with direct object. -- (transitive verbs). Notice that a particle comes from the $V$. - mkV2 : V -> Preposition -> V2 ; + mkV2 = overload { + mkV2 : V -> V2 = dirV2 ; + mkV2 : V -> Preposition -> V2 = prepV2 ; + mkV2 : Str -> V2 = strV2; + } ; dirV2 : V -> V2 ; @@ -497,8 +501,11 @@ resource ParadigmsAra = open mkAdA x = ss x ** {lock_AdA = <>} ; mkPreposition p = p ; - mkV2 v p = v ** {s = v.s ; c2 = p ; lock_V2 = <>} ; - dirV2 v = mkV2 v [] ; + + prepV2 : V -> Preposition -> V2 = \v,p -> v ** {s = v.s ; c2 = p ; lock_V2 = <>} ; + strV2 : Str -> V2 = \str -> dirV2 (mkV str) ; + + dirV2 v = prepV2 v [] ; mkV3 v p q = v ** {s = v.s ; c2 = p ; c3 = q ; lock_V3 = <>} ; dirV3 v p = mkV3 v [] p ; diff --git a/src/arabic/PhraseAra.gf b/src/arabic/PhraseAra.gf index 3ed1a2597..ddbd9f8b8 100644 --- a/src/arabic/PhraseAra.gf +++ b/src/arabic/PhraseAra.gf @@ -7,25 +7,20 @@ concrete PhraseAra of Phrase = CatAra ** open lin PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ! Masc ++ voc.s} ;--FIXME - UttS s = {s = \\g => s.s} ; ---- OK? AR - - UttIAdv s = {s = \\g => s.s} ; ---- OK? AR - UttQS qs = {s = \\g => qs.s ! QDir} ; UttImpSg pol imp = {s = \\g => imp.s ! pol.p ! g ! ResAra.Sg ++ pol.s} ; UttImpPl,UttImpPol = \pol,imp -> {s = \\g => imp.s ! pol.p ! g ! ResAra.Pl ++ pol.s} ; --- - UttIP ip = {s = \\_ => ip.s} ; ---- AR - -- AP = { s : Species => Gender => Number => State => Case => Str } ; + UttIP ip = {s = \\_ => ip.s} ; ---- AR UttAP ap = {s = ResAra.uttAP ap} ; --IL - -- Card = {s : Gender => State => Case => Str } ; UttCard c = {s = ResAra.uttNum c} ; --IL --- UttIAdv iadv = iadv ; + UttCN cn = {s = \\_ => cn.s ! Sg ! Def ! Nom} ; --IL UttNP np = {s = \\_ => np.s ! Nom} ; --- UttVP vp = {s = infVP False vp (agrP3 Sg)} ; - UttAdv adv = {s = \\_ => adv.s} ; + UttVP vp = {s = \\_ => linVP vp} ; --IL + UttS, + UttAdv, + UttIAdv = \s -> {s = \\_ => s.s} ; ---- OK? AR -- NoPConj = {s = []} ; -- PConjConj conj = conj ; diff --git a/src/arabic/VerbAra.gf b/src/arabic/VerbAra.gf index 8716da2fb..e95e3eeab 100644 --- a/src/arabic/VerbAra.gf +++ b/src/arabic/VerbAra.gf @@ -5,7 +5,7 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in { lin UseV = predV ; - SlashVV vv vps = vps ** predV vv ; ---- totally wrong /IL + SlashVV vv vps = vps ** predV vv ; ----IL SlashV2a v = predV v ** {c2 = v.c2}; Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2}; @@ -37,8 +37,9 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in { -- -- PassV2 v = insertObj (\\_ => v.s ! VPPart) (predAux auxBe) ; -- - -- UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; isRefl = vv.isRefl} ; -- no --- +-- UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; isRefl = vv.isRefl} ; -- no + + CompCN cn = {s = \\agr,c => cn.s ! agr.n ! Indef ! c} ; ----IL CompAP ap = {s = \\agr,c => ap.s ! Hum ! agr.g ! agr.n ! Indef ! c} ; --FIXME CompNP np = {s = \\_,c => np.s ! c}; CompAdv a = {s = \\_,_ => a.s} ;