forked from GitHub/gf-rgl
20
src/arabic/ExtendAra.gf
Normal file
20
src/arabic/ExtendAra.gf
Normal file
@@ -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 ! Gen ; d = Const ; isNum, isPron = False } ;
|
||||
|
||||
} ;
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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) );
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user