forked from GitHub/gf-rgl
@@ -35,7 +35,7 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in {
|
||||
-- } ;
|
||||
--
|
||||
AdAP ada ap = {
|
||||
s = \\sp,g,n,st,c => ada.s ++ ap.s ! sp ! g ! n ! st ! c
|
||||
s = \\sp,g,n,st,c => ap.s ! sp ! g ! n ! st ! c ++ ada.s
|
||||
} ;
|
||||
|
||||
UseA2 = PositA ;
|
||||
|
||||
@@ -11,7 +11,7 @@ concrete AdverbAra of Adverb = CatAra ** open ResAra, Prelude in {
|
||||
-- s = cadv.s ++ a.s ! AAdv ++ "مِنْ" ++ s.s
|
||||
-- } ;
|
||||
|
||||
PrepNP prep np = {s = prep.s ++ bindIf prep.binds ++ np.s ! prep.c} ;
|
||||
PrepNP prep np = {s = prep.s ++ bindIf (orB np.a.isPron prep.binds) ++ np.s ! prep.c} ;
|
||||
|
||||
AdAdv ad av = cc2 av ad ;
|
||||
|
||||
|
||||
@@ -18,8 +18,7 @@ flags
|
||||
ask_V2Q = dirV2 (regV "يَسءَل") ;
|
||||
-- ask_V2Q = dirV2 (v1 "سءل" a a) ;
|
||||
baby_N = brkN "طفل" "فِعل" "أَفعَال" Masc Hum;
|
||||
-- bad_A = sndA "سوء" "فَيِّع" ;
|
||||
bad_A = degrA "سَيِّئ" "سَيِّئَة" "سَيِّئِين" ;
|
||||
bad_A = sndA "سوء" "فَيِّع" ;
|
||||
bank_N = brkN "بنك" "فَعل" "فُعُول" Masc NoHum ;
|
||||
beautiful_A = sndA "جمل" "فَعِيل" ;
|
||||
become_VA = mkVA (v4 "صبح") ;
|
||||
|
||||
@@ -4,7 +4,6 @@ resource MissingAra = open GrammarAra, Prelude in {
|
||||
oper AdAdv : AdA -> Adv -> Adv = notYet "AdAdv" ;
|
||||
oper AdVVP : AdV -> VP -> VP = notYet "AdVVP" ;
|
||||
oper AdnCAdv : CAdv -> AdN = notYet "AdnCAdv" ;
|
||||
oper AdvIAdv : IAdv -> Adv -> IAdv = notYet "AdvIAdv" ;
|
||||
oper BaseRS : RS -> RS -> ListRS = notYet "BaseRS" ;
|
||||
oper CAdvAP : CAdv -> AP -> NP -> AP = notYet "CAdvAP" ;
|
||||
oper CleftNP : NP -> RS -> Cl = notYet "CleftNP" ;
|
||||
|
||||
@@ -368,7 +368,6 @@ resource ParadigmsAra = open
|
||||
= mkAN ;
|
||||
mkN : N -> AP -> N
|
||||
= mkAPN
|
||||
|
||||
} ;
|
||||
|
||||
attrN : Number -> N -> N -> N = \num,n1,n2 -> n1 ** {
|
||||
|
||||
@@ -63,26 +63,28 @@ concrete QuestionAra of Question = CatAra ** open ResAra, ParamX, Prelude, VerbA
|
||||
s = \\isPred,g,s,c => ip.s ! isPred ! g ! s ! c ++ adv.s ;
|
||||
} ;
|
||||
|
||||
-- : IDet -> IP
|
||||
IdetIP idet = idet ** {
|
||||
s = \\isPred => idet.s ;
|
||||
a = { pgn = agrP3 NoHum Masc idet.n ; isPron = False }
|
||||
} ;
|
||||
AdvIAdv iadv adv = {s = iadv.s ++ adv.s} ;
|
||||
|
||||
-- : IDet -> CN -> IP
|
||||
IdetCN idet cn = {
|
||||
s = \\isPred,g,s,c
|
||||
-- : IDet -> IP
|
||||
IdetIP idet = idet ** {
|
||||
s = \\isPred => idet.s ;
|
||||
a = { pgn = agrP3 NoHum Masc idet.n ; isPron = False }
|
||||
} ;
|
||||
|
||||
-- : IDet -> CN -> IP
|
||||
IdetCN idet cn = {
|
||||
s = \\isPred,g,s,c
|
||||
=> idet.s ! cn.g ! s ! c ++
|
||||
cn2str cn idet.n idet.d Gen ;
|
||||
a = { pgn = agrP3 NoHum cn.g idet.n ; isPron = False }
|
||||
} ;
|
||||
a = { pgn = agrP3 NoHum cn.g idet.n ; isPron = False }
|
||||
} ;
|
||||
|
||||
-- : IQuant -> Num -> IDet
|
||||
IdetQuant iquant num = {
|
||||
s = \\g,s,c =>
|
||||
IdetQuant iquant num = {
|
||||
s = \\g,s,c =>
|
||||
let gend = detGender g num.n -- gender flips with some numbers
|
||||
in iquant.s ! s ! c ++ num.s ! gend ! s ! c ;
|
||||
n = sizeToNumber num.n ;
|
||||
d = Indef ---- TODO check
|
||||
} ;
|
||||
n = sizeToNumber num.n ;
|
||||
d = Indef ---- TODO check
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -1049,8 +1049,8 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
||||
-- determine the declension and gives the corresponding inf table
|
||||
brkPl : Str -> State => Case => Str = \word ->
|
||||
\\s,c => defArt s c (case word of {
|
||||
lemma + "ِيّ" => fixShd word (decNisba ! s ! c) ;
|
||||
lemma + "ِي" => fixShd lemma (dec2sg ! s ! c) ;
|
||||
lemma + "ِيّ" => fixShd word (dec1sg ! s ! c) ; -- nisba
|
||||
lemma + "ِي" => fixShd lemma (dec2sg ! s ! c) ; -- 2nd declension
|
||||
_ + ("ا"|"ى") => fixShd word (dec3sg ! s ! c) ;
|
||||
lemma + (#hamza|#hamzaseat)
|
||||
=> word + dec1sgNoDoubleAlif ! s ! c ;
|
||||
@@ -1170,16 +1170,6 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
||||
_ => []
|
||||
};
|
||||
|
||||
--declension 2 (ends in yaa')
|
||||
decNisba : State => Case => Str = \\s,c =>
|
||||
case <s,c> of {
|
||||
<_, Bare> => [] ;
|
||||
<Indef,Acc> => "اً" ;
|
||||
<Indef> => "ٍ" ;
|
||||
<_, Acc> => "َ" ;
|
||||
_ => []
|
||||
};
|
||||
|
||||
--dual suffixes
|
||||
dl : State => Case => Str =
|
||||
table {
|
||||
|
||||
@@ -45,7 +45,7 @@ concrete StructuralAra of Structural = CatAra **
|
||||
s = \\g,s,c => "كَمْ عَدَد" + caseTbl ! c ;
|
||||
n = Pl ; d = Def
|
||||
} ; -- IL
|
||||
|
||||
how8much_IAdv = ss "كَمْ" ;
|
||||
if_Subj = mkSubj "إِذَا" Verbal ;
|
||||
in8front_Prep = mkPrep "مُقَابِلَ" ;
|
||||
i_Pron = ResAra.i_Pron ;
|
||||
|
||||
Reference in New Issue
Block a user