diff --git a/src/arabic/NounAra.gf b/src/arabic/NounAra.gf index 0e7a0c2db..a35572820 100644 --- a/src/arabic/NounAra.gf +++ b/src/arabic/NounAra.gf @@ -167,7 +167,7 @@ lin } ; MassNP cn = ---- AR - {s = \\c => cn.s ! Sg ! Indef ! c ++ cn.adj ! Sg ! Indef ! c ; + {s = \\c => cn.s ! Sg ! Indef ! c ++ cn.np ! c ++ cn.adj ! Sg ! Indef ! c ; a = {pgn = Per3 cn.g Sg ; isPron = False}} ; -- MassDet = {s = \\_,_,_,_ => [] ; d = Indef; diff --git a/src/arabic/OrthoAra.gf b/src/arabic/OrthoAra.gf index 8e861e0cd..a7dc5d664 100644 --- a/src/arabic/OrthoAra.gf +++ b/src/arabic/OrthoAra.gf @@ -21,8 +21,11 @@ flags coding=utf8 ; rectifyHmz: Str -> Str = \word -> case word of { + l@(""|"ال") + ("أ"|"أَ") + #hamza + "ْ" + tail => l + "آ" + tail; + l@(""|"ال") + ("أ"|"أَ") + #hamza + tail => l + "آ" + tail; l@(""|"ال") + #hamza + v@("َ"|"ُ") + tail => l + "أ" + v + tail; - l@(""|"ال") + #hamza + v@("ِ") + tail => l + "إ" + v + tail; + l@(""|"ال") + #hamza + v@("ِ") + tail => l + "إ" + v + tail; + head + v1@("ِ"|"ُ"|"َ"|"ْ"|"ا"|"ي"|"و") + #hamza + v2@(""|"ُ"|"َ"|"ْ"|"ِ") => head + v1 + (tHmz v1) + v2; head + #hamza + tail => head + (bHmz (dp 2 head) (take 2 tail)) + tail; --last head , take 1 tail _ => word diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index 68db5d3da..f84fc7add 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -286,10 +286,9 @@ resource ParadigmsAra = open v1' : Str -> Vowel -> Vowel -> Verb = \rootStr,vPerf,vImpf -> - let { root = mkRoot3 rootStr ; - l = dp 2 rootStr } in --last rootStr - case of { - <"ّ",_> => v1geminate rootStr vPerf vImpf ; + let { root = mkRoot3 rootStr } in + case of { + <"ّ", _> => v1geminate rootStr vPerf vImpf ; <"و"|"ي",_> => case vPerf of { i => v1defective_i root vImpf ; _ => v1defective_a root vImpf } ; diff --git a/src/arabic/VerbAra.gf b/src/arabic/VerbAra.gf index ea33158c3..23878f9b6 100644 --- a/src/arabic/VerbAra.gf +++ b/src/arabic/VerbAra.gf @@ -43,7 +43,7 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in { -- -- UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; isRefl = vv.isRefl} ; -- no - CompCN cn = {s = \\agr,c => cn.s ! agr.n ! Indef ! c} ; ----IL + CompCN cn = {s = \\agr,c => cn.s ! agr.n ! Indef ! c ++ cn.np ! c ++ cn.adj ! 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} ;