mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
@@ -16,7 +16,7 @@ concrete IdiomAra of Idiom = CatAra ** open
|
|||||||
in predVP it vp ;
|
in predVP it vp ;
|
||||||
|
|
||||||
-- : VP -> Cl ; -- one sleeps
|
-- : VP -> Cl ; -- one sleeps
|
||||||
GenericCl = predVP (regNP "المَرْء" Sg) ;
|
GenericCl = predVP (regNP "المَرْء" Sg Def) ;
|
||||||
|
|
||||||
-- : NP -> RS -> Cl ; -- it is I who did it
|
-- : NP -> RS -> Cl ; -- it is I who did it
|
||||||
--CleftNP np rs =
|
--CleftNP np rs =
|
||||||
|
|||||||
@@ -145,6 +145,8 @@ resource ParadigmsAra = open
|
|||||||
|
|
||||||
degrA : (posit,compar,plur : Str) -> A ;
|
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
|
--Takes a root string and a pattern string
|
||||||
sndA : (root,patt : Str) -> Adj ;
|
sndA : (root,patt : Str) -> Adj ;
|
||||||
|
|
||||||
@@ -569,15 +571,6 @@ resource ParadigmsAra = open
|
|||||||
|
|
||||||
proDrop : NP -> NP = \np -> lin NP (ResAra.proDrop np) ;
|
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 =
|
mkQuant7 : (_,_,_,_,_,_,_ : Str) -> State -> Quant =
|
||||||
\hava,havihi,havAn,havayn,hAtAn,hAtayn,hA'ulA,det -> lin Quant (baseQuant **
|
\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
|
degrA : (posit,compar,plur : Str) -> A
|
||||||
= \posit,compar,plur -> lin A {s = clr posit compar plur} ;
|
= \posit,compar,plur -> lin A {s = clr posit compar plur} ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sndA root pat =
|
sndA root pat =
|
||||||
let raw = sndA' root pat in {
|
let raw = sndA' root pat in {
|
||||||
s = \\af =>
|
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 ->
|
nisbaA : Str -> Adj = \Haal ->
|
||||||
let Haaliyy = Haal + "ِيّ" in {
|
let Haaliyy = Haal + "ِيّ" in {
|
||||||
s = table {
|
s = table {
|
||||||
|
|||||||
@@ -150,6 +150,16 @@ resource ResAra = PatternsAra ** open Prelude, Predef, OrthoAra, ParamX in {
|
|||||||
Verb2 : Type = Verb ** {c2 : Preposition} ;
|
Verb2 : Type = Verb ** {c2 : Preposition} ;
|
||||||
Verb3 : Type = Verb2 ** {c3 : 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 } ;
|
AP : Type = {s : Species => Gender => NTable } ;
|
||||||
uttAP : AP -> (Gender => Str) ;
|
uttAP : AP -> (Gender => Str) ;
|
||||||
uttAP ap = \\g => ap.s ! NoHum ! g ! Sg ! Def ! Nom ; ----IL
|
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} ;
|
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) ;
|
i_Pron : NP = mkPron "أَنَا" "نِي" "ي" (Per1 Sing) ;
|
||||||
we_Pron : NP = mkPron "نَحنُ" "نا" "نا" (Per1 Plur) ;
|
we_Pron : NP = mkPron "نَحنُ" "نا" "نا" (Per1 Plur) ;
|
||||||
|
|
||||||
@@ -1701,6 +1722,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
Cl : Type = {s : Tense => Polarity => Order => Str} ;
|
Cl : Type = {s : Tense => Polarity => Order => Str} ;
|
||||||
QCl : Type = {s : Tense => Polarity => QForm => 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 ->
|
forceOrder : Order -> Cl -> Cl = \o,cl ->
|
||||||
{s = \\t,p,_ => cl.s ! t ! p ! o} ;
|
{s = \\t,p,_ => cl.s ! t ! p ! o} ;
|
||||||
|
|
||||||
|
|||||||
@@ -28,9 +28,9 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
-- } ;
|
-- } ;
|
||||||
during_Prep = mkPrep "خِلَالَ" ;
|
during_Prep = mkPrep "خِلَالَ" ;
|
||||||
-- either7or_DConj = sd2 "ِتهر" "ْر" ** {n = Sg} ;
|
-- either7or_DConj = sd2 "ِتهر" "ْر" ** {n = Sg} ;
|
||||||
everybody_NP = regNP "الجَمِيع" Pl ;
|
everybody_NP = regNP "الجَمِيع" Pl Def ;
|
||||||
every_Det = mkDet "كُلّ" Sg Const ;
|
every_Det = mkDet "كُلّ" Sg Const ;
|
||||||
everything_NP = regNP "كُلّ" Sg ;
|
everything_NP = regNP "كُلّ" Sg Def ;
|
||||||
-- everywhere_Adv = ss "ثريوهري" ;
|
-- everywhere_Adv = ss "ثريوهري" ;
|
||||||
few_Det = mkDet "بَعض" Pl Const ;
|
few_Det = mkDet "بَعض" Pl Const ;
|
||||||
-- first_Ord = ss "فِرست" ;
|
-- first_Ord = ss "فِرست" ;
|
||||||
@@ -72,10 +72,10 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
-- quite_Adv = ss "قُِتي" ;
|
-- quite_Adv = ss "قُِتي" ;
|
||||||
she_Pron = ResAra.she_Pron ;
|
she_Pron = ResAra.she_Pron ;
|
||||||
-- so_AdA = ss "سْ" ;
|
-- so_AdA = ss "سْ" ;
|
||||||
somebody_NP = regNP "أَحَد" Sg ;
|
somebody_NP = regNP "أَحَد" Sg Indef ;
|
||||||
someSg_Det = mkDet "أَحَد" Sg Const ;
|
someSg_Det = mkDet "أَحَد" Sg Const ;
|
||||||
somePl_Det = mkDet "بَعض" Pl Const ;
|
somePl_Det = mkDet "بَعض" Pl Const ;
|
||||||
something_NP = regNP "شَيْء" Sg ;
|
something_NP = regNP "شَيْء" Sg Indef ;
|
||||||
-- somewhere_Adv = ss "سْموهري" ;
|
-- somewhere_Adv = ss "سْموهري" ;
|
||||||
that_Quant = mkQuant3 "ذَلِكَ" "تِلكَ" "أُلٱِكَ" Def;
|
that_Quant = mkQuant3 "ذَلِكَ" "تِلكَ" "أُلٱِكَ" Def;
|
||||||
that_Subj = mkSubj "أنَّ" ;
|
that_Subj = mkSubj "أنَّ" ;
|
||||||
@@ -85,13 +85,13 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
-- there7from_Adv = ss ["فرْم تهري"] ;
|
-- there7from_Adv = ss ["فرْم تهري"] ;
|
||||||
-- therefore_PConj = ss "تهرفْري" ;
|
-- therefore_PConj = ss "تهرفْري" ;
|
||||||
----b these_NP = indeclNP "هَؤُلَاء" Pl ;
|
----b these_NP = indeclNP "هَؤُلَاء" Pl ;
|
||||||
they_Pron = theyMasc_Pron ;
|
they_Pron = theyMasc_Pron ;
|
||||||
this_Quant = mkQuant7 "هَذا" "هَذِهِ" "هَذَان" "هَذَيْن" "هَاتَان" "هَاتَيْن" "هَؤُلَاء" Def;
|
this_Quant = mkQuant7 "هَذا" "هَذِهِ" "هَذَان" "هَذَيْن" "هَاتَان" "هَاتَيْن" "هَؤُلَاء" Def;
|
||||||
----b this_NP = indeclNP "هَذا" Sg ;
|
----b this_NP = indeclNP "هَذا" Sg ;
|
||||||
----b those_NP = indeclNP "هَؤُلَاءكَ" Pl ;
|
----b those_NP = indeclNP "هَؤُلَاءكَ" Pl ;
|
||||||
through_Prep = mkPrep "عَبْرَ" ;
|
through_Prep = mkPrep "عَبْرَ" ;
|
||||||
-- too_AdA = ss "تّْ" ;
|
-- too_AdA = ss "تّْ" ;
|
||||||
to_Prep = mkPrep "إِلى" ;
|
to_Prep = mkPrep "إِلَى" ;
|
||||||
under_Prep = mkPrep "تَحْتَ" ;
|
under_Prep = mkPrep "تَحْتَ" ;
|
||||||
-- very_AdA = ss "ثري" ;
|
-- very_AdA = ss "ثري" ;
|
||||||
want_VV = mkVV (mkV "رود" FormIV) ;
|
want_VV = mkVV (mkV "رود" FormIV) ;
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra, ParamX in {
|
|||||||
vp ** {
|
vp ** {
|
||||||
s = v2vVP.s ;
|
s = v2vVP.s ;
|
||||||
agrObj = \\pgn => v2v.c3.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 ;
|
isPred = False ;
|
||||||
c2 = v2v.c2 ; -- preposition for the direct object
|
c2 = v2v.c2 ; -- preposition for the direct object
|
||||||
sc = v2v.sc
|
sc = v2v.sc
|
||||||
|
|||||||
Reference in New Issue
Block a user