started to add overloaded opers to ParadigmsAra

This commit is contained in:
Aarne Ranta
2018-06-12 21:06:30 +02:00
parent f1889644d4
commit 75d2f66b59

View File

@@ -41,9 +41,20 @@ resource ParadigmsAra = open
--2 Nouns --2 Nouns
-- Overloaded operator for main cases
mkN = overload {
mkN : NTable -> Gender -> Species -> N -- loan words, irregular
= mkFullN ;
mkN : (root,sgPatt,brokenPlPatt : Str) -> Gender -> Species -> N -- broken plural
= brkN ;
mkN : (root,sgPatt : Str) -> Gender -> Species -> N -- sound feminine plural
= sdfN ;
} ;
--This is used for loan words or anything that has untreated irregularities --This is used for loan words or anything that has untreated irregularities
--in the interdigitization process of its words --in the interdigitization process of its words
mkN : NTable -> Gender -> Species -> N ; mkFullN : NTable -> Gender -> Species -> N ;
--Takes a root string, a singular pattern string, a broken plural --Takes a root string, a singular pattern string, a broken plural
--pattern string, a gender, and species. Gives a noun. --pattern string, a gender, and species. Gives a noun.
@@ -57,7 +68,19 @@ resource ParadigmsAra = open
--and species. Gives a noun whose plural is sound masculine --and species. Gives a noun whose plural is sound masculine
sdmN : Str -> Str -> Gender -> Species -> N ; sdmN : Str -> Str -> Gender -> Species -> N ;
mkPN : Str -> Gender -> Species -> PN ;
--3 Proper names
mkPN = overload {
mkPN : Str -> PN -- Fem Hum if ends with ة, otherwise Masc Hum
= smartPN ;
mkPN : Str -> Gender -> Species -> PN
= mkFullPN ;
} ;
mkFullPN : Str -> Gender -> Species -> PN ;
--3 Relational nouns --3 Relational nouns
@@ -65,8 +88,19 @@ resource ParadigmsAra = open
mkN3 : N -> Preposition -> Preposition -> N3 ; mkN3 : N -> Preposition -> Preposition -> N3 ;
--2 Adjectives --2 Adjectives
-- Overloaded operator for main cases
mkA = overload {
mkA : (root,patt : Str) -> A
= sndA ;
mkA : (root : Str) -> A
= clrA ;
} ;
--Takes a root string and a pattern string --Takes a root string and a pattern string
sndA : Str -> Str -> A ; sndA : Str -> Str -> A ;
@@ -296,7 +330,7 @@ resource ParadigmsAra = open
Preposition = Str ; Preposition = Str ;
mkN nsc gen spec = mkFullN nsc gen spec =
{ s = nsc; --NTable { s = nsc; --NTable
g = gen; g = gen;
h = spec; h = spec;
@@ -307,7 +341,7 @@ resource ParadigmsAra = open
\root,sg,pl,gen,spec -> \root,sg,pl,gen,spec ->
let { kitAb = mkWord sg root; let { kitAb = mkWord sg root;
kutub = mkWord pl root kutub = mkWord pl root
} in mkN (reg kitAb kutub) gen spec; } in mkFullN (reg kitAb kutub) gen spec;
brkN root sg pl gen spec = brkN root sg pl gen spec =
let { raw = brkN' root sg pl gen spec} in let { raw = brkN' root sg pl gen spec} in
@@ -323,14 +357,14 @@ resource ParadigmsAra = open
sdfN = sdfN =
\root,sg,gen,spec -> \root,sg,gen,spec ->
let { kalima = mkWord sg root; let { kalima = mkWord sg root;
} in mkN (sndf kalima) gen spec; } in mkFullN (sndf kalima) gen spec;
sdmN = sdmN =
\root,sg,gen,spec -> \root,sg,gen,spec ->
let { mucallim = mkWord sg root; let { mucallim = mkWord sg root;
} in mkN (sndm mucallim) gen spec; } in mkFullN (sndm mucallim) gen spec;
mkPN = \str,gen,species -> mkFullPN = \str,gen,species ->
{ s = \\c => str + indecl!c ; { s = \\c => str + indecl!c ;
g = gen; g = gen;
h = species; h = species;
@@ -467,4 +501,9 @@ resource ParadigmsAra = open
mkA2V v p = mkA2 v p ** {lock_A2 = <>} ; mkA2V v p = mkA2 v p ** {lock_A2 = <>} ;
smartPN : Str -> PN = \s -> case last s of {
"ة" => mkFullPN s Fem Hum ;
_ => mkFullPN s Masc Hum
} ;
} ; } ;