forked from GitHub/gf-rgl
(Ara) Add paradigm for assimilated measure 8 verbs
This commit is contained in:
@@ -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 ;
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -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 = "ْ" } ;
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user