(Hun) WIP: first attempt at stem-based nominal morphology

This commit is contained in:
Inari Listenmaa
2020-04-22 19:55:56 +02:00
parent 3705c9229d
commit 15040355e6
5 changed files with 88 additions and 65 deletions
+21 -13
View File
@@ -20,38 +20,46 @@ oper
param
Case = Nom | Acc | Dat
-- | PossStem -- TODO: Stem where possessive suffixes attach?
| Ill | Ine | Ela | All | Ade | Abl | Sub | Sup | Del -- Locatives
| Cau -- Causal-final 'for the purpose of, for the reason that'
| Ins -- Instrumental
| Tra -- Translative
Case =
Nom | Acc -- Practical to have core cases as full strings
| Dat -- Would be nice but is very regular, so skip it
| Sup -- Depends on the word which stem it uses
-- | All -- Can have irregularities in suffix (k)
| Ins | Tra -- Different for vowels and consonants
| OblStem ; -- The rest of the cases are regular and attach to this stem
-- | Ill | Ine | Ela | Ade | Abl | Sub | Sup | Del -- Locatives
-- | Cau -- Causal-final 'for the purpose of, for the reason that'
-- | Ins -- Instrumental
-- | Tra -- Translative
-- | Ess | Ter | For
-- | Tem -- Temporal, e.g. hatkor six oclock (from hat 6)
;
SubjCase = SCNom | SCDat ; -- Limited set of subject cases
Possessor = NoPoss | Poss Number Person ;
oper
case2stem : Case -> Case = id Case ; -- TODO add stems and cases as separate types
caseTable : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,x15 : Str) -> Case=>Str =
\n,a,d,il,ine,el,al,ad,ab,sub,sup,del,ca,ins,tra -> table {
Nom => n ;
Acc => a ;
Dat => d ;
Ins => ins ;
Tra => tra ;
OblStem => init a ;
Sup => sup ;
Sub => sub ;
Del => del ;
Ill => il ;
Ine => ine ;
Ela => el ;
All => al ;
Ade => ad ;
Abl => ab ;
Sub => sub ;
Sup => sup ;
Del => del ;
Cau => ca ;
Ins => ins ;
Tra => tra } ;
Cau => ca } ;
sc2case : SubjCase -> Case = \sc ->
case sc of {