mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 09:28:54 -06:00
@@ -16,7 +16,7 @@ concrete IdiomAra of Idiom = CatAra ** open
|
||||
in predVP it vp ;
|
||||
|
||||
-- : VP -> Cl ; -- one sleeps
|
||||
GenericCl = predVP (regNP "المَرْء" Sg) ;
|
||||
GenericCl = predVP (regNP "المَرْء" Sg Def) ;
|
||||
|
||||
-- : NP -> RS -> Cl ; -- it is I who did it
|
||||
--CleftNP np rs =
|
||||
|
||||
@@ -145,6 +145,8 @@ resource ParadigmsAra = open
|
||||
|
||||
degrA : (posit,compar,plur : Str) -> A ;
|
||||
|
||||
irregFemA : (masc : A) -> (fem : A) -> A ; -- adjective with irregular feminine. Takes two adjectives (masc. "regular" and fem. "regular") and puts them together.
|
||||
|
||||
--Takes a root string and a pattern string
|
||||
sndA : (root,patt : Str) -> Adj ;
|
||||
|
||||
@@ -569,15 +571,6 @@ resource ParadigmsAra = open
|
||||
|
||||
proDrop : NP -> NP = \np -> lin NP (ResAra.proDrop np) ;
|
||||
|
||||
-- e.g. al-jamii3, 2a7ad
|
||||
regNP : Str -> Number -> NP = \word,n -> lin NP (emptyNP ** {
|
||||
s = \\c => fixShd word (dec1sg ! Def ! c)
|
||||
});
|
||||
|
||||
-- e.g. hadha, dhaalika
|
||||
indeclNP : Str -> Number -> NP = \word,n -> lin NP (emptyNP ** {
|
||||
s = \\c => word
|
||||
});
|
||||
|
||||
mkQuant7 : (_,_,_,_,_,_,_ : Str) -> State -> Quant =
|
||||
\hava,havihi,havAn,havayn,hAtAn,hAtayn,hA'ulA,det -> lin Quant (baseQuant **
|
||||
@@ -623,6 +616,8 @@ resource ParadigmsAra = open
|
||||
degrA : (posit,compar,plur : Str) -> A
|
||||
= \posit,compar,plur -> lin A {s = clr posit compar plur} ;
|
||||
|
||||
|
||||
|
||||
sndA root pat =
|
||||
let raw = sndA' root pat in {
|
||||
s = \\af =>
|
||||
@@ -643,6 +638,13 @@ resource ParadigmsAra = open
|
||||
}
|
||||
};
|
||||
|
||||
irregFemA : (masc : A) -> (fem : A) -> A = \m,f -> m ** {
|
||||
s = table {
|
||||
APosit Masc n d c => m.s ! APosit Masc n d c ;
|
||||
APosit Fem n d c => f.s ! APosit Masc n d c ; -- The fem. adjective is built as if the irregular fem. forms were Masc. This is on purpose.
|
||||
x => m.s ! x }
|
||||
} ;
|
||||
|
||||
nisbaA : Str -> Adj = \Haal ->
|
||||
let Haaliyy = Haal + "ِيّ" in {
|
||||
s = table {
|
||||
|
||||
@@ -150,6 +150,16 @@ resource ResAra = PatternsAra ** open Prelude, Predef, OrthoAra, ParamX in {
|
||||
Verb2 : Type = Verb ** {c2 : Preposition} ;
|
||||
Verb3 : Type = Verb2 ** {c3 : Preposition} ;
|
||||
|
||||
-- Sometimes a verb is only used in one form (per3 masc sg);
|
||||
-- ideally, one would use an impersonal syntactic construction,
|
||||
-- less ideally, hardcode the verb to only contain forms of one person.
|
||||
forcePerson : PerGenNum -> Verb -> Verb = \pgn,verb -> verb ** {
|
||||
s = \\vf => case vf of {
|
||||
VPerf v _ => verb.s ! VPerf v pgn ;
|
||||
VImpf m v _ => verb.s ! VImpf m v pgn ;
|
||||
_ => verb.s ! vf }
|
||||
} ;
|
||||
|
||||
AP : Type = {s : Species => Gender => NTable } ;
|
||||
uttAP : AP -> (Gender => Str) ;
|
||||
uttAP ap = \\g => ap.s ! NoHum ! g ! Sg ! Def ! Nom ; ----IL
|
||||
@@ -1376,6 +1386,17 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
||||
|
||||
agrNP : Agr -> NP = \agr -> emptyNP ** {a = agr} ;
|
||||
|
||||
-- e.g. al-jamii3, 2a7ad
|
||||
regNP : Str -> Number -> State -> NP = \word,n,s ->
|
||||
agrNP {pgn = Per3 Masc n ; isPron = False} ** {
|
||||
s = \\c => fixShd word (dec1sg ! s ! c) ;
|
||||
} ;
|
||||
|
||||
-- e.g. hadha, dhaalika
|
||||
indeclNP : Str -> Number -> NP = \word,n -> emptyNP ** {
|
||||
s = \\c => word
|
||||
} ;
|
||||
|
||||
i_Pron : NP = mkPron "أَنَا" "نِي" "ي" (Per1 Sing) ;
|
||||
we_Pron : NP = mkPron "نَحنُ" "نا" "نا" (Per1 Plur) ;
|
||||
|
||||
@@ -1701,6 +1722,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
||||
Cl : Type = {s : Tense => Polarity => Order => Str} ;
|
||||
QCl : Type = {s : Tense => Polarity => QForm => Str} ;
|
||||
|
||||
-- To override the default order; forces all orders in a Cl to be the chosen order.
|
||||
forceOrder : Order -> Cl -> Cl = \o,cl ->
|
||||
{s = \\t,p,_ => cl.s ! t ! p ! o} ;
|
||||
|
||||
|
||||
@@ -28,9 +28,9 @@ concrete StructuralAra of Structural = CatAra **
|
||||
-- } ;
|
||||
during_Prep = mkPrep "خِلَالَ" ;
|
||||
-- either7or_DConj = sd2 "ِتهر" "ْر" ** {n = Sg} ;
|
||||
everybody_NP = regNP "الجَمِيع" Pl ;
|
||||
everybody_NP = regNP "الجَمِيع" Pl Def ;
|
||||
every_Det = mkDet "كُلّ" Sg Const ;
|
||||
everything_NP = regNP "كُلّ" Sg ;
|
||||
everything_NP = regNP "كُلّ" Sg Def ;
|
||||
-- everywhere_Adv = ss "ثريوهري" ;
|
||||
few_Det = mkDet "بَعض" Pl Const ;
|
||||
-- first_Ord = ss "فِرست" ;
|
||||
@@ -72,10 +72,10 @@ concrete StructuralAra of Structural = CatAra **
|
||||
-- quite_Adv = ss "قُِتي" ;
|
||||
she_Pron = ResAra.she_Pron ;
|
||||
-- so_AdA = ss "سْ" ;
|
||||
somebody_NP = regNP "أَحَد" Sg ;
|
||||
somebody_NP = regNP "أَحَد" Sg Indef ;
|
||||
someSg_Det = mkDet "أَحَد" Sg Const ;
|
||||
somePl_Det = mkDet "بَعض" Pl Const ;
|
||||
something_NP = regNP "شَيْء" Sg ;
|
||||
something_NP = regNP "شَيْء" Sg Indef ;
|
||||
-- somewhere_Adv = ss "سْموهري" ;
|
||||
that_Quant = mkQuant3 "ذَلِكَ" "تِلكَ" "أُلٱِكَ" Def;
|
||||
that_Subj = mkSubj "أنَّ" ;
|
||||
@@ -91,7 +91,7 @@ concrete StructuralAra of Structural = CatAra **
|
||||
----b those_NP = indeclNP "هَؤُلَاءكَ" Pl ;
|
||||
through_Prep = mkPrep "عَبْرَ" ;
|
||||
-- too_AdA = ss "تّْ" ;
|
||||
to_Prep = mkPrep "إِلى" ;
|
||||
to_Prep = mkPrep "إِلَى" ;
|
||||
under_Prep = mkPrep "تَحْتَ" ;
|
||||
-- very_AdA = ss "ثري" ;
|
||||
want_VV = mkVV (mkV "رود" FormIV) ;
|
||||
|
||||
@@ -12,7 +12,9 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra, ParamX in {
|
||||
vp ** {
|
||||
s = v2vVP.s ;
|
||||
agrObj = \\pgn => v2v.c3.s -- أَنْ
|
||||
++ vp.s ! pgn ! VPImpf Cnj ; -- this will agree with the object added by ComplSlash
|
||||
++ vp.s ! pgn ! VPImpf Cnj -- this will agree with the object added by ComplSlash
|
||||
++ vp.obj.s ;
|
||||
obj = emptyObj ;
|
||||
isPred = False ;
|
||||
c2 = v2v.c2 ; -- preposition for the direct object
|
||||
sc = v2v.sc
|
||||
|
||||
Reference in New Issue
Block a user