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