1
0
forked from GitHub/gf-rgl

(Ara) Add paradigm for assimilated measure 8 verbs

This commit is contained in:
Inari Listenmaa
2018-09-25 14:09:14 +02:00
parent 53fde8d963
commit 431b53048f
3 changed files with 38 additions and 22 deletions

View File

@@ -353,10 +353,10 @@ resource ParadigmsAra = open
\rootStr -> \rootStr ->
let { let {
rbT = mkRoot3 rootStr ; rbT = mkRoot3 rootStr ;
} in { v8fun = case rbT.f of {
s = (v8sound rbT).s ; ("و"|"ي"|"ّ") => v8assimilated ;
lock_V = <> _ => v8sound }
}; } in lin V (v8fun rbT) ;
Preposition = Str ; Preposition = Str ;
@@ -562,6 +562,6 @@ formV : (root : Str) -> VerbForm -> V = \s,f -> case f of {
} ; } ;
param VerbForm = param VerbForm =
FormI | FormIII | FormIII | FormIV | FormV | FormVI | FormVIII ; FormI | FormII | FormIII | FormIV | FormV | FormVI | FormVIII ;
} ; } ;

View File

@@ -48,6 +48,7 @@ flags coding=utf8 ;
eiftacal = { h = "إِ"; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ; eiftacal = { h = "إِ"; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ;
eufcil = { h = "أُ"; m1 = "ْ" ; m2 = "ِ" ; t = "" } ; eufcil = { h = "أُ"; m1 = "ْ" ; m2 = "ِ" ; t = "" } ;
euftucil = { h = "أُ"; m1 = "ْتُ" ; m2 = "ِ" ; t = "" } ; euftucil = { h = "أُ"; m1 = "ْتُ" ; m2 = "ِ" ; t = "" } ;
euttucil = euftucil ** { h = "تُّأُ" ; m1 = "" } ; ---- IL assimilated VIII
afcul = { h = "َ" ; m1 = "ْ" ; m2 = "ُ" ; t = "" } ; afcul = { h = "َ" ; m1 = "ْ" ; m2 = "ُ" ; t = "" } ;
faccalo = { h = "" ; m1 = "َ" ; m2 = "َّ" ; t = "ْ" } ; faccalo = { h = "" ; m1 = "َ" ; m2 = "َّ" ; t = "ْ" } ;
facal = { h = "" ; m1 = "َ" ; m2 = "َ" ; t = "" } ; facal = { h = "" ; m1 = "َ" ; m2 = "َ" ; t = "" } ;
@@ -77,6 +78,8 @@ flags coding=utf8 ;
ficlp = { h = "" ; m1 = "ِ" ; m2 = "ْ" ; t = "َة" } ; ficlp = { h = "" ; m1 = "ِ" ; m2 = "ْ" ; t = "َة" } ;
ftacal = { h = "" ; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ; ftacal = { h = "" ; m1 = "ْتَ" ; m2 = "َ" ; t = "" } ;
ftacil = { h = "" ; m1 = "ْتَ" ; m2 = "ِ" ; t = "" } ; ftacil = { h = "" ; m1 = "ْتَ" ; m2 = "ِ" ; t = "" } ;
ttacal = ftacal ** { m1 = "" ; h = "تَّ" } ; ---- IL assimilated VIII
ttacil = ftacil ** { m1 = "" ; h = "تَّ" } ; ---- IL assimilated VIII
fuccAl = { h = "" ; m1 = "ُ" ; m2 = "َّا" ; t = "" } ; fuccAl = { h = "" ; m1 = "ُ" ; m2 = "َّا" ; t = "" } ;
fuccil = { h = "" ; m1 = "ُ" ; m2 = "ِّ" ; t = "" } ; fuccil = { h = "" ; m1 = "ُ" ; m2 = "ِّ" ; t = "" } ;
fuccilo = { h = "" ; m1 = "ُ" ; m2 = "ِّ" ; t = "ْ" } ; fuccilo = { h = "" ; m1 = "ُ" ; m2 = "ِّ" ; t = "ْ" } ;

View File

@@ -76,12 +76,11 @@ resource ResAra = PatternsAra ** open Prelude, Predef, ParamX in {
-- takes a weak pattern and a triliteral root and makes -- takes a weak pattern and a triliteral root and makes
-- a word, deducing which root consonant is weak -- a word, deducing which root consonant is weak
mkWeak : Pattern -> Str -> Str = \pat,root -> mkWeak : Pattern -> Root3 -> Str = \pat,fcl ->
let fcl = mkRoot3 root in case <fcl.f,fcl.c,fcl.l> of {
case root of { <_,_,("و"|"ي"|"ّ")> => mkDefective pat fcl;
_ + ("و"|"ي"|"ّ") => mkDefective pat fcl; <_,("و"|"ي"),_> => mkHollow pat fcl;
_ + ("و"|"ي") + _ => mkHollow pat fcl; <("و"|"ي"),_,_> => mkAssimilated pat fcl
("و"|"ي") + _ => mkAssimilated pat fcl
}; };
mkBilit : Pattern -> Root2 -> Str = \p,fcl -> mkBilit : Pattern -> Root2 -> Str = \p,fcl ->
@@ -95,7 +94,7 @@ resource ResAra = PatternsAra ** open Prelude, Predef, ParamX in {
w@_ + "ف" + x@_ + "ع" + y@_ => w@_ + "ف" + x@_ + "ع" + y@_ =>
let pat = { h = w ; m1 = x; m2 = ""; t = y} in let pat = { h = w ; m1 = x; m2 = ""; t = y} in
case <length rS : Ints 100> of { case <length rS : Ints 100> of {
6 | 5 => mkWeak pat rS ; --3=> 6 | 5 => mkWeak pat (mkRoot3 rS) ; --3=>
4 | 3 => mkBilit pat (mkRoot2 rS) ; --2=> 4 | 3 => mkBilit pat (mkRoot2 rS) ; --2=>
_ => rS ---- AR error "expected 3--6" _ => rS ---- AR error "expected 3--6"
} }
@@ -431,8 +430,8 @@ patHol3 : Vowel => Pattern =
fvc : Vowel => Pattern = fvc : Vowel => Pattern =
table { table {
u => fuc ; u => fuc ;
i => fic ; i => fic ;
a => fac a => fac
} ; } ;
@@ -545,22 +544,22 @@ patDef2 : Vowel => Pattern =
v2sound : Root3 -> Verb = \qsm -> v2sound : Root3 -> Verb = \qsm ->
let { let {
qassam = mkStrong faccal qsm ; qassam = mkStrong faccal qsm ;
qussim = mkStrong fuccil qsm ; qussim = mkStrong fuccil qsm ;
qassim = mkStrong faccil qsm ; qassim = mkStrong faccil qsm ;
uqassim = "ُ" + qassim ; uqassim = "ُ" + qassim ;
uqassam = "ُ" + qassam ; uqassam = "ُ" + qassam ;
muqassam = "مُ" + qassam muqassam = "مُ" + qassam
} in } in
verb qassam qussim uqassim uqassam qassim muqassam; verb qassam qussim uqassim uqassam qassim muqassam;
v2defective : Root3 -> Verb = \gny -> v2defective : Root3 -> Verb = \gny ->
let { let {
ganna = mkDefective facca gny ; ganna = mkDefective facca gny ;
gannay = mkStrong faccalo gny ; gannay = mkStrong faccalo gny ;
gunni = mkDefective fucci gny ; gunni = mkDefective fucci gny ;
gunnu = mkDefective fuccu gny ; gunnu = mkDefective fuccu gny ;
gunniy = mkStrong fuccilo gny ; gunniy = mkStrong fuccilo gny ;
ganni = mkDefective facci gny; ganni = mkDefective facci gny;
uganni = "ُ" + ganni; uganni = "ُ" + ganni;
gannu = mkDefective faccu gny; gannu = mkDefective faccu gny;
@@ -644,6 +643,20 @@ v8sound : Root3 -> Verb =
murtabaT = "م" + urtabaT murtabaT = "م" + urtabaT
} in verb eirtabaT eurtubiT artabiT urtabaT eirtabiT murtabaT; } in verb eirtabaT eurtubiT artabiT urtabaT eirtabiT murtabaT;
v8assimilated : Root3 -> Verb = --- IL 8a1
\wfq ->
let {
ttafiq = mkWeak ttacil wfq ;
ttafaq = mkWeak ttacal wfq ;
eittafaq = "إِ" + ttafaq ;
euttufiq = mkWeak euttucil wfq ;
attafiq = "َ" + ttafiq ;
uttafaq = "ُ" + ttafaq ;
eittafiq = "إِ" + ttafiq ;
muttafaq = "م" + uttafaq
} in verb eittafaq euttufiq attafiq uttafaq eittafiq muttafaq;
patV1Perf : Vowel => Pattern = patV1Perf : Vowel => Pattern =
table { table {
a => facal ; --katab a => facal ; --katab