Merge remote-tracking branch 'upstream/master' into por-dict

This commit is contained in:
odanoburu
2019-01-10 09:56:47 -02:00
3 changed files with 38 additions and 14 deletions

View File

@@ -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 ;

View File

@@ -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 ->

View File

@@ -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 {