forked from GitHub/gf-rgl
(Ara) variable names + whitespace
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:../abstract:../common:../../prelude
|
--# -path=.:../abstract:../common:../../prelude
|
||||||
--
|
--
|
||||||
----1 Arabic auxiliary operations.
|
----1 Arabic auxiliary operations.
|
||||||
--
|
--
|
||||||
@@ -65,13 +65,13 @@ resource ResAra = PatternsAra ** open Prelude, Predef, ParamX in {
|
|||||||
mkStrong : Pattern -> Root3 -> Str = \p,fcl ->
|
mkStrong : Pattern -> Root3 -> Str = \p,fcl ->
|
||||||
p.h + fcl.f + p.m1 + fcl.c + p.m2 + fcl.l + p.t;
|
p.h + fcl.f + p.m1 + fcl.c + p.m2 + fcl.l + p.t;
|
||||||
|
|
||||||
mkDefective: Pattern -> Root3 -> Str = \p,fcl ->
|
mkDefective : Pattern -> Root3 -> Str = \p,fcl ->
|
||||||
p.h + fcl.f + p.m1 + fcl.c + p.t;
|
p.h + fcl.f + p.m1 + fcl.c + p.t;
|
||||||
|
|
||||||
mkHollow: Pattern -> Root3 -> Str = \p,fcl ->
|
mkHollow : Pattern -> Root3 -> Str = \p,fcl ->
|
||||||
p.h + fcl.f + p.m1 + fcl.l + p.t;
|
p.h + fcl.f + p.m1 + fcl.l + p.t;
|
||||||
|
|
||||||
mkAssimilated: Pattern -> Root3 -> Str = \p,fcl ->
|
mkAssimilated : Pattern -> Root3 -> Str = \p,fcl ->
|
||||||
p.h + fcl.c + p.m1 + fcl.l + p.t;
|
p.h + fcl.c + p.m1 + fcl.l + p.t;
|
||||||
|
|
||||||
-- takes a weak pattern and a triliteral root and makes
|
-- takes a weak pattern and a triliteral root and makes
|
||||||
@@ -247,7 +247,7 @@ oper
|
|||||||
|
|
||||||
--macro for defective verbs:
|
--macro for defective verbs:
|
||||||
verbDef : DefForms -> Vowel -> Verb =
|
verbDef : DefForms -> Vowel -> Verb =
|
||||||
\vforms,vImpf ->
|
\vforms,vowImpf ->
|
||||||
let {
|
let {
|
||||||
rama = vforms ! 0 ; -- VPerf Act (Per3 Masc Sg)
|
rama = vforms ! 0 ; -- VPerf Act (Per3 Masc Sg)
|
||||||
ramay = vforms ! 1 ; -- VPerf Act (Per3 Fem Pl)
|
ramay = vforms ! 1 ; -- VPerf Act (Per3 Fem Pl)
|
||||||
@@ -375,13 +375,13 @@ oper
|
|||||||
--now is used for the sound, assimilated (weak C1), and when C1 = hamza:
|
--now is used for the sound, assimilated (weak C1), and when C1 = hamza:
|
||||||
|
|
||||||
v1sound : Root3 -> Vowel -> Vowel -> Verb =
|
v1sound : Root3 -> Vowel -> Vowel -> Verb =
|
||||||
\fcl,vPerf,vImpf ->
|
\fcl,vowPerf,vowImpf ->
|
||||||
let {
|
let {
|
||||||
qf = {f = fcl.c ; c = fcl.l} ;
|
qf = {f = fcl.c ; c = fcl.l} ;
|
||||||
qif = mkBilit (fvc ! vImpf) qf;
|
qif = mkBilit (fvc ! vowImpf) qf;
|
||||||
katab = mkStrong (patV1Perf ! vPerf) fcl ;
|
katab = mkStrong (patV1Perf ! vowPerf) fcl ;
|
||||||
kutib = mkStrong fucil fcl ; --FIXME no passive if vPerf == u
|
kutib = mkStrong fucil fcl ; --FIXME no passive if vowPerf == u
|
||||||
ktub = mkStrong (patV1Impf ! vImpf) fcl ;
|
ktub = mkStrong (patV1Impf ! vowImpf) fcl ;
|
||||||
aktub = "َ" +
|
aktub = "َ" +
|
||||||
case fcl.f of {
|
case fcl.f of {
|
||||||
"و"|"ي" => qif ;
|
"و"|"ي" => qif ;
|
||||||
@@ -436,21 +436,21 @@ fvc : Vowel => Pattern =
|
|||||||
|
|
||||||
|
|
||||||
v1geminate : Str -> Vowel -> Vowel -> Verb =
|
v1geminate : Str -> Vowel -> Vowel -> Verb =
|
||||||
\rootStr,vPerf,vImpf ->
|
\rootStr,vowPerf,vowImpf ->
|
||||||
let {
|
let {
|
||||||
mdd = mkRoot3 rootStr ; --fcc
|
mdd = mkRoot3 rootStr ; --fcc
|
||||||
md = mkRoot2 rootStr ; --fc
|
md = mkRoot2 rootStr ; --fc
|
||||||
madd = mkBilit facc md ;
|
madd = mkBilit facc md ;
|
||||||
madad = mkStrong (patGem1 ! vPerf) mdd ;
|
madad = mkStrong (patGem1 ! vowPerf) mdd ;
|
||||||
mudd = mkBilit fucc md ;
|
mudd = mkBilit fucc md ;
|
||||||
mudid = mkStrong fucil mdd ;
|
mudid = mkStrong fucil mdd ;
|
||||||
mudd' = mkBilit (patGem2 ! vImpf) md ;
|
mudd' = mkBilit (patGem2 ! vowImpf) md ;
|
||||||
amudd = "َ" + mudd' ;
|
amudd = "َ" + mudd' ;
|
||||||
mdud = mkStrong (patGem3 ! vImpf) mdd ;
|
mdud = mkStrong (patGem3 ! vowImpf) mdd ;
|
||||||
amdud = "َ" + mdud ;
|
amdud = "َ" + mdud ;
|
||||||
umadd = "ُ" + madd ;
|
umadd = "ُ" + madd ;
|
||||||
umdad = "ُ" + mkStrong fcal mdd ;
|
umdad = "ُ" + mkStrong fcal mdd ;
|
||||||
Umdud = (prefixImp ! vImpf) + mdud;
|
Umdud = (prefixImp ! vowImpf) + mdud;
|
||||||
mamdUd = mkStrong mafcUl mdd
|
mamdUd = mkStrong mafcUl mdd
|
||||||
} in verbGeminate madd madad mudd mudid amudd amdud umadd umdad Umdud mudd' mamdUd;
|
} in verbGeminate madd madad mudd mudid amudd amdud umadd umdad Umdud mudd' mamdUd;
|
||||||
|
|
||||||
@@ -477,57 +477,41 @@ patGem3 : Vowel => Pattern =
|
|||||||
|
|
||||||
DefForms : Type = Predef.Ints 10 => Str ;
|
DefForms : Type = Predef.Ints 10 => Str ;
|
||||||
toDefForms : (x1,_,_,_,_,_,_,_,_,_,x11 : Str) -> DefForms =
|
toDefForms : (x1,_,_,_,_,_,_,_,_,_,x11 : Str) -> DefForms =
|
||||||
\rama,ramay,rumi,rumu,rumiy,armi,armu,urma,eirmi,eirmu,marmiy ->
|
\a,b,c,d,e,f,g,h,i,j,k ->
|
||||||
table {
|
table {
|
||||||
0 => rama ;
|
0 => a ; 1 => b ; 2 => c ; 3 => d ; 4 => e ; 5 => f ; 6 => g ;
|
||||||
1 => ramay ;
|
7 => h ; 8 => i ; 9 => j ; 10 => k
|
||||||
2 => rumi ;
|
|
||||||
3 => rumu ;
|
|
||||||
4 => rumiy ;
|
|
||||||
5 => armi ;
|
|
||||||
6 => armu ;
|
|
||||||
7 => urma ;
|
|
||||||
8 => eirmi ;
|
|
||||||
9 => eirmu ;
|
|
||||||
10 => marmiy
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
def1Forms_perfA : Root3 -> Vowel -> DefForms = \rmy,vowImpf ->
|
||||||
def1Forms_vPerfA : Root3 -> Vowel -> DefForms = \rmy,vImpf ->
|
|
||||||
let {
|
let {
|
||||||
|
_rmi = mkDefective (patDef1 ! vowImpf) rmy ;
|
||||||
|
_rmu = mkDefective (patDef2 ! vowImpf) rmy ;
|
||||||
rama = mkDefective faca rmy ;
|
rama = mkDefective faca rmy ;
|
||||||
ramay = mkStrong facalo rmy ;
|
ramay = mkStrong facalo rmy ;
|
||||||
rumi = mkDefective fuci rmy ;
|
rumi = mkDefective fuci rmy ;
|
||||||
rumu = mkDefective fucu rmy ;
|
rumu = mkDefective fucu rmy ;
|
||||||
rumiy = mkStrong fucilo rmy ;
|
rumiy = mkStrong fucilo rmy ;
|
||||||
rmi = mkDefective (patDef1 ! vImpf) rmy ;
|
armi = "َ" + _rmi ;
|
||||||
armi = "َ" + rmi ;
|
armu = "َ" + _rmu ;
|
||||||
rmu = mkDefective (patDef2 ! vImpf) rmy ;
|
|
||||||
armu = "َ" + rmu ;
|
|
||||||
urma = mkDefective ufca rmy ;
|
urma = mkDefective ufca rmy ;
|
||||||
eirmi = prefixImp ! vImpf + rmi;
|
eirmi = prefixImp ! vowImpf + _rmi;
|
||||||
eirmu = prefixImp ! vImpf + rmu;
|
eirmu = prefixImp ! vowImpf + _rmu;
|
||||||
marmiy = mkStrong mafcil rmy
|
marmiy = mkStrong mafcil rmy
|
||||||
} in toDefForms rama ramay rumi rumu rumiy armi armu urma eirmi eirmu marmiy ;
|
} in toDefForms rama ramay rumi rumu rumiy armi armu urma eirmi eirmu marmiy ;
|
||||||
|
|
||||||
v1defective : Root3 -> Vowel -> Vowel -> Verb = \rmy,vPerf,vImpf ->
|
v1defective_a : Root3 -> Vowel -> Verb = \rmy,vowImpf ->
|
||||||
case vPerf of {
|
let vforms = def1Forms_perfA rmy vowImpf
|
||||||
i => v1defective_i rmy vImpf ;
|
in verbDef vforms vowImpf ;
|
||||||
_ => v1defective_a rmy vImpf
|
|
||||||
} ;
|
|
||||||
|
|
||||||
v1defective_a : Root3 -> Vowel -> Verb = \rmy,vImpf ->
|
v1defective_i : Root3 -> Vowel -> Verb = \bqy,vowImpf -> -- IL (conjugation 1d4)
|
||||||
let vforms = def1Forms_vPerfA rmy vImpf
|
let vforms_a = def1Forms_perfA bqy vowImpf ;
|
||||||
in verbDef vforms vImpf ;
|
|
||||||
|
|
||||||
v1defective_i : Root3 -> Vowel -> Verb = \bqy,vImpf -> -- IL (conjugation 1d4)
|
|
||||||
let vforms_a = def1Forms_vPerfA bqy vImpf ;
|
|
||||||
baqI = mkDefective facIl bqy ;
|
baqI = mkDefective facIl bqy ;
|
||||||
baqiy = mkDefective facil bqy ;
|
baqiy = mkDefective facil bqy ;
|
||||||
vforms_i = table { 0 => baqI ;
|
vforms_i = table { 0 => baqI ;
|
||||||
1 => baqiy ;
|
1 => baqiy ;
|
||||||
x => vforms_a ! x } ;
|
x => vforms_a ! x } ;
|
||||||
in verbDef vforms_i vImpf ;
|
in verbDef vforms_i vowImpf ;
|
||||||
|
|
||||||
patDef1 : Vowel => Pattern =
|
patDef1 : Vowel => Pattern =
|
||||||
table {
|
table {
|
||||||
@@ -684,7 +668,7 @@ prefixImp : Vowel => Str =
|
|||||||
_ => "إِ"
|
_ => "إِ"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
patHollowPerf : (_,_,_,_ :Str) -> Voice => PerGenNum => Str = \xAf,xif,xyf,xuf ->
|
patHollowPerf : (_,_,_,_ :Str) -> Voice => PerGenNum => Str = \xAf,xif,xIf,xuf ->
|
||||||
table {
|
table {
|
||||||
Act =>
|
Act =>
|
||||||
table {
|
table {
|
||||||
@@ -695,7 +679,7 @@ patHollowPerf : (_,_,_,_ :Str) -> Voice => PerGenNum => Str = \xAf,xif,xyf,xuf -
|
|||||||
Pas =>
|
Pas =>
|
||||||
table {
|
table {
|
||||||
Per3 Fem Pl => xuf ;
|
Per3 Fem Pl => xuf ;
|
||||||
Per3 _ _ => xyf ;
|
Per3 _ _ => xIf ;
|
||||||
_ => xuf
|
_ => xuf
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
@@ -721,26 +705,24 @@ patHollowJus : (_,_,_,_ : Str) -> Voice => PerGenNum => Str =\axaf,axAf,uxaf,uxA
|
|||||||
table {
|
table {
|
||||||
Act =>
|
Act =>
|
||||||
table {
|
table {
|
||||||
Per3 g Sg => axaf ;
|
Per3 _ Sg => axaf ;
|
||||||
Per3 Fem Pl => axaf;
|
Per3 Fem Pl => axaf ;
|
||||||
Per2 Fem Pl => axaf;
|
Per2 Fem Pl => axaf ;
|
||||||
Per2 Masc Sg => axaf;
|
Per2 Masc Sg => axaf ;
|
||||||
Per1 _ => axaf;
|
Per1 _ => axaf ;
|
||||||
_ => axAf
|
_ => axAf
|
||||||
} ;
|
} ;
|
||||||
Pas =>
|
Pas =>
|
||||||
table {
|
table {
|
||||||
Per3 g Sg => uxaf ;
|
Per3 _ Sg => uxaf ;
|
||||||
Per3 Fem Pl => uxaf;
|
Per3 Fem Pl => uxaf ;
|
||||||
Per2 Fem Pl => uxaf;
|
Per2 Fem Pl => uxaf ;
|
||||||
Per2 Masc Sg => uxaf;
|
Per2 Masc Sg => uxaf ;
|
||||||
Per1 _ => uxaf;
|
Per1 _ => uxaf ;
|
||||||
_ => uxAf
|
_ => uxAf
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
||||||
table {
|
table {
|
||||||
Masc => table { Sg => xaf ; _ => xAf} ;
|
Masc => table { Sg => xaf ; _ => xAf} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user