mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 08:58:55 -06:00
Merge remote-tracking branch 'upstream/master' into por-dict
This commit is contained in:
@@ -57,7 +57,7 @@ lin
|
||||
|
||||
oper
|
||||
|
||||
amount_N : N = mkN "مِقْدَار" "مَقَادِير" masc nohum ;
|
||||
amount_N : N = mkN "مِقْدَار" "مَقَادِير" masc nohum ;
|
||||
|
||||
-- hack used in the name constructions
|
||||
toNP : Bool -> NP -> NP = \b -> if_then_else NP b R.emptyNP ;
|
||||
|
||||
@@ -159,7 +159,7 @@ resource ParadigmsAra = open
|
||||
|
||||
idaafaA : N -> A -> A ; -- first argument will be in constructus but inflect in case, adjective in genitive, but inflect in gender, number and definiteness. e.g. غَيْرُ طَيِّبٍ
|
||||
|
||||
degrA : (posit,compar,plur : Str) -> A ;
|
||||
degrA : (masc,fem,plur : Str) -> A ; -- adjective where masculine singular is also the comparative form.
|
||||
|
||||
irregFemA : (masc : A) -> (fem : A) -> A ; -- adjective with irregular feminine. Takes two adjectives (masc. "regular" and fem. "regular") and puts them together.
|
||||
|
||||
@@ -450,6 +450,7 @@ resource ParadigmsAra = open
|
||||
in case rootStr of {
|
||||
f@? + c@? + "ّ" => v1geminate (f+c+c) vPerf vImpf ;
|
||||
? + #hamza + #weak => v1doubleweak root ;
|
||||
#weak + ? + #weak => v1assimilated_defective root vPerf vImpf ;
|
||||
? + ? + #weak => case vPerf of {
|
||||
i => v1defective_i root vImpf ;
|
||||
_ => v1defective_a root vImpf } ;
|
||||
@@ -462,9 +463,10 @@ resource ParadigmsAra = open
|
||||
root = mkRoot3 rootStr
|
||||
} in {
|
||||
s =
|
||||
case root.l of {
|
||||
#weak => (v2defective root).s;
|
||||
_ => (v2sound root).s
|
||||
case rootStr of {
|
||||
-- #weak + ? + ? =>
|
||||
? + ? + #weak => (v2defective root).s;
|
||||
_ => (v2sound root).s
|
||||
};
|
||||
lock_V = <>
|
||||
};
|
||||
@@ -531,7 +533,7 @@ resource ParadigmsAra = open
|
||||
let {
|
||||
fcl = mkRoot3 rootStr ;
|
||||
verb : Verb = case rootStr of {
|
||||
f@? + c@? + "ّ" => v8geminate (f+c+c) ;
|
||||
f@? + c@? + "ّ" => v8geminate (f+c+c) ;
|
||||
#weak + ? + ? => v8assimilated fcl ;
|
||||
? + #weak + ? => v8hollow fcl ;
|
||||
_ => v8sound fcl }
|
||||
@@ -669,8 +671,8 @@ resource ParadigmsAra = open
|
||||
AComp d c => rectifyHmz (indeclN akbar ! d ! c) }
|
||||
} ;
|
||||
|
||||
degrA : (posit,compar,plur : Str) -> A
|
||||
= \posit,compar,plur -> lin A {s = clr posit compar plur} ;
|
||||
degrA : (masc,fem,plur : Str) -> A
|
||||
= \masc,fem,plur -> lin A {s = clr masc fem plur} ;
|
||||
|
||||
idaafaA : N -> A -> A = \ghayr,tayyib -> tayyib ** {
|
||||
s = table {
|
||||
@@ -777,6 +779,12 @@ resource ParadigmsAra = open
|
||||
mkV2V = overload {
|
||||
mkV2V : V -> Str -> Str -> V2V = \v,p,q ->
|
||||
lin V2V (prepV3 v (mkPreposition p) (mkPreposition q) ** {sc = noPrep}) ;
|
||||
mkV2V : V2 -> V2V = \v2 ->
|
||||
lin V2V (v2 ** {c2 = v2.c2 ; c3,sc = noPrep}) ;
|
||||
mkV2V : V2 -> Preposition -> V2V = \v2,p ->
|
||||
lin V2V (v2 ** {c2 = v2.c2 ; c3 = p ; sc = noPrep}) ;
|
||||
mkV2V : V2 -> Preposition -> Preposition -> V2V = \v2,p,q->
|
||||
lin V2V (v2 ** {c2 = v2.c2 ; c3 = p ; sc = q}) ;
|
||||
mkV2V : V -> Preposition -> Preposition -> V2V = \v,p,q ->
|
||||
lin V2V (prepV3 v p q ** {sc = noPrep}) ;
|
||||
mkV2V : VV -> Preposition -> V2V = \vv,p ->
|
||||
|
||||
@@ -622,17 +622,20 @@ v1defForms_perfA : Root3 -> Vowel -> DefForms = \rmy,vowImpf ->
|
||||
armi armu urma -- VImpf
|
||||
eirmi eirmu marmiy ;
|
||||
|
||||
v1defForms_perfI : Root3 -> Vowel -> DefForms = \bqy,vowImpf ->
|
||||
let vforms_a = v1defForms_perfA bqy vowImpf ;
|
||||
baqI = mkDefective facIl bqy ;
|
||||
baqiy = mkDefective facil bqy ;
|
||||
in table { 0 => baqI ;
|
||||
1 => baqiy ;
|
||||
x => vforms_a ! x } ;
|
||||
|
||||
v1defective_a : Root3 -> Vowel -> Verb = \rmy,vowImpf ->
|
||||
let vforms = v1defForms_perfA rmy vowImpf
|
||||
in verbDef vforms vowImpf ;
|
||||
|
||||
v1defective_i : Root3 -> Vowel -> Verb = \bqy,vowImpf -> -- IL (conjugation 1d4)
|
||||
let vforms_a = v1defForms_perfA bqy vowImpf ;
|
||||
baqI = mkDefective facIl bqy ;
|
||||
baqiy = mkDefective facil bqy ;
|
||||
vforms_i = table { 0 => baqI ;
|
||||
1 => baqiy ;
|
||||
x => vforms_a ! x } ;
|
||||
let vforms_i = v1defForms_perfI bqy vowImpf ;
|
||||
in verbDef vforms_i vowImpf ;
|
||||
|
||||
v1doubleweak : Root3 -> Verb = \r'y ->
|
||||
@@ -647,6 +650,19 @@ v1doubleweak : Root3 -> Verb = \r'y ->
|
||||
x => vforms_doubleweak ! x } ;
|
||||
in verbDoubleDef vforms a ; -- sukun in suffixes is removed in verbDoubleDef
|
||||
|
||||
v1assimilated_defective : Root3 -> Vowel -> Vowel -> Verb = \root,vPerf,vImpf ->
|
||||
let vffun = case vPerf of {i => v1defForms_perfI ; _ => v1defForms_perfA} ;
|
||||
vforms_def : DefForms = vffun root vImpf ;
|
||||
vforms_ass : DefForms = \\x => rmSukun (vffun (root ** {f = ""}) vImpf ! x) ;
|
||||
vforms : DefForms =
|
||||
table { 4 => vforms_ass ! 4 ;
|
||||
5 => vforms_ass ! 5 ;
|
||||
6 => vforms_ass ! 6 ;
|
||||
7 => vforms_ass ! 7 ;
|
||||
8 => vforms_ass ! 8 ;
|
||||
9 => vforms_ass ! 9 ;
|
||||
x => vforms_def ! x } ;
|
||||
in verbDef vforms vImpf ;
|
||||
|
||||
patDef1 : Vowel => Pattern =
|
||||
table {
|
||||
|
||||
Reference in New Issue
Block a user