From 341b96da9cf627c96af30f52b85397645fb7ccc9 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 21 Sep 2018 09:08:11 +0200 Subject: [PATCH 1/4] =?UTF-8?q?(Ara)=20Add=20=D9=87=D9=8E=D9=84=20in=20Que?= =?UTF-8?q?stCl,=20not=20in=20UseQCl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/arabic/ExtendAra.gf | 20 ++++++++++++++++++++ src/arabic/QuestionAra.gf | 2 +- src/arabic/SentenceAra.gf | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/arabic/ExtendAra.gf diff --git a/src/arabic/ExtendAra.gf b/src/arabic/ExtendAra.gf new file mode 100644 index 000000000..a67d4483a --- /dev/null +++ b/src/arabic/ExtendAra.gf @@ -0,0 +1,20 @@ +--# -path=.:../common:../abstract + +concrete ExtendAra of Extend = + CatAra ** ExtendFunctor - [ + GenNP, SlashBareV2S, PredAPVP, GenModNP, ExistsNP, + StrandRelSlash, ExistPluralCN, ExistMassCN, ExistCN, EmptyRelSlash, DetNPMasc, DetNPFem, + ComplBareVS, ComplDirectVS, ComplDirectVQ +] + with (Grammar=GrammarAra) + ** open + + Prelude, + ResAra + + in { + + lin + GenNP np = { s = \\_,_,_ => np.s ; d = Const ; isNum, isPron = False } ; + +} ; diff --git a/src/arabic/QuestionAra.gf b/src/arabic/QuestionAra.gf index f5f247dee..30d528391 100644 --- a/src/arabic/QuestionAra.gf +++ b/src/arabic/QuestionAra.gf @@ -8,7 +8,7 @@ concrete QuestionAra of Question = CatAra ** open ResAra, ParamX, Prelude, VerbA s = \\t,p => table { QIndir => "إِذا" ++ cl.s ! t ! p ! Verbal ; - QDir => cl.s ! t ! p ! Verbal + QDir => "هَل" ++ cl.s ! t ! p ! Verbal } }; diff --git a/src/arabic/SentenceAra.gf b/src/arabic/SentenceAra.gf index 1b0990581..56d63a1b1 100644 --- a/src/arabic/SentenceAra.gf +++ b/src/arabic/SentenceAra.gf @@ -120,7 +120,7 @@ concrete SentenceAra of Sentence = CatAra ** open UseQCl t ap qcl = --{s = cl.s ! t ! p ! Verbal } ; {s = table { - QDir => "هَل" ++ qcl.s ! ResAra.Pres ! ap.p ! QDir; + QDir => qcl.s ! ResAra.Pres ! ap.p ! QDir; QIndir => qcl.s ! ResAra.Pres ! ap.p ! QIndir } {- case t of { From eb7e4335b5391f42c481666dde64e396679a2b3e Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 21 Sep 2018 09:10:27 +0200 Subject: [PATCH 2/4] (Ara) Add GenNP --- src/arabic/ExtendAra.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arabic/ExtendAra.gf b/src/arabic/ExtendAra.gf index a67d4483a..beda66f3e 100644 --- a/src/arabic/ExtendAra.gf +++ b/src/arabic/ExtendAra.gf @@ -15,6 +15,6 @@ concrete ExtendAra of Extend = in { lin - GenNP np = { s = \\_,_,_ => np.s ; d = Const ; isNum, isPron = False } ; + GenNP np = { s = \\_,_,_,_ => np.s ! Gen ; d = Const ; isNum, isPron = False } ; } ; From c837f1cdf7bb35475dfa11ea9b245da75a069892 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 21 Sep 2018 09:11:22 +0200 Subject: [PATCH 3/4] (Ara) keep the old s2 field in insertStr --- src/arabic/ResAra.gf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index 8d2bd255d..c0c4ab793 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -1095,7 +1095,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf -> }; insertStr : Str -> VP -> VP = \str,vp -> vp ** - { s2 = str }; + { s2 = vp.s2 ++ str }; kaan : {s : AAgr => Case => Str} -> VP = \xabar -> insertPred xabar (predV (v1hollow {f = "ك"; c = "و" ; l = "ن"} u) ); From e281cb6f5c5f150feb30f14321249920e842917c Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Fri, 21 Sep 2018 09:35:44 +0200 Subject: [PATCH 4/4] (Ara) Bugfix in DetCN: retain adjective every time --- src/arabic/NounAra.gf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/arabic/NounAra.gf b/src/arabic/NounAra.gf index 6dfe6727e..8e8c77e9e 100644 --- a/src/arabic/NounAra.gf +++ b/src/arabic/NounAra.gf @@ -8,12 +8,12 @@ lin number = sizeToNumber det.n; determiner : Case -> Str = \c -> det.s ! cn.h ! (detGender cn.g det.n) ! c; - noun : Case -> Str = \c -> cn.s ! + noun : Case -> NTable -> Str = \c,nt -> nt ! number ! (nounState det.d number) ! (nounCase c det.n det.d) } in { s = \\c => case cnB4det det.isPron det.isNum det.n det.d of { - False => determiner c ++ noun c; + False => determiner c ++ noun c cn.s ++ noun c cn.adj ; --FIXME use the adj -> cn -> cn rule from below instead of --repeating code True => cn.s ! number ! det.d ! c ++ det.s ! cn.h ! cn.g ! c