forked from GitHub/gf-rgl
(Ara) Add paradigm for broken plural adjectives
This commit is contained in:
@@ -107,19 +107,21 @@ resource ParadigmsAra = open
|
|||||||
|
|
||||||
mkA = overload {
|
mkA = overload {
|
||||||
mkA : (root,patt : Str) -> A
|
mkA : (root,patt : Str) -> A
|
||||||
= sndA ;
|
= \r,p -> lin A (sndA r p);
|
||||||
mkA : (root : Str) -> A -- forms adjectives with positive form aFCal
|
mkA : (root : Str) -> A -- forms adjectives with positive form aFCal
|
||||||
= clrA ;
|
= \r -> lin A (clrA r);
|
||||||
mkA : (posit,compar,plur : Str) -> A
|
mkA : (root,sg,pl : Str) -> A
|
||||||
= degrA ;
|
= \r,s,p -> lin A (brkA r s p) ;
|
||||||
|
-- mkA : (posit,compar,plur : Str) -> A
|
||||||
|
-- = degrA ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
--Takes a root string and a pattern string
|
--Takes a root string and a pattern string
|
||||||
sndA : (root,patt : Str) -> A ;
|
sndA : (root,patt : Str) -> Adj ;
|
||||||
|
|
||||||
--Takes a root string only
|
--Takes a root string only
|
||||||
clrA : (root : Str) -> A ; -- forms adjectives of type aFCal
|
clrA : (root : Str) -> Adj ; -- forms adjectives of type aFCal
|
||||||
|
|
||||||
--3 Two-place adjectives
|
--3 Two-place adjectives
|
||||||
--
|
--
|
||||||
@@ -405,8 +407,14 @@ resource ParadigmsAra = open
|
|||||||
|
|
||||||
sdfN =
|
sdfN =
|
||||||
\root,sg,gen,spec ->
|
\root,sg,gen,spec ->
|
||||||
let { kalima = mkWord sg root;
|
let { kalimaStr = mkWord sg root;
|
||||||
} in mkFullN (sndf kalima) gen spec;
|
kalimaRaw = sndf kalimaStr;
|
||||||
|
kalima : NTable = \\n,d,c => case root of {
|
||||||
|
_ + #hamza + _
|
||||||
|
=> rectifyHmz (kalimaRaw ! n ! d ! c);
|
||||||
|
_ => kalimaRaw ! n ! d ! c
|
||||||
|
};
|
||||||
|
} in mkFullN kalima gen spec;
|
||||||
|
|
||||||
sdmN =
|
sdmN =
|
||||||
\root,sg,gen,spec ->
|
\root,sg,gen,spec ->
|
||||||
@@ -478,6 +486,19 @@ resource ParadigmsAra = open
|
|||||||
d = det
|
d = det
|
||||||
});
|
});
|
||||||
|
|
||||||
|
brkA : (root,sg,pl : Str) -> Adj = \root,sg,pl ->
|
||||||
|
let jadId = mkWord sg root ;
|
||||||
|
jadIda = jadId + "َة" ;
|
||||||
|
judud = mkWord pl root ;
|
||||||
|
akbar = mkWord "أَفعَل" root ;
|
||||||
|
mascTbl = reg jadId judud ;
|
||||||
|
femTbl = reg jadIda judud ;
|
||||||
|
in { s = table {
|
||||||
|
APosit Masc n d c => mascTbl ! n ! d ! c ;
|
||||||
|
APosit Fem n d c => femTbl ! n ! d ! c ;
|
||||||
|
AComp d c => indeclN akbar ! d ! c }
|
||||||
|
} ;
|
||||||
|
|
||||||
degrA : (posit,compar,plur : Str) -> A
|
degrA : (posit,compar,plur : Str) -> A
|
||||||
= \posit,compar,plur -> lin A {s = clr posit compar plur} ;
|
= \posit,compar,plur -> lin A {s = clr posit compar plur} ;
|
||||||
|
|
||||||
@@ -487,20 +508,18 @@ resource ParadigmsAra = open
|
|||||||
case root of {
|
case root of {
|
||||||
_ + #hamza + _ => rectifyHmz(raw.s ! af);
|
_ + #hamza + _ => rectifyHmz(raw.s ! af);
|
||||||
_ => raw.s ! af
|
_ => raw.s ! af
|
||||||
};
|
}
|
||||||
lock_A = <>
|
|
||||||
};
|
};
|
||||||
|
|
||||||
sndA' : Str -> Str -> A =
|
sndA' : Str -> Str -> Adj =
|
||||||
\root,pat ->
|
\root,pat ->
|
||||||
let { kabIr = mkWord pat root;
|
let { kabIr = mkWord pat root;
|
||||||
akbar = mkWord "أَفعَل" root
|
akbar = mkWord "أَفعَل" root
|
||||||
} in {
|
} in {
|
||||||
s = table {
|
s = table {
|
||||||
APosit g n d c => (positAdj kabIr) ! g ! n ! d ! c ;
|
APosit g n d c => positAdj kabIr ! g ! n ! d ! c ;
|
||||||
AComp d c => (indeclN akbar) ! d ! c
|
AComp d c => indeclN akbar ! d ! c
|
||||||
};
|
}
|
||||||
lock_A = <>
|
|
||||||
};
|
};
|
||||||
|
|
||||||
clrA root =
|
clrA root =
|
||||||
@@ -509,7 +528,6 @@ resource ParadigmsAra = open
|
|||||||
Humr = mkWord "فُعل" root
|
Humr = mkWord "فُعل" root
|
||||||
} in {
|
} in {
|
||||||
s = clr eaHmar HamrA' Humr;
|
s = clr eaHmar HamrA' Humr;
|
||||||
lock_A = <>
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
|
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user